UE5ControlRig脚部IK匹配地面(FootIK)的简易实现

20 篇文章 1 订阅

UE的Foot IK可以有多套方案,老的有动画蓝图中用TwoBoneIK,新的做法有ControlRig的BasicIK、FullBodyIK。博主针对FootIK做一个简单的验证,因此使用ControlRig+TwoBoneIK的做法,并做一下记录,之前做过UE FootIK的大佬可以跳过了。

先看一下效果(只考虑了角色待机时的脚位置修改):
在这里插入图片描述

1.原理

FootIK会遇到2种情况,一种是细小障碍物本身不是地面碰撞,且可以与胶囊体产生穿插(如左图)。还有一种是角色上下楼梯时胶囊体位于上一级楼梯,需要修改Pelvis关节将骨骼整体位置向下拉(如右图),以达到双脚都着地的效果。
在这里插入图片描述
因此在腰部位置发射射线,保证射线长度大于脚长是比较重要的,这样才能判断上述第二种情况。

流程:
1.以某个绑定给root关节的插槽A为起始点向地面发射射线(或投射球体)
2.若射线碰撞点超出了腿的长度,则将Pelvis骨向下偏移C,并设置相应IK目标点
3.若射线碰撞点小于腿的长度,则IK位置向上移动B,即直接设置IK目标点到射线碰撞点
在这里插入图片描述

2.设置Control Rig

新建一个Control Rig文件,因为只是做个想法验证,大致创建如下几个控制器:
在这里插入图片描述
一些Control Rig相关的问题点:
1.Forwards Solve、Backwards Solve分别是控制器驱动骨骼、骨骼驱动控制器,和IK并没有关系。
2.直接拖拽控制器移动不了位置,需要切换到Initial再粘贴控制器坐标值。
3.在赋值偏移值时,用节点Set Relative Trasnform并勾选Parent Initial,可以用初始值加上偏移值,这样避免每次值都被叠加修改。
4.先进Maya看下模型双腿骨骼轴向,然后填入TwoBoneIK参数中。
5.控制器IK点的坐标,外部更新时需要外部Inverse Transform Location转换为本地坐标。

3.Control Rig流程

不截图了,流程图说下Control Rig Forward Solve中的处理流程:
在这里插入图片描述

然后将ControlRig配置进动画蓝图:
在这里插入图片描述

最后在动画蓝图EventGraph中处理Trace By Channel等逻辑即可。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值