用MMD小半年的一些琐碎笔记,个人备忘向,也希望对你有帮助!
前言
略微偏2D的3D渲染(AKA似真非真的伪物)是目前的心头好,PBR材质光照和轮廓线全都想要,所以用的是Ray主渲(3D)叠加薄层M4Layer (Toon渲)这样非主流的方式。Ray渲基本流程大佬们的教程已经非常完备,这篇笔记涉及的是以下这些细节补充和资源推荐:
1. PBR材质制作 2. IES光照 3. M4Layer
关于Ray渲种种的拓展阅读除了Ray-mmd本身的wiki页面(https://github.com/ray-cast/ray-mmd/wiki)外,特别推荐非官方的日语版文档(https://github.com/gaj-cg/ray-mmd-docs-ja),图文并茂非常直观,各个参数小条目也更加齐全。
1. PBR材质
如果想要自己创建PBR材质,一个很好用的工具是Red's Material Tool for ray-mmd (RMT,https://github.com/Syloid/RMT),窗口GUI直观编辑各项参数,对晕代码人来说简直天降救兵。
RMT基本用法:
1. 下载后将解压得到的RMT文件夹置于raymmd的Extension文件夹中
2. 打开RMT.exe, 选择Create Material from existing(从现有材质创建)
3. 输入不含后缀名的新材质名称(英文半角,不可含有特殊符号,包括下划线)--> OK
4. 弹出窗口选择想要在其基础上进行编辑的现有材质,比如material_2.0.fx --> Open
5. 弹出窗口选择Yes:自定义新材质的存放文件夹,No:在选定的现有材质的同一个文件夹创建新材质
6. 对弹出窗口的各个参数进行编辑
7. 6的同时在MMD中为目标模型加载创建的新材质可实时查看效果
PBR贴图资源库举例
https://ambientcg.com/
https://3dtextures.me/
https://freepbr.com/
PBR贴图各参数与Raymmd材质参数的对应关系

如果直接代码行编辑材质,为文本编辑器添加HLSL语法高亮会在视觉上舒服很多。
2. IES光照
室内人物打光个人偏好使用聚光灯spotlight,因为有所有光照类型中质量最好的影效果(见raymmd wiki文档),配合方向光directional light调暗部色彩,点光源pointlight局部补光。室内环境打光练习时我一般会把阳光全部屏蔽(sunlight- = 1)。IES光照相对非IES可以在光线分布上模拟一些真实灯光效果,并且ray是可以借用外部IES文件自定义光线分布的。
自定义IES方式:从raymmd的Github工具页面下载IES2HDR.zip(ray-mmd/Tools),解压后根据README.jpg进行操作。
比如

中的雾光灯用的是Renderman里的Three Lobe Umbrella:

TIP1 带FogMap的聚光灯最多只能存在4个
TIP2 灯光的最大照射距离默认为400,如果需要超远距离打光似乎可以通过修改ray_advanced.conf中的mLightPlaneFar参数达成?(待测试)只需修改LightMap对应fx文件中lightRangeParams、lightIntensityParams、lightAttenuationBulbParams的最大值即可。
TIP3 带FogMap时似乎必须有实体地面,否则会出现下图粗颗粒效果(反面教材:WAVE),不过反过来如果追求这样的效果可以考虑把舞台地板拆了(喂

光照举例:偽物人間中的打光设置
1. 天空盒: time of day / time of night / 任意黑色背景天空盒 ,前两者时环境光y值调至最高
2. Raycontroller:sunlight- = 1
3. Spotlight IES (雾灯):LightMap中使用IES_lightning_with_shadow_very_high; FogMap中使用IES_fog_with_shadow_very_high
4. Spotlight 1:高光灯,不设FogMap,intensity较高
5. Spotlight 2,3:侧光灯,2偏暖(片尾的闪烁通过blink表情调节),3偏冷(A part雷电将军轮廓同色,B part偏诡异的紫色)
6. Pointlight: 脸部补光,片尾的地面高光为subsurface反射效果

3. 关于M4Layer
让渲染自由度指数级提升的神器。目前只试了几种常用模式,有待进一步探索。可以作为蒙版使用,也可以进行分层渲染和风格化渲染。缺点是资源占用略高,需要谨慎设置特效在各层内的显示状态。
使用例:偽物人間伪影绘

(其实后期也能达到类似效果,但如果想MMD直接输出可以考虑以下方法)
1. 模型准备:添加黑化材质表情
2. MMD中添加ミーフォ茜的M4Layer和类似ラテ的簡易背景エフェクト的全屏背景色特效
3. MME中Main:取消勾选全屏背景色特效
4. MME中LayerRT:勾选全屏背景色特效并配置对应fx文件;勾选想要进行影绘的模型,其余模型均配置InvisibleMask.fx。
5. 开启影绘:设置M4Layer及全屏背景色特效的透明度为1,并开启影绘人物黑化表情; 关闭影绘:设置M4Layer及全屏背景色特效的透明度为0,并关闭影绘人物黑化表情
6. 影绘描边:新增乘算M4Layer并使用下っ腹P的L_EdgeShader
就先写到这里吧,再次感谢神仙们的分享和配布,祝MMD玩耍愉快!