Difference between revisions of "Custom Characters"

From Wolfire Games Wiki
Jump to: navigation, search
(Created page with "''based on [http://forums.wolfire.com/viewtopic.php?f=16&t=24827 this] forum post by member Markuss.'' There are two linked .zip file attached to the forum post. they can be fou...")
 
(Model and Texture Requirements: Added in missing images.)
Line 74: Line 74:
  
 
: Data/Models/Characters/Rabbit/rabbit.obj
 
: Data/Models/Characters/Rabbit/rabbit.obj
<pre>IMAGE MISSING, UNABLE TO UPLOAD</pre>
+
[[Image:ExampleMan_mesh.jpg|thumb|Character Model Faces Z-axis]]
Character Model Faces Z-axis
 
  
 
''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''
 
''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''
Line 81: Line 80:
 
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.
 
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.
  
<pre>IMAGE MISSING, UNABLE TO UPLOAD</pre>
+
[[Image:ExampleMan_Norm.jpg|thumb|This is what a Blank/Flat object-space normal map looks like]]
This is what a Blank/Flat object-space normal map looks like.
 
  
 
'''Color Space''':
 
'''Color Space''':

Revision as of 08:27, 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
Character Model Faces Z-axis

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.

This is what a Blank/Flat object-space normal map looks like

Color Space:

Blue = light from top

Red = light from right

Green = light from front