Lightwave3D中制作人物跑动的群体动画
作者:Cyril Kravtchenko
本教程由ChinaVFX.NET翻译整理

导读:本片教程讲述了如何使用 Lightwave 3D(6.5以上版本),来制作一个500个士兵组成的人群在平面上直线运动的动画效果。
1.创建一个角色奔跑的动画循环。
首先我们要创建一个角色奔跑的循环动画。你可以自由的选择任何方法来制作(包括使用布料模拟),但一定要保证第一祯和最后一祯要相同。下图是我制作的一个15祯的动画(0到14祯,点击图片可放大),共分9个动作(这是一个参考,你可以根据自己的情况来设定),第0祯和第14祯相同,动画的循环部分为0到13祯。角色的运动是在原地进行的,类似于踩单车的动作(游戏制作中经常使用这种方法),它的移动会在后面的步骤中使用粒子来控制。
注意:
1)确保你的角色使用了正确的比例单位,比如将角色的身高设为1.80米,否则将会在后面的步骤中遇到问题。
2)本篇教程中的角色面朝Z轴的负方向。

2.将动画转为变形序列。
制作一个上百人组成的群体动画,如果使用骨骼来控制的话,将占用大量的内存和计算时间,而且在 Lightwave 中几乎不能操作,最好的方法是使用 Particles FX 里的 FX_Linker 功能,因此我们需要一个包含动画的单个物体。
在第0祯,使用"Save Transformed Object"储存第一个变形,在2/4/6/8/10/12几祯重复同样的操作。最终你将得到
7个物体。

注意:
1)使用祯的位置而不是物体的次序来为物体命名,这可以避免之后产生混乱。例如 "Run0","Run2","Run4"等等。
2)如果你的角色使用位图贴图,应该为贴图指定好UV坐标来保证纹理在动画过程中始终保持正确。

现在,通过这些物体构成变形来重新制作动画:物体1变形到物体2再到物体3等等。这里我们将使用 Lightwave 中一个快要被遗忘了的工具"Multi Target/Single Enveloppe",这个功能允许你使用一条曲线来控制所有的变形。
在 Layout 中导入7个物体并复制第一个(我们将使用它完成变形动画的循环制作),除了第一个物体,将其它物体的"Object Dissolve"值都设为100%(使这些物体不可见)。进入这些物体的"Object Properties>Deform"面板,为它们指定 morphing target。
注意:
复制的"Run0(2)"物体没有指定 morphing target,它只用于完成动画的循环。

勾选第一个物体的"Multi Target/Single Env",点击"E"按钮进入 Graph Editor,envelope 中 value 值的意思为:
0—100%物体A变形到物体B,101%—200%物体B变形到物体C,201%—300%物体C变形到物体D,依此类推。

如下图制作变形曲线,选择"Post Behavior>Repeat"使动画曲线自动无限重复。

3.使用 Particles FX 制作群体运动
我们将使用粒子来制作群体运动。建立一个新场景,添加一个"Null"物体命名为"CROWD"。在"Object Properties>Geometry"面板中,选择"Fx Emitter"。参数如下图所示(图上未显示出的参数保持默认)。

现在你的场景中将在第0祯生成500个粒子,在50平米的正方形平面上以5米/秒的速度运动。"Particle resistance"参数允许为粒子移动的速度加入随机的变化。动画效果如下图所示(点击图片)。

注意:
1)教程中的动画共长200祯(8秒,每秒25祯),你可以根据喜好延长时间。
2)保证使用真实比例尺寸(比如角色高1.80米而不是30厘米),否则所有参数将产生错误。
4.制作人群
使用"Load Items From Scene..."导入刚才制作的变形序列动画。现在你的运动小人将出现在场景的中央。下面我们使用"FX_Linker"把角色连接到每个粒子上。

注意:
事先保存好场景,"FX_Linker"的参数错误无法返回修改。
保存场景后,点击"FX_Linker"如下图设置参数。

注意:
复制时选择第一个物体而不是变形目标。我们将复制500个,你可以少复制一些加快测试速度。如果你想复制更多的物体,需要同时提高粒子的数量。
因为用于复制的这个物体("Run0(1)")没有连接到粒子,因此将其 Dissolve 值设为100%。

当你观看动画效果的时候会注意到所有的角色都往一个方向跑,奔跑动作没有时间上的差别,因此看上去有些假。可以这样解决这个问题:将它们分成10个组,每组50个人,第一组保持初始的动画时间,之后每个组的时间都提高1.4祯。
1)打开 Scene Editor ,选择列表中前50个物体(忽略变形目标物体),从"Run0(2)"到"Run0(52)"。
2)选择"Shift Keys"加入时间的变化。在200祯的范围内,每个组都比上一个多增加1.4祯。

第一组("Run0(2)"到"Run0(52)")增加1.4,第二组("Run0(3)"到"Run0(103)")增加2.8,第三组("Run0(104)"到"Run0(154)")增加4.2,依此类推,总计14祯。你可以根据喜好定义增加的祯数,但要保证时间变化的均匀。
完成后如下所示(点击图片观看动画)。

注意:
1)从第14祯开始播放动画,因为之前还有角色没用开始运动。
2)还可以为动画加入更多的细节,比如在"Shift Keys"之前使用"Scale Keys",不过要注意时间和速度的准确。本片教程将不再做进一步的介绍。