将mmd模型改造成游戏可用模型
MMD模型通常具有精美的外观,但一般情况下并不适合直接作为游戏模型使用。不过,有一篇文章很好地解决了这个问题,为游戏模型的获取开辟了新途径。此外,泰课上有一个关于用Unity实现MMD功能的视频,感兴趣的读者可以点击链接查看:https://www.taikr.com/my/course/503
插件介绍
本文使用了mmd4mecanim(以下简称mmd4)插件,在此特别感谢作者nora先生。该插件能够完美地将MMD模型导入到Unity中。作者的Twitter链接为:https://twitter.com/Stereoarts 下载链接:http://stereoarts.jp/ ,注意需要翻墙访问。
mmd4插件可以将MMD模型及其动作转换为FBX文件,这种格式便于导入3ds Max、Maya、C4D等3D建模软件进行修改。
导入MMD模型到Unity的步骤
步骤1:导入mmd4插件
导入完成后,应该会看到红箭头所指的3个文件夹。
步骤2:准备MMD模型
一般MMD模型的格式为PMD和PMX,下载的MMD模型通常是一个包含PMD或PMX文件以及一堆贴图文件的文件夹。注意不要改变文件夹结构,直接将该文件夹放入Unity工程中。此时,mmd4插件会自动为PMX和PMD文件生成一个.MMD4Mecanim文件。
步骤3:模型转换
选中.MMD4Mecanim文件后,在Inspector窗口中会看到模型使用条约,全部勾选并点击同意,即可看到转换界面。点击“Process”,稍等片刻,模型就会生成。生成的模型会存放在对应的PMX或PMD文件的同一文件夹下,同时会生成一个“Materials”文件夹,其中包含该模型的所有材质。
步骤4:添加模型到场景
将生成的模型拖到场景中,就能看到漂亮的MMD模型了。
步骤5:调整Shader
由于mmd4中的Shader是完全模仿MMD效果的Shader,并非基于物理的Shader,因此需要将生成的Shader全部调整为Unity 5中的Standard Shader。选中“Materials”文件夹中的所有材质球,将Shader改为“Standard”。
由于没有仔细调整,模型可能会出现显示异常的情况。MMD模型的材质命名大多是日语的罗马音,懂日语的人会更容易找到对应的材质球。稍微调整材质球后,可得到一个看上去比较正常的模型。
优化模型细节
步骤6:添加AO贴图
上述效果虽然不错,但细节部分仍有不足。Unity可以使用Lightmap来烘焙静态物体,使其阴影表现良好,但对于动态物体则需要添加AO贴图,在Standard Shader中即Occlusion贴图。因此,需要获取一个较好的Occlusion贴图。
步骤7:重新分UV
使用3ds Max打开FBX文件,查看模型的UV,会发现其UV非常混乱,并且存在镜像和重叠的情况。这是因为MMD模型原本是为制作视频而设计的,可能未按照游戏模型的制作标准进行UV分割和贴图制作。而Occlusion贴图的烘焙必须依赖正确的UV,所以需要重新对模型进行UV分割。
步骤8:焊接顶点
一般MMD模型有两个网格部分,即脸部和除脸部以外的其他部分。选择除脸部以外的部分,选中可编辑网格中该部分的所有顶点,将焊接值设置为0.001,然后进行焊接。焊接后顶点数量应该会减少。
步骤9:平滑面并导出
选择除脸部以外的部分,由于焊接顶点可能会导致面的平滑度出现问题,因此选择该部分网格的所有面并进行一次自动平滑处理。选中该部分,选择“导出选定对象”,并导出为OBJ文件。
步骤10:导入Zbrush进行UV拆分
将导出的OBJ文件导入到Zbrush 4R6中,准备使用Zbrush 4R6里的uvmaster进行自动拆分UV。
步骤11:执行UV拆分
在Zbrush中找到Zplugin,选择uvmaster,并使用其中的unwrap命令。稍等片刻,uvmaster会自动完成模型的UV分割。
步骤12:检查UV分割结果
稍等之后,在右边的Tool工具栏中选择texturemap,选择“create -> newfromUVcheck”查看分割好的UV。如果看到正常的UV图,则说明UV分割成功。将模型导出为OBJ文件保存,使用3ds Max打开导出的OBJ文件,并添加UVW展开修改器检查UV是否正确。此时的UV应该会比之前清晰很多。
步骤13:加载新UV
将UV从3ds Max中导出,回到最初OBJ模型的3ds Max工程中,选择身体部分的网格,添加UVW展开修改器,将贴图通道选择为2。在弹出的窗口中选择“移动”,点击“加载”,选择新的UV。加载后可能会出现一些显示错误,不过没关系,打开UV编辑器,随便框选几个顶点即可恢复正常显示。
步骤14:还原模型贴图
由于从Unity导入到3ds Max中会丢失模型的所有贴图,因此需要将导入到3ds Max中的模型还原到Unity中的正常样子。具体方法是调整3ds Max里的材质球,使其对应正确的贴图。
步骤15:烘焙漫反射贴图
在3ds Max菜单中选择“渲染 -> 渲染到纹理”,添加渲染元素为diffusemap,渲染通道选择为2,填充设置为16,分辨率设置为2048x2048。选择好保存位置后点击渲染,渲染出来的贴图可能看上去有问题,但用Photoshop打开或放到Unity中后是正常的。
步骤16:清除通道信息
确保漫反射贴图正确后,打开“工具 -> 通道信息”,选中贴图2并点击“清除”,之后会多出一个uvw清除修改器。
步骤17:塌陷修改器
将UVW展开和uvw贴图清除修改器移动到蒙皮的下面、可编辑网格的上面,然后将这两个修改器右键点击“塌陷”,塌陷完成后将只留下蒙皮和可编辑网格两个修改器。
步骤18:合并新UV
塌陷完成后再次添加UVW修改器,确保贴图通道为1,再次加载之前保存的UV,这样就完成了漫反射贴图的烘焙和新UV的合并。由于烘焙漫反射贴图会将之前的多个材质球合并为一个,接下来需要还原原本的多个材质球以便调整单个部位。
步骤19:吸取材质
打开材质编辑器,点击吸管,移动到模型身上吸取材质。
步骤20:复制材质球
将吸取到的材质球赋值给第二个新的材质球,方法选择“实例”。
步骤21:还原材质球
最后将材质球拖到模型身上,完成材质球的还原。
步骤22:导出模型
将新添加的UVW展开修改器塌陷后,即可烘焙AO贴图。最后将这个模型导出为FBX文件,重新放入Unity中。
经过上述处理,模型的最终效果会比最初有显著提升。
版权声明:本文为CSDN博主「篱笆外的狐狸」的原创文章,原文链接:https://blog.csdn.net/sdqq1234/article/details/45604499