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

在Unreal Engine中,Compatible Skeletons(兼容骨骼)是一种用于动画资源共享的机制。它允许不同但结构相似的骨骼(Skeletons)之间共享动画序列(Animation Sequences)、动画蒙太奇(Montages)、动画蓝图(Animation Blueprints)等资源。通过将一个骨骼定义为另一个骨骼的兼容骨骼,可以实现动画资源的复用,减少重复工作。
具体来说,当你在一个骨骼的设置中,将另一个骨骼添加到其Compatible Skeletons列表中时,这两个骨骼就被视为兼容,可以互相使用对方的动画资源。这在需要多个角色使用相同动画时非常有用,即使这些角色的骨骼不完全相同,但只要骨骼结构相似,就可以通过Compatible Skeletons实现动画共享。