MMD 原神渲染效果着色器教程(MMDGenshin)

本文由 简悦 SimpRead 转码, 原文地址 www.bilibili.com

作者:叶以从不早睡

本来打算录视频的,但一直嘴瓢(真的是服了)本文只教大概操作和我自己遇到的坑,不说原理(绝对不是因为我不知道,因为我只是搬运工)但是放心,看完本文你绝对会用这个渲染器!!!先把原版着色器和教程链接贴出来着......

本来打算录视频的,但一直嘴瓢(真的是服了)

本文只教大概操作和我自己遇到的坑,不说原理(绝对不是因为我不知道,因为我只是搬运工)

但是放心,看完本文你绝对会用这个渲染器!!!

先把原版着色器和教程链接贴出来

着色器:https://github.com/Manashiku/MMDGenshin

使用着色器教程:https://twitter.com/MonoCereal/status/1497666602107809792

添加第二个 UV 顶点颜色教程:https://docs.google.com/document/d/1K1YecBweNa2os3M_WDHc5X9NntzayaM0RFnhgsE74ss/edit

憋着急!!接下来我将尽量简化以上两个教程。文档我有下载和翻译(用有道词典),不会科学上网的小伙伴又想看原版比较仔细的教程的,请走某盘链接

链接:https://pan.baidu.com/s/1cTugIkSrUFuts9ah2CZtVw 

提取码:8pkw 

(失效了可以随时找我)

对了,下载 0.15 版本后可能会缺少一个 “shader.fx” 文件,去 0.14 版本下载复制粘贴进来就行了。

简单解释下,目前着色器最新版是 0.15,作者添加了不少新的效果(虽然我看不懂)建议使用最新版。为了兼容最新版,就要给模型添加第二个 UV 顶点颜色,基本从模之屋官方下载的模型都需要添加,所以这一步不能跳过!!!

首先,删除模型的 toon 和 spa 卡槽贴图,去除轮廓线,保证你的模型干干净净。

PE 主页面,追加 UV 数为 2

模型编辑页面,mode-- 追加 UV-- 追加 UV(2)

然后就会看见一个纯黑的模型

到这一步,就已经添加好了第二个 UV。接下来是添加顶点颜色,有两种方式。

第一个方法:选中所有顶点,在主页面去更改它的颜色

选中第一个,一直拉到底,按住 shift 键的同时再点击最下面一个顶点,这样就选中了全部。然后如图,选择追加 UV2,x y z w, 分别代表 RGB 和强度,如果你不知道怎么填,作者推荐的树数值是 x = 1, y = 0.5019608, z = 0.5019608, w= 1。

这里可以填 0-1 的任意数值,只要不是 0,0,0 全黑的就行,根据你自己选择来

输入上面的数值后,在模型页面顶点色就变了。第一种方法就成功了

第二种方法:分材质去画。这种方法的好处是不同的材质可以涂不同的顶点颜色。

在模型编辑页面,打开如图所示两个窗口

权重 / uv 描绘动能如图选择

下图框出来的地方是设置颜色的,UV 值依旧是 RGBW;也可以点开 “设定色值” 旁边的取色版直接取色,方便快捷。

选择好颜色后,保持 “开始” 按钮常亮,在 “绞” 窗口显示你需要涂的材质,涂上色就行了。不同的材质可以涂不同的颜色,能够更好的有色彩效果。比如这里我希望身体是玫红色,鞋子是绿色,其他地方是橙色(颜色我在下一个段落把原文的图和解释复制上来)

此时已经涂完,将 “开始” 按钮变灰,保存即可。

下方是原文对顶点颜色的解释

开始之前

It’d be better to see some examples of actual 2nd AddUV present on Genshin models ported through Noesis instead of Blender.

最好能看到 Genshin 模型通过 Noesis 而不是 Blender 移植的一些实际的第二 AddUV 的例子。

As you can see, these models mostly consist of red-pink colour scheme, with some bits of green for the shadows. They are there mainly to render the lightmaps more efficiently, or more accurately.

正如你所看到的,这些模型主要是由红粉色的配色方案组成,阴影部分是绿色的。它们的存在主要是为了更有效或更准确地渲染光图。

好了,添加顶点 UV 到此结束!!

接下来是添加贴图和修改着色器文件部分

首先,你要有原神模型的那些渲染贴图。获取路径有两种

  1. 作者提供的链接

You can get them from here (courtesy to CherryPieWithPoison).

