咨询电话:400-810-1418服务与监督电话:400-006-6572

使用mel进行绑定

发布时间:2019-12-09 15:56:51

本节将学习如何使用mel语句实现对植物的绑定,最终制作一个随风摆动的植物的案例。本节的主要内容可以大致分为创建骨骼和编写mel表达式两个部分。

一、创建骨骼

Step01 打开初始模型如下图(左)所示。

Step02 切换至侧视图,将场景中的模型隐藏,在Animation (动画)模块下执行Skeleton>Joint Tool(骨骼>关节工具)命令,按X键吸附到网格,为植物创建6节骨骼,如下图(右)所示。

 使用mel进行绑定

Step03 选择joint1,执行Edit> Select Hierarchy (编辑>选择层级)命令,选择骨骼的所有层级,如下图(左)所示,然后执行Display>Transform Display>Local Rotation Axes (显示>变形显示>局部旋转轴)命令,显示骨骼的轴向,如下图(右)所示。

 使用mel进行绑定

从上图可见末端骨骼joint7与其余6个骨骼的轴向不同,下面就来统一骨骼的轴向。

Step04 选中整条骨骼链,单击Skeleton>Orient Joint>口 (骨骼>方向关节>口 )打开选项窗口,将Orientation (方向)选项设置为YZX,单击Apply (应用)按钮,如下图所示,统一骨骼链的轴向。

 使用mel进行绑定

下面我们利用mel语言来制作骨骼随时间轴的变化而产生摆动的效果。

二、编写mel表达式

使用mel程序实现x轴的旋转。

Step01 将时间轴长度设置为200帧,选择骨骼,在通道盒中选择骨骼的Rotate X ( x轴旋转)属性,并在通道盒菜单中执行Edi>Expression (编辑>表达式)命令,打开表达式编辑器,如下图(左)所示。

Step02 在Expression (表达式)文本框中输入如下语句。

float $noise = noise(time);

joint1 .rotateX=sin(time)*30* $noise;

单击Create (创建)按钮,如下图(右)所示。

 使用mel进行绑定

按下播放按钮,可以看到joint1在沿x轴运动,下面为所有骨骼实现该效果。

Step03 选择joint2,在通道盒中选择Rotate x ( x轴旋转)属性,并执行Edit>Expression (编辑>表达式)命令,打开表达式编辑器,在Expression (表达式)文本框中输入如下语句。

float $jot1;

float $jot2;

float $jot3;

float $jot4;

$jot1 =(`getAttr -t (frame -4)joint1.rx');

$jot2=(`getAttr -t (frame -8)joint1.rx' );

$jot3=(`getAttr -t (frame -12)joint1.rx* );

$jot4=(`getAttr -t (frame -16)joint1.rx* ); .

$jot5=(`getAttr -t (frame -20)joint1.rx'); .

$jot6=(`getAttr -t (frame -24)joint1.rx );

joint2.rotateX=$jot1;

joint3.rotateX=$jot2;

joint4.rotateX=$jot3;

joint5.rotateX=$jot4;

joint6.rotateX=$jot5;

单击Create (创建)按钮,如下图所示。

 使用mel进行绑定

按下播放按钮,可以看到所有骨骼沿x轴随机运动的效果。至此,完成表达式的编写。

对骨骼进行蒙皮操作。

Step04 执行Edit>Select Hierarchy (编辑>选择层级)和Display>Transform Display>Local Rotation Axes(显示>变换显示>局部旋转轴)命令,关闭对层级和轴向的显示,便于进一步对骨骼进行蒙皮操作。

Step05 在大纲中选择植物模型,按下Shift+H键,将模型显示出来。

Step06 在大纲中选择joint1,加选植物模型,在Animation (动画)模块下执行Skin>Bind Skin>SmoothBind (蒙皮>绑定蒙皮>平滑绑定)命令,对植物进行蒙皮,如下图所示。

 使用mel进行绑定

Step07 在大纲中选择joint1,按CrI+H键将其隐藏。

至此,我们使用mel实现了植物的绑定。