Download

Animations not fully working in multiplayer?

Ok, so I took the first person shooter example, got multiplayer all setup, added some custom animations, setup blend spaces, etc.
I run two instances, connect the client to the server.

All animations are working on their respective screens (Ie: On the server, I can see all of my animations for the server character,
and on the client I can see all of my animations for the client character).

My Walk animation seems to work (I see them on both client & server)
My Jump animation seems to work (I see them on both client & server)

However, crouch & prone I only see on the character they are running on.

Any ideas? I’ve tried removing the Mesh1P stuff as suggested in another post, but that didn’t seem to fix anything. Should I be
replicating the IsJumping, IsCrouching variables? I’m not currently and jumping still seems to work…

I’m a little bit boggled myself by animations and controls replication. I do know that everything that seems related to the movement component seems to replicate without much effort. I’m surprised that crouching doesn’t work for you since that worked for me without effort.

I have a character that literally everything replicated out of the box except for my AimOffset animations. I’ve since learned how to get those replicating as well, but they’re very jerky now (even on the client’s view). So obviously have something more to figure out.

I take it you added the crouch and prone animation and you didn’t set them up correctly.

I’d need to know if you did it using BPs or code to give you specific help.

Generally this is how it works. You will want a variable, probably a boolean, to indicate if the player is prone/crouched or not. On this Boolean you will want to add an OnRep notifier. Then in the function that is called to change the player to a prone/crouched state you want to do a check to see if it’s the client or the server trying to run the function. If it’s the client, you want to just call the same functionagain but on the server. The server will then set the boolean for that player. When that variable is changed the OnRep notifier is triggered. You will have to write a function for the OnRep notification. This is where you want to play the animation.

Let me know if you need more help

First of all, thanks for your help! I am doing it in Blueprints and this is how I’m doing it currently…

I have an InputAction Crouch (C Key) that toggles a boolean true/false for CrouchPressed and then sets my Max Walk Speed depending on if I am crouched or not.
Then everything else currently happens in my blendspace. I have IsCrouching boolean that gets set from my BlendSpace EventGraph and then I perform my
transitions based on that…

I was thinking I should switch over to using Animation Montages for my animations, Crouch/Prone/etc. But I’m kind of at a loss on how to do that, and on top of
that implement replication.

P.S. I noticed that while I said my “Jump” animation works on Client & Server above, it really isn’t. I do see A jump on both the client and server, but the animation
is different depending on whether you are looking at the client or the server. They don’t match.

Ky, good information, I will have to research it further, may have a question or two when I get there about all that rep stuff. Thanks.