CAT简介
a

 

Crowd实例篇01

Crowd实例篇01

作者 钱麟

  使用群体动画的步骤一般是先将行为(Behavior)赋予代理物体(Delegate),再赋予角色模型或Biped,角色模型或Biped可以带有它们原来的动作设置,因为代理物体能以多种方式将新老动作融合。

  让我们开始我们的旅程,不过刚上来我们先给大家看两个比较简单的例子,熟悉一下它的制作流程。

  我们先在场景中(顶视图)建立一个Crowd物体和一个Delegate物体,它们的位置大小并不重要,只要你自己看起来方便(如图所示)。

  我们先为Crowd物体施加行为(Behavior),注意这都是常规的操作步骤。选择crowd物体进入modifier面板,在Setup展卷栏中按New按钮,弹出Select Behavior Type对话框,我们先使用一个最简单的动作——wander Behavior(漫步),如图所示。

  按OK后退出,保留其全部缺省参数。我们要把行为赋予代理物体,在Setup展卷栏中,按Behavior Assignments按钮,弹出Behavior Assignments and Teams对话框,在左边我们选择Delegate01和Wander Behavior(必须要同时选择一个Behavior和一个代理物体),然后利用当中一排箭头,把两个东西送到右边去,如图所示。

  按OK退出,下面我们就要来开始解算了,在Crowd command面板,Solve展卷栏上,保留缺省设置,按下Solve按钮。结果Delegate物体无序在地面上移动,如果换成是个人的话就会随意地散步了。如图所示。

  好了,以上是Crowd的基本操作,是让大家上手的,下面我们来接触更加难的了!刚才我们使用了一个Behavior和一个代理物体,现在我们要用多个来混合使用。先建立如下场景——一个代理物体和一个crowd物体,再在场景正中建立一个box和一个大的sphere将box包住,如图所示。

  下面我们用Scatter Objects(播洒物体)工具将delegate物体随机复制在sphere的表面。选中crowd物体,在Setup展卷栏中,按Scatter Objects按钮,弹出Scatter Objects对话框。在Clone面板上按Object to Clone下的按钮,点取场景中的代理物体,把下面的How many设置为9,按最下面的Generate Clones按钮,这样加上原来的那个场景中共有10个代理物体,因为重叠在一起,因此从表面上看只有一个。

  仍然在Scatter Objects对话框里,在Position面板,Placement Relative to Object组下,选择On Surface.,再按下面的none按钮选择场景中的sphere。最后按最下面的Generate Locations按钮,代理物体就会随机地分布在球体表面了,效果如图所示。

  虽然已经随机分布了,但我们希望能使所有的代理物体都能朝向当中的box(球体的中心位置),在Scatter Objects对话框的Rotation面板内, Look At Target组中,选择Selected Object,再用none按钮选取box物体。最后按下Generate Orientations按钮,达成了效果,如图所示。

  接下来我们把那个sphere球体删除,并储存成cs_tut08_lesson4a.max文件,先别管为什么,我们今后会用到。现在我们要为这些代理物体设置两种不同的行为:Seek和Repel(寻找和排斥),让一半代理物体向box靠近(寻找),而另一半远离box(排斥)。

  选择crowd物体,进入modifier面板,在Setup展卷栏上,添加一个Seek行为,再在下面的Seek Behavior展卷栏上用none按钮点取box物体,即去寻找box物体。

  然后我们把行为赋予代理物体,在Setup展卷栏上按Behavior Assignments按钮,弹出Behavior Assignments and Teams对话框。对于多个代理物体,我们不必一个个地为其设置行为,而可以将这些代理物体编个组,然后一起设置一个行为。方法是在Team组内按New Team,我们把它命名为Seek Team,然后按Add Members按钮,在弹出的Select Delegates对话框配合Shift键选择Delegate01到Delegate05这五个代理物体,OK。

  在左边同时选择Seek Team和Seek Behavior,用当中的箭头按钮把它们送到右边去。

  前面我们是在modifier面板上为crowd物体施加行为的,我们还可以在Behavior Assignments and Teams对话框内为其赋予行为,就是那个New Behavior按钮,我们用它为我们的crowd物体赋予一个Repel Behavior。不过要修改它的话还得回到modifier面板,我们在Setup展卷栏中,指定场景中的box为排斥物体并关闭Use Radii。这样排斥行为的影响力就不受距离限制。

  同样我们把行为赋予代理物体,在Behavior Assignments and Teams对话框里,在Team组内按New Team,我们把它命名为Repel Team,然后按Add Members按钮,在弹出的Select Delegates对话框配合Shift键选择Delegate06到Delegate10这五个代理物体,OK。

  在左边同时选择Repel Team和Repel Behavior,用当中的箭头按钮把它们送到右边去。

  退出对话框,在Crowd command面板,Solve展卷栏上,保留缺省设置,按下Solve按钮。我们得到了我们想要的效果,但是这些代理物体的运动都是在一个平面上进行的,我们接下来希望能让它们在三维空间内运动。

  选择crowd物体,进入modifier面板,在Setup展卷栏内,按Multiple Delegate Editing按钮,弹出Edit Multiple Delegates对话框,在Delegates to Edit组中按Add按钮,选择所有的代理物体。

  在Gneral组,关闭Constrain to XY Plane。再打开边上的SET,确保退出对话框后修改能够起作用。然后按Apply Edit按钮完成。再计算一次,可是,几个向box接近的代理物体有重合碰撞现象,而这个例子中我们就要设法解决这一问题并设置一定的运动方向。

  我们在为Crowd物体施加一个Aviod(避免)行为。选择crowd物体进入modifier面板,在Setup展卷栏中按New按钮,弹出Select Behavior Type对话框,我们选择Aviod Behavior。在Avoid Behavior展卷栏中,用Multiple Selection选择场景中所有的物体(包括代理物体和box)。

  进入Behavior Assignment对话框,把Avoid behavior和Seek Team同时选中,一起送到右边去。之后就是退出去计算,我们看到代理物体们不会相互碰撞了。


 
 
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Character Srudio教学 cs的bip(bvh\bva)动作数据库 两足角色动画 影视动画片制作 电脑游戏制作 广告公司 教学演示等三维动画制作

Character Srudio教学 cs的bip(bvh\bva)动作数据库 两足角色动画 影视动画片制作 电脑游戏制作 广告公司 教学演示等三维动画制作

Character Srudio教学 cs的bip(bvh\bva)动作数据库 两足角色动画 影视动画片制作 电脑游戏制作 广告公司 教学演示等三维动画制作

 

oncontextmenu=return false