MMD联动Unity学习笔记 Vol.39 UnityChanToonShader角色设置

前言
上一期我们共同学习了UnityChanToonShader的基本设置,这回我们以Unity酱为例,对人物进行着色器的设置。我们UnityChanToonShader版本以UTS v2.0.6为准,Unity酱的模型我们可以在AssetStore下载,也可以在Unity酱的官网下载。UTS2基本上可以实现插画中Unity酱的表现。在UTS2中,交换着色器还可以对应各种各样的灯光,具有多数的实时点光源的环境和只有方向光的暗淡的环境,和没有方向光的环境,UTS2也是没有问题的。


设置
这个设置可以切换初学者和专业UI界面,没有习惯UTS2的话,我们可以选择Beginner UI。Beginner UI里,我们可以对UTS进行最必要的操作。

这个场景中有两个Unity酱,右侧的模型使用了UTS2着色器,左侧的模型保持原来的着色器。





Unity酱模型的Body(身体)和Hair(头发)材质适用两面显示的材质,我们在UTS2中,将身体和头发的材质的Culling Mode可以设置为Culling Off。
接着,我们将颊红的材质mat_Cheek设置为半透明。

半透明材质,我们可以在NoOutline文件夹内的ToonColor_DoubleShadeWithFeather_Transparent。
Basic Shader Settings菜单里面将Use BaseMap a as Clipping Mask设置为ON。

这个设置是可以使基础贴图中阿尔法通道有效的开关。调整Clipping Level滑动条可以显现出颊红,Transparecy Level滑动条可以微调颊红的深浅度。

下面,我们调整眼睛的材质,眼睛的纹理也同样有阿尔法通道。眼睛的材质eye_L和eye_R设置为NoOutline文件夹里的ToonColor_DoubleShadeWithFeather_TransClipping。
和前面颊红的材质和着色器不同的是,眼睛没有必要选择成半透明。等我们想要使用阿尔法通道的时候,再选择_TransClipping系的着色器。

Use BaseMap a as Clipping Mask设置为ON,适用阿尔法通道。
身体材质的设定。首先打开Sharing Textures的副菜单,1st_ShadeMap的右侧的按钮设置为ON。

改为Sharing BaseMap(共享基础贴图),第一影色用的纹理和浅色用纹理可以共用。打开1st ShadeMap的右侧的颜色板,决定乘算纹理的阴影颜色。原来Unity酱有淡紫色的阴影色,现在我们分出淡紫系的颜色。设置好第一阴影色后,将BaseColor Step的滑杆向右移动,查看效果。调整Step的参数值,调整成感觉不错的阴影。

接着,Base/Shade Feather的滑杆向右拖动,将浅色和第一阴影色的中间羽化。稍稍加强阴影色的强度,再稍微调整。

阴影色的调整已经结束了,我们环绕角色模型来看看效果如何。
身体用的材质,看起来还不错。同样,头发的第一阴影色也可以。从Sharing Textures副菜单里面共享1st_ShadeMap。接决定着乘算第一阴影色的纹理。头发也乘算了浅紫色。第一阴影色决定后,BaseColor Step向右移动。然后,决定阴影色的部分后,用Base/Shade Feather对颜色分隔部分进行羽化。

羽化后,再次调整第一阴影色。调整结束后,旋转整体查看模型的阴影部分效果。
下面我们调整皮肤的材质,顺序和刚才一样。我们将点击共享基础贴图的按钮来共享纹理,决定第一阴影色,调整BaseColor Step给皮肤添加适当阴影。然后,调整Base/Shade Feather来给颜色与阴影间隔增加羽化效果。调整完后,移动查看阴影的效果。与皮肤材质Skin同样,脸材质Face的设定也使用这个方法。项目中的其它材质也同样设置。
眼睛等材质,设定Sharing Texture(共享纹理),BaseColor Step = 0.5,眼睛不需要阴影部分,第一阴影色指定为白色即可。
各材质的第一阴影色设定结束后,再次查看场景的模型。脸的肤色稍微有点暗,可以对脸的阴影颜色进行微调。

在这个阶段,我们简单地把基本的颜色表现移植过来。下面,我们使用UTS2再使画面的效果更加饱满。
选择身体材质,打开RimLight Settings菜单,将RimLight的按钮设置为ON。RimLight激活后,身体会显现出初期的白色边缘光的状态。

设置RimLight Color,为了差别颜色,我们设置为蓝色色系。调整RimLight Power的参数,扩大边缘光的范围。维持边缘光的边缘的亮度,想减少对内侧的影响时,调整 RimLight Inside Mask的参数即可。这个参数可以在切换Pro/Full Control UI后显现出来。我们想要一些红色的色差的感觉。微调RimLight Color的参数值。边缘光设置结束后,我们环绕场景查看效果。边缘光的边缘颜色再微微减少一些。

边缘已经有了不错的感觉,但是头带里和衣服的尾部里也出现了不想要的边缘光。下面,对于不想要的地方,有其它方法对材质进行处理。

选择模型里Shirts网格,将Skinned Mesh Rendered的材质的大小变更为2个。复制身体的材质,制作成2个,将它们分别拖到材质的Slot(插槽)里。身体材质的Culling,之前设置为Culling Off,新制作的材质分别设置为Back Culling和Front Culling。也就是说,使用两面材质是为了将不适配的部分剥离出来。同样,具有头带部件的hairband也使用同样的方法进行操作。

在最后将贴着里侧的面,Front Culling的材质的RimLight Color设定成深色的话,部件的里面的光的问题就可以解决了。
接下来,给Hair材质也追加RimLight。

这里的差色,我们选择紫系颜色。调整RimLight Power和RimLight Inside Mask,再稍微调整RimLigtht Color,大体不错的感觉出来了,移动相机查看一下效果。

从这个角度,再稍微调整RimLight Color。最后使用相机环绕场景确认效果。

下面,再对眼睛穿到前发的前面进行处理,使用Stencil着色器。复制设定完成hair材质,变更为Stencil设定的着色器。

复制后hair材质命名为hair_StencilOut。将hair_StencilOut的着色器变更为Toon_DoubleShadeWithFeather_StencilOut。这样对于"被删除的一侧"的材质,可以使用StencilOut系着色器。从Unity酱的Mesh里选择hair_front和hair_frontside,将材质与hair_StencilOut交换。

接下来,对“删除方”部件的材质eye_L、eye_R、eyebase、eyeline的着色器进行修改。将“删除部件”的材质设置为StencilMask系的着色器。

也就是将eye_L、eye_R设置为NoOutline里面的ToonColor_DoubleShadeWithFeather_TransClipihng_StencilMask,eyebase的话使用ToonColor_DoubleShadeWithFeather_StencilMask,eyeline设置为ToonColor_DoubleShadeWithFeather_StencilMask

着色器改变后,Stencil功能起效后,可以看到眼睛穿透前发。这个是我们在日漫中常见的眼睛突出的效果。
最后,我们再给需要轮廓线的部件添加轮廓线。

需要分配轮廓线的部件有body、body_BackCulling、face、hair_StencilOut、skin。我们从Ouline Settings菜单里设置这些部件,Outline Width = 2,Blend Base Color to Outline设置为ON。Blend Base Color to Outline可以将轮廓线颜色和基本颜色进行混合。

以上就是这期的全部内容,我们来简单总结一下。我们使用UTS2对Unity酱进行了简单的设置,只需要简单最少的几个步骤就可以得到不错的效果,同学们可以实际上手操作,很轻松就可以学会。习惯UTS2的使用方法,接下来就可以扩展到更加复杂的表现。