I’m animating a character using root motion, which works fine. Then I tried to add a blink animation. To do this I used a “Layered blend per bone” node. Base pose was the standard locomotion and the Blend pose was a Sequence Player that played a blink animation, the eyelid bones are the ones that I blend with. Up to this point, everything works perfectly, root motion still works and the character blinks.
Then I tried adding some randomness to the blinking by replacing the blinking animation with a “Random Sequence Player” node and adding the blinking animation to that, as well as a “no blink” animation and suddenly Root motion breaks! The character still moves at full speed, but it turns less sharply (about 50%) and there is a lot of foot sliding during turning animations.
I also tried having only the blinking animation inside the random sequence player, since I know it works fine, but even with just that one animation in the random sequence player, it still doesn’t work.
It really seems like there is a bug with the “Random Sequence Player” node and root motion rotation, possibly linked with “Layered blend per bone”, but if not, how can I get it to work as intended?
Notes:
-All the animations have root motion enabled
-“Layered blend per bone” has “Blend Root Motion Based on Root Bone” enabled, but disabling it doesn’t fix the problem.
The random sequence player is setup to use root motion so we need to dig a bit further into your setup to see if we can figure out where the issue is. How are you playing root motin? Is your anim graph setup to play root motion from everything? What are the settings you have for the layered blend per bone exactly?
As an alternative, for this setup, have you considered using an additive for the blinking?
Yes, the anim graph’s “Root Motion Mode” is set to “Root Motion From Everything”. Root motion is being played in a relatively standard way from a blend space and the Layered blend per bone’s settings are all default, with “Blend mode” set to “Branch Filter” and the bones for the eyelids added.
It works perfectly fine without the random sequence player, but the moment I add it, without making any other change, root motion rotation is halved. It can seem like it works because you still turn, but it’s fairly easy to see the difference if you walk in a circle and see that the radius increases.
On the layered blend node, make sure you have unchecked Blend Root Motion Based on Root Bone. By default we want to blend in root motion and since your layered pose does not have it, that is most likely blending into your rotation data. [Image Removed]If this doesn’t solve the issue and you want to continue with this method instead of using an additive, you may need to adjust how the random sequence player handles root motion extraction. This could be a minor code change, but ideally, you would avoid this with another method. The main thing to keep in mind is that with Root Motion From Everything, we calculate root motion from almost all layered and blended sources.