This issue is specific to multiplayer and the Gameplay Abilities system. The issue is present in UE4.24 and up.
I am currently using UE4.22 but 4.23 works fine as well. I created a copy of my project and upgraded it to 4.27.
The issue occurs on the client side autonomous proxy when using PlayMontageAndWait.
Using “PlayMontageAndWait”, causes a blend out problem on the clients Autonomous Proxy.
Ex. Character controlled on the server swings their sword. The client viewing that proxy character will see a different blend out time than the server.
The server character uses the correct blend out time and the animation looks normal but the proxy on the client appears to use the blend in time as it’s blend out time. If you have the blend in time set to zero this causes the client proxy to suddenly pop back into their default position or animation.
I have played around with adjusting the blend in time to >0 but when the animation hits it’s blend out it still appears to use the Blend In as it’s Blend Out time.
As a sanity check, I created a reliable multicast event and triggered an animation montage to play on Server and client. The Montage blended out correctly this way so the issue does seem to be with the ability system and the “PlayMontageAndWait” functionality.
Is this a bug or am I doing something wrong?
Create an animation montage that has a blend in time of 0. Blend out time doesn’t really matter. Set the Belnd Out Trigger Time to -1.0 and Enable Auto Blend Out to true.
Create a Gameplay Ability that uses the function “PlayMontageAndWait”. You can use the defaults for everything but select your montage to play. Hooking up EndAbility isn’t necessary for the example but it will only fire off the montage once if you don’t.
In the character class grant the gameplay ability that you created and also link an input key to “TryActivateAbilitybyClass” so you can activate the ability.