欢迎光临散文网 会员登陆 & 注册

UE Animation Note6

2023-09-03 13:34 作者:中专人  | 我要投稿

一、动画通知

动画通知(Animation Notifications)可创建同步到动画序列(Animation Sequences)的可重复事件。可以使用动画通知来播放声音,生成粒子或者特效等。

Notify仅通知一次。Notify State可以通知开始和结束,是一个状态,等价于两个Notify。

骨架通知(Skeleton Notifies)是在动画编辑器中自定义通知,保存在骨架资产上,可用作Anim Instance与动画蓝图中的事件。

通知和通知状态也可以自定义,可具有预定义的蓝图逻辑,不仅提高复用性,还可以拓展和创建不同的通知模板。

二、根运动

根运动(Root Motion)就是使用根骨骼(root)的运动数据驱动角色移动。

通俗来讲,一般都是在角色移动时播放动画,而根运动就是在播放动画时让角色移动。

本质来讲,就是将根骨骼的运动数据应用到Actor的Root Component上。

三、状态机

状态机(State Machines)可以在状态(State)中定义要播放的动画,并创建过渡规则(Transition Rule)控制状态的切换。

四、过渡规则

勾选Transition面板下的Automatic Rule Based on Sequence Player in State选项就可以让动画播放完毕后自动转换。

等价于在rule中直接编写:

过渡规则可以共享,Transition Rule Sharing中Promote To Shared可以创建共享规则,Use Shared即可使用。

Blend Logic中可选择惯性化(Inertialization),将不再计算原姿势,而是直接向目标动画过渡。相反,传统混合在过渡期间会计算源姿势和目标姿势,将其组合成混合姿势。

Blend Logic 还可以自定义(custom)。

注意,使用惯性混合(Inertial blending),需要在动画图表(AnimGraph)中添加一个惯性化(Inertialization)节点,位于惯性混合请求源之后的位置。

Blend Settings中的Duration可调节混合时长。

动画序列A->混合->动画序列B

Mode中可以选择Blend插值函数。如果选择custom,就可以使用Custom Blend Curve对Blend Mode进行自定义。

Blend是对两个动画的“加权平均”,比如A动画权重为20%,B动画则为80%。而Blend Profile中可单独配置骨骼权重,从而使该骨架的某骨骼Blend的速度比其他骨骼更快或更慢,也就是单独改变骨骼的混合速度。

过渡规则中还可以在通知(Notifications)中添加过渡事件(Transition Event)。

五、导管

普通转换用于状态之间的一对一转换,而导管(Conduit)可用于一对多、多对一或多对多的转换。

导管自身包含转换规则,但大部分情况下只是启用可以进入转换(Can Enter Transition),然后在进出导管的各个转换上创建转换规则逻辑。

官方文档中的例子,使用导管分散状态机的进入点。然后,可以使用导管中的转换,选择某个状态作为默认状态开始。(需要在状态机细节面板中启用允许导管进入状态(Allow Conduit Entry States))

可将几个状态共同过渡规则“提升”到到导管的过渡规则上,再分别指定从导管到不同状态的不同过渡规则,可使状态机更简洁直观。


如侵删,欢迎评论指正。

参考来源:

https://docs.unrealengine.com/5.2/zh-CN/state-machines-in-unreal-engine/

https://www.bilibili.com/video/BV12f4y1r71N/?p=29&;spm_id_from=pageDriver&vd_source=46b59e073cc898a338339512dcee8431

UE Animation Note6的评论 (共 条)

分享到微博请遵守国家法律