mmd模型导入unity3d

2015-05-09 20:44:28 sdqq1234 阅读数 16591

      最近在学习unity3d 5.0的基于物理的渲染,说实话,这玩意比unity4里的传统光照模型好理解,而且也多了很多的贴图可用,效果也好了很多,尤其是加入了AO贴图以后,能够很好的表现模型暗部的阴影了。出于个人兴趣,就使用了mmd的模型放到unity5.0里做效果,能在unity里看到可爱的妹子,对于我来说是很开心的,这里用到了mmd4mecanim(以下简称mmd4)这个插件,实在是非常感谢作者nora先生,这个插件能非常完美的将mmd模型导入到unity中去。这里附上作者的twitter:https://twitter.com/Stereoarts  注意需要翻墙。

     这个插件能将mmd模型和里面的动作转换为fbx文件,这个格式能很方便的导入3dmax,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.接下来是重点,由于mmd4里的shader是完全模仿mmd效果的shader,并不是基于物理的shader,所以需要将生成出来的shader全部调为unity5里的standard,选中materials文件夹里的所有材质球,将shader改为standard。


因为没有仔细调整,所以模型会变成这个样子

mmd模型的材质命名基本都是日语的罗马音,所以懂日语的人会比较好找对应的材质球。

将材质球稍微调整之后,得到一个看上去比较正常的模型。


6.以上的效果看上去还不错,但是细节部分完全就不行了。unity可以使用lightmap来烘焙静态的物体,使得其阴影能够很好的表现出来,但是动态物体就不行了,这里就需要给动态物体添加AO贴图,在standard的shader里这个就是Occlusion贴图。接下来就需要得到一个比较好的Occlusion贴图。

7.使用3dmax打开这个fbx文件。查看该模型的uv发现,这个模型的uv非常混乱,并且使用了镜像和重叠的uv,这是因为mmd模型原本是为了做视频而做的模型,所以可能在制作的时候并没有按照游戏模型的制作标准来分uv和制作贴图,但是Occlusion贴图的烘焙又必须依靠正确的uv来烘焙,所以这里需要重新分一下模型的uv。


8.一般mmd模型会有两个网格部分,一个是脸部,一个是除脸部以外的其他部分。选择除脸以外的部分,选择可编辑网格中该部分的所有顶点,将焊接值设置为0.001,然后焊接。

焊接之后顶点应该会变少

9.选择脸以外的部分,因为焊接了顶点,可能面的平滑会出问题,选择脸以外部分网格的所有面,并自动平滑一次,选中脸以外的部分,选择导出选定对象,并导出为obj



10.将导出的obj文件导入到Zbrush 4R6中。这里准备使用zbrush 4R6里的uvmaster进行自动拆分uv。


11.在Zbrush里找到Zplugin,选择uvmaster,并使用里面的unwrap命令,稍等片刻,uvmaster将会自动把模型的uv分好


12.稍等之后在右边的tool工具栏中选择texturemap,选择create -> newfromUVcheck查看分好的uv,如果看到这样的图,则说明uv已经分好了


将模型导出成obj保存,用max将导出的obj打开并添加uvw展开修改器检查uv是否正确。现在的uv是不是好看多了。



13.将uv从3dmax中导出,回到最早obj模型的max工程中,选择身体部分的网格,添加uvw展开修改器,将贴图通道选择为2

弹出窗口中选择移动。点击加载,选择新的uv。加载之后可能会有一些显示错误,不过没关系,打开uv编辑器,随便框选几个顶点就显示正常了。


14.因为从unity导入到3dmax中会丢失模型的所有贴图,这一步要将导入的3dmax中的模型还原到unity中的正常样子,具体方法就是调整3dmax里的材质球,对应贴图就好。


15.3dmax菜单中选择 渲染-->渲染到纹理,添加渲染元素为diffusemap,渲染通道选择为2,填充设置为16,分辨率设置为2048x2048,如图


然后选择好保存位置点击渲染,渲染出来的贴图看上去感觉是有问题的,但是其实用photoshop打开或者放到unity里去之后是没有问题的


16.确保漫反射贴图正确以后打开工具->通道信息,选中贴图2并点击清除,


之后会多出一个uvw清除修改器


17.将uvw展开和uvw贴图清除修改器移动到蒙皮的下面,可编辑网格的上面


然后将这两个修改器右键--》塌陷,塌陷完以后将只留下蒙皮和可编辑网格两个修改器。

18.塌陷完以后再次添加uvw修改器,确保贴图通道为1,再次加载之前保存的uv,

这样就完成了漫反射贴图的烘焙和新uv的合并。

由于烘焙漫反射贴图会把之前的多个材质球合并为一个,接下来就是还原本来的多个材质球以便调整单个部位。

19.打开材质编辑器,点击吸管,移动到模型身上吸取材质。

20.将吸取到的材质球付给第二个新的材质球,方法选择实例。

21.最后将材质球拖到模型身上,完成材质球还原。

22.将新添加的uvw展开修改器塌陷之后就可以烘焙AO贴图了,最后把这个模型导出为fbx之后,重新放进unity中。

模型最终效果就变成这样了,是不是比最早的好很多呢

2015-04-21 14:34:09 qinyuanpei 阅读数 19868

