【MMD】MMD三渲二的终极解决方案msToonCoordinator丨核心概念丨赛璐璐丨技法丨资料

发布时间 2023-11-01 12:30:41作者: 小林呓

本篇最开始放在B站的专栏,感觉B站的专栏越来越不方便,想增添补修都非常麻烦(B站专栏只允许修改三次),所以逐步搬迁到博客园。

感谢MMD、MME的所有的制作者。

使用msToonCoordinator渲染 

前言

一、这是经验分享,不是专业性质的文章。

二、不要在评论区刷U3D、UE、Blender、C4D更强之类的话,可以分享用其他软件辅助制作的经验,而不是在这里空谈炫耀,在我看来这种事毫无意义。

三、我不喜欢说话所以不做视频,如果你喜欢的话可以在参阅完本文后直接用本文的内容做一期讲解视频。

四、自己喜欢最重要。

五、希望看到更多优秀的MMD,不仅是画面上的,而且是多方面的。而我做的仅是我能做的而已。

六、文章的难度逐渐递增,刚开始可能比较简单,往后可能较难,且需要阅读大量其他资料。嗯,别着急,慢慢看。就这样。

正文

  • 核心概念

我不会讲详细的msToonCoordinator(下文简称为msTC)该怎么调。基础的使用都很清楚,在readme、作者的note、视频里都有讲过的。在学习后文之前,请保证已经掌握了msTC的基础用法。

  • 【授权转载|个人汉化字幕】msToonCoordinator的基本使用方法【渲染MME使用教程】

https://www.bilibili.com/video/BV1Ep4y1b7Pn

  • 【不负责翻译】msToonCoordinator by ましまし

https://www.bilibili.com/read/cv11034495

  • 【不负责翻译】msToonCoordinator ver2.0 by ましまし

https://www.bilibili.com/read/cv14726089

 

在你掌握了解msTC的特殊使用方法后,不难发现,msTC的本质不在于Toon(卡通化)的过程,而在于Coordinate(使协调),Coordinator的意思就是协调者。例如阴影部分是由ExcellentShadow、SvSSAO等阴影mme生成,轮廓线是由Croquis、ComicalEdge等描边mme生成。msTC自身不包含灯光,而是协调其他灯光mme加入其中。

msTC正是这样处于各个MME之间,来呈现出被精妙控制的Toon画面。

 

mstoon所要求的纯色贴图,不如说是在制作模型贴图的最一开始的那一版底色。我们又要把已经完成的模型贴图改回去,就像是一个逆向的工作。有些时候做着做着就觉得烦了,明明模型的贴图都已经是高度完成了的,为什么非要再逆向推回去呢?

这一点在游戏配布的相关模型里就更明显,贴图上大量的阴影、高光早已经画好。比如这个莱依拉的模型贴图。 (来源:模型提供:miHoYo  模型改造:观海)

 

要想理解msTC的工作流,就需要认识一种绘画风格,平涂。平涂就是,先画出完整的线稿,然后像填格子一样把颜色填进线轮廓里,颜色比较平。

可以理解为:线稿→涂固有色→上阴影、高光 

 (图片来自BV1wR4y1u7Ns)

平涂风格,总结下来是:阴影界限明显、线清晰、颜色界限明显。转换成三维的话语就是:硬阴影、轮廓线、着色简单(二分或者色阶少)。

 

那么为什么要消去原本贴图上的阴影和高光呢?

因为不协调。模型的固定阴影。我的理解是固定阴影的工作在于减少实时的计算,二是保证光源不够的时候依旧能够保持一定的细节量。影是什么?影子是因为有光、遮挡物、接受物,才存在的。那把阴影固定在那里,再叠上实时生成的阴影肯定8好看吧,因为逻辑混乱了。或者说,由ExcellentShadow等阴影mme生成的阴影色,与你原本在模型上绘制的贴图阴影色,会冲突,这种冲突就会破坏画面的2D感,破坏整体的逻辑性。

