It’s a shame this conversation died.
Root motion is more relevant now that Motion Matching is a thing.
And people are talking a lot about combat abilities, which you might as well be driving from montages, however, I personally am frustrated with Montages as the only answer to root motion, because they tend to be tangled in with gameplay logic that it prevents the animation system from having enough control to decide how to articulate the character.
Besides if you’re doing motion matching, then you’re definitely not going to want to drive everything with montages, unless you somehow modify montages to only represent the action and disassociate them from the actual animation assets that’re expected to play.
I can confirm that Epic knows their root motion options suck and want to fix it but it’s just on the wish list even now in nearly 2022.
It seems like full root motion capture breaks multi-threaded animation evaluation too. That’s a shame. So, if it’s possible to revive this old thread, I’d like to know what it would actually take to do this.
Technically, root motion is called root motion, because it’s USUALLY the root bone of the character. If not it might just be 1 child away, and in that case the real root is probably not animated. This is important because, the assumption is that replication for this is hard because the server might want to be able to move a character without resolving their whole animation. And since we know it’s typically at the top of the hierarchy, to compute the motion, you could evaluate the whole anim graph with pretty much just the root bone, and this wouldn’t be that much data – ignoring everything else. There’s no space conversion cost, because even in local space the root joint is the same as model (component) space.
So, am I missing something? Is there a cost to computing this motion that would be harder for the server to do?
As for prediction, we can advance time and see exactly where root motion would bring us, especially if we limit the evaluation to the root bone alone. Many nodes could even be flagged to be skipped like all the IK nodes in your character etc, or anything that does ray-casts, so there should be a fast root calculation. Motion matching would be a huge curve ball if each pose depends on knowledge of the previous frame’s actual full pose.
Typically root motion is at least converted to a velocity rather than a position in the extraction, this way you can blend it, but you could also infer and store and blend acceleration, which you could substitute in a poor prediction model, if you don’t want to sample in the future.
From a purely computational perspective, it doesn’t seem too hard.
So, what is involved in changing the motion prediction model? Is this hard-coded in a lot of engine systems right now?