创建Player碰撞规则
打开项目设置选则碰撞
点击新建对象通道
通道名称为 Player
默认反应 Block
在Preset下选择新建
设置碰撞
//开始设置人物碰撞体的属性为PlayerProfile,下面的骨骼模型的碰撞都可以设置为无碰撞
GetCapsuleComponent()->SetCollisionProfileName(FName("PlayerProfile"));
动画蓝图
UE4C++声明变量
SlAiPlayerAnim
#pragma once
#include "CoreMinimal.h"
#include "Animation/AnimInstance.h"
#include "SlAiPlayerAnim.generated.h"
/**
*
*/
UCLASS()
class SLAICOURSE_API USlAiPlayerAnim : public UAnimInstance
{
GENERATED_BODY()
public:
USlAiPlayerAnim();
public:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = PlayAnim)
float Speed;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = PlayAnim)
FRotator SpineRotator;
};
#include "SlAiPlayerAnim.h"
USlAiPlayerAnim::USlAiPlayerAnim()
{
Speed = 0.f;
SpineRotator = FRotator(0.f, 0.f, 0.f);
}
SlAiThirdPlayerAnim
#pragma once
#include "CoreMinimal.h"
#include "Player/SlAiPlayerAnim.h"
#include "SlAiThirdPlayerAnim.generated.h"
/**
*
*/
UCLASS()
class SLAICOURSE_API USlAiThirdPlayerAnim : public USlAiPlayerAnim
{
GENERATED_BODY()
public:
USlAiThirdPlayerAnim();
public:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = PlayAnim)
bool IsInAir;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = PlayAnim)
float Direction;
};
#include "SlAiThirdPlayerAnim.h"
USlAiThirdPlayerAnim::USlAiThirdPlayerAnim()
{
//给方向赋值
Direction = 0.f;
//给是否在空中赋值
IsInAir = false;
}
在UE4编辑器中完成动画蓝图
在编辑器中创建两个动画蓝图分别继承与SlAiThirdPlayerAnim和SlAiFirstPlayerAnim。
完成两个动画蓝图逻辑。