In the attached example, the third person mannequin character's BeginPlay() runs an Ability_Task which starts an animation montage. In the task it is specified that the blend out time (BlendOutTime in the code) should be 0.5 seconds,however after the task has run for 0.5 seconds it is cancelled and UAbilitySystemComponent::CurrentMontageStop() is called with the BlendOutTime variable as a parameter, to indicate that we want the montage blend out time to be 0.5 seconds.
However, upon looking inside the CurrentMontageStop() function.  The parameter we sent in is not used, and using a breakpoint inside UAnimInstance::Montage_Stop(),  you can see that the blend out value for the montage is in fact 0.25 seconds and not the expected 0.5 second

Steps to Reproduce

Project Sample has been attached to demonstrate the issue. 

  1. Create a C++ project based on the third person example template with the GameplayAbilitySystem plugin.
  2. Play a montage using the AbilitySystemComponent.
  3. Stop the montage using a custom blendout time with the CurrentMontageStop() function.


Results: The function doesn't use the OverrideBlendOutTime parameter.


Expected: The function uses the OverrideBlendOutTime parameter.


Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-76840 in the post.

Login to Vote

Affects Versions4.214.224.23
Target Fix4.24
Fix Commit7231833
Main Commit7988574
Release Commit9552237
CreatedJul 2, 2019
ResolvedJul 8, 2019
UpdatedOct 28, 2019