Overlay Layer(覆盖层)是Unreal Engine动画蓝图中的一个强大功能,它允许你在基础动画之上叠加额外的动画效果,而不会影响底层动画状态机。
ALS4
通过设置不同的覆盖动画状态来去设置播放的覆盖的动画
在动画中设置不同部位的混合曲线:
在动画蓝图中Layer Blending中根据曲线来对姿势混合:
经常会遇到在角色播放特定动画是需要相机有一个特定的轨道动画,让表现更加的身临其境,比如在释放总结技能的时候,会有一些特写镜头。
使用Level Sequence来实现,有两种方式:
Level Sequence
效果如下:
创建步骤:
- 创建
Level Sequence - 创建相机
- 设置相机类型为
CameraActor - 关闭相机的固定比例
- 将主角蓝图拉入
Sequencer编辑器,并删除CharacterMesh0和Transform - 将相机附加到主角上
- 附加到
CharacterMesh0的root节点下 - 设置角色标签,用于替换运行时的主角。并将Spawned设置为关闭
- 设置相机运动轨迹
- 播放以及绑定主角
一种可以动态调整角色的根骨骼运动以对齐目标的功能。在UE中是以插件的方式集成。
使用该功能的动画一定要开启Root Motion
Example Facing Rotation
当主角背向敌人时,想要主角边播放动画边旋转至面向敌人,如下图效果:
实现该功能分为以下几步:
- 添加
MotionWarpingComponent组件到主角上 - 设置转向目标位置:
- 在攻击蒙太奇中添加
MotionWarping动画通知状态,其长度为旋转到目标点的时间
- 配置
MotionWarping动画通知状态:
我们来详细解释一下 Unreal Engine 中 UAnimNotifyState::bIsNativeBranchingPoint 这个属性的含义和作用。
核心概念
首先,bIsNativeBranchingPoint 是一个布尔值成员变量,定义在 UAnimNotifyState 类中。它的名字直译为“是原生分支点”。
要理解它,关键在于理解“分支点(Branching Point)”这个概念。
-
什么是分支点?
- 在动画蓝图中,分支点是一个特殊的时间点,引擎会在此处暂停动画的评估,等待游戏逻辑(如蓝图或C++代码)决定下一步该做什么。
- 这通常用于需要同步或需要根据游戏状态做出精确决策的情况。例如:
- Root Motion 同步:确保角色的位移与动画帧完美对齐。
- 事件响应:在动画的特定帧,等待一个外部事件(如玩家输入、网络消息)来决定是继续播放、跳转到另一个动画还是执行其他操作。
- 复杂的动画过渡:在精确的时刻根据条件切换状态。
-
原生(Native)的含义:
- “原生”意味着这个功能是由引擎底层C++代码实现和驱动的,而不是在蓝图层级模拟的。它更高效、更精确。
UE5 - Common UI Guide: A Complete Guide to Inputs & Widgets
Setup
打开插件:
Project Setting设置窗口为CommonGameViewportClinet