简介
AdvancedLocotionV4 是UE4 一个很有名气的动画插件 以纯蓝图的形式展示了UE4动画蓝图的各个功能 堪称UE4动画系统的教科书式范例
目前V4版本已经在Epic商店永久免费
主要特点:
- 展示了UE4动画蓝图各个功能特性的用法
- 强大的分层系统 使得可以以少量的基本动画搭建出细节形态俱佳动画表现效果
- 各种状态机的组合/嵌套/混合 灵活且强大
- 有很多动画表现的细节处理值得参考
功能特性列举:
- 四方向走/跑/蹲姿走 姿态之间切换自然流畅 具备跑停、倾斜、冲刺跑等细节表现效果
- 在基础的移动效果上 通过覆盖层混合出持武器、受伤、搬运等其他形态下移动表现
- 动态攀爬效果
效果展示
总体逻辑梳理
- ALS_AnimBP 动画蓝图 动画表现逻辑实现及动画状态机的管理
- ALS_Base_CharacterBP 角色逻辑的基类 主要实现了 角色一些主要逻辑
- Controls面板的输入响应
- 一些蓝图Interface接口的实现
- 移动 旋转 攀爬 布娃娃效果的实现逻辑
- Show Debug Shapes (按键Y)调试信息的绘制
- ALS_AnimMan_CharacterBP 角色蓝图 基础自ALS_Base_CharacterBP 实现一些额外的功能
- 用不同颜色标识各个部位的动画层信息
- 手持武器 挂载操作
- ALS_Player_Controller 主角的控制器蓝图
- 加载显示HUD 面板信息
- 加载显示Overlay菜单 滚动选择操作
- Debug 面板的输入操作响应
- ALS_HUD HUD面板UI
- OverlayStateSwitcher OverlayStateButton 动画分层操作菜单UI
- ProjectSetting-Input 做输入绑定映射
涉及知识点梳理
- 状态机状态、导管(Conduit)、转换规则、共享转换规则
- 动画蓝图的各种混合节点
- Apply Additive
- Blend
- Blend Poses by bool
- Blend Poses by Int
- Blend Poses by Enum
- BlendMulti
- Layered blend per bone
- Slot
- Inertialization(惯性化)
- 动画曲线(AnimationCurve)
应用了大量动画曲线作为动画的数据驱动
在状态切换 转换规则触发中 定义了很多自定义动画通知 触发一些操作
比如:移动到停止移动转换条件开始时 触发名为:->N QuickStop的自定义动画通知(对应的蓝图接口名称约定以AnimNotify_ 开头) 播放一个蒙太奇动作
保证混合过渡动画播放的进度比例的一致性
比如:八方向中的动作混合过渡 保持两只脚的落地节奏同步 不出现明显脚步交叉现象
- 动画修改器(AnimationModifier 蓝图类)
批量修改 Animation Sequence 资源或者骨骼资源
比如:批量添加同步标记 添加动画资源等
Attach 调试 可以很直观的查看 动画蓝图的实时运行状态
Blueprint Debugger窗口 可以查看调用堆栈 变量值 执行断点调试
其他非动画的蓝图调试也是这一套
有兴趣的可以了解下AnimationInsights(4.25后的新功能 可以对动画进行详细的抓帧拆解分析)