update
This commit is contained in:
67
Content/Blueprints/ABP_TestChar.md
Normal file
67
Content/Blueprints/ABP_TestChar.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# 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` | 作为动画蓝图,驱动实验性角色动画 |
|
||||
Reference in New Issue
Block a user