
想给某个模型的尾巴补IK骨的时候四处翻教程没翻到,最后还是在dA上才翻到一份写的相对详细的版本。
这次说说PE里的IK骨,虽然现在有不少好用的IK辅助插件(IKmaker,以及之前专栏提到过的一键生成视线IK/腕IK等),不过有的时候,为了特殊需求还是得自己动手。
友情提示:
本文更倾向讲解过程与原理,因此如果只是为了那几个经常用到的IK(左足IK、右足IK、左つま先IK、右つま先IK)的话,可以用偷懒的方式跳过这一步:
在有腿部骨骼(左足→左ひざ→左足首、右足→右ひざ→左足首)的目标模型上导入一套MMD标准骨骼的pmx,然后把几个IK骨移到对应腿部骨骼的位置即可。

个人用的自带IK的basic bones,如果没有的话从tda之类的模型里拆一个出来,或者根据自己的习惯做一个,改模的时候能方便不少。
或者更简单粗暴点,用PE开个有IK的模型看看别人是怎么设置的,基本也就会做腿部IK了。
好了,正文开始。
IK—Inverse Kinematics(反向运动)
IK骨的作用但凡接触过3D软件的基本都知道,也在游戏里或多或少的见过,
比如将手伸到某个地方,或者将脚停在台阶上(而不是直接一脚踩下去导致穿模)
真没见过的话,随便开个找个模型的IK骨位移一下就知道了。
而其最终的作用,就是通过计算一连串骨骼的旋转/位移,从而让这一系列骨骼的末端尽可能的落在IK骨的位置上。
接下来让我们打开PE。
在开始之前,首先确认一下要做的IK序列与目标骨骼——哪些骨骼的旋转会受到IK骨的影响,以及最终以哪个骨骼的位置进行定位。
IK序列里不能包括全亲骨或者其他类似的全模型定位骨骼,原因后面会提到。
这里就以一组简单的骨骼做示范。
每个骨骼的亲bone均为位于其上面的那个骨骼:

这次以最上面的bone0到bone3为IK序列,以bone4为目标骨骼做个IK。
那么,先开始创建IK骨:

直接对着目标复制,从而追加一个同位置的骨骼。
一般情况下,IK骨的位置是和目标骨骼重合的,和目标骨骼不放在一起也可以,但是在预览的时候(MMD里和TransformView里)会直接显示IK演算完毕的结果。

注意:新复制出来的骨骼不继承原骨骼的权重,因此建议在复制完之后立刻将新骨骼改名以便区分,如果搞错顺序,导致最后带权重的原骨骼做IK的话...emmmm...
为复制出来的新骨骼勾上“性能”里所有的选项。

把序列里的所有骨骼用index copy的功能复制到右边的栏位里,PE里经常会和这个功能打交道:


当心别把目标骨骼也复制进去。

这一步之后,被复制到右侧的所有骨骼都会在视图中变成橙色:

空IK骨和对应序列创建完成,接下来就是让它起效果。
将视线移向右侧:

Target:基本上就是和IK骨同一位置的目标骨骼,也就是位于最下面的bone4。
Loop:用来计算骨骼旋转的循环次数,loop越高结果越精确(最终偏移会更小),一般都写个20或者40之类的。(这个属性不理解也没什么问题,只要知道小了会导致骨骼瞬移就行了)
单位角:进行上述计算的偏移角范围,如果调小了就会让骨骼旋转的幅度相对应的变小,这一项根据需要调节。
在上一步生成IK骨的时候,默认的单位角是57.29578°,可以发现这个角度就是弧度制下的1 rad=180°/π≈57.3°,因此如果对IK序列骨的旋转幅度没有需求的话,单位角基本选用该值的倍数——这也就是为什么不少模型都在足IK和つま先IK两个IK上的单位角分别为229.18°(4rad)或114.59°(2rad)的原因。
接下来看向下面Link区域的“角度限制”,把“角度制限”这个按钮点亮,才能让限制生效。

和joint的角度限制一样,两个空格分别为最小值和最大值,根据需要调节,如果在单位角较大的情况下,角度限制不合理会导致相当鬼畜的效果。

角度限制旁边那个按钮可以快速一键清零,小 心 手 滑
与此同时,为了让其他骨骼移动的时候IK相关骨骼不进行移动,需要将IK的亲骨骼设为root或者其他可以定位的骨骼,依旧以常见的足IK为例:
足(左/右足IK),序列为“左/右足”→“左/右ひざ”,target为“左足首”,亲骨骼为“全ての親”,角度制限-180°~-0.5°
脚尖(左/右つま先IK),序列为“左/右足首”,亲骨骼为“左/右足IK”,无角度限制
因为左/右足的亲骨骼都为“下半身”,而下半身的亲骨骼是“センター”,所以在センター移动的时候,亲骨骼为全ての親的足部IK没有移动,从而为脚进行了定位。
一边调的同时一边在TransformViewer里预览效果:

于是一个简单的IK骨就做好了。
操作很简单,常见的腿部IK的设置基本只要几分钟就可以解决,长一点的也差不多,比如作为本次专栏的头图的超长骨骼:

其他地方的应用也同样如此——
比如一开始提到的,萝莎莉亚小姐的尾巴。

多调调,多改改,基本就能熟悉这个东西。