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

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

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

先看一下效果(只考虑了角色待机时的脚位置修改):
q1.gif

1.原理
FootIK会遇到2种情况,一种是细小障碍物本身不是地面碰撞,且可以与胶囊体产生穿插(如左图)。还有一种是角色上下楼梯时胶囊体位于上一级楼梯,需要修改Pelvis关节将骨骼整体位置向下拉(如右图),以达到双脚都着地的效果。
q2.png

因此在腰部位置发射射线,保证射线长度大于脚长是比较重要的,这样才能判断上述第二种情况。
q3.png

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

1.设置Control Rig
新建一个Control Rig文件,因为只是做个想法验证,大致创建如下几个控制器:
q4.png

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

2.Control Rig流程
不截图了,流程图说下Control Rig Forward Solve中的处理流程:
q5.png

然后将ControlRig配置进动画蓝图:
q6.png

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

相关文章
|
8月前
UE-蓝图中的使用正则表达式
实现用于匹配判断的正则表达式
|
5月前
|
算法
[Halcon&定位] 形状匹配和灰度匹配对比
[Halcon&定位] 形状匹配和灰度匹配对比
91 0
|
8月前
在UE中使用SVT(VirtualTexture)功能
在UE中使用SVT(VirtualTexture)功能
120 0
在UE中使用SVT(VirtualTexture)功能
|
8月前
在UE中使用Stencil功能
在UE中使用Stencil功能
82 0
在UE中使用Stencil功能
|
9月前
UE4识别DCC软件的碰撞
UE4识别DCC软件的碰撞
27 0
|
10月前
|
传感器 存储 定位技术
GPS/INS组合导航系统 的matlab代码分析
GPS/INS组合导航系统 的matlab代码分析
168 0
|
10月前
|
Java
字符串变形(字符串大小写切换和变现)
字符串变形(字符串大小写切换和变现)
67 0