整理max群组动画Word下载.docx
《整理max群组动画Word下载.docx》由会员分享,可在线阅读,更多相关《整理max群组动画Word下载.docx(59页珍藏版)》请在冰点文库上搜索。
(1)单击
按钮打开Modify命令面板,显示出Crowd系统的一系列卷展栏。
(2)在Setup卷展栏中单击New按钮,如图3所示。
图3Setup卷展栏
(3)在弹出的SelectBehaviorType对话框中,选择WanderBehavior(漫游行为)选项,单击OK按钮,如图4所示。
图4SelectBehaviorType对话框
此时在Setup卷展栏底部的列表中显示出行为的默认名称—Wander,一个新的WanderBehavior卷展栏出现在Setup卷展栏下面,如图5所示。
图5WanderBehavior卷展栏
当在一个场景中具有多个行为时,此卷展栏显示当前列表中的行为类型和参数。
(4)要改变Wander行为的名称,可单击列表中的名称,键入一个新的名称即可,如图:
MyWanderBehavior。
提示:
当一个场景中出现多个相同类型的行为时,可使用不同的名称来区分它们。
1.4分派行为
下面我们将要学习怎样将行为应用于代表物上。
(1)在Setup卷展栏中,单击
按钮,打开BehaviorAssignmentsandTeam对话框,如图6所示。
图6BehaviorAssignmentsandTeam对话框
此对话框可以将代表物组成一个小组,将行为和控制参数应用到代表物和小组上。
我们将在后面的章节中将会学习到更多的高级功能。
(2)在BehaviorAssignmentandTeams对话框的AssignmentDesign区域中,选择Delegate01和Wander选项,当选择了代表物和行为时,NewAssignment箭头按钮为激活状态。
这个按钮位于AssignmentDesign和BehaviorAssignments区域的中间。
(3)单击NewAssignment按钮。
此时工作信息被加入到BehaviorAssignments区域中。
在默认状态下,Weight的最高值为1.0,如图7所示。
图7NewAssignment按钮外框为红色
(4)单击OK按钮关闭对话框。
1.5行为运算
下面进行行为的运算。
只有通过单击Solve按钮进行行为运算,才能将行为应用于当前场景中。
(1)在Solve卷展栏中单击Solve按钮,进行行为的运算。
此时代表物在视窗中四处漫游。
可以在Motion命令面板中单击Trajectories按钮来查看代表物的轨迹,代表物的运动轨迹如图8所示。
图8代表物的运动轨迹
(2)单击
按钮播放代表物的漫游动画。
上面我们已经学习了Crowd系统的基本使用方法,现在就可以制作真正的群组动画了,在群众物体中将包含有很多代表物。
2使用多代表物和行为
本节我们将学习在CharacterStudio中制作多个代表物和人群的技巧,同时我们还会对几个新的行为进行研究。
本节的内容是建立在上一节的基础上,如果还没有完成上一节行为的建立,请先完成上一节的步骤。
2.1制作场景
下面我们来制作本节练习所使用的场景。
(1)打开或重新启动3DSMAX,然后加入一个代表物和人群物体,同上一节的操作一样。
(2)在视图的中心位置制作一个小立方体,然后再制作一个球体。
此时这两个物体为相同的圆心,如图9所示。
可以打开配套光盘CD2\Movies\CS\教学\cstudio\tutorials\tutorial_8目录中的cs_tut08_lesson2.max文件。
图9小立方体和球体
2.2复制代表物
下面我们要使用ScatterObjects工具来复制几个代表物,然后将它们放置在球体表面的周围,并使它们对准立方体。
(1)选择群众物体Crowd01,并打开Modify命令面板。
(2)在Setup卷展栏中单击
按钮,打开ScatterObject对话框,如图10所示。
图10ScatterObjects对话框
(3)在ScatterObjects对话框的Clone标签页中,单击ObjecttoClone下的None按钮。
在弹出的Select对话框中选择Delegate01选项,然后单击Select按钮关闭对话框,如图11所示。
图11选择Delegate01选项
(4)设置HowMany为9(设置复制数量)。
(5)单击GenerateClones按钮。
这样就建立了代表物的九个复制品(总共10个代表物)。
现在还不能看到复制出来的代表物,因为它们和第一个代表物是重合的。
(6)打开ScatterObjects对话框的Position标签页,在PlacementrelativetoObject区域选择第二排的On选项,如图12所示。
图12Position标签页
(7)在PlacementrelativetoObject区域单击None按钮,在弹出的Select对话框中选择Sphere01选项,然后单击Select按钮关闭对话框。
(8)单击GenerateLocation按钮。
此时代表物分散在球体表面,如图13所示。
图13代表物分散在球体表面
2.3定位代表物
代表物的克隆物都被定位在大球表面的任意位置,它们都指向同一个方向。
下面我们将它们重新定位,使它们都指向立方体。
(1)在ScatterObjects对话框的Rotation标签页中,选择LookAtTarget区域中的Selected选项。
这时None按钮处于激活状态,如图14所示。
图14Rotation标签页
(2)单击None按钮,在弹出的Select对话框中选择Box01选项,然后单击Select按钮关闭对话框。
(3)单击GenerateOrientations按钮。
此时代表物都指向立方体,如图15所示。
图15代表物都指向立方体
(4)单击OK按钮,关闭ScatterObjects对话框。
2.4加入行为
下面我们给群众物体加入行为。
(1)选择球体,按Delete键将它从场景中删除。
(2)将文件存储为cs_tut08_lesson4a.max。
下面我们将使用SeekBehavior行为和RepelBehavior行为,使代表物中的一半朝立方体的运动,而另一半背离立方体的运动。
(3)选择群众物体Crowd01,在Setup卷展栏中单击New按钮,选择SeekBehavior选项单击OK按钮,加入一个行为,如图16所示。
(4)在SeekBehavior卷展栏中,单击None按钮,在弹出的Select对话框中选择Box01选项,然后单击Select按钮关闭对话框。
此时立方体的名字显示在按钮上,如图17所示。
(5)在Setup卷展栏中,单击
按钮,打开BehaviorAssignmentsandTeams对话框。
系统每一次只能给一个代表物分配SeekBehavior行为,我们不用这样麻烦,Crowd系统可使代表物群组为一个小组,然后再给整个小组分配这个行为。
(6)在BehaviorAssignmentsandTeams对话框的Teams区域中,单击NewTeam按钮打开SelectDelegates对话框,如图18所示。
图16加入一个SeekBehavior行为
17立方体的名字显示在按钮上
18SelectDelegates对话框
这样就给小组加入了一个默认的名称Team0。
这时可以给它重新命名。
(7)将小组重新命名为SeekTeam,如图19所示。
19将小组重新命名为SeekTeam
下一步将要指定一个代表物成为SeekTeam小组中的一员。
(8)单击AddMembers按钮。
在SelectDelegates对话框中,单击Delegate01选项,然后按住Shift键的同时单击Delegate05选项来选择前五个代表物。
单击OK按钮退出。
此时代表物的名称显示在SeekTeam名单上。
(9)在AssignmentDesign区域的Team列表中,选择SeekTeam选项,在Behaviors列表中,选择Seek选项,如图20所示。
20选择SeekTeam和Seek选项
(10)单击NewAssignment按钮来分配工作。
下面我们将建立另一个RepelBehavior行为。
(11)在BehaviorAssignmentsandTeams对话框的AssignmentDesign区域中,单击NewBehavior按钮,在弹出的对话框中选择RepelBehavior选项。
此时RepelBehavior行为被加入到了Behaviors列表中。
注意:
BehaviorAssignmentsandTeams对话框保持打开状态。
(12)在Setup卷展栏中,从列表中选择Repel选项。
此时RepelBehavior卷展栏代替了SeekBehavior卷展栏。
(13)在RepelBehavior卷展栏中,单击None按钮,在弹出的Select对话框中选择Box01选项,然后单击Select按钮关闭对话框。
此时立方体的名字显示在按钮上。
(14)在Radius区域中,关闭Use选项,如图21所示。
这样使Repel行为发生在任意远的地方。
21关闭Use选项
下面建立一个新的小组。
(15)在Setup卷展栏中,单击
(16)在BehaviorAssignmentsandTeams对话框的Teams区域中,单击NewTeam按钮打开SelectDelegates对话框,单击OK按钮。
将该名称重新命名为RepelTeam。
(17)单击AddMembers按钮。
在SelectDelegates对话框中,单击Delegate06选项,然后按住Shift键的同时单击Delegate10选项来选择后五个代表物。
。
(18)在AssignmentDesign区域的Team列表中,选择RepelTeam选项,在Behaviors列表中,选择Repel选项。
(19)单击NewAssignment按钮分配工作,此时对话框如图22所示。
22对话框中分配了两个行为
(20)在Solve卷展栏中单击Solve按钮,进行行为的运算。
2.5使代表物在三维空间内移动
此时代表物的一半朝立方体的方向运动,而另一半朝背离立方体的方向运动。
但它们都在各自的X和Y轴中运动。
下面我们将使它们在三维空间中进行运动。
按钮。
此时弹出EditMultipleDelegates对话框,如图23所示。
可以使用这个对话框来给几个代表物同时改变运动状态。
23EditMultipleDelegates对话框
(2)在EditMultipleDelegates对话框的DelegatestoEdit区域中,单击Add按钮。
(3)在弹出的Select对话框中,单击All按钮选择全部代表物,然后再单击Select按钮,如图24所示。
24选择全部代表物
这样就将场景中的所有的代表物都加入到DelegatestoEdit列表中了。
在EditMultipleDelegates对话框中不能对小组进行操作。
(4)在General区域中,关闭ConstraintoXY选项。
(5)打开ConstraintoXY旁边的SET复选框,如图25所示。
这样可以确保在退出对话框时,改变的设置可以发生作用。
25General区域
(6)单击ApplyEdit按钮。
这样就关闭了对话框,将设置应用到所有指定的所有代表物上。
(7)在Solve卷展栏中单击Solve按钮,再次进行行为的运算。
这一次,代表物将朝三个方向移动。
其中一半直接朝立方体移动,另一半朝远离立方体的方向移动。
(8)将文件存储为cs_tut08_lesson3a.max,以供下一节使用。
3使用Avoid行为和动画行为分配
在上一节我们已经注意到当代表物接近立方体时,它们会相互叠加。
本节我们将要学习使用Avoid行为来防止代表物的相互碰撞。
还将学习如图何控制行为的方向,并将其应用到Seek小组中。
3.1加入Avoid行为
(1)继续上一节的操作。
或从打开配套光盘CD2\Movies\CS\教学\cstudio\tutorials\tutorial_8目录中的cs_tut08_lesson3.max文件。
(2)选择群众物体Crowd01。
在Setup卷展栏中单击New按钮,在弹出的对话框中选择AvoidBehavior选项单击OK按钮。
就像Seek和Repel行为一样,Avoid行为有一个None按钮来指定一个需要避开的代表物。
但是,如果要想指定多个Avoid物体的话,可以使用MultipleSelection命令。
(3)在AvoidBehavior卷展栏中,单击
按钮,打开Select对话框。
(4)选择所有的物体(代表物和立方体),单击Select按钮。
选择Avoid和SeekTeam选项,单击NewAssignment按钮分配工作。
此时我们便将Avoid行为应用到了Seek小组中,如图26所示。
26将Avoid行为应用到了Seek小组中
(6)在Solve卷展栏中单击Solve按钮,进行行为的运算。
代表物现在运动时相互排斥,同时也拉大了与目标立方体的距离,如图27所示。
27代表物运动时相互排斥
3.2使用显示选项
我们可以通过打开Avoid的各种显示选项来增进对Avoid行为的运作了解。
(1)在AvoidBehavior卷展栏中,打开DisplayHard和DisplayRepel选项。
此时线框显示在每个代表物的周围,如图28所示。
28时线框显示在每个代表物的周围
(2)关闭DisplayHard和DisplayRepel选项,避免画面显示过于复杂。
(3)在AvoidBehavior卷展栏的DisplayDuringSolve区域中,打开Potential、Repel和LookAhead选项,以显示运动关键帧、排斥关键帧和位置半径。
(4)在Solve卷展栏中单击Solve按钮,进行行为的运算。
在运算过程中,出现白色线框表示Potential选项正在进行运动计算,出现彩色线框表示Repel选项正在进行排斥计算,出现蓝色球体线框表示代表物所要到达的区域半径。
进行行为运算时的显示效果如图29所示。
29进行行为运算时的显示效果
3.3调节行为
因为LookAhead的参数默认为30,所以代表物之间在运动时有很大的回旋空间。
如果减少这个值,代表物之间则会缩小排斥距离。
(1)将LookAhead设置为3,如图30所示。
30将LookAhead设置为3
(2)在Solve卷展栏中单击Solve按钮,进行行为的运算。
这次,Seek小组中的代表物相互离得很近,甚至可以看到一些相互重叠现象,因为LookAhead的设置参数很小,所以在它们运动时不能给出足够的空间掉头,避免相撞。
Avoid行为与其他的行为设置一样,要根据具体的情况而定。
要很好地控制代表物之间的距离需要经过多次设置来进行试验。
3.4改变行为
下面我们要使停止代表物对立方体的行为,以使它们在到达立方体后迅速远离立方体。
制作时可以将现有的Repel行为赋予Seek小组,并使Repel行为在指定的帧中产生作用,同时取消Seek行为的作用。
首先应该播放动画,决定在哪一帧改变行为。
(1)前后移动时间滑块,寻找代表物离立方体最近的一帧。
我们选择第70帧,或接近第70帧的地方。
(2)将时间滑块移动到第0帧,单击Autokey动画按钮,准备制作动画。
(3)在Setup卷展栏中,单击
选择Repel和SeekTeam选项,单击NewAssignment按钮分配工作。
此时我们便将Repel行为应用到了Seek小组中。
(4)在BehaviorAssignment区域的列表中,单击SeekTeamRepel选项。
此时AssignmentDesign区域中的相应选项反白显示,BehaviorAssignment区域下面的控制按钮被激活了,如图31所示。
31BehaviorAssignment区域下面的控制按钮被激活
(5)在BehaviorAssignments区域的下方,关闭Active复选框。
此时SeekTeamRepel行为旁边的“X”符号在列表中消失了,这表示该行为处于无效状态。
这个设置是可动画的,因此我们就可以直接控制哪个行为在某一帧为激活状态。
(6)将时间滑块拖拽到第70帧。
(7)打开Active复选框,然后选择SeekTeamSeek选项,再关闭Active复选框。
(8)来回拖拽时间滑块到第70帧的两边,观察BehaviorAssignments列表。
我们看到,在Repel行为打开的同时,Seek行为被关闭了。
(9)关闭对话框,再关闭Autokey动画按钮。
(10)在Solve卷展栏中单击Solve按钮,进行行为的运算。
此时在第70帧,代表物停止追踪立方体(突然掉头,向相反方向运动)。
要改变突然掉头动作为缓慢掉头动作的话,可以改变Weight的值,这个设置可以控制代表物的转弯行为,范围是0-1.0。
4用CognitiveControllers控制器制作动画
在上一节中,我们学习了如图何通过调节Active复选框将一个小组从一个行为转换到另一个行为上,这是两部分工作。
在进行此项工作时,应先使用Solve按钮计算第一部分的工作,然后改变它的相应参数,最后再计算第二部分的工作(这个方法比较死板)。
若是更加复杂的工作,或代表物以不同的距离进行移动,则设置起来就更加麻烦了。
为了方便控制较为复杂的操作,可以将CognitiveControllers控制器赋予代表物和小组,而不使用行为。
这个CognitiveControllers控制器可以有多个状态框。
每一个状态框可以包含一个或多个行为,每一个行为又有不同的控制参数。
可以将它们设置为一个脚本,并给它们设置过渡动画。
最后由MAXScript脚本工具来自动计算代表物的动态。
在本节中,我们将使用CognitiveController控制器制作代表物到达立方体时,将小组的行为由Seek转变到Repel。
4.1建立行为
(1)打开cs_tut08_lesson4.max文件。
这个场景包含了10个代表物,它们分布在立方体周围。
(2)选择群众物体Crowd01,打开Modify命令面板。
(3)单击
按钮,打开EditMultipleDelegates对话框,单击Add按钮,选择所有的代表物,关闭ConstraintoXY复选框。
单击ApplyEdit按钮关闭对话框。
(4)单击Setup卷展栏的New按钮,加入一个Seek行为和Repel行为,将立方体设置为两个行为的目标。
(5)在列表中Repel行为,在Radius区域关闭Use复选框。
4.2使用CognitiveControllers控制器
我们不将这些行为赋予代表物,而是使用它们建立一个CognitiveControllers控制器来将行为赋予代表物。
CognitiveController按钮。
(2)在弹出的CognitiveControllerEditor对话框中,单击工具栏中右边的New按钮。
这样就建立了一个名为CognitiveController的控制器,并激活了
工具,如图32所示。
32建立了一个名为CognitiveController的控制器
(3)在CognitiveControllerEditor对话框中分别在不同的位置单击两次。
这样就给控制器加入了两个状态框,如图33所示。
每一个状态框可以包含多个行为。
33给控制器加入两个状态框
(4)右击对话框退出状态框建立模式,然后右击红色状态框打开State对话框,在其中可以更改状态框的名称以及其他操作。
(5)在State对话框中,单击最上面的文本框,将名称改为Seek,如图34所示。
34State对话框
(6)单击Add按钮。
在SelectBehaviors对话框中,单击SeekBehavior选项,然后单击OK按钮,如图35所示。
35SelectBehaviors对话框
此时Seek行为在列表中呈反白显示,可以改变它的Weight权重值。
因此如果在状态框中有几个行为的话,提高Weight权重值会使该行为起主导作用。
(7)单击Seek对话框右上角的
按钮关闭对话框。
(8)用同样的方法将第二个状态框的名称改为Repel,并给它赋予Repel行为。
此时CognitiveControllerEditor对话框,如图36所示。
36设置后的CognitiveControllerEditor对话框
4.3建立一个过渡动画
我们需要在两个状态间加入一个过渡动画,并建立一个简短的脚本来设置CognitiveController控制器何时在这两个行为之间进行转换。
(