I’m trying to re-make the Lyra animation blueprint in my own project with my custom model. They have the same skeletal structure, the key difference being my model has Blender rolls as opposed to Unreal’s bone rolls. I’ve compensated those differences in my post processing control rig, IK retargeter, etc. Almost everything seems fine but there is a noticeable problem with the Orientation Warping (and probably Stride Warping as well). When the evaulation mode is set to “Graph”, as it is in the Lyra example project, nothing occurs. All my animations play normally but I only have cardinal directions, the diagonals do not animate properly, it will simply play whatever animation its being fed by the cycle logic.
I changed the mode to manual, which caused orientation warping to apply to the model. It worked for forward diagonals (45 and -45 degrees) but over compensated for all others. It would attempt to rotate the animation 135 or -135 degrees when running backwards to the left or right, which produced some very bad animations. I created my own logic to clamp these rotation angles between -45 and 45 degrees, which appears to have worked. I think I have reproduced proper motion as far as I can tell.
My question is why did I have to do this? Are the Blender rolls really to blame for the “Graph” mode failing to operate? I tried to activate debug draw on the Orientation Warping node but that never displayed anything. Ideally I use the same set up as Lyra but I can’t spot what the issue is
Had the same issue on Epic’s skeleton. Turned out my issue was that the Sequence Evaluator’s pose that was then fed into Orientation Warping node had “Teleport to Explicit Time” turned on which prevented root motion data extraction that is used by Orientation Warping’s Graph mode.
Also the Orientation Warp seems to be unable to read Locomotion Angle value entered directly into its pin, instead of being passed via some variable.
I have the same problem with metahumans. Even I tried to reassign the skeleton of Metahuman to the Mannequin skeleton. It didn’t work. Manual mode Orientation Warping is working but Graph mode is not. Also, I think Stride Warping is not working. What causes this issue? Can anyone help with that?
For those using the Manual Mode solution above (with the BP setup OP has), I’ve placed the above Blueprint Logic on a website so you can just copypaste it:
I figured it out. There needs to be “root motion” in the animations you retargeted to your custom model; otherwise, there’s nothing for the “Graph Mode” to use to predict direction.
With the root motion present in the animation, the Graph Mode can read the direction that the root bone is traveling and then it can warp the orientation of the animations.
Once you click on the Root chain, you’ll get a mini-menu that pop’s up saying Root Settings. When you get to the Translation Mode portion as seen below, you can choose Globaly Scaled or Absolute. The point is to move the Translation information over to the Target Skeleton so that it can use it in it’s animations.
I was able to add root motion to existing animations that didn’t have it before too by modifying the root translation and setting the root motion options I have on the left.
This is one of the ALS V4 animations and I’m able to get the full usage of the orientation warp node with these assets.