首页 > 技术文章 > Unity做MMD(一)资源处理

euph 2021-08-10 16:14 原文


要想把mmd 的模型拿到unity中处理,主要有两个方法,第一个是通过unity的插件将pmx模型文件转化为fbx,第二个就是通过第三方软件将pmx处理,例如blender

如果是想把pmx模型用于游戏,想作为自己Demo的npc角色,想要自己匹配动作的,可以考虑使用blender 插件,因为这样对unity工程没有侵入,当然用unity插件去做也是完全可以的

如果是想用unity的高清渲染管线,感受一下实时渲染,使用unity插件可能会更加方便(mmd的动作文件,镜头都可以通过插件直接导入unity使用,只需要考虑渲染设置与场景的问题)而blender 则需要多一步导入导出,就会更麻烦一点,根据用途不同,资源处理会有更加便捷的方式

unity插件

使用插件:MMD4Mecanim
地址:http://stereoarts.jp/

下载解压缩package包,安装到unity中。
在这里插入图片描述

将pmx 文件放入unity 工程,这里以芭芭拉的pmx为例
在unity工程中,点击pmx文件,即可在Inspector窗口进行转换,转换完成即可使用
注意:如果Agree是灰色,则重新导入pmx以及贴图文件即可
在这里插入图片描述

VMD有则导入,没有就空着就行,如果是用来做MMD,那就在这里选择需要的VMD即可(mmd配布网站有很多动作文件可以下载),这里选择一个兰若的动作
在这里插入图片描述

然后就会在 FBX Path目录发现fbx模型,此时的模型就可以使用了,如果模型没有材质,就调整贴图文件和fbx在同一目录,然后让unity自动识别贴图即可,如果还是不行,那可能就只能手动贴图了(芭芭拉失败ing),还有些模型有可能会解析失败,unity 这个插件并不是完美的
这里芭芭拉失败了,但是同样的步骤莹就成功了

后续就是灯光,环境,渲染,下一篇会使用Unity高清渲染管线配合实时光追来制作MMD,敬请期待
在这里插入图片描述

如果是游戏目的,想要我们的莹妹穿越到新世界探险,那就需要修改骨骼设置,Humanoid,这是unity的可重定向骨骼,Avatar
在这里插入图片描述

可以看到通过MMD4插件解析的pmx 可以完美配置Humanoid
在这里插入图片描述

剩下的攻击动作,跳跃,移动等等都可以使用unity商店或者mixamo下载的动画去映射到莹妹身上。
mixamo的动画没有表情,同时也需要修改动画为Humanoid,更多问题请自行查找mixamo在unity使用的教程,在此不再叙述
在这里插入图片描述

Blender插件

与unity插件步骤差不多,下载插件,导入blender,使用插件,导出FBX,导入Unity,使用即可
如果是做MMD,也可以先在bledner 设置好,然后导入unity做渲染即可
Blender 下载:https://www.blendercn.org/
Cats插件:https://github.com/GiveMeAllYourCats/cats-blender-plugin
mmd_tools插件:https://github.com/sugiany/blender_mmd_tools
Cats集成了mmd_tools,所以更推荐Cats,两者用法基本一样
下载发布版.zip,

在这里插入图片描述

解压缩放到 Blender 2.93\2.93\scripts\addons_contrib 下,
在这里插入图片描述

打开bledner,启动插件,blender不会配置,使用的,请自行学习,前面有一篇blende配置博客可以参考,同时blender做MMD,也使用过Cats插件,可以去看那篇关于blender的使用,如果有帮助还请多点赞收藏(#.#)

此篇主要是讲blender导出与如何联动unity使用,选择之前unity插件失败的芭芭拉,Import导入

可以看到,芭芭拉的模型使用Cats完全没有问题,但是骨架并不适合直接导出到unity,点击FixModel,然后就可以导出Fbx 到unity中了
在这里插入图片描述

如果导出时候选择了相机与灯光,那么会将整体打包成一个fbx,导入unity时记得将贴图文件与fbx放在一起导入到unity中,unity会自动识别贴图
在这里插入图片描述

同样如果想要芭芭拉动起来,修改骨骼为Humanoid,然后添加动作即可,修改为Humanoid,检查下Avatar是否正确,有错误则手动调整一下
在这里插入图片描述

加入动作即可
在这里插入图片描述

两者对比

unity插件能做的Blender插件都能做,unity 插件做会出错的,blender可以做,但是blender如果不会用,那就还是用unity插件吧,实在是unity插件做不了,那就考虑blender插件即可
unity插件的骨骼可能会更加准确,blender插件骨骼有时候要调整
unity插件的材质有可能无法识别,blenderFix之后,会将材质合并,骨骼会精简,

推荐阅读