编写一本以Maya为主的CG教材是多年以来的心愿,在出版、动漫和互联网行业混了不长不短的时间,经验和教训总是有一些的。最大的问题在于:今天发现这个插件不错值得学习、明天在B站上看到又有大神发布了新教程、后天在当当碰到不买不行的好书、大后天……“哟,月底了,公司的进度得加紧“……一转眼的功夫,五年过去了。
所以更准确地说,不能称其为“教材“而应是”笔记“,记录了当年还在手绘动画的前辈讲述的电视台给他的动画片每集付500元;记录了RedShift不支持NURBS而Vray和PhoenixFD是同一家公司的产品;记录了虚幻引擎的BSP笔刷全称是Binary space Partitioning(二进制空间分割)……
至于把这么老厚一摞笔记汇集成册的动力是想知道——能否在普通PC上实现类似《魔戒》或者《星球大战》里的镜头?哪怕只有一帧也好。而且方法要尽量简单,毕竟就算买得起RTX 3090显卡也不一定能付得起足够的时间成本。

图1-引自电影《魔戒》——洛汗骑兵出现在帕兰诺平原
言归正传,《魔戒》无论文学地位还是电影成就都是高山仰止的存在,其中“血战帕兰诺”又是这部高潮迭起的巨著中的亮点之一。Weta特效团队在制作流程中使用了Massive这款集群软件,但是国内只能找到Maya2018以下的版本,而且教程也很少。相比之下,Golaem Crowd可以直接加载到Maya中,对Vray、Arnold、RedShift等渲染器的兼容性也更好,最重要的是,在相当长的时间里,一直不知道如何让数以千计的角色沿着地形移动,直到在Golaem Crowd中发现了NavMesh Creator……这就是那个苦寻不得的答案。
经过测试,发现有了Golaem Crowd的帮助,实现“几千骑兵+一个小山坡”的镜头难度倒不是很大,真正的难度在于——有没有一个足够强大的意志力去面对Maya一而再再而三地崩溃和不断探索“讲好一个故事”的动画技术的好奇心。
★硬件方面可以参考本人的笔记本电脑配置:
CPU:AMD Ryzen7 2.3GHz
显卡:NVIDIA Geforce 1660Ti
内存:16GB
硬盘:5TB
★渲染器:Vray Next V4.30(HD 1080)
★温馨提示:本文约4300字,不计软件和素材包的*载下**时间,完成包括加载授权文件在内的整个流程需要三个小时左右,祝好运!
一,安装以及过程中的坑

图2-安装成功的提示(在about菜单中打开)
如果授权文件加载不能功的话会一直提示为个人学习版,虽然不影响大部分功能的使用,但在渲染时会出现随机的黄色斑块。而且在使用中发现一个诡异的情况:用个人版制作的文件在用永久版打开时会自动切换到个人版。
1-1安装步骤:
(1)首先*载下**Amped,将安装包中的RLM_Windows文件夹拷贝到C盘根目录;
(2)在C:\Windows\System32\cmd*ex.e**,右键管理员身份打开;
(3)输入cd c:\RLM_Windows→install;

图3-安装授权文件
1-2加载授权文件后仍然提示为个人版的问题
之所以在好多天里一直出现这个问题导致授权文件加载不成功,其实原因并不复杂——
最初的安装教程都是从百度上淘来的,就按照里面讲的,在C盘Program Files文件夹里新建“rlm“子文件夹,再把授权文件和rlm应用程序拷贝进去,最后启动rlm等等。问题就出在这里:因为rlm已经在内存中启动,在加载授权文件失败后重新安装时就不能覆盖老的rlm文件,软件就一直显示为个人版,最后发现,只能打开Window的任务管理器,将里面的rlm程序逐一关闭掉,再次安装rlm,问题终于得以解决。
1-3安装好授权文件后,登录http://golaem.com/,*载下**Golaem-7.3.7-Maya2020安装包和GolaemCharacterPack-7.3.7角色库。

图4-Golaem官网

图5-Golaem安装包和角色素材包
1-4安装Golaem Crowd7.3.7后,添加环境变量:变量名→golaem_LICENSE,变量值→5053@localhost;

图6-变量名和变量值
1-5在Maya→Windows→Settings/Preferences→Plug-in Manager(插件管理器),加载Golaem Crowd插件。

图6-加载glmCrowd.mll插件
二、了解Golaem Crowd框架

图7-Golaem Crowd7.3.7主要模块和文件格式
从制作“几千骑兵出现在小山坡上”这一目标出发,首先来分析需要用到Golaem Crowd的哪些模块。
(1) Character Maker→用来定义角色骨骼、动作,建立动作映射,很明显,这个模块在现阶段暂时派不上用场;
(2) Population Tool→建立角色集群;
(3) NavMesh Creator→将模型转换为角色集群沿其运动的地形;
(4) Behavior Editor→加载素材库中的行为;
(5) Simulation Exporter→将Golaem Crowd角色解算出缓存文件,使其成为Vray渲染器可以识别的物体。
了解以上模块,同时也就初步建立了Golaem Crowd的制作流程,接下来就可以进入制作环节。
三、制作流程
3-1导入角色文件和Shader文件

