表情、蒙皮和灯光篇之Maya卡通角色制作
下面我们接着上一篇继续讲解表情、蒙皮和灯光篇。
教程思路
表情与骨骼绑定:
1.表情绑定。
2.表情控制器。
3.角色蒙皮。
4.分配权重。
5.动画调节。
角色灯光与渲染:
1.分层渲染。
2.用于头发照明的灯光。
3.获取头发在其他物体上投影。
4.用于卡通材质的灯光。
5.卡通线框的选择。
【表情与骨骼绑定】
Maya2011虽然没用提供像3dsMax那样的CharacterStudio骨骼系统,但是它所能完成的效果远比CS系统强大。较为专业的骨骼绑定师都会采用自定义的骨骼系统来完成各种复杂的动作要求,例如IK/FK的切换,关节的联动等。当然,maya也有一些实用的骨骼插件可以选择,如AdvancedSkeleton,TheSetupMachine。
我选择的是Maya内置的FBIK系统。尽管这套来源于MotionBuilder的骨骼系统简化了很多功能,但是保留了精华的部分,足以完成大多数的动画要求。
由于FBIK会另外创建一套FK骨架,用来进行IK/FK的切换,因此在进行蒙皮时我们要注意所选的根骨骼应为角色的源骨架(也就是在生成FBIK系统之前的骨架)。有关FBIK系统我已经在之前的博文中有详细说明,这里不再重复。顺便提一点个人对绑定姿势的看法:
通常的T字形模型姿势,对于建模和骨架搭建都是很有利的,但是动画中角色会将手臂抬到这个极限姿态的情况并不多,因此,我选择比较折中的手臂45度下垂的绑定姿势。
现实中,人的肩关节上臂是不能外展超过90度的;当我们将手臂高高举起的时候,由于锁骨和肩胛骨的限制,这时是肩肱关节发生了扭转,而不是其在原旋转轴基础上继续发生动作。虽然三维动画中,我们经常会忽略这个骨骼运动限制而进行蒙皮动画,但如果要进行严格的写实动画,我们应该注意这个生物进化上的须知。
1.表情绑定
表情我仅使用BlendShape来完成,包括眨眼动画;而眼球转动使用了目标约束。
2.表情控制器
根据需要,创建了一套简单的表情控制器,使用驱动关键帧来控制BlendShape的权重。
为了便于表情控制,可创建一个正对表情控制器的摄像机,然后将摄像机的窗口“撕下(tearOff)”即可--浮动窗口正是maya的一大特色。
3.角色蒙皮
FBIK系统在动作的调节上几乎是完美的,但为了能更好的进行关节控制,则需要在绑定角色的情况下来测试。蒙皮的初始设置也很重要,SkinningMethod为WeightBlended,MaxInfluences为3;去掉勾选MaintainMaxInfluences;DropoffRate设置为3。
4.分配权重
Maya2011虽然新增了交互式的权重绘制方式,不过效果上并不比手动绘制强多少,所以我不打算使用交互式的胶囊包裹进行。这里我选择混合权重的方式进行绘制。这是Maya2011在蒙皮上较为先进的新功能,可以将传统蒙皮和双重四元蒙皮结合。如在关节的地方使用双重蒙皮权重(DQBlendWeight),这样可以在不使用“影响物体”或肌肉系统的情况下解决关节弯曲时的皮肤挤压穿插问题(尽管细节上能处理的不多,但也可应用于多数情况)。注意,DQ融合权重与关节无关,它是直接对模型点进行新权重的增加。
欧美的3D卡通角色都采用细小的关节,除了风格上,在骨骼绑定的时候也可省下不少工作。
5.动画调节
FBIK的好处是可灵活的对关节进行IK/FK和pin状态的切换,但不足的是它用于控制动画的效应器被赋予了很多连接,初始的位移和旋转数值并不为零,甚至左右的效应器数值还不对称。如果对效应器使用各种约束控制器,将会出现动画异常的现象。
【角色灯光与渲染】
1.分层渲染
新建渲染层,将pfx头发和角色加入到层中。Maya中还无法对笔刷特效设置灯光链接,因此需要在渲染层中操作。头发渲染层中的角色模型使用useBackground材质,用于模型和头发的相互遮挡。
2.用于头发照明的灯光
使用多个聚光灯,在不同的空间方位照亮头发细节(如果使用平行光,可集中在一个位置,但需要的数量比聚光灯多),模拟全局光。注意要关闭辅助灯光的高光照明功能,也就是去掉EmitSpecular的勾选。
3.获取头发在其他物体上投影
使用一个主灯照亮头发的高光区域,并开启深度阴影。使用MayaSoftware渲染时,Pfx头发的阴影渲染不支持光线追踪阴影,因此为了得到好的效果,深度阴影的分辨率采用4096,FilterSize使用较高数值5,Bias设置为0.001-0.005之间。FilterSize用于模糊阴影得到柔和效果,而Bias是偏移阴影像素,数值增大会逐渐减少阴影的区域,直到消失。
如果关闭深度阴影中的UseMidDist,会造成物体上的投影产生斑点;这是因为投射阴影的物体距离灯光太远,超过阴影的深度值,即使提高深度阴影贴图的分辨率,也无法避免这种情况,因此通常使用深度阴影都需要开启该项。开启后,maya只计算临近的投影物体到灯光的距离,然后对距离值进行平均,得到合适的阴影效果。
注意:渲染头发自身阴影时一定要关闭UseMidDist选项,因为这是根据距离来平滑阴影的算法,对于头发这样细小的物体,成影效果反而不好。不过pfxHair没有分离castShadows和ReceiveShadows的功能,头发自身投影和对物体投影是同时进行的(使用mentalRay渲染器则可支持两者的分离),在渲染阴影时,灯光UseMidDist的设置就产生了冲突;因此,如果需要头发自身投影和对其他物体的投影,应将头发与自身投影作为一个渲染层,而其他物体和头发对它们的投影作为另一个渲染层。
4.用于卡通材质的灯光
卡通材质只需要一个主光源即可(rampShader不接受任何辅光的色彩影响),这里我使用的是和头发主光源一样的灯光。当然,可以根据需要在聚光灯和平行光之间选择。
5.卡通线框的选择
虽然增加卡通线框效果,会让模型的轮廓更清晰,但卡通线也存在一些较难解决的画面问题:在镜头的远近效果上。例如,人物手指的卡通线,当镜头较近的时候,效果还算不错;但稍远距离时,一些细节上的过于突出反而会影响整体效果。
解决方法:
1.根据镜头远近效果,决定是否渲染卡通线。
2.将卡通线分层渲染,在后期调节透明度。
3.关闭原pfxToon卡通线的CreaseLines,然后再对模型增加一个新的pfxToon卡通线节点,只开启该节点的CreaseLines,关闭其他线条功能。通过新的pfxToon节点的CreaseLines下的HardCreasesOnly选项,对模型的局部转折进行硬边操作,相当于手动绘制卡通线。于是可以根据镜头来调节局部线条的粗细以及不透明度。
相关教程:
Maya卡通角色制作教程
模型材质篇之Maya卡通角色制作
头发绑定篇之Maya卡通角色制作
布料绑定篇之Maya卡通角色制作
场景渲染合成篇之Maya卡通角色制作