十八、动作蓝图与玩家移动

创建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。
完成两个动画蓝图逻辑。

猜你喜欢

转载自blog.csdn.net/m0_51032168/article/details/121514593