基于傅老师unity游戏教学的学习笔记(EX)将PMX格式的MMD模型导入unity并使用

为了学习unity,开始游戏制作大业,我选择在bilibili上寻找unity游戏教学视频并边做边学,以此系列博客作为笔记。

(EX)将PMX格式的MMD模型导入unity并使用

想做3D游戏,优秀的模型不可或缺。本想自己先从零开始学学建模,但实际上时间也并非那么充裕,尤其是记得聂俊老师曾经说过,在试图制作独立游戏的初期,完成一个又一个的小游戏所能带来的成就感才应该是推进自己梦想的动力。于是选择使用现有的模型来实现学习项目。
作为一个老二次元,说到模型第一反应肯定是MMD,正好崩坏3官方也有配布官方的MMD角色模型,于是就欢欣鼓舞的投入了使用,但是真的上了手才发现并不是闭门造车就可以研究出来的东西,在网上寻找教程的时候正好看到了傅老师的unity教学番外篇,感觉受益匪浅。

技术支持

1.unity(版本2019.4.13f1)
2.MMD4Mecanim(网址:http://stereoarts.jp/)解压之后会后很多乱码(因为日区),建议用MMDZIP解包(Mecanim:unity中的动画系统)
3.unity-chan(assetstore)

开始操作

1.将MMD4Mecanim导入unity并import。

2.下载喜欢的MMD导入unity。

3.assetstore中搜索并导入unity-chan。

4.将unity-chan绑到模型上

①将模型的RIG(绑骨)类型中的Animation Type选项转换为humanoid类型并apply。完成后可以configure一下看一看绑骨有没有问题(有问题的话骨骼会由绿色变成很明显的红色) 。
②将unity chan control script add component到模型上。
③将刚体部分的freeze rotation 的xyz上锁(在constrains中)。
④将胶囊体的数据改动到合适。
⑤加一个plane防止模型因为重力直接坠落(reset可以直接到脚下)。
⑥将animator的controller改为unitychanlocomotions。
⑦将MMD4Mecanim中的physics engine改为bullet physics模式,再将同component下的physics中的generate colliders 给process出来,即可使得头发和裙子等具有物理效果。(不过我没太懂后半部分做与不做的区别)
经过以上步骤即可在unity中基于unity-chan进行移动奔跑跳跃操作。
然后就会出现一个问题:模型在很多时候(比如制造一个斜坡使其上坡),会有掉帧的情况出现,这是为什么呢,原因如下:

5.掉帧的原因及解决办法

Unity3D内置的是NVIDIA出品的PhysX物理引擎,而大神做的MMD4Mecanim插件中使用的是bulletXNA引擎,这两套引擎在互相沟通的时候会造成效能的额外开销。可以在Windows的profiler中看出效能的使用情况,最占效能的是PhysicsFixedUpdate部分。傅老师对此有自己的猜测,不过我个人认为这部分对我来说也许还远,再次略过。由于unity-chan需要rigidbod所以无法单独删除,所以傅老师的解决方法是忍痛割爱删除unity-chan的移动代码,自己写移动代码。代替rigidbody选择的是character controller。由于跟学的傅老师的【互相伤害】并没有移动部分,这里选择跳过,以后制作移动部分时再进行记录。

你可能感兴趣的:(unity学习,游戏,unity)