No animation when SimulatePhysics is enabled

I tested it in 4.19 and 4.20.
I create a normal character. The parent class is: Character.
In the CapsuleComponent (Inherited) I activate Simulate Physics.
In the Mesh (Inherited) the SkeletalMesh and the AnimationBP are set.
If I start the game in PIE with 3 windows (1 server and 2 clients), then the server has an animation, but the replicated clients (no controlled) have no animation. In the client window, each character has an animation, so even those are not controlled.

If I do not enable Simulate Physics, the server will run all animations. If I activate simulate physics with the button and do this on every character, the animation will be stopped. The Controlled Character will not be stopped. You can not restart the Aniamtion if you deactivate the Simulate Physics on the Uncontrolled Characters.

That only affects Mesh (Inherited).

Hello,

We’ve recently made a switch to a new bug reporting method using a more structured form. Please visit the link below for more details and report the issue using the new Bug Submission Form. Feel free to continue to use this thread for community discussion around the issue.

https://epicsupport.force.com/unrealengine/s/

Thanks

I just encountered this issue trying to simulate physics on the character’s capsule collision in a multiplayer setting.

The work-around is simply adding another skeletal mesh component to your character and using that mesh in place of the inherited charactermesh0. Then the animation will work properly.

This is the kind of question that really needs a project sample as more than a few things can go wrong when dealing with replication. A usual thing that happens is when using animation driven by the movement component then the required replication is handled for you. In all cases the event is replicated and the animation state changes based on the current orientation of the capsule as driven by the MC.

That’s to say that state changes is event driven in a networked configuration and the state changes is scripted as to seeing state changes on the local level. Pressing “W” is whats replicated as the trigger over the network and it’s the scripted move forward on the local client that is what you see.

This gets us to “physics”. Physics by it’s self is not replicated through the required movement component because it’s a physics and the result can very from client to client so the movement component has no idea what to do with the result so your character from client to client will not move.

Replication however can be set up as the trigger any time for any kind of need but all it can do is trigger the physics event but will be a different result between clients. The physics data is not sent as the data overhead for a 1-1 match would be massive…

That said you can scrip any kind of physics driven requirement in most 3d application and triggered the scripted result and you can drive all sorts of physics based results that does replicate 1-1 to all clients.

Which way to go though depends on the result you are looking for