Animation Retargeting

Started by
3 comments, last by Ruggostein 13 years, 3 months ago
I'm trying to reuse some animations on most of my characters, to reduce work. I've done some experiments, but just applying the same bone animation data does not work (well, actually in some animation, it is good enough, but others, is totally unusable). My idea now is to try the following
- For each frame, calculate the final bone position of the original animation (in picture, this is the left skeleton)
- Now, calculate a rotation vector (X,Y,Z) that when applied to the right mesh equivalent bone, it produces a rotation that makes this new bone have the same angle to his parent bone, that the original bone also have to his parent. Does this sound ok?

Even if yes, I'm having problems working out the math, since all bones have an initial rotation/translation, and then, a new rotation/translation on top of the original one. Anyone has ideas?

Advertisement
I am not sure I understand the question. Are you trying to reuse animations on characters that have different bone structures?

Quote:Original post by alvaro
I am not sure I understand the question. Are you trying to reuse animations on characters that have different bone structures?


Yes, well, not entirely different, they don't have all the bones, but have the essential ones (legs, arms, neck, etc). I think, in theory, it should work, the trick is calculating the same orientation for each keyframe, but that's my problem.
IT should work. Just make a copy of the bones from the reference animation. Then, find out which bones your new model has, then remove the bones that do not match from the animation, so you are left with the same bones for your new animation.
Wisdom is knowing when to shut up, so try it.
--Game Development http://nolimitsdesigns.com: Reliable UDP library, Threading library, Math Library, UI Library. Take a look, its all free.
Quote:Original post by smasherprog
IT should work. Just make a copy of the bones from the reference animation. Then, find out which bones your new model has, then remove the bones that do not match from the animation, so you are left with the same bones for your new animation.


Just this does not work, this is actually what is shown in the picture in my first post, the frog is using the animations copied straight from the skeleton on the left.
However, since the base skeletons do not match exactly. Bones are defined from a rotation and translation from a parent bone, and both skeletons have different starting rotations for the same bone. This is one of my problems.

This topic is closed to new replies.

Advertisement