At the moment, I am programatically playing an AnimMontage, and setting a timer. Once the timer is done I play the next AnimMontage.
This way, I jump between different weapon actions in my weapons code. This is similar to how the guns were done in the UDK code.
However, there’s a short time between transitions where the arms jump to the T pose. This is most likely because the animation player doesn’t yet know what animation I play next until the timer runs out, and it begins transitioning to playing no anim montage.
I’d think, there should be a way to keep the anim montage still active, but frozen in its last frame after it’s done playing to avoid this sudden jump. This should allow the next montage to smoothly transition in. I think there’s no way to do this, so I’d probably have to mod the engine a little to add an optional bool to the play function.
The state machines in the Anim graph could possibly help me with this issue, but this would make adding special extra animations a bit difficult if I have a non-generic weapon for example.
I solved my problem by modyfying the AnimMontage code to freeze the pose in a paused state if I set the blendout time to < 0. Maybe I’ll do a pull request some time, unless you guys feel like this is kindof a dirty hack.
It might be possible that this has been implemented. In my experience, this behaviour is rampant when changing anim blueprints through ‘set anim instance class’ and then playing a different montage.
The hack is no longer required since they added a change to the engine about a year ago.
The anim montage blendout time is by default -1 and I change it to 0, and this gives the behavior you want. Or it’s 0 and you change it to -1. I forget right now since I’m away from my project.
Basically, every anim montage that you know transition into another one immediately after needs to have this overridden on the blendout time property.