这次实现的功能是人物的脚部IK动画。
首先进入角色蓝图,声明需要用到的参数。
初始化两个参数IKScale和IKDistance。IKScale是预防角色变小之后,出现定位偏差。
然后是IKFootTrace函数,
进入角色动画骨骼中,添加插槽Toe_l和Toe_r,注意这个Toe需要设定在【脚底】的位置,这样更加方便后面站在斜面时的旋转,更好的贴合地面,如在脚掌的话,可能出现悬空或者陷入地面的问题。
进入角色蓝图,设置IKInterSpeed为20,设置LeftFootSocket为Toe_l,设置RightFootSocket为Toe_r。
开始编写脚部IK动画处理事件。
先限定进行脚部IK的情况,只有角色在静止时才进行脚部IK的计算,防止角色鬼畜。
计算脚部IK。
调整角色胶囊体高度。
进入角色动画蓝图,声明以下变量。
在【事件蓝图更新动画】中更新参数变化。
AnimGraph中修改如下,双骨骼IK可以Joint Target Location 可以跟我一样:
注:root骨骼的变换如下:
双骨骼IK中左边的设置
右边的改为后缀r的即可。
然后是脚面的角度变化。
注:左脚变换参数设置如下:
最后别忘了在Tick中调用FootIK事件。
最终效果图:
还有点bug,脚的角度会改变,但会陷入地面。