msTC的贴图为什么要求纯色,是因为要保持阴影色和逻辑的一致。在三渲二里比技术本身更重要的是和谐,三渲二最挑剔的地方在于审美。

就比如下图,蓝色箭头所指的是ES2生成的阴影,而红色箭头所指的是贴图上画的阴影。逻辑混乱了。

 我们再去看纯色化之后的,也就是经过平涂的涂固有色环节还没到涂阴影和高光的环节的模型。这时候裙面上的阴影全部由ES2生成,保持了阴影的统一。 

 那么我们接着讲阴影和高光。 msTC的优势在于可以画出来阴影区。到这里你可能就有些疑问了,哎为什么刚把阴影高光全擦掉,现在又要画一张阴影图?这不是在绕圈圈嘛。 

msTC_ShadeRT:
R:Base色(就是不被主光源影响)的判定程度。R越接近1.0,就越是强制使其保持为Base色。
G:高光色的判定程度。G越接近1.0,就越是强制性地赋予高光色。
B:阴影色的判定程度。B越接近0.0,就越是强制性地赋予阴影色。 

如果这样解释可能更清晰:我们需要把高光、阴影区域框出来,做个标记,(怎么做标记呢,就是用不同颜色的笔把他们圈出来)然后告诉电脑,这里是高光,那里是阴影,然后你生成吧。

这里去看动画制作的上色部分可能会更直观,紫罗兰的幕后制作,在这里制作者用不同颜色的比圈出来不同的地方,就是在区分高光、阴影。msTC的原理与之相似。 

 (图片来源于BV1m4411u764)

可以看出来紫罗兰的工作流是,红框框选出来的是高光、蓝色 框出来的是阴影。 

 

msTC是把框出来的区域再涂上蓝色,这样更容易电脑识别,二是可以做插值计算,从而做出渐变。但是,一旦涉及到比较多的ps技术,就已经超出大部分mmd制作者的能力范围了……仔细去看动画里的阴影,你会发现那些阴影不是一成不变的固定色值,而是有光源方向、层次的渐变。光源方向的渐变我们后面再讲。层次上的渐变如何去做呢?嗯,msTC的答案还是画。阴影色的判定程度,B越接近0.0,就越是强制性地赋予阴影色。

我看过一些msTC的作品,总觉得生硬,在我思考以后得到的答案就是,因为把阴影、高光贴图画的太死了,而本身画面由缺少渐变,导致整体的画面就“僵硬”,再加上高饱和,导致画面风格都僵死在那里了。

平涂法阴影界限分明,但是意味着阴影全部都是一个色嘛?好好想想,觉得不对吧。我不是什么ps、画画高手,这里我不知道如何去说了,只能看一些画画、ps方面的教程视频学一学大概。

如果不画阴影图,也可以考虑分材质的方法。因为msTC可以在msTC_shadeRT栏目下给不同材质赋予不同的着色方式。这里我们打开shade文件夹下的Shade_ExShadow.fx来参考。 

 使用强制赋予的方式可以让部分材质为 阴影色、固有色、高光。换句话说,如果你不会画,但是会分材质,材质分的好,一样可以用msTC完成绝大部分操作。但是我想恐怕一样会困难住很多人,因为模型和模型之间差异巨大,有的可能一开始就分差不多了,而有的可能原本就全是画在贴图上的,模型上啥也拆不出来。

举个简单的拆、强制赋予阴影色的例子,我们先去分析一下紫罗兰的这张截图。

