本教程采用图文教程+视频教程的多元化形式,我会为不同的知识点选择适当的表达方式。教程内容将同步免费发布于 开发游戏的老王(知乎|CSDN)的专栏《玩转UE4/UE5动画系统》。教程中使用的资源及工程将以开源项目的形式更新到GitHub:玩转UE4上。
工程文件: 玩转UE4(GitHub)
- 1. 主状态机概要
- 2. Main Grounded States:地面主状态机
- 状态介绍
- 稳定状态
- 过渡状态
- 过渡规则
- 3. Jump States:跳跃状态机
- 4. Main Movement States:主状态机
- 4.1 空中状态群
- 4.2 地面状态群
- 4.3 状态扩展群
- 5. 小结
在《[玩转UE4/UE5动画系统>应用篇>功能模块] 之 ALS V4地面站立动作状态机详解》一文中,老王介绍了地面站立动作状态机(N)Locomotion States(下图蓝色区域)的构成,本文继续介绍主状态机部分(下图黄色区域)。
地面蹲伏动作状态机(CLF) Locomotion States和地面站立动作状态机逻辑相似,暂时不赘述了。
篇幅的原因,本文仅着重介绍状态机的构成,状态控制参数的计算将另文介绍。
我们依旧自上而下介绍各个状态机的意义。
2. Main Grounded States:地面主状态机Main Grounded States的主要任务是整合站立状态(N) Standing和蹲伏状态(CLS) Crouching LF并实现它们之间的状态过渡。
Main Grounded States中的状态分为两类稳定状态和过渡状态。
Entry状态是一个空状态,主要是因为导管(Conduit)无法作为状态机的初始状态,所以使用空状态代替,下文中就不解释了。
稳定状态- (N) Standing状态: 包含了(N) Locomotion States(地面站立状态机)。
- (CLS) Crouching LF状态: (CLF) Locomotion States(地面蹲伏状态机)。
- (N)->(CLF) Transition: 由站到蹲的过渡动画。
- (CLF)->(N) Transition: 由蹲到站的过渡动画。
- From Roll: 是平滑衔接从翻滚动作到站立动作的过渡。
-
Interrupt Transition(共享过渡规则):每个过渡状态都有一个指向下一个稳定状态的共享过渡规则(图中绿色规则),它的作用就是当动画处于过渡状态时,一旦接收到玩家的控制命令,立刻切换到下一个稳定状态。
-
其它过度规则: 略。
同时具有Interrupt Transition和其它过渡规则的时候,Interrupt Transition的优先级(Priority Order)要高于其它过度规则,这个不难理解。
3. Jump States:跳跃状态机 这个状态机比较简单,通过Feet_Position动画曲线决定(左/右)起跳脚,然后依次过渡到Jump loop(跳跃循环状态)以及Flail(下坠状态)。
Main Movement States的任务是整合空中状态(In Air States)和地面状态(On Ground States)以及其它扩展状态。
Main Movement States由三个状态群构成,它们之间由三个导管(Conduit)作为桥梁连接在一起。
4.1 空中状态群- Jump状态: 即跳跃状态,包含着Jump States状态机。
- Fall状态:下落状态,指角色从高台一类位置直接下落。
从导管->InAir到Jump状态的过渡规则的优先级高于到Fall状态的过渡规则。
4.2 地面状态群- Land状态: 着陆即着地前一瞬间的状态。
- Grounded状态: 包含Main Grounded States。
- Land Movement状态: 它也包含Main Grounded States,但它是一个过渡状态,其作用主要是根据落地时的速度,添加轻/重落地时两种不同的叠加动画。
用于扩展功能的部分,如果项目中要整合诸如飞行/游泳/墙体攀爬等功能,它们的状态机可以添加到这里。
这种动画机设计模式,老王称之为披萨模式(Pizza Pattern),另文详述。
5. 小结ALS V4 主状态机介绍到此,感谢阅读。