前言

  • 前几天在折腾【CATS导入PMX模型+半透明材质简易处理】的时候,其实还留下了一点坑,直到我把VRM4Ublender_mmd_tools等工具都试了一遍后,总算发现CATS导出的模型有坑= =

  • CATS这个坑也直接影响到半透明的实现,具体是什么问题、如何发现、修复效果下面慢慢看

  • PS: blender_mmd_tools的使用方式本篇就不再赘述了,根CATS差不太多,具体参考官方文档


VRM4U安装 & 导入PMX

  • Releases · ruyo/VRM4U (github.com)下载自己引擎版本的压缩包,我使用的20240212会有点问题(Content Drawer预览模型是一块黑色),所以我换了20231116版本

  • 压缩包内有一个VRM4U的文件夹,将它解压到引擎的Plugin目录下:

压缩目录

2024-02-18-qmxlurwh.png

放到引擎Plugin目录

2024-02-18-krblyxlp.png

  • 之后打开引擎,启动插件即可(启动后需要再重启一次):

  • 之后还要改下设置,让VRM4U替代引擎自身的导入模式:

  • 之后就可以把pmx拖进文件夹窗口了:

  • 拖进去后会有一个弹窗,有如下几项需要确认(其它选项不再赘述,可自行到文档了解):

    修改默认比例为0.08

    确保合并材质的选项关闭(原因之后说)

  • 之后点击import即可导入成功:

  • 模型显示也是正常的:


为什么关闭材质合并

  • 我们可以看下如果勾选了材质合并后,角色的贴图会是什么样的,如下图所示:

  • 可以看到整个模型就是一张贴图,原本以为这样更省空间,但这其实是一个大坑,因为拆散贴图的情况下可以单独对某个部位进行渲染改动,而不是一改就改全身,这也是为什么上一篇文章搞半透明这么难,拆散的部位如下所示:


半透明坑的发现(可跳过)

  • 起初我看到模型的贴图是有A通道的,就以为对整张贴图进行半透明操作是正常的

  • 之前模型贴图的A通道显示如下:

模型1

贴图A通道

模型2

贴图A通道

  • 直到我找到这个模型的效果:

模型3-正面半透明材质

模型3-背面半透明材质

贴图A通道

  • 没错,根前面两个模型贴图相比,这个模型贴图的A通道就没有<1的像素点,这时候如果你还勾选了合并材质,那调整半透明shader的时候可就不只是前后这两篇贴图半透明了,而是整个人物下班身都是半透明,你要是想搞个幽灵的效果倒可以这么做= =

  • 到这里我基本就发现不太对劲了,在使用CATS导出/导入UE模型时相当于自动进行合并材质了,这种情况下整个下半身就是一张贴图,这怎么精准控制某个部件半透明,手动UV便宜吗?不太可能用这么麻烦的方式才对,赶紧试试其它转换模型的方式看看,结果就是:VRM4U和blender_mmd_tools默认都不会合并材质,非合并状态的材质才是正确的


完善半透明效果

  • 这里再补充一点,模型通过VRM4U导入到UE会自动赋予VRM4U内置的MTOON材质示例,如果你想修改效果,要么剔除掉自动引入的材质自己重新拉;要么就是熟悉VRM4U的连连看然后再去改

  • 这里我选择前者,因为刚接触VRM4U,立马就像改不太可能,而且VRM4U的注释是日文😂

  • 回到正题,贴图拆分后,模仿MMD/游戏中的半透明效果就变得更加简单了,直接改半透明模式后效果如下:

shader

实际效果

MMD效果

  • 可以看到MMD的效果要更透一些,这里我就想到用类似之前Unity做消融的效果来消A通道,重新拉了个shader效果如下:

shader

实际效果

  • 透明部分有点透过头了,手动加上固定的值就可以加上白色的蒙版了,修改后如下:

shader

对比效果

  • OK,效果做的差不多了,现在各种模型的转换是没啥问题了,下一步就是绑定骨骼了,这个也是比较麻烦的工作之一,因为UE除了动画骨骼映射外,还有类似ALS(高级运动系统)这一类不同的场景需要进行绑定,之后熟悉了也会记录下来,以为这些东西一段时间不碰的话就很容易忘(Unity的已经忘得七七八八了)