今天想来说说MMD。MMD是MikuMikuDance的简称,是由日本人樋口优开发的一组3D动画制作软件。该软件最初希望能够将3D建模软件完成的VOCALOID的初音未来等角色模型制作成可以随着音乐跳舞的动画,因此称为MMD。作者在此基础上开发了能够将歌曲让初音未来等角色歌唱的MikuMikuVoice。2011年9月11日,樋口优宣布停止MMD新版本的开发工作。不过人们对制作MMD的热情丝毫没有减少,在动漫、游戏等领域总是能够不断看到MMD的影子。例如MMD/宇月千本樱/夏侯瑾轩都是较为典型的MMD。

好了,相信现在大家都对MMD有了一定的了解了,作为一名单机游戏爱好者,我目前最为遗憾的两件事情:
* 不会制作游戏MV(或者说视频)
* 不会制作MMD(因为我是个程序嘛)

在我看来以同人形式去发掘一个作品中优秀的东西,这件事情本身就是一件让人觉得快乐的事情,因为可能某一个人和你有相同的想法,当它看到你的东西的时候,发觉你想表达的东西就是它想要表达的。我每次玩完一款游戏以后都会去网上搜集比较好的MV,因为我觉得随着人一天天地慢慢长大,有时候你发觉自己再没有时间去玩游戏的时候,通过看视频能让你想起很多的事情,有时候看着别人做的MV会哭,我便觉得当时的经历其实挺值的去回味的。好了,说了这么多毫不相干的事情,差点忘了今天的正事。首先我们来了解下一个完整的制作MMD的过程:
* 使用Maya、Blender或者3DsMax等3D软件建模(或者从游戏中提取)
* 使用PMDEditor或者PMXEditor对模型进行绑骨、动作和表情制作等操作
* 将处理过的.pmd或者.pmx模型导入MikuMikuDance完成场景、音乐完成动画制作

从这样一个过程我们了解到,制作MMD还是需要一定的技术门槛的,因为并不是每一个人都能够完成模型的绑骨、动画这些任务的。这篇文章不提供以上软件的下载和使用方法,因为我们接下来的内容基本与以上软件无关,我们的重点依然是Unity3D,因为我是一个游戏开发者嘛,哈哈。好了,下面的内容基于两点假设:
* 你有一个PMD或者PMX模型
* 你有一个VMD的动作文件

首先,第一步我们需要一个Unity3D插件MMD4Unity,将这个插件导入项目后,为了使整个项目结构较为清晰,我们将这个插件的文件夹命名为MMDPlugins。在MMDFiles文件中我们准备了三个文件:
* 模型文件:初音.pmd
* 动作文件:动作1.vmd和动作2.vmd

好了,现在我们注意到Unity3D菜单栏上会增加一个Plugin菜单项,我们单击这个菜单项会发现MMD Loader和XFile Importer这两个项目,这里我们选择MMD Loader这个菜单项:

MMD1

这两个子菜单项的意义十分地明确了,PMD Loader负责加载PMD模型并将其转化为Unity3D可以识别的模型文件,VMD负责将一个动作文件套用到一个模型上。所以:
* 1、通过PMD Loader打开加载PMD文件的窗口,建议这里将ShaderType设置为Default,因为如果使用MMD的Shader的话,待会转换出来的模型可能会存在找不到材质的问题。接下来我们点击Convert,稍等片刻就会在场景中看到一个模型(prefab)文件。

MMD2

MMD3

  • 2、接下来通过VMD Loader打开加载VMD文件的窗口,选择场景中的模型文件和项目资源中的XMD动作文件,点击Convert,大概有1分钟多一点的样子就好了。此时我们选择场景中的模型文件,找到它的Animation组件,然后点击Animation右侧的按钮为其指定一个动画文件,因为刚刚我们已经为它添加了一个动作,所以我们可以很容易的在项目资源中找到名为初音_动作2的动画片段(AnimationClip)。

MMD4

好了,现在我们就来看看这个MMD的效果吧!

MMD5

哈哈,感觉效果还不错吧!

现在来说说我在使用这个插件过程中遇到的问题:
* 在转换PMD模型的时候如果选择Default转换出的模型可以找到对应的材质,可是模型是错误的;如果选择MMDShader,转换出的模型会找不到对应得材质,比如说我在尝试转换下面这个模型的时候,因为MMD对模型的精细程度的要求,所以模型会被分得很细,因此像这个模型当贴图数目较少的时候,就没有办法自动对应贴图,所以这块目前还是个问题吧!

我不知道他是谁

  • 如果使用的是PMX模型,可以用PMEditor这个软件转换下格式,转成PMD格式后,后然后再按照本文的方法去做就可以了。
  • PMD转换出来的模型没有办法选择其中的某一个部分,因此在操作模型的时候可能会不太方便吧,以前都是选择某一部分然后给模型贴图,仙子啊这招不行了啊。

好了,今天的内容就是这样了,有什么问题大家给我留言哦!

2018-11-21 17:42:20 qq_40892419 阅读数 809

在这里插入图片描述
模型导入Unity中出现这种情况。加灯光,与本身在3DMax中还是不一样。在这里插入图片描述
设置Window->Lighting->Settings在这里插入图片描述
Skybox Material 默认天空盒丢失,点击右边的小圆圈赋值默认的天空盒就行。在这里插入图片描述
最后点击Generate Lighting.在这里插入图片描述
结果图在这里插入图片描述
也可以再加个灯光。在这里插入图片描述

unity-MMD制作

阅读数 2907