概述
框架两方面
1、先说动画蓝图
基础角色用了A动画蓝图( ABP_Mannequin_Base),A继承了一个接口AI,
在A中写了整个的动画逻辑比如locomotion,上半身特定动画融合,挨枪子的动画融合,全身动画融合等
在这些逻辑中该用到AI中的layer都用了layer,只不过这些layer有的是空的,逻辑都在B动画蓝图中。
动画蓝图B(和A没有继承关系,但是必须继承接口AI)
这个方法去调用,相当于用B中的layer覆盖了A中的layer的逻辑,相当于具体的逻辑实现都在B中实现。
2、再说模型层面
基础角色用了一个没有mesh只有骨架的 mesh,
所有的角色动画都是基于A骨架做的,
然后我们看到的角色模型B(红色的 蓝色的或者matahuman 或者自己的mesh)是通过actor attach方法挂到空mesh上的
这样做的目的是维护一套以A骨架为中心的动画资源和动画逻辑。
如果要更换不同的角色模型,要么copy 要么retarget,不用为每个角色模型制作一套动画序列和写动画逻辑
当然弊端是有的,如果不同的骨架,骨架偏差比较大, retarget后动画会有偏差,所以虚幻做的retarget大面上看上去是美好的,如果要抠细节,会有很多的不足。
------------------------------------------------------------------------------------------------------------------
lyra用到的关键节点和新技术 收集汇总
------------------------------------------------------------------------------------------------------------------
运动细节
3a大作的角色动作和简单的状态机动作区别就是,在各种微小缝隙处,处理了很多细节
lyra 增加了两大(暂时发现)细节,使操作角色,看起来和用起来很舒服的感觉
细节1:原地转身
就是在idle状态下,操作鼠标,让角色原地转身,看看上下半身是否分开行动,这个时候看,上半身要跟随鼠标转动,下半身要拟人行为,滞后倒腿旋转,并且不能滑步。
国内挫的大部分游戏直接不管这些,整个人僵硬的跟着鼠标原地旋转
lyra中角色中用到了这个
这个代表胶囊体跟随鼠标转动,这就倒逼着lyra要让下半身每帧向相反的方向旋转,这样才能保持下半身相对地面保持不动,由于下半身不动了,所以上半身必须得跟随鼠标,这样上下半身旋转值是个相反的关系。
从下图看得出来两者是相反关系
逻辑是:每一帧都计算出和上一帧得旋转值YawDeltaSinceLastUpdate,然后RootYawOffset都会减去这个值得到当前正确的旋转角度。
当RootYawOffset角度达到了50度的时候,下半身就需要追上上半身了,旋转到和上半身一样了
这个时候RootYawOffset可能受到两方面的改变,1、是鼠标对它的改变,2、下半身跟随对它的改变。
在这里处理曲线和RootYawOffset的关系
这个倒腾腿的动画 其实并没有rootmotion,就是说 root并没有旋转,只是在原地一个腿部的动作,但是这个动作的每一帧对应的旋转角度是写在remaining turn yaw的curve中,于是在逻辑处理中 时刻提取这个curve的值然后和RootYawOffset做对应的逻辑处理。
把值从动作中提取,写在curve中,在虚幻官方的例子中挺常见的一种做法,比如凌风女神中也把旋转角度写在曲线中。后续的开发中可以继承这种思想。
细节2 急刹车 急停
现实中人左右跑或者前后跑都是有惯性的,从向左跑快速的切换到向右跑,中间会有一个左跑减速到0再向右加速跑的过程。
lyra的急刹车就是处理这个细节。
从图上可以看到在start和cycle状态均能进入到pivot状态,进入条件是:
进入pivot
最后
以上就是野性萝莉为你收集整理的ue5 lyra的角色动画系统 持续更新中。。。。的全部内容,希望文章能够帮你解决ue5 lyra的角色动画系统 持续更新中。。。。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复