骨骼控制(1)
接下来我们继续上身骨骼的创建。首先我们分析一下肩部骨骼的运动特征。肩部的运动是以锁骨为轴心旋转而产生运动的。并且两肩会自由的向前或向后伸展。这就需要我们肩部骨骼设置有足够的灵活性。在这里我只讲述一种基本方法方法,当然你可以进行更多的尝试,进行更丰富的控制,取得更好的效果。
下面开始:
我是这样设计锁骨的。由脊椎长出,先略向下倾斜,再像后生长并向上倾斜,其终结位置应该在整个肩部的最上端。不过要明确一点,锁骨并不是直的,是成角度弯曲的,我们只是为模拟控制将锁骨做成这样的,但我的大致走向和锁骨是完全一致的。
(图1 设计锁骨)
如图,我们就可以进行锁骨旋转的模拟了。然后将其作为脊椎骨骼的子物体。
(图2 锁骨旋转的模拟)
之后创建手臂,如图我的上臂顶端的骨节是完整的,因为我希望在手臂旋转的时候,肩部接近锁骨的皮肤可以保持较小的变形,让人能看出这里是接近骨头的。并且注意,我在前臂靠上的位置加了一节骨骼,就是为了模拟前\臂旋转的效果,当然有人用更复杂的方式效果也很好,不过我个人认为这已经就足够用了。
(图3 创建手臂)
骨骼控制(2)
下面选择ik工具创建ik,选择如图两处关节创建。
(图4 创建ik)
创建完成后,打开Hypergraph点击图标Input and Output Connections。得到如图的显示,选择那个effector节点,确保在移动状态下,按下键盘上的Insert键。
(图5 点击图标Input and Output Connections后的显示)
骨骼控制(3)
按住点捕捉(V键),将ik手柄拖拽到前臂末端。
(图6 ik手柄拖拽到前臂末端)
移动ik手柄做测试。
(图7 移动测试)
下面我们要将手臂连接到肩部,最常用的方法是直接parent,但经过学习我们知道还有很多方法达到类似的效果,因为我们只需要让手臂的位置随肩部运动,所以我们也完全可以将手臂的关节点约束到肩关节。在这里我们仍直接parent。还有如果你觉得有一节小骨节不舒服,不希望有它,除了使用约束外,你可以在手臂过节上parent两次(建两个空组),再parent到肩部骨节就不会出现骨节了。
(图8 手臂连接到肩部)
骨骼控制(4)
现在创建肘部的极向量约束(pole vector),先创建一个曲线控制器,将它放在肘部靠后的位置。并使用Feeze Transformations命令将Transforma节点的信息归零。其实肘部的极向量约束放置位置是很微妙的,我们习惯让它处于手臂旋转平面上,并正对肘关节。在人们正常状态下放松的伸展手臂,肘关节是略向下旋转的,所以许多人将他放在肘偏下的地方。而实际上我们都应观察自己的模型和骨骼作出适于自己的选择。
(图9 创建肘部极向量约束)
先选择控制曲线,按Shift加选ik使用pole vector命令创建极向量约束。这大家都会哈?
(图10 创建极向量约束)
在channel box中,选中除translate外的所有属性右键,选择Lock and Hide Select。因为这些属性我们都不需要了,在channel box碍眼不说,如果不小心改变了参数就麻烦了,所以干脆kill掉它们。
(图11 属性选择)
骨骼控制(5)
下面我用一个圆环曲线来做肩部的控制手柄。首先,我将其捕捉对齐到肩部骨骼,选择肩部骨骼,再加选圆环,使用point约束。现在我旋转锁骨,控制手柄也会跟着移动。
(图12 肩部的控制手柄)
我们现在要对圆环添加属性,在圆环的属性窗口上方选择Add Attributes...,在出现的窗口中填入属性名l_PV_X,点击Add添加。
(图13 对圆环添加属性)
(图14 Add添加)
骨骼控制(6)
同样加入l_PV_Y、l_PV_Z两个属性。将其他的属性都锁定并隐藏。
(图15 加入属性)
下面我们建立属性连接。打开属性连接窗口(Window>General Editors>Connection Editer...)。圆环是Output;PV是Input。如图将属性一一相连。
(图16 建立属性连接)
当然你也可以通过编写“
connectAttr nurbsCircle1.l_PV_X l_PV.translateX;
connectAttr nurbsCircle1.l_PV_Y l_PV.translateY;
connectAttr nurbsCircle1.l_PV_Z l_PV.translateZ;
”其效果是一样的。
(图17 效果)
现在我们就可以通过修改新添加的属性来控制PV的位置了。如果你希望PV有最大运动距离,则可以通过修改属性(Editer Attribute...)的min&max值来达到目的。
(图18 控制PV的位置)
暂时先到这,下面还有肩胛,锁骨的控制等。
网友评论