ue4 als advanced locomotion system v4 part 3 MeshSpace And LocalSpace

step 1

MeshSpace和LocalSpace指的某根骨骼的transform是相对于root坐标系还是相对于parent坐标系。

选择mesh space additive 和不选择 有什么区别呢?查看源码

所以

MS的 Additive是translation和scale都是基于parent的坐标系的差值。而rotation的差值是基于root坐标系。

LS的 Additive是translation和scale都是基于parent的坐标系的差值(和MS值一样)。而rotation的差值是基于parent的坐标系。

仅仅是rotation在两个不同坐标系下的差值。


step 2

 

看代码发现只有胳膊用的是LS additive其他用的MS additive。这样的差别是当overlay要叠加base layer的additive的时候。胳膊部分的旋转用的是baselayer中胳膊相对于父亲的旋转。而身体其他部分用的旋转是baselayer中相对于root的旋转。

就是说任何时候叠加只叠加胳膊的局部形状。

 


 

step 3

又一个MS和LS之分,这个是只有胳膊才有的LS和MS曲线 之分。

step 2中这些缓存的pose都是完整的人的frame,只是根据每个部位曲线不同混合成不同的人形frame

 

step 3中的

 

step 3中才将step 2中每个完整的人frame再按指定的骨骼进行覆盖。而在这个过程中arm却有MS和LS之说。其他部分默认是MeshSpace下覆盖。

 

ms = 1-ls;一般来说ls除了0就是1,不能ms混合一部分ls混合一部分。

 

step2中的ms和ls 区分的是骨骼的旋转。

step3中的ms和ls 区分的骨骼的空间。

(void FAnimationRuntime::BlendPosesPerBoneFilter)


总结:

胳膊:

如果曲线layering arm add = 1 则overlay 叠加base layer的ls additive,也就是用的胳膊ls的旋转。

然后在和head骨骼覆盖的时候,ls=1的时候arm缓存以ls空间覆盖传进来的frame。ls= 0 的时候arm缓存以ms空间覆盖传进来的frame。

 

(我建的als QQ群号 922318447)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值