两个光,两个方向的阴影。而脖子和后发的区域就属于固定阴影。

 想在三维里实现这么硬而且明显的三种阴影,单靠两个光源是不可能的,而多加一个正面的光又会打破两个光的阴影。这种就要考虑固定阴影。比如你看如果主光源是这个方向,会导致后发上、脖子上不完全是阴影。我们可以把脖子和后发拆分出来,然后赋予强制阴影。 

 

 嗯,这样是一种保持阴影和谐的方法。

 然后还可以自定义部分材质的阴影颜色,在ShadeColor文件夹里,默认使用ShadeColor_Auto.fx,可以复制出来,多做几份,每个材质控制阴影颜色的参数进行修改。想用哪一条先把前边的 // 去掉,如果不去掉就不会生效,因为加上 // 的意思是这行代码就是注释。 

 

  • 灯光

三渲二的灯光问题一直都是耐人寻味的。不是代表着你不需要打光,而是在考虑打光照亮哪里的同时要考虑阴影。如果不考虑阴影的灯光,那么就和单纯的着色无区别。灯光的本质在于亮和暗的两部分,也就是亮部和影生成区。二维绘画的阴影既是符合逻辑,又是抽象的,不符合现实的。想在三维空间生成这样的阴影,除了mstoon这样画以外我也不知道能有啥方法,倒是见过直接掰模型本体的,那是真有效且直接。

 (图片来源于BV1gP411e7AV )

就比如图上这种光源阴影,合理嘛?不是很合理,但是好看。突出腿粗,比较胖,像个球,才有这样的光和影。想在渲染里做出这种影子,要么画阴影,要么掰法线,要么就掰模型。但是掰完的模型基本上只有这一面能看了……其他面都毁了属于是,很惨。

