每天学习亿点点day 16: 脚部IKBone的做法

Posted Tonarinototoro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天学习亿点点day 16: 脚部IKBone的做法相关的知识,希望对你有一定的参考价值。

1. 本博客是参考(照抄)知乎宫保鸡丁大哥的做法完成的

2. 主要学习了在动画蓝图里其实也可以通过transform以及ikbone节点来单独操控某些关节或者做一下变换,其中比较引人注意的就是在操纵某些关节的时候选择是在哪个空间里变换时比较重要的一个option,这里我么建议可以自己去promote一个变量出来自己试一试效果,rotation基本变的就只是坐标系而已。(父节点骨骼空间下和世界空间下同一个Pitch值得变换,旋转方向是不一样的.)

3. 学习到的主要思路1是

 

 通过从脚部位置的射线检测碰撞点然后据此计算应该位移多少.

其实这里就有一个bug,因为我们的脚是无法往下拉的,例如图下面

 

 这里并不是如原作者所解释的因为碰撞框导致的,是本身我们的脚长度就那么长,而joint target本身就是在大腿处,所以往下伸出去的能力有限。

作者提出的原来的方法只能解决踩箱子类型的ikbone,这种一个上一个下就不管用了. 

于是改善方法就是 把整体的骨骼移到两脚较低的位置,也就变成了上面那种方案了,就可以解决了.

另外一个就是脚的rotation控制,思路也很简单: 只不过我自己不知道检测射线居然还提供碰撞点的法线向量,其实知道了这个的话自己也能整出来了...

 

 方法很简单,但是需要注意的是在x/z调节pitch的值的时候不要搞错rotation 添加值的正负. 毕竟有时候真的会被骨骼空间,世界空间,各种空间的关联弄懵的.

以上是关于每天学习亿点点day 16: 脚部IKBone的做法的主要内容,如果未能解决你的问题,请参考以下文章

每天学习亿点点day 13: UE4 渲染pipeline

每天学习亿点点day 5,6: Actor, UobjectBase, component的源码剖析

每天学习亿点点day 17: Boyer-Moore 算法和找第K大的数

每天学习亿点点系列——重温单链表

每天学习亿点点系列——单链表OJ题

每天学习亿点点系列——OJ203题:移除链表元素