旗胜V3论坛 >
UE4 Advanced Locomotion System V3中的动画表现设计
回复

查看: 回复:1

UE4 Advanced Locomotion System V3中的动画表现设计

\"收藏此主题\"

品自居

 
 
注册:
2008-01-19
编前:本篇针对UE4第三方插件Advanced Locomotion System V3中的动画树结构做详细拆解。内容包括资源命名规范、动画蓝图构成、状态机构成与动画叠加表现优化,并讨论了实现思路与实际项目的可参考内容,适合技术动画或策划人员查阅。编写所用引擎版本为4.24.3。

附注:有关Advanced Locomotion System V3的详细内容可参见 @刘舒畅 的相关文章(见下方链接)。文章涉及动画树、Locomotion、AO、Ragdoll与IK设置等内容。文字详实,结构舒适,推荐阅读:
刘舒畅:UE4高级运动系统(Advanced Locomotion System V3)插件分析
一、动画资源规范

1.1 命名规范

动画资源多数以“项目名_姿势_姿态_运动方向”为命名框架。项目名缩写ALS(Advanced Locomotion System);姿势包括站蹲及其朝向,如N为站立无朝向倾向、LF为站立朝右(左脚在前)、CRF为下蹲朝左(右脚在前)等;姿态包括Idle、Walk、Run、Stop、Pivot(急停转向)、Turn、Lean等。如ALS_LF_Pivot_F为向前方急停后站姿朝右。

1.2 角色姿态规范

站立状态下的默认姿态为无朝向,下蹲状态和瞄准(视野锁定)状态下的默认姿态皆为朝右。

二、与动画蓝图相关的枚举设计

运动方向-MovementDirection:Forwards/Backwards

进入待机时的朝向-IdleEntryState:N_Idle/LF_Idle/RF_Idle/CLF_Idle/CRF_Idle

上一次的运动模式-ALS_PrevMovementMode:Grounded/Falling/Ragdoll

当前运动模式-ALS_MovementMode:Grounded/Falling/Ragdoll

步态-ALS_Gait:Walking/Running/Sprinting

姿势-ALS_Stance:Standing/Crouching

旋转模式-ALS_RotationMode:VelocityDirection/LookingDirection

视野模式-ALS_ViewMode:ThirdPerson/FirstPerson

三、动画蓝图

项目中有两个动画蓝图:Mannequin_AnimBP和Mannequin_IK_AnimBP。其中后者作为Post Process AnimBP叠加在前者之上,负责处理用于贴合地面的脚部IK。
出于共用逻辑、简化节点等目的,UE4中的动画蓝图可以通过Post Process AnimBP、Child AnimBP和Linked AnimGraph等方式来进行优化处理。其使用场景与链接方式如下图示:Fig.1 AnimBP逻辑与资产优化方案
四、动画状态机设计

Mannequin_AnimBP通过嵌套的方式,设计了三层动画状态机来实现基础运动表现。

4.1 顶层状态机:Main StateMachine与Ragdoll

两个顶层状态机用于控制运动一级模块之间的切换(如Fig.2所示),分别为运动模式和Ragdoll模式。运动模式又包括空中模式(受重力)与陆地模式。
UE4移动组件中,常见运动模式包括了陆地模式、空中(包括受重力与不受重力)模式、水中模式。Fig.2 顶层状态机:MainStateMachine与Ragdoll
在运动模式的基础上,通过叠加Aim Offset与FullBody Anim Slot,与Ragdoll模式并联为最终Pose的两向输入,并经由ALS_MovementMode进行切换。FullBody Anim Slot所执行的表现包括从Ragdoll模式切换到运动模式时的起身过渡。

4.1.1 Ragdoll

Fig.3展示了Ragdoll模式下的状态分布设计。其由两部分组成:负责择取融入Pose的Ragdoll状态与负责提供融出Pose的BlendOut状态。
Fig.3 Ragdoll模式状态机的状态分布
如Fig.4所示,系统会根据当前的步态情形择取不同的Ragdoll融入姿态。当运动速度较低时,使用四肢摆动作为融入(且摆动速率在一定范围内与当前角色速度成正比);当运动速度较高(冲刺态)时,采用四肢蜷缩作为融入。其效果较好地模拟了跌倒时的人体应激与姿态惯性(如Fig.5所示)。
Fig.4 Ragdoll状态的融入Pose择取逻辑(左)与相关资产(右)Fig.5 不同步态下的Ragdoll融入Pose:低速(左)与高速(右)
在执行起身命令时,系统会存储当前Pose Snapshot用于Ragdoll融出,并根据角色是否处于陆地、角色面朝下还是面朝上,来决定是否播放以及播放何种起身动画。
Fig.6 Ragdoll融出逻辑:角色蓝图(上)与动画蓝图(下)
4.1.2 Main StateMachine

Main StateMachine为主导移动模式的状态机,其状态分布与条件判定设计依次如Fig.7、Fig.8所示。其下分为空中与陆地两大模式,各状态之间通过转换的优先级设计来实现不同情形下的过渡。
Fig.7 运动模式状态机的状态分布Fig.8 运动模式状态机的条件判定
4.2 次层状态机:Locomotion

次层状态机Locomotion描述了角色的陆地运动,分为静止、移动、运动急停转向(Pivot)与运动停止。有色过渡规则标记了过渡条件的共享(Transition Rule Sharing)。
Fig.9 陆地运动状态机的状态分布Fig.10 陆地运动状态机条件优先级判定(空心圆圈为无优先级的并行判定)
如Fig.9所示,停止状态被划分为五种朝向来分别设计其过渡条件,其中涉及1.2节中所提及的默认姿态的问题。其核心准则在于优先判定非默认姿态。例如进入时会优先对RF_Stop与CRF_Stop进行判定。

4.3 底层状态机:Pivot与NotMoving

4.3.1 Pivot(急停转向)

急停转向状态机由八个单向输入的状态组成(如Fig.11所示)。其命名规范如1.1节所示,即“身体朝向_行为_行进方向”。如RF_Pivot_B意为向后行进时急停朝左(RF为右脚在前)。其择取逻辑较简单,也可替换为Blend Poses by bool/Blend Poses(Enum)的形式。此处使用状态机描述,具有向性清晰的优势。
Fig.11 急停转向状态机的状态分布
4.3.2 NotMoving

待机状态机由五向状态两两链接形成。
Fig.12 待机状态机的状态分布
状态机外链有Transition Anim Slot(如Fig.13
 
回复本楼

太平洋汽车全新推出“太平洋车友会”;来太平洋车友会,结识志同道合的车友了解详情>>

007-试驾

 
 
注册:
2009-12-18
不好意思,路过,楼主你继续。
 
回复本楼
未登录用户

只可添加一张图片,多张图片请选高级模式

高级模式
温馨提示:回复超10字可获1金币,有独特见解超30字可获3金币,灌水用户将扣除金币并锁号处理。希望广大车友共同维护论坛的友好回复氛围。
常用表情
您可能感兴趣

支付宝扫码询价
领最高888元现金红包

关闭