在这个教程中介绍了网游《赤壁》其中的一张宣传壁纸的“甘宁”的完整制作过程。完美时空最新力作大型网络游戏《赤壁》是首款国产史诗战争网游,携手吴宇森同名电影,尽显独特震撼魅力。
效果图1
效果图2
当我拿到甘宁原画的时候,就有制作这张图的想法了。“他常聚合一伙轻薄少年,自任首领。他们成群结队,携弓带箭,头插鸟羽,身佩铃铛,四处游来荡去。当时,百姓一听铃响,便知是甘宁这帮人到了。时人以“锦帆贼”呼之,甘宁在还没成为将军之前是“江贼”。我想他的形象应该有点水浒的感觉,有点狂,有点痞,有点游侠的味道。
效果图3
效果图4
首先是建模,我在MAX里使用poly建立了甘宁的头部和上身,头部和上身以外的身体由于看不到就没必要全部建立了。我在MAX里只是详细将脸部细化了,上身和胳膊却只是简单的布线,目的是以后到Zbrush再进行细节雕刻。
图1
图2
然后我对照这身体建立了个标准的bip骨骼,将身体和骨骼对齐。这样做的好处是,我们可以对着这个标准的骨骼建立剩下的模型。在建立模型的时候人体比例就不会出错。而且在模型建立完毕以后进行蒙皮也将变得简单。
图3
在建立某些有金边的片状盔甲时可以先从边建起。首先做一条样条曲线,然后转换为可编辑多边形,中间只用拉出一个平面即可对称。在修改器堆栈中再加入bend修改器使模型更有体积感。使用同样的方法建立其他的带金边的盔甲模型。
图4
图5
图6
图7
图8
图9
图10
图11
图12
图13
继续建立了盔甲和衣服的模型,在建立模型的时候一定要考虑到UV的分布,我在建立模型的时候是建立好一个零件就把它的UV按照我的想法分好,避免了以后东西多了后再去分的时候麻烦。在制作模型的时候还要考虑整合各个模型的衔接合理性。由于我制作的是静帧,所以不去考虑模型的面数,和贴图的大小(当然也要考虑机器的承受能力)。
图14
图15
我的同事使用maya帮助我建立了甘宁的武器。将建立好的模型全部拼合,并且和我们事先建立的的BIP骨骼一一对位。这也方便我们下一步的蒙皮工作。在蒙皮之前要将所有的UV和贴图搞定,不然动作摆好了再发现UV和贴图没做,再去补救就很麻烦了。
图16
图17
图18
然后就是蒙皮了,由于这个模型的盔甲比较多,需要蒙皮的地方也就只有上身的人体和裤子,其他的盔甲只需要使用链接工具链接到对应的骨骼上就OK了。max的蒙皮修改器的绘制权重功能可以很方便完成蒙皮的设置工作。在绘制权重的时候,先将骨骼做一些动作的动画,可以在我们绘制权重的时候查看模型做这些动作的蒙皮是否正确。
图19
人物搞定了,搭建一个船上甲板的场景,为了使它更像船而不是码头,我做了很多拉帆的绳索以及船锚。模型都很简单,在材质上下了点功夫,让这艘船有潮湿的感觉。
图20
图21
把我们蒙皮好的人物模型合并到场景中来。摆好动作,然后就可以将人物模型塌陷掉,再把骨骼删除,目的是提高运行速度。在运行这样大场景的时候也可以将把模型的贴图都不显示在视口中,具体做法是“视图”→“取消激活所有贴图”,然后将使用了“涡轮平滑”的物体都使用“渲染迭代次数”,而不是在视口中显示。所有做的这些都是为了在我们运行一个大的场景文件的时候速度不会变得难以忍受。
图22
图23
图24
把塌陷掉的上身模型导出为OBJ,用ZBRUSH打开,在使用ZBRUSH进行雕刻之前一定要确认模型的UV。制作人物的肌肉细节。我为了塑造一个硬汉的形象,强调了咬肌和颧骨的轮廓。一开始我想到用法线贴图在MAX里表现这些细节。但是发现法线贴图并不能满足我对细节的要求,我将雕刻好的模型直接输出到MAX,幸亏雕刻好的模型只到了50W面,我的机器还能承受。
图25
图26
图27
图28
图29
图30
考虑到最后成品海报的可能会用很多地方,以后可能会按照要求进行裁剪,所以我没有去考虑构图,直接渲染一个10000*10000的大图。这里我使用mental ray渲染器。在确定好摄像机后就可以开始打灯,在这个场景中使用一个简单的3点照明。我的主光源使用了“mr 区域聚光灯”。“mr 区域聚光灯”的区域阴影效果非常不错,正确按照场景设置光源的大小。(在拖动微调框进行调节的时候可以在视口中看到大小的变化)采样给个10已经很大了,10以上就渲染就非常慢了。由于是一个开放的场景,没必要使用到全局照明,只开启最终聚集就可以了。在采样质量的过滤器中选择“mitchell”。每像素采样数的最小值个最大值1和16就可以满足画面的要求,再高就没有意义了,除非你的场景当中有很多很细的线,渲染出来还有锯齿,可以尝试将它们调高。
图31
图32
图33
图34
图35
要渲染的图很大,一次性渲一张成图是很困难的。虽然可以在首选项设置中将位图大小阈值改大,但是机器内存的大小是不能改变的,而且一次性渲染一张10000的图出错的机会太大了。在这里我使用了“放大”模式进行区域块渲染,把10000*10000的图分成100份1000*1000的小图(在视口配置中可以精确的设置你将要渲染的块面的大小和位置),再将小图拼合起来。这样就避免了在渲染时候一次性在内存中生成一张10000*10000的bitmap。大大的降低了渲染出错的风险。
图36
图37
图38
我首先将场景甲板渲染出来,然后再将除了皮肤以外的盔甲衣服武器都渲染出来然后在PS里合成。
图39
图40
我们再来渲染皮肤,这里皮肤用到了mental ray的SSS Fast Skin Material材质。我制作了5张贴图来控制了sss材质一些参数。我在PS里面修改照片和手绘制作出了表皮层,我把表皮层贴图的色调和细节做了修改,做出真皮层,在真皮层绘制了血管。然后将模式改为灰度,继续制作出了凹凸图和高光图。我这个角色比较特殊,有一大片的纹身,那么我只在表皮层绘制了纹身。再来看材质,有的朋友做3s材质的时候喜欢照抄别人的参数,却不知道照抄是没有用的。因为每个皮层的参数数值都是和你场景物体尺寸大小有着很大的关系!这就是有的朋友拿着别人的参数有时候能做出很好的效果来,有时候却不能,甚至出现大块杂点,渲染出错的原因了。我们应该在单位尺寸中将“显示单位比例”打开,然后再在场景中实际测量物体的尺寸后再来调节3s材质的参数,多大的距离透光?多大的距离散射?就一目了然了。当然要做出好的3S效果,灯光也很重要。
图41
图42
图43
图44
我使用了max9的Hair&Fur来制作头发,为了做出游侠的味道,他的头发应该是乱乱的。将头皮分离出来,在分离出来的头皮上生长头发,方便我们调节。我把头发分成了两组,前面一组,后面披发一组。这样不至于在制作发型的时候很混乱了。多次的使用“拆分选定头发组”这个按钮。来使甘宁的头发更有一缕一缕的感觉。我把头发分层输出,这样我可以很好的控制头发的渲染结果,也可以节约渲染时间,而且在后期处理的时候也容易的多。
图45
图46
图47
图48
我使用了MAX上着名的景观插件“Dreamscape”来制作江面和天空。同样Dreamscape的参数也是严格按照你场景的实际大小来设置的,如果你的场景的尺寸不是正常的话,比如制作出一个只有1米的海面,那么你的海面就只会像一个1米的水一样运动。网上找到了一个中国古船的模型,稍做修改。
图49
图50
再制作一个旗帜,使用Cloth模拟迎风飘扬的效果,为Cloth加上风力,模拟好后,将模拟比较满意的几帧“快照”复制几份。分别插到船上,再站一些小兵。成组复制几个,换换小兵和旗帜的位置。这样“锦帆贼”的舰队就组建好了,将船和Dreamscape制作的海面和天空一起渲染出来。
图51
图52
图53
图54
图55
图56
我将渲染的图在Photoshop里拼合,江面的浓雾应该也出现在甘宁的船上,在这里我使用了MAX另一个插件FumeFX,用它的烟雾来模拟船上上的雾。首先我把我的场景优化了,因为FumeFX在模拟的时候计算量是非常大的。将优化后的物体全部添加进模拟对象中来,作为碰撞物体。模拟出的烟雾在甲板上翻腾的效果,将渲染出的烟雾叠加到刚才拼好的图上。然后再打开没有优化的场景,输出阴影通道和Z深度通道。将阴影通道直接使用“正片叠底”叠加上去。最后将Z深度使用“色彩范围”将深度信息存储为通道,然后使用“镜头模糊”滤镜制作出景深效果。
图57
图58
图59
图60
图61
图62
图63
图64
最后在Photoshop里进行最后的完善和修饰。好了,现在大功告成了!
图65