腿部绑定:膝盖表达式锁定和拉伸
1、创建一节腿部骨骼,命名;
如图所示:

2、ܚ使用“IK控制柄工具”(在“动画模块——骨架”);
(1)点击骨骼ctrl_thigh和骨骼ctrl_ankle,创建IK(是旋转平面解算器);
(2)命名为:Leg_IK;
如图所示:


3、ܚ给膝盖和脚踝创建控制器;
《1》将控制器的位置放置好,“冻结变换”和删除历史;
(1)分别命名为:膝盖控制器为pole_crv;脚踝控制器为Leg_crv;
《2》按“P”键,将IK:Leg_IK给控制器Leg_crv当子物体;
《3》“极向量”约束:选控制器knee_crv和IK:Leg_IK;
如图所示:



4、ܚ选控制器pole_crv,点击“旋转枢轴”(在“显示——变换显示”);
(1)创建距离节点时,点击它的“旋转枢轴”,可以将其自带的定位器吸附在控制器pole_crv的中心点;
如图所示:

5、ܚ使用“距离工具”(在“创建——测量工具”)创建5个距离节点;
《1》命名:
(1)点击骨骼ctrl_ankle到骨骼ctrl_thigh的距离节点1,命名为:thigh_to_ankle;
(2)点击骨骼ctrl_thigh到骨骼ctrl_knee的距离节点2,命名为:thigh_to_knee;
(3)点击骨骼ctrl_knee到骨骼ctrl_ankle的距离节点3,命名为:ankle_to_knee;
(4)点击骨骼ctrl_thigh到控制器pole_crv的距离节点4,命名为:thigh_to_pole_crv;
(5)点击控制器pole_crv到骨骼ctrl_ankle的距离节点5,命名为:ankle_to_pole_crv;
《2》创建的距离节点自带了4个定位器;
如图所示:


6、ܚ按“P”键,将定位器locator4给控制器pole_crv当子物体;
如图所示:

7、“点”约束:
(1)选骨骼ctrl_thigh和定位器locator1;
(2)选IK:Leg_Ik和定位器locator2;
(3)选骨骼ctrl_knee和定位器locator3;
如图所示:

8、ܚ给控制器Leg_crv“添加属性”;
《1》添加2个“浮点型”属性,数值属性范围是0,1,0;
(1)属性lock;
(2)属性stretch;
如图所示:


9、ܚ在“属性编辑器”可以查看距离节点的距离长度:
(1)距离节点thigh_to_ankle:10;
(2)距离节点thigh_to_knee:5.099;
(3)距离节点knee_to_ankle:5.099;
(4)距离节点thigh_to_pole_crv:6.679;
(5)距离节点pole_crv_to_ankle:6.679;
10、ܚ打开“表达式编辑器”,编写控制器Leg_crv锁定和拉伸的“牵套语句”脚本:
编写:
if(Leg_crv.lock == 0)
{
if(Leg_crv.stretch == 0)
{
ctrl_thigh.scaleX = 1;
ctrl_knee.scaleX = 1;
}
else
{
if(thigh_to_ankleShape.distance / 5.099+5.099)
{
ctrl_thigh.scaleX = thigh_to_ankleShape.distance / (5.099+5.099);
ctrl_knee.scaleX = thigh_to_ankleShape.distance / (5.099+5.099);
}
else
{
ctrl_thigh.scaleX = 1;
ctrl_knee.scaleX = 1;
}
}
}
else
{
ctrl_thigh.scaleX = 1;
ctrl_knee.scaleX = 1;
}
if(Leg_crv.lock == 1)
{
ctrl_thigh.scaleX = thigh_to_pole_crvShape.distance / 5.099;
ctrl_knee.scaleX = pole_crv_to_ankleShape.distance / 5.099;
}
