UE4添加人物动画之状态机
这一节我们创建一个动画蓝图并在C++中把它绑定到角色身上 。
状态机
状态机是可以让动画过渡到另一个动画的工具,它大大简化了动画设计流程。1) 在 UE4 编辑器中,我们以 AnimInstance 为父类创建一个名为 CharacterAnimInstance 的子类。

2) 进入到我们的骨骼网格体文件夹路径,右键选择该资源,创建一个动画蓝图。

3) 双击动画蓝图,点击类设置,然后在右边的细节面板的父类选项中选为我们刚刚创建的 CharacterAnimInstance。



4) 回到 VS 编辑器,在 PlayingCharacter.CPP 文件中添加头文件并把动画的动画蓝图设置成编辑器中创建的动画蓝图。
要添加的头文件:
#include "ConstructorHelpers.h"
#include "CharacterAnimInstance.h"
在构造函数中添加:
注意,由于我们添加的资源是一个类,所以我们要在资源路径的后面加上_C。//指认动画蓝图
static ConstructorHelpers::FClassFinder<UCharacterAnimInstance> AnimInstance( TEXT("AnimBlueprint'/Game/TwinSwordAnimsetBase/UE4_Mannequin/Mesh/UE4_Mannequin_Skeleton_AnimBlueprint.UE4_Mannequin_Skeleton_AnimBlueprint_C'") );
//判断资源是否存在
if (AnimInstance.Succeeded()) {
//赋值
GetMesh()->SetAnimInstanceClass(AnimInstance.Class);
}
5) 打开 CharacterAnimInstance.h 添加两个变量,并把这两个变量公开到蓝图中,让蓝图可以编辑,然后继承 NativeUpdateAnimation 函数,这个函数会每帧更新我们的变量属性。
/**
* //角色动画蓝图
*/
UCLASS()
class GAMEPROJECT_API UCharacterAnimInstance : public UAnimInstance
{
GENERATED_BODY()
protected:
virtual void NativeUpdateAnimation(float DeltaSeconds) override;
//判断人物有没有移动
UPROPERTY(BlueprintReadOnly)
float Iove;
//判断人物有没有跳跃
UPROPERTY(BlueprintReadOnly)
bool IsJump;
};
6) 在CPP文件中添加 PlayingCharacter.h 和 GameFramework/CharacterMovementComponent.h 并实现这些变量。
#include "CharacterAnimInstance.h"
#include "PlayingCharacter.h"
#include "GameFramework/CharacterMovementComponent.h"
void UCharacterAnimInstance::NativeUpdateAnimation(float DeltaSeconds)
{
Super::NativeUpdateAnimation(DeltaSeconds);
//TryGetPawnOwner() 返回的是一个Pawn类,它通过骨骼模型组件返回指认了它的角色,然后再把返回的Pawn转换成我们想要的角色
APlayingCharacter* Character = Cast<APlayingCharacter>(TryGetPawnOwner());
if (Character)
{
//GetVelocity() 返回的是角色的移动组件的速度,如果这个值大于0说明Character在移动,Size() 是获取向量的模
Iove = Character->GetVelocity().Size();
//IsFalling() 如果角色当前正在下降就返回真
IsJump = Character->GetCharacterMovement()->IsFalling();
}
}
这一节就到这里,下一节我们会在状态机中使用这些变量并设置动画。
- 随机文章
- 核心危机(核心危机魔石合成攻略)
- 风儿(风儿轻轻的吹)
- 饿了么红包怎么用(饿了么红包怎么用微信支付)
- 光遇花手先祖位置(安卓光遇手花先祖)
- 广州4a广告公司(广州4a广告公司创意总监年薪)
- xboxones(xboxone手柄怎么配对主机)
- 兵马俑(兵马俑介绍和历史背景)
- 帆船比赛(帆船比赛视频)
- 海猫鸣泣之时游戏(海猫鸣泣之时游戏在哪玩)
- 韩国媳妇和小雪(韩国媳妇和小雪的父亲工资是多少)
- 儋州市第二中学(儋州市第二中学录取分数线)
- 鬼泣5攻略(鬼泣5攻略第三关怎么跳)
- 和柳亚子(和柳亚子先生于田)
- 冰客(冰客果汁)
- yy魔兽(yy魔兽世界)
- 充值卡代理(充值卡代理加盟)
- 拆奶罩
- 郭妮小说(恶魔的法则郭妮小说)
- 东天目山(东天目山景区)
- 杭同(杭同培训中心怎么样)
- 蝙蝠给人类的一封信(蝙蝠给人类的一封信)
- 大松电饭煲(美的大松电饭煲)
- 服饰加盟(服饰加盟店招商)
- 点对点短信息(点对点短信息费是什么意思)
- 观音普门品(观音普门品念诵全文)
- 河北省大运会(河北省大运会时间)
- 哈利波特官网(哈利波特官网在哪里)
- 杜星霖(杜星霖图片)
- 广州晓港公园(广州晓港公园正门图片)
- 钢筋等级符号(钢筋等级符号电脑怎么输入)
