目录
1. 添加动画
我们在之前的课程中实现了从角色右手发射魔法粒子,但角色并没有播放相应的动画,导致角色攻击看起来十分生硬。
在我们引入的资产Gideon角色中,开发者已经做了充分的工作,使我们可以十分简单地调用函数来直接播放动画。要让骨骼体动起来,就需要使用动画序列,它是可在骨架网格体上播放的单个动画资源。这些序列包含各个关键帧,依次回放这些关键帧(相互合成)就可以实现骨骼体动画。而UE中控制动画播放的系统称为蒙太奇(Montage),它可以分别通过蓝图或C++来控制动画序列播放。
在了解相关原理后,我们在SurCharacter.cpp的PrimaryAttack函数实现播放动画的功能。在.h和.cpp的相应位置分别添加如下代码:
// SurCharacter.cpp -> PrimaryAttack()
PlayAnimMontage(AttackAnim);
// SurCharacter.h
// Category指定在蓝图编辑工具中显示时的属性类别
UPROPERTY(EditAnywhere, Category = "Attack")
UAnimMontage* AttackAnim;
// 之前的投射体子类,也加上Category
UPROPERTY(EditAnywhere, Category = "Attack")
SubclassOf<AActor> ProjectileClass;
然后在UE中给AttackAnim选择任意动画即可。需要注意的是,我们在使用UPROPERTY宏时加上Category,可以使相关的变量在蓝图编辑器中显示在Attack类别下。
运行测试,可以发现动画可以正常播放