Files
loneseDocument/Content/Blueprints/ABP_TestChar.md
meishibiezb a8bdf281ff update
2026-06-05 03:01:15 +08:00

68 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 和动画序列
- 通过 EventGraph3 事件, 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 随机整数 → 切换设置 TargetRandom0/50/75/100→ Tick 中 Random 向 TargetRandom 插值 |
**外部交互方式**
- 在 BP_NewChar / BP_TestChar 的动画蓝图插槽中指定
- 外部系统通过 AnimInstance 引用读取/修改动画参数以控制角色动画表现
## 使用方法
ABP_TestChar 在项目中的典型调用流程:
- **动画驱动流程** — 角色移动 → 引擎更新动画蓝图 Tick → 获取角色速度 → 计算向量长度 → 更新 Speed 参数 → AnimGraph 将 Speed 输入 BS_Walk_Run 混合空间 → 驱动骨骼姿势
- **随机空闲动画流程** — 5 秒定时器触发 RandomIdle → 随机选择 TargetRandom0-4 档位)→ Tick 中 FInterpTo 平滑过渡 → 影响 BlendSpace 混合位置 → 实现随机空闲姿态变化
- **浮空检测流程** — Tick 获取 Z 轴速度 → 绝对值 > 阈值 → 设置 IsFloating=true → AnimGraph 切换到跳跃动画序列
## 用例
| 引用方 | 路径 | 用途 |
|--------|------|------|
| BP_TestChar | `/Game/Blueprints/BP_TestChar` | 作为动画蓝图,驱动角色移动动画 |
| BP_NewChar | `/Game/Blueprints/BP_NewChar` | 作为动画蓝图,驱动实验性角色动画 |