1
3D Modelling & Animation / Tips for CCC's AnimConverter and Retimer
« on: June 28, 2016, 01:00:06 pm »
Here's a collection of notes/tips from my recent experiences with using these two tools.
CCC's AnimConverter:
- It only deals with normalizing bone lengths between skeletons (distance of parent bones to child bones), but doesn't account for relative distances between sibling bone nodes.
- The main place you can see this issue is on the faces of models between HUM_F/HUM_M. CCC's tool will get rid of facial dimension deformations since it fixes the bone lengths, but you will notice that the eyelids, pupils, and jaw are still in the wrong position or missing entirely (either not showing, mouth open, or jaw missing
)
- This is because the distance between the eyes, eyelids, and jaw (all sibling bones of the "head" bone) is different - HUM_M has a larger/longer face model than HUM_F.
- To fix this:
1. After running CCC's tool open up the default bind pose for the destination skeleton. For example, if you're converting to HUM_M, convert and open up HUM_M.skeleton.xml - will refer to this as the "reference animation" from here on out.
2. Open up both XMLs. In the first section of your new animation (bones), replace the position sub-blocks (only those 3 lines, not rotation or anything else!) with the info from the reference animation:
a. Bip01 Blink
b. Bip01 Eye_Look
c. Bip01 Jaw
3. Note that the default bind pose has eyes closed. If you want the eyes open, then use some other animation's bind pose (like LFIST2) as the reference animation.
Retimer
This mainly concerns bugs and quirks about Retimer.
1. Retimer has trouble doing more than one thing in one session - for instance, if you want to cut and retime in the same session, it'll do one or the other or not do what was expected.
If you need to do more than one thing on an anim, it's probably best to do thing #1, save, quit and reload retimer, and then do thing #2, etc.
2. Doing cuts doesn't change the animation length field - you will have to do that manually.
3. Occasionally, it'll leave keyframes whose timestamps are past the animation end point. This causes issues with animcombine (it'll combine correctly, you'll just get stray frames at points), and maybe also with TL2/GUTS/OGRE. To fix that, double-check the end timestamps and do an additional cut if necessary.
CCC's AnimConverter:
- It only deals with normalizing bone lengths between skeletons (distance of parent bones to child bones), but doesn't account for relative distances between sibling bone nodes.
- The main place you can see this issue is on the faces of models between HUM_F/HUM_M. CCC's tool will get rid of facial dimension deformations since it fixes the bone lengths, but you will notice that the eyelids, pupils, and jaw are still in the wrong position or missing entirely (either not showing, mouth open, or jaw missing
)- This is because the distance between the eyes, eyelids, and jaw (all sibling bones of the "head" bone) is different - HUM_M has a larger/longer face model than HUM_F.
- To fix this:
1. After running CCC's tool open up the default bind pose for the destination skeleton. For example, if you're converting to HUM_M, convert and open up HUM_M.skeleton.xml - will refer to this as the "reference animation" from here on out.
2. Open up both XMLs. In the first section of your new animation (bones), replace the position sub-blocks (only those 3 lines, not rotation or anything else!) with the info from the reference animation:
a. Bip01 Blink
b. Bip01 Eye_Look
c. Bip01 Jaw
3. Note that the default bind pose has eyes closed. If you want the eyes open, then use some other animation's bind pose (like LFIST2) as the reference animation.
Retimer
This mainly concerns bugs and quirks about Retimer.
1. Retimer has trouble doing more than one thing in one session - for instance, if you want to cut and retime in the same session, it'll do one or the other or not do what was expected.
If you need to do more than one thing on an anim, it's probably best to do thing #1, save, quit and reload retimer, and then do thing #2, etc.
2. Doing cuts doesn't change the animation length field - you will have to do that manually.
3. Occasionally, it'll leave keyframes whose timestamps are past the animation end point. This causes issues with animcombine (it'll combine correctly, you'll just get stray frames at points), and maybe also with TL2/GUTS/OGRE. To fix that, double-check the end timestamps and do an additional cut if necessary.


)