UE4动画系统,蒙太奇动画使用,添加动作

提示:仅供学习参考

前言

一、什么是蒙太奇?

二、实现步骤

1.使用第三人称游戏c++模板创建一个项目,创建动画蒙太奇

2.在动画蓝图中添加蒙太奇

3.绑定鼠标左键输入

 4.添加c++代码

5.设置动画蒙太奇

 6.点击播放,鼠标右键就能看到挥手效果了

总结


前言

本文介绍如何使用UE4的c++和动画蒙太奇实现一个挥手动作,使用第三人称游戏c++项目模板。

一、什么是蒙太奇?

个人理解:不用动画状态机就可以播放动画,状态机太复杂,对于只是特定场景想播放动画的情况,用状态机实现工作量太大,效率低,就使用动画蒙太奇了。下面是其他人的说明

[玩转UE4动画系统>基础篇] 之 什么是蒙太奇 - 知乎

二、实现步骤

1.使用第三人称游戏c++模板创建一个项目,创建动画蒙太奇

创建项目过程就不说了,如下图创建动画蒙太奇,命名AnimationMontageWave

UE4动画系统,蒙太奇动画使用,添加动作_第1张图片

 动画蒙太奇需要用到动画,简单复制空闲动画ThirdPersonIdle,修改成一个挥手的动作,命名为ThirdPersonWave。

然后把挥手动作拖进蒙太奇,保存。如下图 

UE4动画系统,蒙太奇动画使用,添加动作_第2张图片  

2.在动画蓝图中添加蒙太奇

动画蓝图中添加个插槽,如下 

UE4动画系统,蒙太奇动画使用,添加动作_第3张图片

3.绑定鼠标左键输入

UE4动画系统,蒙太奇动画使用,添加动作_第4张图片

 4.添加c++代码

.h文件添加包含

#include "Components/SkeletalMeshComponent.h"
#include "Animation/AnimInstance.h"

.h添加变量和函数声明

   /* 设置蒙太奇动画 */
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Gameplay)
        class UAnimMontage* WaveMontage;

    //点击鼠标左键触发挥手
    UFUNCTION()
        void OnClickWave();

.cpp绑定按钮

   PlayerInputComponent->BindAction("Wave", IE_Pressed, this, &AMyTestThirdPeopleCharacter::OnClickWave);

.cpp添加函数

  void AMyTestThirdPeopleCharacter::OnClickWave()
{
    if (WaveMontage != NULL)
    {
        // Get the animation object for the mesh
        UAnimInstance* AnimInstance = Cast(this->GetMesh()->GetAnimInstance());
        if (AnimInstance != NULL)
        {
            AnimInstance->Montage_Play(WaveMontage);
        }
    }
}

添加完毕后编译下,回到虚幻引擎

5.设置动画蒙太奇

点击第三人称角色 ,细节中找到我们代码中开放给引擎的变量WaveMontage,设置为挥手动画蒙太奇

 6.点击播放,鼠标右键就能看到挥手效果了

总结

最简单的使用动画蒙太奇过程,还在学习中有不正确的地方还望指出,仅供学习。

你可能感兴趣的:(虚幻引擎4学习,ue4,c++)