提示:仅供学习参考
前言
一、什么是蒙太奇?
二、实现步骤
1.使用第三人称游戏c++模板创建一个项目,创建动画蒙太奇
2.在动画蓝图中添加蒙太奇
3.绑定鼠标左键输入
4.添加c++代码
5.设置动画蒙太奇
6.点击播放,鼠标右键就能看到挥手效果了
总结
前言
本文介绍如何使用UE4的c++和动画蒙太奇实现一个挥手动作,使用第三人称游戏c++项目模板。
一、什么是蒙太奇?
个人理解:不用动画状态机就可以播放动画,状态机太复杂,对于只是特定场景想播放动画的情况,用状态机实现工作量太大,效率低,就使用动画蒙太奇了。下面是其他人的说明
[玩转UE4动画系统>基础篇] 之 什么是蒙太奇 - 知乎
二、实现步骤
1.使用第三人称游戏c++模板创建一个项目,创建动画蒙太奇
创建项目过程就不说了,如下图创建动画蒙太奇,命名AnimationMontageWave
动画蒙太奇需要用到动画,简单复制空闲动画ThirdPersonIdle,修改成一个挥手的动作,命名为ThirdPersonWave。
然后把挥手动作拖进蒙太奇,保存。如下图
2.在动画蓝图中添加蒙太奇
动画蓝图中添加个插槽,如下
3.绑定鼠标左键输入
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<UAnimInstance>(this->GetMesh()->GetAnimInstance());
if (AnimInstance != NULL)
{
AnimInstance->Montage_Play(WaveMontage);
}
}
}
添加完毕后编译下,回到虚幻引擎
5.设置动画蒙太奇
点击第三人称角色 ,细节中找到我们代码中开放给引擎的变量WaveMontage,设置为挥手动画蒙太奇
文章来源:https://www.toymoban.com/news/detail-451662.html
6.点击播放,鼠标右键就能看到挥手效果了
总结
最简单的使用动画蒙太奇过程,还在学习中有不正确的地方还望指出,仅供学习。文章来源地址https://www.toymoban.com/news/detail-451662.html
到了这里,关于UE4动画系统,蒙太奇动画使用,添加动作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!