ue4 als advanced locomotion system v4 part 4 IK

ALS中的脚部和手部都有ik,用的都是two bone ik。这个节点的作用是当你指定了一根骨骼b后,它默认的影响的是这根b骨骼和父亲a骨骼这两根骨骼。

如图a骨骼是b的父亲,ik的原理是1点是不动的3点是受外界影响动位置,ab骨骼是在123点的平面平面上。所以通过joint target影响2点位置,就决定了两根骨骼的弯曲状态。

脚步IK

先看脚步ik的配置,这里藏着一个深深的坑

 

图中效果器的骨骼可以和要ik的两根骨骼没有任何关系,效果器的骨骼只是影响效果器的位置和朝向,而效果器的位置才会影响fool_l的位置和朝向。

 

在左脚ik中既然VB ik_foot_l_Offset影响的是foot_l,那么就得要求VB ik_foot_l_Offset的mesh space下的初始transform 和foot_l的mesh space下的初始tranform得是一样,否则当ik起作用的时候角色的脚会歪七八扭的。因为如果不一样,它会把VB ik_foot_l_Offset的meshspace 下的transform直接作用于foot_l,就会改变foot_l的朝向,从而影响脚部,就会变形。正确的设置如图

同样要求自己做的动作中ik_foot_root的transform必须是0,这样要保持和父亲root的坐标系一样。正确的设置如图:

保证以上两点,新作的动作脚部ik就不会出现问题。

下面说说在我们左脚下如果有个石头或者台阶如何判定VB ik_foot_l_Offset的位置,从而设置ik,让左脚放到合适的位置。

用到的是linetrace,在AnimBP中

碰撞点的位置是脚部应该放到的位置,碰撞点的法线可以让脚部贴合地面坡度。如图碰撞结果的处理。

由了位置和旋转数据就可以在anim bp中对VB ik_foot_l_Offset进行直接的transform操作,如图

设置完VB ik_foot_l_Offset的位置和朝向,接着执行ik,就直接作用了脚部

 

脚部ik的joint target:

als用虚拟骨骼VB ik_knee_target_l来决定joint target的位置和朝向。

VB ik_knee_target_l的父亲是ik_foot_l,指向的是大腿骨骼calf_l

按理说这样joint target 起不到任何作用,因为joint target和2点始终是重合的。

于是als做了个处理,让VB ik_knee_target_l始终处于膝盖的前上方,而忽略了缩放和旋转。

这样膝盖只会往前弯曲了。

(我建的als QQ群号 922318447)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值