MMD联动Unity学习笔记 Vol.1 将MMD导入Unity组装

前言
之前的教程是对MMD4Mecanim中的PDF文档进行伪译,然后承诺对MMD联动Unity相关的问题进行剖析研究。从这篇专栏开始探究联动相关问题,也算是定期对自己学习成果的记录,Up也是萌新一枚,水平有限难免会出错误,如有疏漏请各位看官不吝赐教。
这篇准备的是将MMD中基本所有元素都导入Unity中,用Unity代替MMD,在Unity中进行组装渲染,最后输出视频文件。

事前准备
Alembic for Unity下载地址https://github.com/unity3d-jp/AlembicForUnity
blender_mmd_tools下载地址https://github.com/sugiany/blender_mmd_tools
blender和Maya请看官自行百度

将MMD像机vmd文件导出为abc文件
MMD4Mecanim不支持将MMD的相机动画导入Unity,所以想在Unity中使用MMD的相机就相对来说比较麻烦。需要将MMD的相机文件经过两种3D软件导出abc文件,才能在Unity上使用。
①Blender
导入mmd_tool插件。Blender的操作和插件的导入请参考下面教程。本篇将不进行赘述。

删除摄像机以外的物件,选中摄像机,将mmd的vmd文件导入。



导入后,切换到摄像机分页适当调节参数。

之后,导出abc文件上,将Scale改为1,Sample改为128(可适当改变参数观察效果)。

②Maya
点击缓存,点击Alembic缓存,导入Alembic...,导入之前从Blender导出的文件。

之后可以在场景中看到导入的摄像机。
点击缓存,点击Alembic缓存,将所有内容导出到Alembic...。

将缓存时间范围设为开始/结束,也就是动画的帧范围,步长改为0.3。勾选帧相对采样,其它保持默认值。

稍等片刻待abc文件导出。
关于MMD相机导入Unity的方法还有一篇专栏也有说明,感兴趣的同学可以试试。


在Unity进行组装
新建项目。根据之前专栏的内容,导入MMD4Mecanim和Alembic for Unity,再将模型及动作导入,场景可以在勾选使用规定后直接导入。将转化成fbx模型文件拖入场景或层级中。
新建Animator Controller,将其拖入模型的Animator的Controller中。
双击Controller文件打开Animator窗口,将模型转换的动作文件拖入Animator的Base Layer里面,该动作将自动转为默认状态机,播放场景将直接执行该动作。
将从Maya导出的abc文件,导入资源文件夹中。
在资源文件夹中,右击点击Create(创建)>Timeline,新建时间线,再将其拖入层级中。

双击Timeline打开时间线窗口,点击Add按钮(或者在左侧窗口右击),再点击Animation Track,再右击右侧时间线选择Add From Animation Clip,增加一条动画片段,片段选择模型的动作文件。


(这里还有一种简便的操作,就是将模型直接拖入时间线左侧窗口选择动画轨道,再在右侧添加动画片段)
接下来再在左侧窗口右击,选择UTJ.Alembic> Alembic Track,增加一条abc轨道。然后在右侧窗口右击选择Add From Alembic Stream Player,选择之前导入的abc文件。


将abc轨道的时间线,调整为与模型的动画轨道相同的长度(帧数),在Inspector中可以进行精确的调节。
点击Game视窗,在选中时间线时,拖动时间线窗口中的游标,可以察看摄像机的镜头动作。
在场景中再对模型的位置进行调整,确保模型在镜头的合适位置。调节完成后播放场景,查看效果如何。这样MMD的基本元素已经大致都已经导入到Unity中了。