Maya骨骼绑定IKFK无缝切换-双向约束法.docxVIP

  • 149
  • 0
  • 约6.01千字
  • 约 6页
  • 2017-03-05 发布于重庆
  • 举报

Maya骨骼绑定IKFK无缝切换-双向约束法.docx

Maya骨骼绑定IKFK无缝切换-双向约束法

活了这么多年,在学东西的时候搜过无数教程,什么使用教程,破解教程等等等等,从没自己写过教程,但是今天忍不住也要写一篇了,给广大网友分享下我的Maya学习经验。因为接触时间不长,难免有理解错误或疏漏的地方,还请不要拍砖。 首先,为什么要进行IK和FK的无缝切换?ikHandle1里不是有ikBlend参数么,直接把参数值从1改成0,不就可以实现IK切换到FK了么?嗯嗯,开始我也是这么想的,老师讲IK和FK绑定的时候还觉得好简单,不过等你实际做动画的时候,问题就出现了。你使用IK绑定费老大劲完成了一个动作,结果切换到FK绑定的时候,天哪,骨骼又跑到初始位置去了,于是各种定位各种对齐,然而这不是一件容易的事,因为你不仅要对齐骨骼的位移还有旋转呐!疯了都! 也有网友会说,Maya2013中的HumanIK功能非常强大,干嘛还要自己绑定,不过HumanIK主要是面向两足角色对于四足或多足角色就不适用了。当然也有很多绑定插件可以快速完成。但是如果自己可以手动绑定,那理解其他插件中的绑定技巧也是很有帮助的。 好,废话说了一堆,现在开始讲如何无缝切换IK到FK,或者FK到IK,即切换的时候,要保证骨骼的位移和旋转参数都保持当前不变,也就是无缝(前提是你已经了解了什么是IK,什么是FK,我这就不细说了。) 目前处理无缝切换的方法有三种: 方法一:通过maya自带的set ikfk key这个命令来转换。(太麻烦!) 方法二:三套骨架,一套是ik控制,一套是fk控制,一套用于蒙皮,然后通过属性控制决定约束到ik骨架还是fk骨架。(同样麻烦,而且工作量巨大,不过我也试过,最终可以做出来,提供教程的朋友给了思路也给了代码,但是需要你彻底了解物体的世界坐标系和对象坐标系,否则无论如何你获取的骨骼在世界坐标系中的位移和旋转参数,都无法正确的赋给FK控制器。我试了一天才明白过来,累死!) 方法三:使用单骨骼进行IKFK的切换。(没试过,因为目前还不了解角色功能到底是干嘛使用的。有兴趣的朋友可以点击这里查看/s/blog_54b08bdb010007x4.html。) 方法四:已有双向约束。需要和动画曲线相结合。/s/blog_71fcab930100qpqw.html 下面是我的IKFK无缝切换思路,简单来说是使用双向约束来定位控制器和骨骼,这样在切换的时候可以保证控制器和骨骼的位移以及旋转始终保持一致。 以手臂骨骼IKFK绑定来说:1、当FK控制手臂骨骼系统时,即FK方向约束手臂骨骼时,让IK的极向量控制器受定位器的点约束,把定位器P给手臂的肘关节,并让IK控制器受FK手腕控制器的点约束,这样当FK控制器方向发生变化时,可以始终保持IK控制器和IK极向量控制器的位移信息和骨骼一致。2、当IK控制手臂骨骼系统时,让手臂骨骼控制FK控制器,这样就可以保证FK控制器的方向始终和骨骼保持一致。同时解除FK手腕控制器对IK控制器的点约束,以及定位器对IK极向量控制器的约束。 怎么样是不是很简单?只需要一套骨骼就可以了! 这里所说的双向约束,其实就是指FK约束骨骼的方向,同时让骨骼也约束FK的方向。并且设定,当FK约束骨骼时,骨骼对FK的约束权重为0,即骨骼对FK的约束不起作用;当骨骼约束FK时,FK对骨骼的约束权重为0,即FK对骨骼的约束不起作用。这样就不会产生冲突了! 现在有一个问题,当FK切换到IK时,骨骼受FK约束所产生的方向变化会重置为初始方向,这样就又回到了我一开始说到的问题,没有做到无缝切换! 那有没有解决办法呢?其实很简单,在动画模块,约束菜单下,有一个“设置静止位置”的功能。(我的Maya版本是2013,其他版本有没有这个功能不是很清楚。)这个功能的作用就是为了防止约束权重变为0时,骨骼又回到初始状态。 这样一来,我们就可以利用此功能,当FK切换到IK时,把骨骼当前的旋转信息定位下来,然后再取消FK对骨骼的方向约束,同时让骨骼对FK的方向约束开始起作用,同样使用该功能,可以把IK控制器和IK极向量控制器的当前位移信息定位下来,然后让IK控制器开始起作用。 IK切换到FK的解决办法也一样,定位所有FK控制器的当前旋转方向,并让IK控制器不起左右,FK控制器起作用就OK了。 看起来很容易实现对不对?可是我却琢磨了半天。 下面我们就开始具体实现吧,因为该教程主要面向初学者,所以我会将的比较细碎,大牛们如果会看得话就忍忍吧,呵呵~步骤一:创建手臂的四个骨骼,同时分别绑定FK控制器和IK控制器。需要注意的地方是:1、手臂骨骼的枢轴方向要保持一致,否则会有错误。2、FK控制器和IK控制器一定要打组,然后冻结控制器的位移和旋转属性,切记,不能冻结组的属性!否则世界坐标系会变成对象坐标系,后续问题会很多。3、先让各骨骼对各控制器的组进行父子约束,目的是为了使控制

文档评论(0)

1亿VIP精品文档

相关文档