UE4AdvanceLocomotionV4学习
从
开始看
在跑步动画中进⾏脚落地,摄像机摇动,和左右脚区分,这个weight——gait曲线⽤于区分动画,使⽤见下⾯
针对⼩跑和快跑,使⽤当前的相对加速正前⽅分量x值【0-1】来进⾏混合
制动时的最⼤减速度
UnrotateVector将世界坐标系变成局部坐标系,再来⼀次 RotateVector 将 会把局部坐标系变成世界坐标系。UnRotateVector作⽤是让Vector A绕着原点逆时针旋转 B。
RotateVector作⽤是让Vector A绕着原点顺时针旋转 B。
七年级下册数学课本答案得到基于当前⾓⾊旋转值的相对加速度【所以后⾯要UnRotateVector,因为是当前旋转的相对值】,并将其归⼀化到-1到1,以表⽰最⼤制动减速度和最⼤加速度
简笔画皮卡丘
华为手机连电脑年报审计前进和后退,跑步和⾛路的所有混合动画,LR指定左右,F前进,B后退,指定Stride步幅和walkrun ⾛路跑步混合值,standing play Rate⽴姿状态下动画速度。这⾥为各个姿势都设⽴了同步组。
计算WalkRunBlend,简单的0和1判断
过河小卒
计算步幅⼤⼩
计算步幅混合。该值在混合空间中⽤于缩放步幅(脚移动的距离),以便⾓⾊可以以不同的移动速度⾏⾛或跑步。它还允许⾏⾛或跑步步态动画独⽴混合,同时仍将动画速度与移动速度相匹配,防⽌⾓⾊需要播放半⾏⾛+半跑步混合。曲线⽤于将步幅量映射到速度以实现最⼤控制。
strideBlendNWalk和strideBlendNRun是两个曲线
walk
run,依据速度进⾏两个曲线的插值
问天下谁是英雄
这⾥使⽤get anim curve clamped⾃定义的宏,获取weight_gait曲线值, walk是1,run是2, sprint是3,这⾥加上了-1的偏移,所以walk⽤上⾯n walk 的曲线,run和sprint⽤run的曲线
后续通过下蹲的动画中CLF曲线去混合跑步⾛路/下蹲状态的步幅,下蹲状态下步幅为walk的⼤⼩
实习期驾照
计算⽴姿状态下动画速率,通过将⾓⾊的速度除以每个步态的动画速度来计算播放速率。lerpd alpha由存在于每个anim中
的“weight_gait”动画曲线确定,因此播放速率始终与当前混合动画同步。该值还除以步幅和mesh scal
e,使得随着步幅或⽐例变⼩,播放速率增加。
这⾥speed都是提前定义好的,walk speed为150,run speed为350,animated sprint speed为600,由于sprint的weight值是3,所以偏移为-2
通过将⾓⾊的速度除以动画速度来计算蹲起播放速率。该值需要与站⽴播放速率分开,以改善运动中从蹲下到站⽴的混合效果。
整体逻辑和计算⽴姿状态差不多,crouch speed为150
回到
中
白天的月亮
混合计算所有移动动画的循环,先将各个姿势保存起来以便重⽤。针对前进动画先判断是普通forward还是冲刺,然后判断是否应⽤附加着陆动画中的mask_sprint曲线,不⽤mask可能会着陆时压迫膝盖导致ik问题,看下来是着陆时先播放普通forward动画,再过渡到现在的动画
接着计算⽅向
该状态机基于运动⽅向和“HipOrientation\u Bias”曲线将⽅向循环混合在⼀起,以便在切换⽅向或更改hip旋转时实现更好的混合。
定义了⼀个⽅向枚举-前后左右,和六个移动⽅向,左前、前、右前、左后、后、右后