Solved! Using Aniblocks With Scaled Characters
The problem: AniMate2 does not take the root node's scaling into account when it does the math to calculate (a) initial hip translation for the start of the animation or (b) where the character "ends up" when the animation completes. If you import a Genesis 2 character, move him to a Y location of about 1000 cm, scale him up to 150% or more, and then apply some walk animations, you can observe these undesirable effects:
- If you stretch out the walk animation or put two copies side by side, when the first walk cycle ends and the second one is to begin, the character will teleport from wherever he is to where he would have been if he were scaled at 100%. Extend the walk out as far as you want, and you'll see the character walk forward, stutter back, walk forward, stutter back...
- If you bake the aniblock to studio keyframes, in the second frame of the animation, the character will be teleported out of position. You might have to look around for him. AniMate2 tried to use hip placement to move the character, instead of moving the root node, but because it didn't divide by the scaling factor, it got the wrong position.
DAZ tech support referred me to GoFigure3D's tech support, and once I emailed them, I got an email response the same day!
The solution is to make sure your characters are always scaled to 100% at the root node--the top-level of parameters you see when you click on a character in the Scene tab. We can still scale, but we have to do it elsewhere. Here's how:
First, go to your giant character and reduce him back down to 100% scale. Then go to the menu and choose Create > New Null. Name the null something like "<character> Scaling Null" so you'll be able to easily find the character later. Then drag the scaling null over to where your character is standing and put it where the widget with the red, green, and blue arrows would appear if you clicked on the character. Once that's done, right-click on the character and choose Change "<character>" Parent from the pop-up menu. Select the character's scaling null as its new parent and make sure you do not check Parent In Place. Click the Accept button. In the Scene tab, the character's name will be moved inside the scaling null, as shown in the attached graphic. Finally, click on the scaling null and, on the Parameters tab, change its scale to whatever you want.
Make sure you scale the parent null, not the character.
Now aniblocks will run and bake correctly! Happy animating!
Comments
Wow ... thank you for this useful information!
thanks!
I knew something was causing this jumping but I didn't know what.
This works great!
This solution works only in DAZ because after export animation walk FBX in 4d cinema feet always slide.