在 MikuMikuMoving 里面启用 ray cast (ray 渲)

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

作者:喵枣Rand

起因:Intel GPA 挂不上 MMD 926 却能挂上 MMM(主要是我想康康 MMD 的渲染流程但是又挂不上,但是 MMM 却能挂上,只好用 MMM 辽)当然,直接使用原版 ray-cast 是不可哒,你需要的是セルゆか......

起因:Intel GPA 挂不上 MMD 926 却能挂上 MMM(主要是我想康康 MMD 的渲染流程但是又挂不上,但是 MMM 却能挂上,只好用 MMM 辽)

当然,直接使用原版 ray-cast 是不可哒,你需要的是**セルゆかり**大大修改过的 ray-cast(指路:https://bowlroll.net/file/182016

セルゆかり大大为 MMM 修改的 ray-cast 的文件目录,咋一看挺像原版哒

解压开来咋一看非常像 ray-cast,你可能觉得跟 MMD 里面一样拖 ray.x 进去就好了,可惜并不是,在 MMM 里面加载还有有一点点区别的,这里我会在下面简单介绍怎么在 MMM 里面启用 ray-cast

注意!以下除非特殊声明,否则 ray-cast 全部指为**セルゆかり大大修改过的 ray-cast**

注注意!本文使用的 MMM 版本为 1.2.8.5!不保证其他版本的 MMM 可以按此操作(更新叭!少年!)

1. 加载 ray.fx

点击 File 面板下的 "Import Effect" 按钮

File-Import Effect

选择主目录下的 ray.fx 然后点击打开即可

当然,要记得关掉 Screen 面板下 AntiAlias 鸭(这里还是跟 MMD 里的原版一样的流程)

Voila! 如果你的 MMM 的 Viewport 变黑了,恭喜你加载成功!

2. 加载 Skybox

只有 shader 的渲染器是索然无味哒,我们这就给它加上一个漂亮的 Skybox,这里以 ray-cast 内置的”Helipad GoldenHour“为例

首先还是加载. pmx,如同 MMD。点击”Load model“

并定位到 ".\Skybox\Helipad GoldenHour\" 目录下

选择 "Sky with box.pmx" 并点击打开即可

看!我们的背景变成白色的辽!这就说明我们成功加载了 Skybox。当然,我们还需要一些设置使得我们的 Skybox 能正常运作

3. 设置 Skybox

我们在 MMM 里加载 Skybox 之后为什么不像 MMD 里面会直接显示出来呢?那是因为 MMM 并不支持自动加载 shader。我们需要手动给我们的 Skybox 指定 shader

跟我们一开始加载 ray.fx 一样,首先我们还是回到 File 面板,点击 "Import Effect" 加载以下几个 shader

".\Materials\" 文件夹下的 material_skybox.fx

".\Skybox\Helipad GoldenHour" 下的 "Sky with box.fx"

以及同一个目录下的 "Sky with lighting.fx"(有兴趣的 dalao 们也可试试其他 lighting 后缀的 fx,同 MMD 的原版 ray-cast 一样)

完成了加载,我们接下来就是给我们的 Skybox 指定 shader

首先,点击 File 面板下的 "Assign Effect" 按钮

把里面的 skybox 的 Effect 从 (Default) 改为 "Sky with box" 即可

Voila! 效果立竿见影,我们的 Skybox 显示出来辣!

不过还没完,我们现在的 Skybox 的 Material 和 ray-cast 的 EnvLightMap 还没有分配,现在的 Skybox 只是一个背景而已,我们需要修正这一问题

点击主面板左下角的 Effect 标签页(星星按钮),点击 Offscreen 标签页并再右边选中 ray

熟悉的身影出来了!接下来我们就是分别点击 MaterialMap 和 EnvLightMap 修改 Skybox 的属性辽

首先我们修改 EnvLightMap 属性,把 skybox 的属性从 (No Rendering) 改为 "Sky with lighting.fx",点击 OK 即可(如果你上面使用了不同的 lighting 后缀的 shader,则选择对应的项即可)

接下来我们来修改 MaterialMap,把 skybox 的属性从 material_2.0.fx 改为 material_skybox.fx,点击 OK 即可

现在,我们的 Skybox 就可以正常运作辣!接下来我们加载人物模型叭!

当然,你使用其他你喜欢的 Skybox 也可,只需要按 "2. 加载 Skybox"和"3. 设置 Skyb****ox" 类似操作即可

4. 加载模型

这里我们以作品《凹凸世界》最新释出的角色 MMD 模型里面的金为例(不要问,问就是我很喜欢这个 IP)当然读者可以使用自己喜欢的角色的 MMD 模型 ★,°:.☆( ̄▽ ̄)/$:.°★

点击 Load model,找到角色的. pmx 文件,打开即可

但是打开之后却用的还是 MMM 默认的 shader?!这是怎么回事?!

不要着急,我们确实已经加载了 ray-cast,不过我们还需要再为模型加载一个 fx 并指定给它

点击 File 面板下的 "Import Effect",定位到 ".\Main\" 文件夹下,选择并打开 main.fx 文件即可

然后,我们点击 File 面板下的 "Assign Effect" 按钮,打开 "Effect Assign" 界面,把我们加载的金的模型的 Effect 属性从 (Default) 改为 main 并点击 OK 即可

Voila! 我们的金已经使用上 ray-cast shader 了!

我们只需要再加载场景和动作数据以及镜头,就可以开始渲染辣!

当然,加载场景你还是需要参考此步 "4. 加载其他模型 " 给它分配 Effect,不然你的场景和人物会不在同一个画风上。这样不会感觉很违和嘛?(╯‵□′)╯︵┻━┻

最后最后,切记打开 File 面板下的 Enable Effect 鸭!不然你怎么操作都只会使用默认的 shader 渲染的

FA♂Q

Q: 如何给 Material 分配不同的 shader?比如说我想给角色的衣服加上布纹?

A: 于设置 Skybox 的 MaterialMap 属性一致,在 Effect 标签页 - Offscreen 标签页并选中 ray 下的 MaterialMap 里设置

d

点击 Name 旁边的小三角可以展开模型下的所有 Material,这样你就可以针对单独的 Material 分配不同的 shader 辽,这里以给金的帽子加上 cloth shader 为例(布纹 shader)

效果拔群!

布纹帽子

不过,你需要提前加载对应 Material 的 shader 文件,这里以 Cloth 为例(在 ".\Materials\Cloth\" 目录下)

如果是对原版 ray-cast 熟悉的读者应该会对这套流程有点熟悉,只是我们多了一步加载对应 Material 的 shader 而已(也许也是一样的?请原谅我一个 Unity/blender 选手的记忆力叭)

其他 Material 的 shader 也是如此操作即可

Q: 你这个奇怪的框框是什么?!为什么我的 MMM 没有?会不会影响?

奇怪的框框

A: 啊,这个是 Intel GPA(一款图形调试器)的 GUI,不要在意,不会改变本文的任何结果

但是呢!本文正是因为我想用这个来康 MMD 的渲染管线却挂不上去,只有 MMM 能挂上去才写的(码农的丑恶嘴脸ε=ε=ε=┏(゜ロ゜;)┛)

Q: 有推荐的 Rendering Order(渲染顺序)吗?

A: emmmmmmmm 我个人用的 Rendering Order 长这样

其实这一排 shader 的顺序貌似并不重要(根据我玩耍的这段经验来说),你只要保证 Skybox 一定是在所有其他模型的最上面即可(参考 MMD 的 ray-cast 渲染顺序设置即可)

后记

呼~ 终于写完了,MMM 的日语文档和 ray-cast MMM 修改版的日语 readme 看的我头皮发麻,果然我还是更习惯英语文档ε=ε=ε=┏(゜ロ゜;)┛(这也是为什么我喜欢用 Unity/blender 的原因,英语文档又全又详细,有什么奇怪的问题也好解决)

DX9 真的很老啊你们怎么不来试试 Unity/blender EEVEE 渲染啊而且它调试起来好麻烦啊我感觉 ray-cast 本来应该能做到更好的啊但是因为这个 legacy API 才导致它又卡又不如 HDRP 一般好对我就是 Unity 厨 SRP 赛高那么你们为什么不试试神奇的 Unity 呢当然我是不会出教程的辣你们自己去 Unity Learn 上学叭 hhhhhhhhhh 还有 UE4 是假开源不要被它骗了总之就是 Unity 大法好叭 hhhhhh 开玩笑的每个引擎适用面不一样啦只是个人感觉 Unity 适用更广而已最后大家一定要好好学英语啊真的很重要的比日语好用多了当然也可能是因为我日语太菜了还没体验到日语的好处

以上仅个人观点,不代表实际情况,请自行体验

还有,你都看到这里了,点个赞呗 (✿◡‿◡)

本作品采用知识共享署名 - 非商业性使用 - 禁止演绎 4.0 国际许可协议进行许可。

评论