UEC++ 播放蒙太奇动画

在蓝图中播放蒙太奇动画,可以使用 PlayAnimMontage 和 PlayMontage,并且PlayMontage可以在,蒙太奇动画播放完的时候执行想要执行的程序

但是在UEC++中,没有PlayMontage(emmmm有可能只是我没找到)

这时候需要实现在播放蒙太奇动画之后需要的程序时间,可以在蒙太奇动画中添加一个通知,通过通知执行需要的程序

譬如利用蒙太奇播放一个攻击动画

// 头文件声明变量与攻击函数
        // 是否正在攻击
    bool IsAttack = false;
    UFUNCTION(BlueprintCallable)
        void Notify_EndAttack() { IsAttack = false; }
    // 需要播放的蒙太奇动画资源
    UPROPERTY(EditAnywhere, Category = "Anim")
        class UAnimMontage* AttackMontage;
    // 攻击
    void Attack();

实现攻击函数(记得绑定输入和添加操作映射)

void APCharacter::Attack()
{
    if (!IsAttack) {
        IsAttack = true;
        PlayAnimMontage(AttackMontage, 1.f);
    }
}

这时候使用攻击函数播放攻击动画,只能播放一次,当播放完之后就无法再播放第二次,而如果在Attack() 中 PlayAnimMontage(AttackMontage, 1.f) 下添加IsAttack = false; 就会立即重置,无法达到想要的效果,而导致攻击鬼畜

再去角色类中添加一个函数,用于实现结束攻击需要执行的功能

    UFUNCTION(BlueprintCallable)
        void Notify_EndAttack() { IsAttack = false; }

然后在动画蓝图中执行添加的通知

 现在去执行就可以!

posted @ 2022-10-27 20:27  黎沐不吃香菜  阅读(1216)  评论(0)    收藏  举报