图8-EntityType Node工具图标

图9-Open Character Files窗口
以安装根目录为E盘为例:
角色路径为:E:\Golaem\GolaemCharacterPack-7.3.7\golame\characters
文件名:CavalrySoldier.gcha

图10-导入角色文件
Shader文件路径为同一目录下的shaders。
文件名:CavalrySoldier_VR.ma

图11
★注意:保存文件!
3-2建立地形和贴图

图12-建立地形
(1) 创建Plane,并调整至略有起伏;
(2) 打开Hypershade,创建Lambert材质,赋予草地贴图(推荐从Quixel Bridge里搜索*载下**,就是速度慢点,但重在免费);

图13-Hypershade(材质编辑器)
(3) 建立Directional light×1(用于添加灯光贴图并投射阴影)、 Vray Dome light×1(提供场景照明)
(4)选中VRayLightDome,勾选Options面板下的Invisible;

图14-灯光属性面板
(5) 为Directional light添加灯光贴图(Directional Light Attributes→Color),实现光线集中在画面中心的效果;

图15-灯光贴图

图16-渲染视图
3-3.使用PopulationTool建立角色集群
(1) 双击PopulationTool图标,建立角色分布的区域(可选择右下角的控制手柄调整区域大小);

图17-手柄图标
(2) 在Slots栏中输入生成的角色数量(1000~2000);

图18-Poptool属性面板
(3) 点击Create按钮,建立角色集群;
(4) 点击动画*放播**面板的Play按钮,预览场景。

图19-建立角色集群
3-4.使用NavMesh Creator工具将Plane物体转换为地形

图20-NavMesh Creator图标

图21-NavMesh Creator面板
(1) 参数选择默认,点击Compute and save…;

图22-保存.gse文件
(2)在项目文件夹中保存.gse(Golaem环境文件);
3-5.使用Behavior Editor工具为角色匹配动作

图23-Behavior Editor图标
(1)打开Golaem Behavior Editor,双击entityTypeShape1;

图24-Golaem Behavior Editor
(2) 从Behaviors(行为)窗口中依次拖入beMotionShape(导入动作文件)、beNavigationShape(定义角色之间的避让)、beGotoShape(定义角色动作的目标)三个图标;

图25-拖入行为图标
(3)点击Crowd Target Locator图标,建立集群目标体;

图26-Crowd Target Locator图标
(4)回到Golaem Behavior Editor,双击beMotionShape图标,导入Motion File(路径:Golaem\GolaemCharacterPack-7.3.7\golaem\motions);
(5)双击beGogoshape图标,打开属性面板,修改Target Attributes(目标属性)→Target Mode(目标模式)→Use Target Poptool(使用集群目标);
(6)修改Target PopTool Attributes(集群目标属性)→In Target Poptool→targetShape1;
★以上这几步其实是为了确定三个问题:角色以什么动作运动?角色向哪里运动?角色之间是否规避?
(7)再次点击Play图标,预览场景,如果之前的操作无误的话,可以看到建立的骑兵集群开始前进了……

图27-预览场景
(8) 建立摄影机,在摄影机视窗中检查画面;

图28-摄影机视图
★在第一次看到大队骑兵出现在地平线上的时候真的是差一点就泪流满面,经过一个多月的屡败屡战(其中光搞明白授权文件为什么不能加载这个问题就搭进去10多天),终于为完整的3D动画版《指环王》砌上了第一块砖。
3-6.解算动画并渲染

图29-Simulation Exporter图标
(1) 点击Simulation Exporter图标,打开Golaem Simulation Exporter(Golaem解算输出模块);

图30-Golaem Simulation Exporter面板
(2) 点击“Export”……
(3) 打开VRay渲染器窗口,开启GI,将Resolution(分辨率)设为“HD 1080”。

图31-VRay Render Settings面板
(4) 渲染完成后保存PNG图片,在Photoshop里加上对比度高些的天空图片(或用VUE导出),如果时间充裕的话再加些花花草草效果会更好一些。

图32-加入天空背景的预览镜头
四、总结:
因为Directional Light逆光的问题,骑兵看起来过于灰暗了,不过本节的重点是掌握Golaem Crowd的框架和常用工具,对贴图和灯光都压缩到了最低限度,后续在替换原创骑兵角色后再加以优化。
总体来说,Golaem Crowd提供了相当大的灵活度,如“Behaviors”和“Triggers”中的图标完全可以灵活组成以完成不同的功能,本文中选择的图标仅供参考。如果发现文中有言不达意、表述不清的地方请多多指教,谢谢。
附:
草地贴图(原图尺寸:8K):

图33-贴图