Advertisement

Character's Relative Position in Animations

Started by January 15, 2003 08:21 AM
4 comments, last by hundel 21 years, 9 months ago
I''m supplementing my character animations with the motion captures that ship with 3ds max4. I apply an animated bip to my character in max, export every few frames to x files, and run them in my simulation. The drawback is this: since the meshes position changes from frame to frame in the bip animation, I can''t easily animate the characters position using my game engine. (For example, if a biped motion routine in the game loops through the frame while moving the character forward at a specified rate, the character would move too quickly until the animation looped, and then be set back a bit, and so on.) Of course, the advantage is that the motion capture footsteps always animate perfectly relative to the ground. How can I use imported bip animations in my 3d program, while retaining the same relative position for the mesh in the game? Or, how should I modify my game engine to account for the varying relative position of the character in the exported x file?
This may not help you too much, but we find the average velocity of the biped motion in the anim max, and store that value in a file that is ripped out when we export the anim.

Then during the export, we remove any translation from the root node.

Finally, when that anim is played, we manually translate the root node according to the velocity stored in the extra file. The game engine uses this velocity as the speed that it moves the character, and you don''t get the snap back to the nodes starting position when the anim is done.
Advertisement
This is a neat solution. However, my xfile parsing code is not developed enough at this time to easily adapt to automation.

Is there an easy way to reset the mesh''s relative position to 0,0,0 prior to export in max, and only transform the posture?
Any other ideas on this? I suspect 3d modeling software supports us somehow here. For example, could I somehow lock the meshes absolute xyz position during the animation?
I''m not sure if this is what you''re asking, but if you select the biped, then go to the motion panel, then the general rollout, you''ll see an In-Place Mode button (it looks like a small circle inside a bigger one). That will lock the biped in its current XY position, e.g. it won''t move forward when going through the motion captured footsteps. This won''t stop the biped from moving along the Z axis though.

You can also choose to lock out just X-axis motion, or just Y-axis motion.

hope that helps.
>>john
Thanks, that works well in almost every case. I also wrote some batch processing functions in MAXScript that are useful for this sort of thing and also correct for the z variation if required.

This topic is closed to new replies.

Advertisement