3.7 KiB
3.7 KiB
ABP_TestChar
基本信息
- 类型: AnimBlueprint (AnimInstance)
- 父类: AnimInstance
- 源文件: /Game/Blueprints/Anim/ABP_TestChar.ABP_TestChar
- 模块: Content/Blueprints/Anim
功能概述
测试角色的动画蓝图,为 BP_NewChar/BP_TestChar 提供动画驱动。持有 5 个动画参数:As Character(角色引用)、Speed(速度)、Random(随机值)、TargetRandom(目标随机值)、IsFloating(是否浮空)。通过 AnimGraph 驱动混合空间 BS_Walk_Run 实现移动动画。
设计用意
为测试角色提供基础动画控制,将移动速度映射到行走/奔跑混合空间,并通过 Random/TargetRandom 参数增加动画变化的随机性。
职责范围
- 计算和更新 Speed、Random、IsFloating 等动画参数
- 通过 AnimGraph 驱动 BlendSpace 和动画序列
- 通过 EventGraph(3 事件, 28 节点)处理动画事件逻辑
项目内依赖
| 依赖项 | 关系 | 源文件 |
|---|---|---|
| 绑定好5 | 引用(骨骼网格体) | /Game/Arts/mx/Elsa/绑定好5 |
| 绑定好_Skeleton | 引用(骨骼) | /Game/Arts/mx/Elsa/绑定好_Skeleton |
| BS_Walk_Run | 引用(混合空间) | /Game/Blueprints/Anim/BS_Walk_Run |
| MOB1_Walk_F_Jump_RU_Air_IPC | 引用(动画序列) | /Game/Arts/动画/3/跳跃/MOB1_Walk_F_Jump_RU_Air_IPC |
外部视角
ABP_TestChar 是 AnimInstance 的动画蓝图子类,从外部调用者视角:
动画参数(蓝图可读写,外部可通过 Get/Set 节点访问)
As Character(Character*)— 绑定的角色引用Speed(double)— 移动速度,驱动 BlendSpace 混合Random/TargetRandom(double)— 随机值及目标,用于增加动画变化的随机性IsFloating(bool)— 是否浮空状态
核心行为
- AnimGraph 驱动 BS_Walk_Run 混合空间实现行走/奔跑动画混合
- EventGraph 处理动画事件逻辑,更新上述参数
EventGraph 事件
| 事件 | 类型 | 触发时机 | 行为 |
|---|---|---|---|
事件蓝图开始播放 |
原生覆盖 (BeginPlay) | 动画蓝图初始化时 | 获取 Pawn 拥有者 → Cast 到 Character → 存入 As Character 变量 → 设置定时器 5 秒循环触发 RandomIdle |
事件蓝图更新动画 |
原生覆盖 (Tick) | 每帧 | 验证 As Character 有效 → 获取速度 → 计算向量长度 → 更新 Speed 参数 → FInterpTo 插值 Random → 获取 Z 轴速度绝对值 → 判断 > 阈值 → 更新 IsFloating |
RandomIdle |
自定义事件 | 定时器循环触发 | 生成 0-4 随机整数 → 切换设置 TargetRandom(0/50/75/100)→ Tick 中 Random 向 TargetRandom 插值 |
外部交互方式
- 在 BP_NewChar / BP_TestChar 的动画蓝图插槽中指定
- 外部系统通过 AnimInstance 引用读取/修改动画参数以控制角色动画表现
使用方法
ABP_TestChar 在项目中的典型调用流程:
- 动画驱动流程 — 角色移动 → 引擎更新动画蓝图 Tick → 获取角色速度 → 计算向量长度 → 更新 Speed 参数 → AnimGraph 将 Speed 输入 BS_Walk_Run 混合空间 → 驱动骨骼姿势
- 随机空闲动画流程 — 5 秒定时器触发 RandomIdle → 随机选择 TargetRandom(0-4 档位)→ Tick 中 FInterpTo 平滑过渡 → 影响 BlendSpace 混合位置 → 实现随机空闲姿态变化
- 浮空检测流程 — Tick 获取 Z 轴速度 → 绝对值 > 阈值 → 设置 IsFloating=true → AnimGraph 切换到跳跃动画序列
用例
| 引用方 | 路径 | 用途 |
|---|---|---|
| BP_TestChar | /Game/Blueprints/BP_TestChar |
作为动画蓝图,驱动角色移动动画 |
| BP_NewChar | /Game/Blueprints/BP_NewChar |
作为动画蓝图,驱动实验性角色动画 |