手部反向动力学的实现(final ik)

在unity官网中提供了功能十分强大的final ik,让我们能够很容易的实现我们想要实现的功能

而手部的反向动力学更适合与所提供组件中的CCD IK

本文用到的资源如下,读者可自行下载

Final ik百度网盘资源如下:

链接:https://pan.baidu.com/s/1YBeH8FKOzuMmJwa0LFfhpw

提取码:123q

接下来可按照如下步骤完成手部反向动力学的设置。

1.导入手部模型到Assets下,点击import:

2.导入Final IK到Assets,点击import

3.选择其中一只手,点击Add component,选择CCD IK

4.在CCD IK中的Bones处点击四次加号按钮

5.以食指为例,依次打开每根骨节并在DEF-f_index.03.R处Create Empty

6.移动该GameObject到指尖位置

7.依次将食指的DEF-f_index.01.R,DEF-f_index.02.R,DEF-f_index.03.R,GameObject拖入第8部创建的四个骨节中

8.点击运行,发现可移动指尖达到手指反向动力学的目的

9.停止运行,再在Sci-FiHandModel中新加一个CCD IK插件

10.按照第7到10步的方法为另一根手指添加IK操作

11.重复第12到13步依次为其余每一根手指添加IK操作

12.点击运行,可以拖动任一指尖观察效果

13.停止运行,按照同样的方法,为另一只手添加手指IK操作

14.点击运行,拖动指尖查看效果

15.此时我们发现,手部放平移动手指是,关节不在一条直线上,这是不符合生活常识的,由此,我们还可以为手部添加旋转限制,但是,考虑到可能存在有人的关节活动范围较广,且我们是根据手指头的位置来推断手指的位置,因此我们可以将范围尽量放宽,但要保证手指活动符合常识。

16.每根关节的限制也不尽相同,先选择根关节,点击Add Component,选择 Rotation Limit Angle

17.再分别进行如下配置,注意x,y,z的设置及limit的设置

18.再设置中指其余两关节,这两个关节的设置可以相同,分别选择第二第三关节添加Rotation Limit Hinge,再进行如下配置,注意x,y,z轴设置及Min和Max设置

19.点击运行,发现其运行符合常识

 

CCD IK基本原理可参考如下内容:

循环坐标下降反向动力学(CCD Ik)_呀啊嘿的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/qhd12/article/details/127495005
ik