Root Motion in multiplayer without Montages

We would like to use Root Motion from our animations in multiplayer, but if we use “Root Motion from Everything”, the animation speed/length becomes different on client and server, with quite a noticeable difference.

The documentation states that “Root Motion from Everything” is not recommended for animation that is replicated over a network. Can you please explain a bit why this is the case, and why it affects animation execution length?

We’ve currently got a setup that isn’t using Montages, we still need to look into them a bit more. From what I can tell the montages can only be started from the EventGraph, so I wouldn’t be able to have all animation execution nicely contained in the AnimGraph anymore. So to please enlighten me a bit about the Root Motion issues so I can make an informed decision.

Hello, apologize for delay.

Can you please explain a bit why this is the case, and why it affects animation execution length?

We don’t replicate animation. Replicating animation comes down to replicate lots of node state as well as rewindable and re-simulated to support replication, (when replicate player movement, we don’t just change their position. We do rewind and resimulate to get to the desired position server sent) but we don’t do that for animation. We run animation in each client, but what we support replication is montage play because montage has timeline where we could rewind and resimulate. This doesn’t work well if you start jumping between different sections - say for example you’re jumping to A->C->X, but if your last position in client was A, and next the one you got is X, then you’ll ignore C.

We don’t support montage itself to be replicated. You’ll have to use our ability system to make montage to be replicated AFAIK.

Thanks,

–Lina,