欢迎光临散文网 会员登陆 & 注册

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

2019-02-23 17:48 作者:NXL2  | 我要投稿

前言

    之前的教程是对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文件导入。

按B键框选不需要的物体
按X键或者Delete键删除
选中相机,导入vmd文件(MMD相机文件)

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

调节适当的参数

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

导出abc文件

Maya

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

导入之前从Blender导出的abc文件

    之后可以在场景中看到导入的摄像机。

    点击缓存,点击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轨道
添加abc流播放

    将abc轨道的时间线,调整为与模型的动画轨道相同的长度(帧数),在Inspector中可以进行精确的调节。

    点击Game视窗,在选中时间线时,拖动时间线窗口中的游标,可以察看摄像机的镜头动作。

    在场景中再对模型的位置进行调整,确保模型在镜头的合适位置。调节完成后播放场景,查看效果如何。这样MMD的基本元素已经大致都已经导入到Unity中了。



MMD联动Unity学习笔记 Vol.1 将MMD导入Unity组装的评论 (共 条)

分享到微博请遵守国家法律