https://www.deviantart.com/cherrypiewithpoison/art/Genshin-Impact-Avatar-Lightmaps-and-Ramps-DL-908335635

  1. 自己提取。别找我要,我懒

它们如下图所示:

光照贴图 1)Lightmaps 阴影贴图(我叫它阴影渐变贴图)Shadowramps 面部阴影贴图

重点:光照贴图含有透明图层,不要删除透明图层!!原因是原神的建模,有些模型的皮肤和衣服材质是同一个网格分不开,透明图层的作用就是能够在不分离材质的情况下赋予它们不同的光照渲染。(大概这个意思,能看懂就行。原文中有详细解释,我只能理解这么多)

原文作者举的例子

建议是保留两份,一份有透明蒙版,一份没有

将它们放在模型身上。

(以下蓝色字为原文教程和俺用有道的翻译)

Input the materials into the respective slots.

1) Face shadowmap - SPH slot (set as either Multisphere or Addsphere)

2) Hair and body lightmaps - SPH slot (set as Subtex)

3) Shadowramps - Toon slot

将材料输入到相应的槽中。
1) 面部阴影地图 - SPH 插槽 (设置为 Multisphere 或 Addsphere)
2) 头发和身体灯光贴图 - SPH 插槽 (设置为 Subtex)
3) 暗影 - 卡通槽

Examples for my Lumine model (I renamed the materials for simplicity):

(Face shadowmap + body shadow ramp)

(Hair lightmap + hair shadow ramp) (Same process for the body + outfit)

(头发光照图 + 头发阴影斜坡)(身体 + 服装同样的流程)

我再用我能理解的复述一遍。

Toon 卡槽上那些阴影渐变色贴图。

脸部在 spa 卡槽,放入面部阴影贴图,且设为相加或者相乘

身体和头发,spa 卡槽放入光照贴图,且设为副 tex

然后就成了下图这样

这个时候就可以进行下一步了。

你要将两种贴图放入 0.15 的 sub/tex 文件夹,是 sdf 阴影和金属贴图。顺带一提,sdf 阴影分为五种,成男、成女、少女、少年、萝莉。最好是根据自己的模型设置五种

接着打开 default_material.fx 文件,我们需要修改几行内容。

  1. 面部

    代码第三十行,双引号里替换成阴影贴图的名字(就是为了有那个面部会动的阴影)

  1. 阴影部分

这里可以自己多尝试。原文中作者提到,命令行 #define material_ramp_0 - 3() 通常设置模型服装部分的阴影斜坡,#define material_ramp_4() 用于皮肤 / 头发

可以自己多试试,我懒,我 #define material_ramp_0 - 3 都是默认的,只修改 #define material_ramp_4。当然,0-3 修改了肯定效果更还原,每个模型都不一样,自己多尝试吧~

ramp_4(*), 括号里的数字代表了以下内容

0 - 衣服 / 头发
1 - 皮肤
2 - 用于使用深色阴影坡道的衣服
* 对于最近的角色模型 (特别是 Inazuma),他们使用 2 代替皮肤。
(有时 3 或 4 也可以使用,特别是最近的原神角色模型。)

  1. 高光 / 反射部分

(已经凌晨一点半了我明天还要上班,偷懒直接放原文翻译的,反正也能看懂)

这一节是 “Specular” 选项。同样,有一些设置你可以自己玩。除了 #define use_toon_specular,您不需要做太多更改。您需要为头发启用此功能 (通过删除命令行前面的双斜杠 //)。命令行 #define specular_color float4 设置香椿高光的颜色(使用 RGB 值)。此外,你还需要改变 #define specular_power_() 和 #define specular_rate_()的值,如果你正在寻找一个更强烈和闪闪发光的镜面。

  1. 轮廓线

  1. 边缘光

  1. 金属光泽

对于 “金属” 选项,您可以更改模型的金属部分的光,阴影,高光等。如果你想要更好的金属效果,可以使用游戏中 Genshin 角色模型的截图作为参考。

改好后,另存为,建议脸、头发、身体、皮肤分别设置为一个文件。然后在 mmd 里直接把对应的 fx 文件上到材质里,就能看到效果了。

总结:简单,一次学会终身受用。

还看不懂,可以找我,只要有空都会回。

这个着色器可以配合透明 mme 导出透明通道,后期和其他背景合成。也可以混合其他主渲染,比如 ray;只需要用到一个 M4layer(都是在原本动态看别人回复了才学到的)

感谢以上 UP 科普和原文作者以及着色器作者!!!

评论