Related to [Linked anim instance with blendspace evaluator not processing root [Content removed]
Hi! I’m revisiting this old topic (can’t believe how often I trace back my own steps) where there are issues with single frame evaluation and root motion. I’m trying to repro this in Vanilla 5.4, just with a basic character and just one node in the ABP. The issue happens with both Sequence Evaluator (by time) and Blendspace Evaluator nodes, although they’re a bit different.
With Sequence Evaluator the animation plays but root motion does not seem to move the capsule. With Blendspace Evaluator I’m passing valid normalized time values but the animation does not move, it seems to stay at the first time that Normalized Time set. Root motion is extracted properly using the regular Player nodes.
My focus is with Sequence Evaluator, I only tried blendspaces again because the original linked topic talked about them specifically. Do you know if there are open issues with root motion and single frame evaluation?
Thanks
Steps to Reproduce
Vanilla 5.4
Play anim with root motion using Sequence Evaluator (by time) node
Root motion doesn’t move the character
Hi, I think the issue that you’re running into here is likely due to the Teleport To Explicit Time property on the Sequence Evaluator node. There’s also an equivalent (Teleport To Normalized Time) on the Blendspace Evaluator.
[Image Removed]That changes the behaviour in FAnimNode_SequenceEvaluatorBase::UpdateAssetPlayer. If you have that value set (which is the default for some reason) CreateTickRecordForNode is called with 0 as the PlayRate. Then later in UAnimSequenceBase::TickAssetPlayer that 0 PlayRate results in a DeltaTime of 0 so we don’t sample the root motion. If you disable Teleport To Explicit Time we should calculate a valid PlayRate in UpdateAssetPlayer and everything should work correctly.
I’m not sure if this was the cause of the original issue you linked to, it’s possible that I missed this when I logged the bug. But I see that we did do some work to fix that JIRA so it may be that there were other issues that broke this behaviour previously.