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

3.7 KiB
Raw Permalink Blame History

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 CharacterCharacter*)— 绑定的角色引用
  • Speeddouble— 移动速度,驱动 BlendSpace 混合
  • Random / TargetRandomdouble— 随机值及目标,用于增加动画变化的随机性
  • IsFloatingbool— 是否浮空状态

核心行为

  • 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 作为动画蓝图,驱动实验性角色动画