当前位置: 首页 > news >正文

RPG_5.角色动画

1.创建一个动画实例

2.创建该实例的c++子类

3.继续创建该类的子类,但是作用是用来链接(以后会详细解释)

4.基于PlayerAnimInstance类创建一个子类

5.目前一共创建了四个c++类,

最基的类

角色的类

玩家控制的角色的类

玩家控制的角色的武器的类

6.进入XMBCharcterAnimInstance,覆写

public:// 自定义初始化逻辑(例如设置骨骼引用、动画曲线等)virtual void NativeInitializeAnimation() override;//这个函数在一个工作线程上运行而不是在游戏线程上运行,意味着使用此函数计算需要的所有变量可以相当优化virtual void NativeThreadSafeUpdateAnimation(float DeltaSeconds) override;

创建变量

protected://设置基于角色来获取类型UPROPERTY()ACharacterBase* OwningCharacter;//移动组件UPROPERTY()UCharacterMovementComponent* OwningMovementComponent;//行走速度UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "AnimData")float GroundSpeed;//是否有加速度UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "AnimData")bool bHasAcceleration;

7.实现函数

//目的:在初始化动画中获取我们需要的关键变量
void UXMBCharacterAnimInstance::NativeInitializeAnimation()
{//获取当前所有者OwningCharacter = Cast<ACharacterBase>(TryGetPawnOwner());if (OwningCharacter){OwningMovementComponent = OwningCharacter->GetCharacterMovement();}
}//在更新动画中获取我们的蓝图动画需要的变量
void UXMBCharacterAnimInstance::NativeThreadSafeUpdateAnimation(float DeltaSeconds)
{if (!OwningCharacter || !OwningMovementComponent){return;}//获取当前Owner的移动速度和加速度GroundSpeed =  OwningCharacter->GetVelocity().Size2D();//判断Owner是否具有加速度bHasAcceleration = OwningMovementComponent->GetCurrentAcceleration().SizeSquared2D() > 0.f;
}

8.启动引擎,创建一个属于PlayerAnimInstance的动画蓝图

创建好后选择这个,并且能看到变量内有自己创建的变量,则成功

9.创建一个混合空间,选择

创建好后打开,在左侧栏填入变量名称,并且把x值最大改为400,

10.进入动画蓝图,创建一个状态机

11.设置状态机

12.设置完后进入角色蓝图,然后设置对应的蓝图动画即可

http://www.dtcms.com/a/167727.html

相关文章:

  • 如何拿奖蓝桥杯
  • UN R79 关于车辆转向装置形式认证的统一规定(正文部分2)
  • 数字智慧方案6157丨智慧医疗建设方案(85页PPT)(文末有下载方式)
  • 结构模式识别理论与方法
  • 内存 “舞台” 上,进程如何 “翩翩起舞”?(转)
  • 雅思写作--70个高频表达
  • 华为OD机试真题——斗地主之顺子(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • JDK-17 保姆级安装教程(附安装包)
  • 运维工作中,Ansible常用模块有哪些?
  • 【Python-Day 8】从入门到精通:Python 条件判断 if-elif-else 语句全解析
  • 上位机知识篇---流水线执行
  • KWDB初体验
  • 如何通过日志在本地调试LangChain编写的程序?
  • 聊一聊接口测试如何处理鉴权
  • 数据升降级:医疗数据的“时空穿梭“系统工程(分析与架构篇)
  • cPanelWHM 的 AutoSSL
  • 算法-堆、排序算法、矩阵乘法
  • 【C语言练习】015. 声明和初始化指针
  • 恒流源电路
  • ERC Freeze的作用与原理
  • PyTorch 2.0编译器技术深度解析:如何自动生成高性能CUDA代码
  • 2025年- H16-Lc124-169.多数元素(技巧)---java版
  • (007)Excel 公式的使用
  • Python爬虫实战:获取新浪财经最新热点文章并分析,为5月份选股做参考
  • C++初阶-string类3
  • 日期有关的算法题(ctime库的使用)
  • 盐化行业数字化转型规划详细方案(124页PPT)(文末有下载方式)
  • 网络通信问题及解决方案
  • 用Python代码绘制跳动的梦幻爱心,感受编程的浪漫与奇妙
  • 图与网络模型