Maya群组动画实现思路探讨(二)
- 2021-12-26
- 来源/作者: PS.ONEGREEN.ORG / 佚名
- 1 次浏览
1.这部分我们将讨论如何实现一套粒子中掺杂多个不同的循环代替物,并且分别控制他们的各个属性。这里我们拿西湖劳动大场景中的一小段运输的场景来讲解下如何来实现。沿着这条弯路,我们添加上各种运输的工种,沿着这条路走,有推车的,挑担的,两个人抬担的,还有背石头的。(点击看大图)
2.首先我们要先做出这些工种的人物及道具模型,这里为了减少以后群组动画的的运算量,模型的面数一定要控制,这里人物模型面数控制在200左右就可以了。在大场景中,这个精度足够了。(点击看大图)
3.接下来就是对这些人物进行组合,做装配,然后再制作走路循环,这里注意再制作走路循环时一定要体现劳动的负重感,通过时间和姿态的把握体现各工种的合理动作。(点击看大图)
4.选择动画模型执行Animate>Create Animation Snapshot 选项盒,调整参数如图。Apply,将动画模型建立动画快照序列。(点击看大图)
5.我们对于动画包括多个物体时,我们需要对他们的组进行代替,循
环是当然也要在组的层级上进行,现在看一下maya产生快照模型名称的特点,全部为transform*_*,的形式,而且它会自动的把一个物体所产生的快照序列放在一个snapshot*Group的组里,如图所示;这不是我们想要的。我们需要的是第一帧的所有物体一个组,第二帧的所有物体一个组,……..以此类推。(点击看大图)[NextPage]
6.一种方法是手动他们分别打组,分别选择transform1_1, transform2_1, transform3_1,执行Group命令,但是如此多的动画和帧数,手动做效率会非常低,手动执行一次后,我们发现在Script Editor中会出现一段语句。通过快照命名的特点,我们完全
可以通过简单的mel语句来批量完成这个任务。(点击看大图)
7.将这段mel语句保存为.mel文件,在Script Editor中调用或复制到Script Editor中直接执行。将其载入内存;然后再在Script Editor中键入shotgroup(1,40,”Tuiche”);按小键盘enter键执行。这里startframe为动画序列的起始帧,endframe为动画序列的最后一帧,groupname为组自定义的名字。这样我们的动画快照就能够非常快的打组完成,并有自定义的名称便于区分动作。这样我们的模型序列就准备好了。
下面新建maya文件,导入背景图,根据要走的路线绘制曲线,extrude曲面。如图所示:
8.选择曲面执行Particles>Emit from Object 选项盒,将发射类型选为Surface,发射比率为5000,在Need Parent UV(NURBS)后打勾。
[NextPage]
9.这样曲面就会向空中发射粒子,在粒子的属性中将Max count的值设为180,我们需要一个稳定均匀的粒子。
10.选择粒子再选择发射表面,执行Particales>Goal选项盒,确保Goal Weight的值为1,将粒子全部goal在发射表面上。
11.这样,粒子就会在面片表面随机发射并瞬间附着在发射地。接下来就要控制粒子在表面的运动,将粒子的隐藏属性goalU,goalV显示出来,我们通过表达式控制粒子的goalV和goalU的值,使粒子从远走到近。(点击看大图)
12.将前面生成的5个动画快照文件分别导入到场景中,并分别打组。因为各个代替物的行走速率不一样,对他们的goalV倍增值单独控制,代替的循环也要分别控制。选择动画快照循环组执行Particles>Instanser(replacement)选项盒,顺序选择其他的几个动画快照循环组,Add Selection添加到代替列表中。(点击看大图)
13.现在粒子只代替了第一个组,还没有动起来。下面我们要通过一系列的表达式使他们动起来,并且沿着曲面行走。
14.现在粒子只代替了第一个组,还没有动起来。下面我们要通过一系列的表达式使他们动起来,并且沿着曲面行走。(点击看大图)
15.这里我们解释一下各个参数的作用,R值为粒子随机值从0-4,用来分配所要代替的序列,index为自定义的objectindex,用于代替物编号的递进,能够使粒子代替物动起来。Cycleone—cyclefive分别定义了各个循环的长度,Aim定义代替物的旋转轴向,Cscale控制代替物的缩放。(点击看大图)
16.基本思路与探讨(一)中的一样,只不过把贴图序列改成了动画实体代替序列而已。下面就是打灯光,将发射平面附上usebackground材质,最后设置渲染。后期合成。