UE4高级运动系统(Advanced Locomotion System V3)插件分析
插件特点:
- 具备动作游戏的常见特性,支持多种移动模式,步行,奔跑,冲刺,下蹲,Ragdoll
- 运动细节做得很到位,包括原地转身,奔跑急停转向,移动中身体倾斜,落地腿部缓冲,头部Aim Offset(AO),腿部IK
- 支持网络同步
- 纯蓝图实现,适合策划、开发学习应用
动画树分析
插件用了两颗动画树,Mannequin_AnimBP和Mannequin_IK_AnimBP,前者挂载在人物Blueprint上,用来处理人物主体动画;后者挂载在人物的Skeletal Mesh上,用作动画后处理来实现脚部IK动画。Mannequin_AnimBP动画树大体分为地面动作、空中动作两部分的处理。其中地面Locomotion的表现需求是最多的。
地面Locomotion
地面Locomotion算是动画树最复杂的状态机了,可以简单分为3层:
可以看到第一层状态机只是对第二层状态机输出动画做了一个呼吸动画的叠加。第二层状态机输出的Idle动画其实是静止Pose,在这一层才统一叠加上呼吸动画。
第二层状态机只定义了几种Locomotion状态的过渡逻辑,可以看到Locomotion有走停转站四种状态。
第三层状态机分别是走停转站的动画实现,其中走(Moving)的实现是最为复杂的。可以看到状态机有很多动画分支,全部是用BlendSpace,以Direction,Gait Value作为输入值来输出移动动画的。在此简单解释Gait Value,插件设计该变量将Walk/Run/Sprint三类状态的速度值映射为[1,3],动画机内只关注跟Walk/Run/Sprint状态相关的Gait
Joyce�: 您好,谢谢你的代码。想问一下 find_elements_by_css_selector 之后的链接具体怎么选择呢?感谢!
PHASE SPACE: 感谢分享。可是,如果用pack()布局,好像只能布局一列button? 请问pack()能否布局若干列button? 还有,很少看到将button事件与键盘按键绑定的案例(要么只能绑定一个按键,要么只能绑定少数按键,要么不明不白)
好逸爱劳: 少发点blink会有多nice
azi1974: 真不错
从入门到放弃_: 给你素质三连