Difference between revisions of "Custom Characters"
Silverfish (talk | contribs) (→Model and Texture Requirements: Added in missing images.) |
Silverfish (talk | contribs) (Pasted in tutorial part from original post.) |
||
Line 89: | Line 89: | ||
Green = light from front | Green = light from front | ||
+ | |||
+ | ==Blender== | ||
+ | |||
+ | I have repackaged it with the export add-ons and customised the UI for making characters, it does not require an install and can be run from its folder. You may need to restart it once to get the export options to show up. | ||
+ | |||
+ | [[Image:Blenddefault.jpg|thumb|This is what a Blank/Flat object-space normal map looks like]] | ||
+ | |||
+ | I’m not going to write a full tutorial on using blender, just list the steps and tell you the keyboard shortcuts u need: | ||
+ | |||
+ | camera: | ||
+ | Scroll = zoom | ||
+ | Middle mouse = rotate | ||
+ | Shift + Middle mouse = pan | ||
+ | |||
+ | '''Step 1: Replace the white rabbit''' | ||
+ | |||
+ | right-click = select | ||
+ | del = delete :-) | ||
+ | |||
+ | [[Image:Blenddel.jpg|thumb|This is what a Blank/Flat object-space normal map looks like]] | ||
+ | You can import your mesh as an .OBJ | ||
+ | |||
+ | '''Step 2: Bind your own mesh to the skeleton''' | ||
+ | |||
+ | shift + right-click = select more then 1 object | ||
+ | Ctrl+P = bind selected mesh to selected skeleton (armature deform) | ||
+ | |||
+ | [[Image:Blendbind.jpg|thumb|This is what a Blank/Flat object-space normal map looks like]] | ||
+ | u need to select the mesh, then the skeleton, before u press Ctrl+P | ||
+ | |||
+ | '''Step 3: Paint weights''' | ||
+ | |||
+ | Drop down box near file menu = switches between editing modes | ||
+ | TAB = switches between last 2 editing modes | ||
+ | |||
+ | [[Image:Blendweights.jpg|thumb|This is what a Blank/Flat object-space normal map looks like]] | ||
+ | you may want to go to YouTube and look up a tutorial on painting weights in blender… | ||
+ | |||
+ | '''Step 4: Export your files''' | ||
+ | |||
+ | With skeleton selected in object mode, export as .PHXBN, same for mesh but as .OBJ, needs to be in rest position. | ||
+ | |||
+ | You should test your character in engine with automatic weights, just to check that you have no errors before you paint, it won’t look pretty, but it’s just a test |
Revision as of 08:41, 11 September 2015
based on this forum post by member Markuss.
There are two linked .zip file attached to the forum post. they can be found here:
http://www.markstockton.com/misc/Guide2/ExampleMan.zip
http://www.markstockton.com/misc/Guide2/Blender-Overgrowth-Win.zip
This guide assumes you are familiar with 3D Objects.
Basics
Characters in overgrowth consist of 4 .XML files, an .OBJ file and a .PHXBN file. The .PHXBN file is created in Blender and contains the skeleton and skin weighting info. The XML files just contain links to themselves and other files. They contain the following:
1 - Links to the .OBJ and .PHXBN files that the engine needs to rig the character.
<?xml version="1.0" ?> <rig bone_path = "Data/Custom/Markuss/ExampleMan/Models/ExampleMan.phxbn" model_path = "Data/Custom/Markuss/ExampleMan/Models/ExampleMan.obj"/>
2 - A regular object file as described in the 3D reference guide.
<?xml version="1.0"?> <Object> <Model>Data/Custom/Markuss/ExampleMan/Models/ExampleMan.obj</Model> <ColorMap>Data/Custom/Markuss/ExampleMan/Textures/ExampleMan_Color.TGA</ColorMap> <NormalMap>Data/Custom/Markuss/ExampleMan/Textures/ExampleMan_Norm.TGA</NormalMap> <ShaderName>cubemapobjchar</ShaderName> </Object>
3 - Links to the first 2 files, and a load of animation files for each action.
<?xml version="1.0" ?> <character> <appearance obj_path = "Data/Custom/Markuss/ExampleMan/XMLFiles/ExampleMan_Object.xml" skeleton = "Data/Custom/Markuss/ExampleMan/XMLFiles/ExampleMan_RigFiles.xml"/> <animations idle = "Data/Animations/r_idle2.xml" jump = "Data/Animations/r_jump.xml" roll = "Data/Animations/r_roll.xml" movement = "Data/Animations/r_movement.xml" wall = "Data/Animations/r_wall.xml" ledge = "Data/Animations/r_ledge.anm" medrightblock = "Data/Animations/r_activeblockmedright.anm" medleftblock = "Data/Animations/r_activeblockmedleft.anm" highrightblock = "Data/Animations/r_activeblockhighright.anm" highleftblock = "Data/Animations/r_activeblockhighleft.anm" lowrightblock = "Data/Animations/r_activeblocklowright.anm" lowleftblock = "Data/Animations/r_activeblocklowleft.anm" blockflinch = "Data/Animations/r_activeblockflinch.anm"/> <attacks moving_close = "Data/Attacks/haymaker.xml" stationary_close = "Data/Attacks/thrustpunch.xml" moving = "Data/Attacks/spinkick.xml" stationary = "Data/Attacks/frontkick.xml" moving_low = "Data/Attacks/soccerkick.xml" low = "Data/Attacks/sweep.xml" air = "Data/Attacks/legcannon.xml" /> </character>
4 - Links to the third file and an AI script, this is the file you choose when loading a character.
<?xml version="1.0" ?> <Actor> <Character>Data/Custom/Markuss/ExampleMan/XMLFiles/ExampleMan_AnimList.xml</Character> <ControlScript>enemycontrol.as</ControlScript> </Actor>
Model and Texture Requirements
Models have to be triangles only and centered to the middle of the scene with location, rotation and scale set to zero. It should loosely match the pose and proportions of the overgrowth characters, you can use the following file:
- Data/Models/Characters/Rabbit/rabbit.obj
NOTE: If your character is not symmetrical, ignore the center line in the geometry, it has to be the ‘true’ the center of the model, otherwise you will get errors
The normal map has to be object-space, there is currently no character shader that supports tangent-space. The normal map's alpha channel controls a side-glow effect when the sun is behind the character, black = no effect. It is possible to use a blank (blue) normal map with the Cubemap shader, the character is rendered brighter, but it is acceptable, most community characters are like this.
Color Space:
Blue = light from top
Red = light from right
Green = light from front
Blender
I have repackaged it with the export add-ons and customised the UI for making characters, it does not require an install and can be run from its folder. You may need to restart it once to get the export options to show up.
I’m not going to write a full tutorial on using blender, just list the steps and tell you the keyboard shortcuts u need:
camera: Scroll = zoom Middle mouse = rotate Shift + Middle mouse = pan
Step 1: Replace the white rabbit
right-click = select del = delete :-)
You can import your mesh as an .OBJ
Step 2: Bind your own mesh to the skeleton
shift + right-click = select more then 1 object Ctrl+P = bind selected mesh to selected skeleton (armature deform)
u need to select the mesh, then the skeleton, before u press Ctrl+P
Step 3: Paint weights
Drop down box near file menu = switches between editing modes TAB = switches between last 2 editing modes
you may want to go to YouTube and look up a tutorial on painting weights in blender…
Step 4: Export your files
With skeleton selected in object mode, export as .PHXBN, same for mesh but as .OBJ, needs to be in rest position.
You should test your character in engine with automatic weights, just to check that you have no errors before you paint, it won’t look pretty, but it’s just a test