Softimage 3D 实例教程之使用表达式实现臂肌的自动凸出
发表于2015-09-01
1) 手臂的模型你可以自已创建.
进入右视图,创造一个简单的手臂模型.如下图。
2) 画 IK 骨骼.
切换到 Actor 模块, 在右视图中使用Actorgt;Skeletongt;draw 2D chain命令画一条有二个关节的骨骼系统。
第一单击点在肩部的位置,第二单击点在肘部,第三单击点在腕部。
*结果应该如下图
3) Enveloping(封套)模型
选择手臂模型,单击 Actorgt;Skingt;Global envelope 命令,再单击 IK 骨骼.
单击 OK 应用默认值.
在右视图中选择并随意移动骨骼受动器,模型应该随骨骼的移动而移动。但是臂肌的变形是不真实的,以下我们要使用NULL物体和表达式来改变这一点。
4) 测试 IK, 放置 null物体,重新封套.
移动骨骼受动器,使手臂模型平直伸展,如上图所示。
创造一个null物体,命名为 quot;muscle1quot; 并放置它到上臂肌的中心位置。并沿Z轴旋转。如下图所示
选择第一个关节(上臂),使用成为 quot;muscle1quot; 的父物体.
使用 Actorgt;skingt;Envelope Assignmentgt;Reassign Automaticaly 命令.进行重新封套。
移动受动器,你会发现臂肌并没有随相应运动而凸出,这将要使用表达式来完成。
5) 保存场景
Actorgt;Save Scene
6) 创造quot;muscle1quot;物体的运动表达式
切换到 motion 模块.
选择 quot;muscle1quot; 物体,并选择 Motiongt;expressiongt;edit 命令打开表达式编辑窗口。
在 effected elements 文字框应该有 [Muscle1.] 这几个字。
在其后面输入 etrny [Muscle1.etrny] (受控参数为 Y轴的移动)
单击 quot;expressionquot; 文字框,单击 Scn elements 按扭,单击 quot;jnt1_2quot;(前臂关节)
现在 expression 文字框所显示的应该为[jnt1_2.]
在其反面输入 rotz ,文字框中的显示为 [jnt1_2.rotz]。(null物体的Y轴运动受前臂关节的Z轴旋转所控制)
7) 调整表达式
啊啊!!, 发生了什么事?!
它需要调整,它的移动太夸张了。
选择 quot;muscle1quot; 并进行表达式编辑.
将 expression 文字框改为 [jnt1_2.rotz / 130] (移动的距离为旋转的1/130)
到此,所有的工作完成,臂肌将随手臂的移动而进行真实的凸起。
进入右视图,创造一个简单的手臂模型.如下图。
2) 画 IK 骨骼.
切换到 Actor 模块, 在右视图中使用Actorgt;Skeletongt;draw 2D chain命令画一条有二个关节的骨骼系统。
第一单击点在肩部的位置,第二单击点在肘部,第三单击点在腕部。
*结果应该如下图
3) Enveloping(封套)模型
选择手臂模型,单击 Actorgt;Skingt;Global envelope 命令,再单击 IK 骨骼.
单击 OK 应用默认值.
在右视图中选择并随意移动骨骼受动器,模型应该随骨骼的移动而移动。但是臂肌的变形是不真实的,以下我们要使用NULL物体和表达式来改变这一点。
4) 测试 IK, 放置 null物体,重新封套.
移动骨骼受动器,使手臂模型平直伸展,如上图所示。
创造一个null物体,命名为 quot;muscle1quot; 并放置它到上臂肌的中心位置。并沿Z轴旋转。如下图所示
选择第一个关节(上臂),使用成为 quot;muscle1quot; 的父物体.
使用 Actorgt;skingt;Envelope Assignmentgt;Reassign Automaticaly 命令.进行重新封套。
移动受动器,你会发现臂肌并没有随相应运动而凸出,这将要使用表达式来完成。
5) 保存场景
Actorgt;Save Scene
6) 创造quot;muscle1quot;物体的运动表达式
切换到 motion 模块.
选择 quot;muscle1quot; 物体,并选择 Motiongt;expressiongt;edit 命令打开表达式编辑窗口。
在 effected elements 文字框应该有 [Muscle1.] 这几个字。
在其后面输入 etrny [Muscle1.etrny] (受控参数为 Y轴的移动)
单击 quot;expressionquot; 文字框,单击 Scn elements 按扭,单击 quot;jnt1_2quot;(前臂关节)
现在 expression 文字框所显示的应该为[jnt1_2.]
在其反面输入 rotz ,文字框中的显示为 [jnt1_2.rotz]。(null物体的Y轴运动受前臂关节的Z轴旋转所控制)
7) 调整表达式
啊啊!!, 发生了什么事?!
它需要调整,它的移动太夸张了。
选择 quot;muscle1quot; 并进行表达式编辑.
将 expression 文字框改为 [jnt1_2.rotz / 130] (移动的距离为旋转的1/130)
到此,所有的工作完成,臂肌将随手臂的移动而进行真实的凸起。
文章转自游戏兵工厂