C G写实角色创作研究
2017-07-28叶梓琪
叶梓琪
(广州美术学院 广东 广州 510000)
C G写实角色创作研究
叶梓琪
(广州美术学院 广东 广州 510000)
本篇论文的主题是研究和探讨如何在三维软件里制作写实的人物角色。在早期的电影中出现的神话人物,都是由真实的人物通过化妆技术去扮演,并没有运用任何的电脑特效。之后,计算机的普及和科学技术的不断发展,我们开始运用三维技术来模拟现实中的物体。本文将从起初基础的模型制作至最后的渲染合成,进行一次深入的研究和探讨。文中将讲述在制作中遇到的技术难点,以及物理渲染的一些基础理论,包括如何运用CG的技术模拟真实的灯光,研究真实感的皮肤制作构成,在三维里面如何一步步去实现写实的效果等等。
动画; CG; 渲染; 合成; 写实
一、前期策划与设计
此次制作需要运用到的软件有Photoshop、Maya2016、3D Mari和After Effect,这些都是当前主流的动画制作软件。例如,Maya这款软件会运用到的渲染引擎是Vray,其物理渲染非常真实,且渲染速度也与其它的渲染引擎相当。3D Mari这款绘图软件为当年拍摄电影《阿凡达》而独立开发出的一款绘图软件。它能在三维空间里对模型进行立体的纹理绘画,可以输出高达32k的分辨率,操作功能非常强大,能够实现非常逼真的效果。
在建模型之初,笔者找了很多人像的参考图做参考。因为很喜欢美剧《西部世界》里的神枪手詹姆斯·麦斯登,这样就将选择的范围缩小了很多。以他的气质和形象,最终设计出符合自己心目中的人物模型。
首先,在photoshop软件上画出人物的基础轮廓(一张顶视图,一张侧视图,一张正面图)。每一张三视图的人物嘴角、眼角、鼻子和耳朵都要在同一水平线上。在这个基础上再添加五官的细节,把这些设计参考图完成后,就正式开始模型的制作。
二、模型制作
将做好的三视图导入Maya,开始模型的制作。在模型的制作过程中,笔者使用的是多边形建模命令,要求每个面都是四边形。然而,偶尔也会出现一些三角面,只要在不影响布线规律的情况下是可以接受的。模型最终的质量取决于合理的布线,所以布线非常重要。在制作的时候,要根据人物肌肉和骨头的走向进行合理的布线,这样做出的模型在之后的绑骨架和细分时才能减少失误。
接下来要将模型进行UV拆分。首先要明白UV的含义,UV是三维模型里的X,Y,Z三个坐标轴,每个坐标轴精确记录每个顶点的位置,UV则是把模型的表层展开到平面后,所有点坐标投射到平面上的精确位置的总和。人像的UV是要比几何体的UV拆分的更为复杂,在这里笔者使用UV工具里的平面UV投射,把人像直接投射到UV网格中,然后把两只耳朵的UV单独剪切出来,进行UV平滑,再把有拉伸的地方进行切割,最终让每个网格能尽快展平开来。在Maya2016版本里可以直接显示出UV网格,因此要确保每一个UV的平均和是否有拉伸。然而,在Maya的UV拆分中有个弊端,每个UV展开并赋予了纹理贴图以后,连接处都会有一条裂缝,这是由于贴图在UV空间发生了错位造成的,所以之后要使用3D Mari对其进行贴图绘画以解决这个问题。
在完成基础模型的UV后,要把模型导入Zbrush软件里进行皮肤纹理雕刻。首先调整一下模型的比例和外形,然后把这个模型细分成三个等级,雕刻出嘴巴,耳朵和眼角的细节。最后把模型再细分一个等级,进行皮肤的纹理雕刻。完成雕刻后再输出一张法线贴图Normal Map(在输出图片格式我选择了4k的分辨率)。法线贴图的作用是在CG动画的渲染下,可以将一些高细节的模型通过法线烘培,然后赋予到低面数的模型上。
接着我们重新回到Maya软件里,创建一个新的Vray材质球,把法线贴图连接到凹凸属性里,选择法线空间,就能让一个低面数的模型显示出非常清楚的皮肤纹理。
三、灯光的运用
接下来是很重要的打灯环节。为了实现一个真实的灯光效果,我们要仔细思考需要创造一个怎样的光效环境效果,室内的还是室外的,白天还是夜晚的等等。这里选用的是Vray渲染器,以求达到最逼真的物理渲染效果,且渲染速度适中,还有其自带的Vray灯光。
同时,运用三点布光,即使用3个灯光摆在三个不同方位的方法。这三个灯光分别是主光源光Key Light,辅助光源Fill Light和背景光源Back Light。正是这三种灯光构成了常用的三点布光法。
首先,在没有灯光的场景中添加一盏Vray的Vray lightrect灯光,即区域灯。它的亮度和发光的强度相关联,灯光的亮度和面积大小是关联的,就是说面积越大,灯光的亮度也会增强。区域光一般是用来模拟阳光从窗户射入的光线等情况,它以物理计算为基础,渲染出来的光照非常写实逼真。
主光源一般会使用三维软件中的平行光或者区域灯。在这里建一个平行光为主光源,模拟阳光、室内灯光等。由于主光源是整个场景中的光影主要来源,也是产生阴影的主要因素。这盏主光灯是摆在人像正面左侧的位置,位于摄像机的45度角,这盏灯默认的强度(Lntensity Multiplier)为30,把它设置成24(具体数值参数要根据实际情况来设定)。然后建立一盏侧光灯在人像正面的右侧,刚好与主光灯形成90度的夹角,辅助灯的强度为16,这样就可以把人物的光影明暗交界线显示出来。然后,在人物后面建一盏背光灯,灯光强度为28,把人物的轮廓线突显出来,让角色更有视觉冲击力,通过这三盏灯基本上可以完成人物的光照效果。
为什么默认的灯光强度为30,但这三盏灯光的强度都低于这个数值呢?渲染效果确实会比较暗,主要是接下来还要添加一盏环境光来拟补灯光的不足。这个灯光是运用Vray的VRayLightDome,在此之前要预先挑选好一张HDR贴图,因为这盏灯的环境光是根据HDR图片里面的环境进行模拟光照的。当然选择HDR贴图也要根据之前3点布光的效果相结合,如果是模拟室内的光照,正常就要选择一张室内的HDR图片。在VRayLightDome的Texture下勾选Use Dome Tex,然后在Dome Tex里添加HDR贴图,添加完以后,一定要在Parameters的属性里(Horizontal rotation)设置与主光源的方向匹配一致。在这种情况下如果进行渲染整个画面都会曝光过度,所以要把VRayLightDome的灯光强度改为0.3(VRayLightDome默认的灯光强度为1,与Vraylightrect灯光默认强度有所区别),这样才能平衡整个场景的照明效果。当然,这些只是数据,要根据不同情况多次尝试出最好的效果,所以明白其中的原理才是最重要的。
四、纹理贴图与材质球
完成灯光测试后就可以进行皮肤的纹理绘画了。在绘画之前,我们需要理解真实皮肤的构造,这也是基于Vray物理渲染引擎的需要。例如,灯光会根据真实的折射渗透到皮肤里然后再反射出来,所以一定要了解Vray渲染引擎的物理计算方式,才能制作出真实的皮肤效果。人类的皮肤主要分为表皮层、真皮层和皮下组织。理解这些图层的作用和含义后,将这三层皮肤分别画出来,再绘制皮肤的凹凸和高光部分。
这三张贴图需要连接在VRayFastSSS的皮肤材质球里的Overall color、Diffuse color 和Subsurface color 这三个图层里。
人体皮肤在3D模拟上半透固有色的控制需要用到3张贴图。第一张是表皮层(Overall color),这个图层需要把皮肤的细节绘画上去,例如斑点、伤痕之类。最重要的是要控制它的灰度和饱和度,因为Overall color的图层是根据黑白颜色的深浅进行识别的,颜色越接近白色渲染透射底下的一层就越清晰,反之则越低。第二层是漫反射层(Diffuse color),需要用平面软件绘制皮肤真实的固有色,色调偏中性;中间真皮层会在diffuse层的基础上稍作偏绿调的调整,以达到被包裹的半通透性肤质效果。第三层(Sub-surface color)是毛细血管层,此层的制作会夸张地描绘血管,以及充血的范围,故整个贴图色调都偏红。
高光和凹凸贴图这两个图层相对比较容易理解,因为这两张贴图只需要黑白通道就能达到预期的效果。高光图层,即需要反光的地方就越亮。一般鼻子,额头和嘴唇这些地方的高光都是明亮的,其它地方就相对较暗。凹凸图层,则颜色越亮的地方就会越凸出来,反而颜色越暗就越凹进去。
如果按功能来分类,贴图基本可以分成三大类。第一类,改变对象颜色的贴图;第二类,改变对象形状的贴图;第三类,能改变任何动画状态的贴图。
完成贴图的绘制后,还需要理解贴图与材质球之间的相互关系。贴图相对于材质所体现的意义,是以平面图像的像素信息取代整片相同的像素信息。模拟真实人物皮肤用到的技术,并不只是简单的将模型点立体坐标均匀拓扑在一张平面2D坐标上进行颜色信息采样(复杂的Sub-surface Scattering肤色质感模拟),更是需要让原始模型的每一个几何表面都均作法线,并以RGB三个不同的参数通道进行标记。改变照明范围(Normal map),却不会影响渲染输出的Alpha遮罩范围。然后通过模型点在三维坐标上沿面法线灰度值定义一个距离,拓展整个模型实际渲染遮罩外形,以更能体现美观细节的范围(Displayment map)。
以Maya的材质着色系统为例,能通过渲染窗口显示出来的模型都已被赋予了材质,反之却未必。当用户随便建立一个被赋予材质的几何模型的时候,无论是否有光照,都能够在渲染输出的结果中带有自己的Alpha通道,以此能推断出Maya材质是否被赋予在模型上,也决定了模型能否正确地在渲染器中输出。那么,新建立的几何模型他们没再赋予任何材质,何以能够完成渲染输出?其实是因为建立任何模型的时候,Hypershader窗口里面的Lambert1已经默认和他们完成了材质交互,当断开模型和材质之间节点的时候,再次渲染便没有了任何的Alpha遮罩信息。
Maya三维动画的制作流程中,纹理表面着色必须通过材质(Materail)赋予来完成完整逼真的立体视觉效果。由于着色器(Shader)采用实时的非明暗着色算法,因此硬件要求远远达不到其反馈真实效果的需要。在常规的工作流程中,采取的成像方案始终是把具有物理照明的复杂3D场景逐帧删格成2D序列,这便是真正意义上的渲染输出(Render Output),为具有真实照明逻辑的影视作品提供在着色层面上准确无误的素材。
五、渲染与后期合成
测试完材质渲染以后,需要渲染输出8个图层,RGB COLOR固有色图层, DIFFUSE漫反射图层,SPECULAR高光图层,REFLECT 反射图层,SSS皮肤图层,NORMALS法线图层,LIGHTING灯光图层,ZDEPTH Z通道图层。
三维动画分层渲染输出之后,得到的素材需要进行有逻辑地合成。一般渲染层可以有角色层,场景层,灯光层,天光层、直接光照层,间接光照层,红绿蓝通道,环境光遮挡层,深度层,法线层和动态模糊层等等。进行分层的时候先按物体来分,再划分附加的效果层。比如在室内的场景中,角色常为单独的一层,场景也同样。而深度、通道等层就要包含两者在其中。
合成的思路常见的是先把所有物体的固有色层统一合并,并且各自套于自身的通道遮罩中,先确保画面的合理逻辑性,再将遮罩加减所产生的缝隙处理干净。其实在所有物体固有色合并好的情况下,已经具有了一定的画面完整度。然后制作人需要做的便是调整画面的美感和艺术成分。 颜色调节需要常年的积累和敏锐的艺术触觉,是最重要的CG制作环节之一,对于CG制作者来说要求异常苛刻,当中的色阶、色相、对比度、饱和度...等等参数都要进行有效的有机整合,否则单靠渲染输出来的图像会相当不协调。
结语
本次对CG写实角色研究,有温故知新的意义,主要是探讨和研究CG角色的整个制作流程,在制作的过程当中如何理解和解决遇到的技术要点和难点,通过本次的研究探讨对于CG角色制作有了更深层次的理解,为国内高等教育的CG动画教学提供一些借鉴和参考。
鉴于现在数字科技的发展日新月异,CG的制作方式也多种多样,但制作的原理和思路不变,只有深入地理解其中的原理,才能不论运用什么软件也能制作出逼真的CG角色,正如笔者一直秉承的教学理念,授人予鱼,不如授人予渔。
〔1〕(美)班克罗夫特.动画角色设计.北京:清华大学出版社,2014(2);
〔2〕(美)约翰卡尼梅克.动画人的生存手册.中国青年出版社,2013(5);
〔3〕(美)特雷西.米勒.功夫熊猫3电影艺术画册设定.新星出版社,2015(12);
〔4〕(美) Jeremy Vickery.高效电影级灯光照明理论及实例.教学视频,2011;
〔5〕(美)Hardy Fowler.光线与色彩视觉艺术训练.视频教程,2014;
〔6〕(美)詹姆斯格尔尼 (James Gurney).色彩与光线:写实主义绘画指南.人民邮电出版社,2013。
叶梓琪(1987--),男,硕士,助教,研究方向:视觉艺术与科技影像专业,本科与研究生毕业于法国巴黎第八大学——视觉艺术与科技影像专业。研究生毕业于希腊雅典美术学院---视觉艺术与虚拟现实专业。现任广州美术学院教师。