General Modeling
Modeling Texturing Animating MRM
-
Try to build models at the same
scale that they will be used at in game (1 unit = 1 meter).
- This may not be
practical for models animated by bones in Soft since bones are a
fixed size.
- Models can be rescaled by the mesh viewer tool when they are loaded to
produce a god file.
Models must face you in a front view in your modeling package.
- In SoftImage that's looking down the positive z world-space axis.
- In 3DS Max that's looking down the negative y world-space axis
The origin of a hierarchy's root
should coincide with the modeling package's global origin.
- If there is no
natural origin at that point, create a dummy hard point there and put it at the top of the
hierarchy.
- The name of the root object should be descriptive of the whole
model, i.e. rumbler.
All sub-objects of a model must be
contained in a single hierarchy, with a single root object.
- Use logical names: i.e.
spine0, spine1, shoulderR, upperarmR, lowerarmR, handR, etc.
Hard points can be added for
attachments and/or effects generation.
- Name them HP-[something descriptive].
- i.e. HP-Fire for the point from which projectiles are emitted from
a
weapon.
- Effects hard points can be located anywhere in the hierarchy, but
weapon hard points must not be a child of any node that animates for
DR2's aiming code to work properly. Generally, weapon hard
points should be children of the root node. Position and
orient the weapon hard point so that it is in the right place during
the fire frame of object's fire animation cycle.
-
Control points are joints in the hierarchy that are controlled by
the game engine.
- Name them CP-[something descriptive]: i.e. CP-Weapon for the barrel of a tank
- Hardpoints can be children of control points. i.e. HP-Fire would
be a child of CP-Weapon.
- Control points cannot be children of any node that animates.
The local orientation of sub objects
in a hierarchy should be natural.
- i.e. in Soft, a foot's
local system would have the Z axis coming out the toe, the Y axis going up the leg, and
the X axis coming out of the side of the ankle.
- i.e. in Soft, a fire
hardpoint's Z axis should come out in the desired direction of fire.
- i.e. in Max, a foot's
local system would have the Y axis coming out the toe, the Z axis going up the leg, and
the X axis coming out of the side of the ankle.
-
Your models need to have normalized transforms at each level of their
heirarchy.
- That means no rotation or scaling for any subobject.
- In Max that means 'reset' the scale and transform for each
subobject. See export guide.
- In Soft you need to 'freeze' each subobject's transform.
Any sub object mesh can be made double sided by adding 2
underscores and the numeral 2 at the end of object's name.
- i.e. the lens of a light might be named: lightlens__2.
The word 'chunk' in a sub object's
name indicates that it should be the root of an automatically generated chunk.
DR2 and the meshviewer ignore the all the material colors in the
xsi file.
- All materials with diffuse components that match (i.e. r =.7,
g=.7, b=.7) will be replaced with 100% white.
- Any material with diffuse components that don't match (i.e. r = 1,
g=0, b=0) will be replaced by a team color.
- Specular colors are completely ignored.
- Emissive color is used to control a material's blend
mode.
- An emissive r component of 3 or greater indicates glow
blending (for translucent glowing objects).
- An emissive r component of 2-3 indicates add blending (for
bright translucent objects).
- An emissive r component of 1-2 indicates decal blending (for
full bright, no lighting objects).
- you may have to hand edit the xsi file to get these results.
Secondary textures in materials will be displayed as a 'light'
overlay in the game engine.
- apply the 2-texture material only to the faces that need it to
reduce render overhead.
Vertex coloring on models should be used
sparingly; probably only to tweak the look of a reusable texture.
- i.e. buildings
- Switching Soft
from vertex color mode to material/phong before export disables vertex colors in the xsi
file.
To reduce translucency sorting
problems, any translucent textures used on a single model must come from one texture
sheet.
Because they are inherently more
expensive to render, translucently textured objects should generally be made
smaller/simpler.
-
Animation of the root node of a hierarchy will be ignored in the
game engine.
- If the root
needs to animate make it a child of a dummy root hard point that doesn't animate.
Every bone or piece in a hierarchy
that animates costs at least one matrix multiply each in game, so keep animations simple
and efficient.
-
Skinned models will generally mrm
better than hierarchical ones.
Applying as few textures as possible and mapping as continuously
as possible should keep texture distortions during mrming to a minimum.
- UV
discontinuities will always cause distortion, but it may not be visible in game.
- Some distortions
can be corrected by forcing mrm behavior in the meshviewer tool.
An optional frog pose export can be
used to optimize mrm reduction behavior.
- Frog pose bends
all of a model's joints by no more than 90 degrees so the mrm generator can recognize
them.
- Sub objects that
aren't desired to merge together during mrming should be kept well clear of each other in
frog pose.
- It should be
named the same as the base export with a '-frog' on the end; i.e. rumbler-frog.xsi.