3ds Max动画教程-装配腿部和脚部(5)
来源:互联网 作者:未知 发布时间:2010-09-06 22:53:29 网友评论 0 条
使用表达式来更好地控制旋转:
-
尝试更改“Roll”的值。
现在您遇到一个问题。首先,“Roll”为正值时,脚部向下旋转。该值大于零时,您希望脚部保持平放。其次,值为 100 时,脚部向后旋转过大。值约为 –60 时,显示更加真实的移动限制。
-
在“参数关联”对话框中,将关联表达式更改为 degToRad(0.6*Roll),然后单击“更新”。
在此,您已告知脚本将“Roll”值乘以 0.6,这会使旋转限制在 60 到 –60 度范围内。
现在,您需要将旋转限制为“Roll”值小于 0。
-
可以使用基本的“if”语句完成此操作。在“参数关联”对话框中,将关联表达式更改为 if (Roll < 0) then degToRad (0.6*Roll); else 0.0。
-
单击“更新”,然后关闭“参数关联”对话框。
“if”语句是根据条件完成某项操作的简单方法。在本例中,您要表达的意思是:“如果 Roll 小于 0,则进行 Roll 值乘以 0.6 的常规计算,并将结果转换为度。否则,只为辅助对象的 X 轴旋转返回值 0.0”。
这样,在进入负值时,“Roll”属性将使脚部向后旋转,(目前)在进入正值时,不进行任何操作。
接下来,您将使脚部绕着拇趾球向前旋转,范围从 0 到 50 度。
尝试更改“Roll”的值。
现在您遇到一个问题。首先,“Roll”为正值时,脚部向下旋转。该值大于零时,您希望脚部保持平放。其次,值为 100 时,脚部向后旋转过大。值约为 –60 时,显示更加真实的移动限制。
在“参数关联”对话框中,将关联表达式更改为 degToRad(0.6*Roll),然后单击“更新”。
在此,您已告知脚本将“Roll”值乘以 0.6,这会使旋转限制在 60 到 –60 度范围内。
现在,您需要将旋转限制为“Roll”值小于 0。
可以使用基本的“if”语句完成此操作。在“参数关联”对话框中,将关联表达式更改为 if (Roll < 0) then degToRad (0.6*Roll); else 0.0。
单击“更新”,然后关闭“参数关联”对话框。
“if”语句是根据条件完成某项操作的简单方法。在本例中,您要表达的意思是:“如果 Roll 小于 0,则进行 Roll 值乘以 0.6 的常规计算,并将结果转换为度。否则,只为辅助对象的 X 轴旋转返回值 0.0”。
这样,在进入负值时,“Roll”属性将使脚部向后旋转,(目前)在进入正值时,不进行任何操作。
接下来,您将使脚部绕着拇趾球向前旋转,范围从 0 到 50 度。
关联向前滚动的脚部:
-
再次选择 footLCTRL,将“Roll”属性与 heelLiftLHELP 的 X 轴旋转关联。
-
在“参数关联”对话框中,选择单向关联。
-
您已经知道需要将度转换为弧度,所以,将表达式设置为 degToRad(Roll),然后单击向右箭头,再单击“连接”。
-
试用脚部的“Roll”属性。
结果很好;不过,在“Roll”为负值时,辅助对象将旋转,使拇趾球辅助对象向下旋转。将像前面的操作一样,通过添加“if”语句解决负值的问题。
-
将表达式更改为:if (Roll > 0) then degToRad(Roll); else 0.0,然后单击“更新”。
现在,在向后退时,情况稳定了。不过,您希望拇趾球从 0 度旋转到 50 度,然后保持该值。要完成此操作,进一步展开并限制“if”语句,并使用“if-else if- else”类型流。
-
将表达式更改为 if (Roll > 50) then degToRad(50.0); else if (Roll > 0) then degToRad(Roll); else 0.0。单击“更新”并关闭对话框。
现在,拇趾球的旋转正常。如果“Roll”值超过 50,应停止并将值 50 转换为弧度,以便脚部旋转在 50 度处停止。如果“Roll”小于 50 但是仍大于 0,像以前一样增大旋转角度直到该值。如果“Roll”为负值,辅助对象旋转将保持在 0 处。
此旋转的最终关联是使脚部绕着脚趾尖向上旋转。
-
再次选择 footLCTRL 对象。
-
将“Roll”与 toeLiftLHELP 对象的 X 轴旋转关联。
再次创建单向关联。
-
输入以下表达式:if (Roll > 50) then degToRad (1.5*(Roll-50)); else 0.0,然后单击“连接”。
-
关闭“参数关联”对话框。
试用“Roll”值。“Roll”值进入负值时,脚部绕着脚跟向后旋转。脚部向前行进时,最初只是绕着拇趾球旋转。在 50 度处,旋转将转移到脚趾尖。
该表达式的作用是使脚趾尖只在“Roll”大于 50 时才旋转,也就是拇趾球旋转停止时。您希望从 0 度开始平滑地旋转,因此选取“roll-50”作为“degToRad”的值:这将生成从 0 到 50 的值,以便脚趾从 0 开始旋转。不过,最终高端值 50 实际并不够。所以,您将该值乘以 1.5 倍,使范围变为从 0 度到 75 度。
注意:以下也是对动画的一些有趣的提示。如果只是单击并拖动属性微调器,值将以默认速率从 –100 更改到 100。不过,如果按住 Ctrl 键并拖动,值的更改速度会加快。如果按住 Shift 键并拖动,值的更改速度会减慢,增量变小。在设置动画时,或在装配期间检验属性时,这可能很有用。
对于最后的关联,您将连接 toeRotate 以旋转脚趾辅助对象。
关联属性以旋转脚趾辅助对象:
-
选择 footLCTRL。
-
将 toeRotate 属性与 toeRotateLHELP 的 X 轴旋转关联。
选择单向关联。
-
将表达式更改为:degToRad(toeRotate),然后单击“连接”。
-
关闭“参数关联”对话框。
更改 toeRotate 可以使脚趾从 –100 度旋转到 100 度,这个范围足够了。
此时,主要的脚部控制已完成。
文件 char_rigging01.6.max 显示了所有属性和辅助对象关联在一起的左脚控制。
在下一过程中,您将添加旋转目标来控制膝盖。
添加旋转目标来控制膝盖:
通常,动画师需要手动确定膝盖指向的方向。即使角色的脚部朝内或朝外,膝盖仍可以指向不同的方向。完成此目的最简单的方法是创建一个可以移动的对象。此对象的位置将使膝盖尝试指向它。
-
在“顶”视口中,创建一个长度和宽度均等于 10.0 的矩形。
将线颜色指定为蓝色。
-
将此图形移动到 footLCTRL 前面膝盖高度的位置。将其重命名为 kneeLCTRL。
-
选择 ankleIKGOAL。在“运动”面板 >“IK 解算器属性”卷展栏 >“IK 解算器平面”组中,单击当前标记为“None”的“拾取目标”按钮。
-
单击 kneeLCTRL。
-
将 kneeLCTRL 链接到 footLCTRL。
现在,尝试四处移动 kneeLCTRL。这样做时,膝盖将尝试指向该控制,即使脚部已经很好的锁定。腿部弯曲时效果更加明显。现在,修正 footLCTRL 的轴点。
-
选择 footLCTRL。
-
在“层次”面板 >“调整轴”卷展栏中,单击“仅影响轴”。
这样,可以移动对象的轴点,而并不影响子对象或对象本身。
-
在某个侧面视图中,将轴点移动到脚踝位置。
- 2009-10-17
- 2009-10-17
- 2009-10-17
- 2010-09-07
- 2009-10-17
- 2009-10-17
- 2010-09-07
- 2009-10-15
- 2009-10-17
- 2010-09-07
- 2009-10-17
- 2009-10-09
- 2009-10-17
- 2009-10-17
- 2009-10-12
关于我们 | 联系方式 | 广告服务 | 免责条款 | 内容合作 | 图书投稿 | 招聘职位 | About CG Time
Copyright © 2008 CGTime.org Inc. All Rights Reserved. CG时代 版权所有