Is it possible to change direction during a root motion animation?

If i have, let’s say, an attack animation that moves the character forward with rootmotion, is it possible to rotate the character and guide it in the desired direction during the animation, without iterrupting it of course, using an input like WASD or the controller thumbstick? Or does rootmotion just disable all input?

Root motion is driven by the key animations applied to the root so direction changes should be included with in the animation data.

Lol… I just randomly glanced at the random title of the last posted topics, having coded a minute ago the very same issue you are asking for.
It works, just at the time of starting the animation with root motion run a timeline/timer that sets character’s actor rotation to face an enemy.

Even tho that’s not what i originally meant, that’s still very useful knowledge; thanks.

What i meant was if it was possible to turn the charachter in the middle of a root motion animation, but my research concluded that it’s probably not possible. I have found other ways to achieve what i needed so it’s ok.

Can you teach me how to turn character in root motion? :confounded:

In-Place = reactive animation.

The actual player movement is provided by the movement component of a character blueprint so whats moving is the capsule which also handles all of the network requirements such as replication or world space error correction.

Root Motion = Event driven animation

The necessary world orientation of the player is contained with in the root of the animation so to turn the player you activate, as an event, the turn animation as part of the animation set.

Note because you will loss the abilities of the movement component root motion is not really suitable as to network requirements

Done right it would be much better and far more accurate.

Think about it:
The animation data is the same for both clients.
The start of the animation can be the same for both clients (done with sync).
The end result would therefore be exactly identical on both clients for the full duration of the single animation…
Too bad the engine is years behind on Networking stuff (on top of everything else).

You can make the case that speeding up the game speed via a cheat can therefore somehow allow you to cheat - but if you sync the “end” of the animation as well, and there is a disparity your game itself can actually catch the cheater…

I agree but the amount of additional work would be huge.

The good news is the animBP now can ignore root motion data so using the data is possible.

For example I’m using all root motion animation, setting to ignore, and examining using the animation curves to drive the movement component for replication requirements. Just to many smallish issues to fix to recommend it’s use for network use.

If someone has a networked version using root motion I would love to see it. As a TA I would love to see RM in common use but the problem is convincing coder to adopted the format (understandable)

I don’t think it’s understandable. In fact, as a coder primarily I resent that statement :stuck_out_tongue:

Curves (obviously, as I even made a blender plugin for it) are an absolute must for even basic level animations.

There really isn’t too much difference from reading a curve or reading a bone track - the obvious is one’s a float, the other a vector3.

I’m not aware of any “good” networked implementations, then again due to the constant issues this engine has I sort of jumped ship a while back and am more and more convinced cryengine is where decent development can be had without the pain using Epic involves - including the latest marketplace blunder with payments.

Here’s one way of doing it. Works great for me so far.
I created an Anim Notify State that toggles “Allow Physics Rotation During Anim Root Motion”

1 Like