Animator object replication breaks

The animator object in World // Zero will randomly break and a character will no longer replicate animations (until they get a new character). We’ve been seeing this since March and are confident it’s not a bug with our code.

We were able to reproduce this issue 100% of the time by having no animatable joints visible to the server, which seems to cease the Animator from replicating entirely.

By adding 1 joint visible to the server, we have bypassed this replication condition however our rigs will still stop replicating creating the infamous “helicopter bug” (see below) in our game. This happens because the root joint no longer gets reset per step by the Animator once it breaks, and our body-looking code updates the existing value.

Our best guess as to why this happens is because the rig is built / destroyed at runtime on each client for level of detail as they’re complex rigs.

Fortunately our entire animation pipeline funnels down into one method, so we’re going to switch to using a custom Animator implementation that runs over RemoteEvents and will switch back once this is fixed!

4 Likes

We’ve been having the same issue in our game, and funnily enough, also causing the exact same helicopter spinning bug due to Transform not being reset and accumulating. :rofl:
In our case though, no joints are added or removed at runtime. Every rig has joints pre-placed and they are all are visible to the server. Playing a new animation also sometimes fixes it (?)

I think it’s due to this bug here that @CodeWriter identified but the last update was over a month ago.:confused:

1 Like