前言
前几天在折腾【CATS导入PMX模型+半透明材质简易处理】的时候,其实还留下了一点坑,直到我把VRM4U、blender_mmd_tools等工具都试了一遍后,总算发现CATS导出的模型有坑= =
CATS这个坑也直接影响到半透明的实现,具体是什么问题、如何发现、修复效果下面慢慢看
PS: blender_mmd_tools的使用方式本篇就不再赘述了,根CATS差不太多,具体参考官方文档
VRM4U安装 & 导入PMX
到Releases · ruyo/VRM4U (github.com)下载自己引擎版本的压缩包,我使用的20240212会有点问题(Content Drawer预览模型是一块黑色),所以我换了20231116版本
压缩包内有一个VRM4U的文件夹,将它解压到引擎的Plugin目录下:
压缩目录
放到引擎Plugin目录
之后打开引擎,启动插件即可(启动后需要再重启一次):
之后还要改下设置,让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的已经忘得七七八八了)