分图层、拉渐变、叠出光感,这就是三渲二的灯光解决方法,类似于画画着色时候的平涂,大概。我是在pixiv上看到这样一篇教程,和一个vray渲染器的影视级调色教程有感而来的。具体自行截图百度翻译吧。 

 (图片来自 https://www.pixiv.net/artworks/10120874#1)

首先提一个问题:动画风、2D渲染意味着画面简单吗?

我看很多人对msTC的误解就是,把模型涂成简单的大色块,然后覆盖上阴影就成了,最多再加上画好的高光。我觉得这样的工作只做了一大半,还没做完。就像之前所说的,阴影色都一个色值嘛?不是,那么固有色也应该都一个色值嘛?不是。下图带来的第一感受就是,过于单调。这是纯色化之后带来的后果。简单了画面,需要你手动去添加细节。有什么能添加上的效果呢?花里胡哨的粒子?绚烂的滤镜?感觉都是后期要考虑的,在前期我们显然要考虑的就是灯光。 

 

msTC支持很多灯光mme,然后载入计算。只不过我个人觉得,把灯光类mme拉进来打光的效果,不是很好,或者是,很难去调整到合适的位置、大小。所以我该用了画画的思路,就是叠渐变图层,拿这些做光。坏处是没法产生阴影,这也可能是好处。

最简单的是用msGradation,重叠单色渐变。

 这个原理很好懂,右下角可以调整计算的模式,就和ps的叠加图层一个道理。

 除此之外还有PointGradation,作者是セルゆかり。https://bowlroll.net/file/245113

msGradation的拉渐变是整个窗口的渐变,镜头变化的时候会受到影响。而PointGradation则是单独材质任意方向的拉渐变。比如下图是使用msG的拉渐变。但是头发依旧缺少着明显的颜色渐变的模样。嗯,看起来属于那种“廉价”一些的动画质感。

 而稍微“贵”一些的动画质感在固有色的基础上可能会多些渐变、花纹。接下来我们使用PointGradation拉出固有色渐变。如果你不想对着uv一点点丰富贴图,那么使用这个单独材质拉渐变的mme绝对是最优解!

 那么在固有色基础上增添花纹的过程如何实现呢?一、画贴图。二、用m4layer叠。不过涉及到细枝末节的修整,想要对的上uv,画贴图才能彻底解决。

 使用m4layer,和m4layer的各种改变式,也可以实现像msGradation一样叠出渐变和光感。m4的用法非常之丰富,改变式也比较多。这里不详细展开了。有不少大佬做过教程。

  • MMD——遮罩渲染处理

https://www.bilibili.com/read/cv18662741

  • 【MME教学?】M4layer怎么用,应该全看自己的脑洞

https://www.bilibili.com/read/cv200612

可能很多人用过的是ray+other

  • 分享MMD小技巧 在Ray中给人物挂载其他渲染

https://www.bilibili.com/read/cv16648779

到这里可能……有点难了吧。嗯,还请慢慢来。掌握这些基础后,可以说以后都可以独立解决非常多问题了,万事不求人那种。

  • 赛璐璐

赛璐璐本身是平涂的一种,为什么这么说,原因就在于,赛璐璐的绘画技法是通过图层之间的颜色叠加来完成画面。在电子端绘画,其实赛璐璐跟平涂技法已然没有太大的区别。msTC既可以说是平涂,也可以直接说 赛璐璐风格啦。总之听上去变得高大上了很多吧。

  • msms

不得不说的是,msTC的作者ましまし写了很多mme,基本都是围绕着msTC服务而又可以独立出来的mme。比如msPowerSoftFocus,强大的软焦点效果。通过重叠川濑式MGF的模糊图像,使画面变得柔和。msEdgeBlending,边缘混合,融合背景和人物的神器。msColorCorrection,ms写的调色工具。msPowerDiffusion,比较适用于背景的Diffusion。msUnsharp,画面锐化,类似于pr的锐化。

 

ましまし为你提供了一条龙的服务。

还有一个很契合2D渲的神器是MultiEdge,在我的专栏有提到过。https://www.bilibili.com/read/cv23279820

  • 轮廓线

MMD里的轮廓线往往就是锯齿的死结。如果从动画的角度去考虑轮廓线,轮廓线是影响风格的一大因素。

 (BV1mh41197nK )

比如比较早期的动画往往让人觉得张力十足,形象突出,他们使用着较为粗的轮廓线。

而现在的动画细轮廓线用的比较多,画面变得很精致的感觉。 

 (BV1pf4y1s7hy)

msTC可以手画边缘线。不过嘛,这个线绝对是比上边的阴影区只难不简单的。如果要大量画线,注定需要反复导入MMD里看效果,然后修修修修,改改改。如果就像图上薇妹这样一头线,画两三天未必能全画完。所以大部分时候使用别的描边mme生成,而手动添加一些mme画的不好的线段。

还有个比较细节的问题就是画笔的笔触感(也就是曲线的宽度是充满变化的),如何能做出来呢?动画里的边缘性往往不是同一个宽度,而是有着变化的。ComicalEdge里固然有很多预设,但想要做特殊的风格化边缘线还是很难。 

 就比如这张图上的边缘线,有很明显的变化,这就是画画带来的笔触。

 (BV1mh41197nK)

唯一的答案是 可以画出来。在msTC自定义边缘线。用ps的曲线钢笔+模拟压力即可。要注意像素的宽度,我测试的是3、4、5个像素左右就比较适合描边了。不过说实话,如果要考虑曲线变化、uv分布的话,工作量翻倍。不过为了极致的效果,大量的工作也是必然的。

 

  • 厚涂

前边一直在讲的是类平涂的思路,其实平涂也可以转变成厚涂。厚涂是一种油画技巧,一般简单草稿后,以颜色起稿(或者直接颜色起稿),即建立在素描5大调基础上的绘画风格。厚涂的最大特点是质感更真实,对比明确、结构准确、色彩丰富多变,通过颜色的块面来表达体积。

简单地说就是,油画时用的颜料太多了,堆起来了,比画布还高出一截。

厚涂风格一般没有明显的轮廓线。也就是说,在本文前篇的基础上,抹除掉轮廓线,是第一步。(内心:好耶,可以少干一部分啦)。然而厚涂要做的远比平涂只多不少。要想做出厚涂风格,可能需要加载大量的mme,而越多的mme,顺序问题就越多。

简单的效果可通过ikGouache,ikSplats,ikDryBrush等效果实现。(这三个mme在我之前的专栏有提过)。在消除轮廓后,可能还需要“模糊”轮廓。可以使用Symmetric Nearest Neighbor Filter,msEdgeBlending。Symmetric Nearest Neighbor Filter简称SNN,是一种对称近邻滤波。https://bowlroll.net/file/237679

厚涂的实现还可以多留意边缘光、SPA的应用上。

厚涂的解可能都在这些全局性的mme上,包括纯色化的滤镜之类的。关于厚涂风格的渲染我并没有过多的研究,也没找到太多相关资料,暂时就说到这里。

  • 漫画

还有更简单的平面化渲染就是纯黑白风格的漫画风。比较经典的是LtMangaShader,这是漫画风的主渲染器。效果非常好,基本上漫画风格的功能都涵盖了。还有就是各种黑白、纯色化的滤镜,ikClut Toon Comic

当然还可以再简单一点,只有轮廓。 

 

  • 抗锯齿

msTC往往会产生很难消下去的锯齿。锯齿问题往往也是描边问题,在没有更好的算法的描边工具之前,调调参数已经是仅最大能力了,别过多纠结,这是算法的局限性。msTC的解决方案其实最完美,就是画。mmd里最好的抗锯齿应该就是Ray里包含的FXAA了。可以单独拿出来用。

解决办法一:输出2k尺寸的视频,然后压回1080p这样。可以很好地柔和画面。缺点就是,很费时间。

解决方法二:使用AI无损放大工具,或者任何图片放大工具。我用的是Upscayl,原因是免费,可批量。

首先无损导出视频,然后用pr压制一下,这样能小很多。然后导出序列帧,导入Upscayl,使用DIGITAL ART风格逐帧进行无损方法,能够有效消除锯齿。然后导入pr重新缩小为1080p,并导出视频,即可。至此,mstoon带来的难以消除的锯齿问题彻底解决。

注意:Upscayl工作时会吃满GPU,比较考验显卡性能,速度因电脑而异。 

项目地址 https://github.com/upscayl/upscayl/tree/v2.5.5

  • 平衡色彩

这里重点转移到模型和场景模型的关联上。在MMD里使用的人物模型和场景模型往往存在着很大差异。这里推荐这篇翻译的后半部分,平衡色彩。

 (CV9418721)

二次元角色卡通渲染贴图修改教程https://www.bilibili.com/read/cv9418721

当然你也可以先从色彩的本质入手,然后理解色调,就能明晰人物模型和场景模型的色彩都需要做出什么样子的改变。读到这里,你可能需要一段时间去补充色彩方面的知识。

https://www.bilibili.com/read/cv25739298

平衡色彩是为了人物模型和场景更统一,可以选择修改贴图,也可以选择在MMD里进行处理,毕竟我们做的是实时渲染,不是绘画。这里也一样要考虑使用m4layer,或者用各类调色工具吧。nbHSV是个不错的选择。

 

最后,以上就是MMD里三渲二的终极解决方案。技巧讲的很少,主旨在于理解这个过程,形成思路。在使用msTC之前,需要你有着大量mme的使用经验,必要时做出修改。

这篇文章一转眼写了半天时间。这篇专栏之后大概可能很久不会写MMD相关的专栏了……emmmm暂时没什么好写的了。

 

我很喜欢上野千鹤子的一段演讲,从评论区里copy过来这段话作为结尾。

你们一定是秉持着‘努力就会有回报’的信念一路拼到今天的,但今后等待着你们那的会是一个‘努力也未必会有公平回报’的社会。而你所秉持的‘努力就会有回报’这个观念,请你记住,这不是你一个人努力的结果,环境也造就了你。你现在之所以会认为努力就会有回报,是因为你一直以来所处的环境,有人鼓励你、在背后推着你走、在前面提携你、肯定你的点滴进步。这世上还有努力也没有得到回报的人、想努力却无从努力的人、太努力而身心俱毁的人们。还有想要好好努力,但被‘反正轮不到你’、‘我这种人还是算了’打退堂鼓的人。所以,请你们不要把所有的努力都用于追逐个人的胜利,你们被优越的环境所塑造出来的能力优势,不是为了凌驾于没有享受过同等资源的人们之上,而应该发挥这些能力去帮助他们。然后,不要逞强,而是承认自己的脆弱,与他人互帮互助。 

参考以及文中提到过的链接

【授权转载|个人汉化字幕】msToonCoordinator的基本使用方法【渲染MME使用教程】

https://www.bilibili.com/video/BV1Ep4y1b7Pn

【不负责翻译】msToonCoordinator by ましまし

https://www.bilibili.com/read/cv11034495

【不负责翻译】msToonCoordinator ver2.0 by ましまし

https://www.bilibili.com/read/cv14726089

有手就行的平涂上色技法!上色渣渣看了也能画出好看颜色!【轻微课 一看就绘-687期】

https://www.bilibili.com/video/BV1wR4y1u7Ns

是学赛璐璐风? 还是学厚涂风?赛璐璐和厚涂有什么区别?https://www.bilibili.com/video/BV1tD4y1X7dr

普通平涂和赛璐璐有什么区别?https://www.zhihu.com/question/268107608

【紫罗兰永恒花园】幕后制作过程(合集)

https://www.bilibili.com/video/BV1m4411u764

高技术力系列:日式赛璐璐式CGI 建模到渲染

https://www.bilibili.com/video/BV1Fv411r7Qe

 

莱莎的炼足工房 第1话【自用】

https://www.bilibili.com/video/BV1gP411e7AV

【A KITE】殺 手 不 應 該 輕 易 就 動 心

https://www.bilibili.com/video/BV1mh41197nK

【紫罗兰永恒花园/120FPS】极致流畅 薇尔莉特名场面

https://www.bilibili.com/video/BV1pf4y1s7hy

アニメ塗りで背景と簡単に色を合わせる

https://www.pixiv.net/artworks/10120874#1

MMD——遮罩渲染处理

https://www.bilibili.com/read/cv18662741

【MME教学?】M4layer怎么用,应该全看自己的脑洞

https://www.bilibili.com/read/cv200612

分享MMD小技巧 在Ray中给人物挂载其他渲染

https://www.bilibili.com/read/cv16648779

【MMD静帧处理工具】Ai无损放大图片丨免费丨可批量

https://www.bilibili.com/read/cv25685031

BLUE PROTOCOLにおけるアニメ表現技法について https://cedil.cesa.or.jp/cedil_sessions/view/2389 

MuRo 一个动画博主分享过很多技术指导 

https://muro.fanbox.cc/

二次元角色卡通渲染贴图修改教程

https://www.bilibili.com/read/cv9418721

【MMD】浅谈配色丨八大色调丨氛围丨清新感丨色彩表现力丨配色技巧

https://www.bilibili.com/read/cv25739298

【MME】Drop Colors、nbHSV,自由地去调色

https://www.bilibili.com/read/cv20778483

【MME】ToonDX,一款简单的卡通渲染

https://www.bilibili.com/read/cv23279820

PointGradation

https://bowlroll.net/file/245113

到底什么是厚涂?

https://www.zhihu.com/question/406614213

【MME】ikGouache 不透明的水彩风效果

https://www.bilibili.com/read/cv19499779

【MME】ikSplats,纹理图案填充效果

https://www.bilibili.com/read/cv21493138

【MME】ikDryBrush,笔刷效果,手绘风

https://www.bilibili.com/read/cv23091790

SNNFilter

https://bowlroll.net/file/237679

LtMangaShader

https://bowlroll.net/file/246062

ikClut Toon Comic

https://bowlroll.net/file/290976

中日双语【完整版】東京大学入学式-上野千鹤子致辞

https://www.bilibili.com/video/BV1T7411f7xu