准备工作

1、准备软件

首先你需要获取unityAlt textunity官网下载unity,注册账号安装请自行百度
其次你需要获取mikumikudance即MMDAlt text提取码:mkuu

2、准备模型、动作与相机

模型获取途径
模型格式为.pmx
国内一般为:模之屋或b站up的的配布,请自行根据借物表搜索
国外一般为:b碗booth购买亦或是n站或油管大佬配布,请善用搜索功能
动作与相机获取途径
动作格式为.vmd
动作一般分为三类、舞蹈动作、面部表情动作以及手部动作,还有相机动作
一般在模之屋b碗获取

我在这里准备的是崩坏三月轮的模型,动作和镜头分别来自闲羽与幼月。Alt text

3、检查模型与动作

我们将获取到的模型与动作导入到MMD中查看是否正常,我这里经过检查是没有问题,若你套用的模型与动作出现严重穿模,请手动修正,方法自行b站搜索(我不会修、逃
Alt text

导入Unity

1、模型的导入

我们通过MMD4Mecanim这个插件导入unity,获取插件MMD4Mecanim,红色框住的就是我们需要下载的。
Alt text
接下来解压将package包导入unity,同样是红色框住的
Alt text
导入之后我们直接将模型的整个文件夹导入并找到
Alt text
这样一个文件,这是插件自动帮我们生成的文件,在inspector面板上只要全部打钩就好了

点Agree会跳出这样一个界面
Alt text
PMX对应你的模型,VMD对应你的舞蹈动作、FBXPath则是你要保存的路径,这里先不导入动作点击Process。会跳出一个黑框等他加载完成就会自动消失,然后在对应路径下就会生成Alt textfbx文件,选中模型在inspector面板将Rig转变成类人类骨骼Humanoid,会生成一个Alt text需要我们后面指导到动画控制器上。
Alt text
若材质丢失,请尝试切换下图中的选项
Alt text
我这里是自己写的shader,所以并不担心这个问题。如下图
Alt text
默认材质效果如下图
Alt text

2、动作的导入

同样的将整个动作的文件夹导入unity,操作与导入模型的方式相同,这一次我们需要将vmd文件导入。
Alt text
完成后会多出来一个animation文件
Alt text
选中ctrl + 6会跳出Animation面板,也就是关键帧编辑面板,但这个面板是read only只读模式,如下图
Alt text
我们无法编辑,这时候我们需要选中ctrl+d复制一份移动到另一个文件夹,我这里新建了一个叫做animation的文件夹Alt text再次ctrl+6查看,会发现我们现在可以编辑关键帧了,不再是read only了。(大概可以帮助你修正一些穿模吧
Alt text
我们右键新建一个动画控制器animation controller将动作拖拽进来,如下图
Alt text
选中场景中你的模型,赋予一个Animator将animation controller与Avatar都指定进来
若模型运动错乱,尝试将Apply Root Motion勾选,这样我们的模型应该会正确运动。
Alt text

3、镜头的导入

同样的使用插件导入https://github.com/MorphoDiana/MMD2UnityTool由B站大佬MorphoDiana修改原工程得到。
解压之后请将红框的文件夹直接拖拽到unity中安装
Alt text
选中你的镜头动作,进行如图的操作。
Alt text
会得到一份镜头动画Alt text帧率为30FPS
Alt text
同样的你需要创建一个动画控制器,并将该动画片段附上。
Alt text
在场景中新建2个空物体和一个cameraAlt text

按照以下格式命名,在MMDCamera层级添加Animator并将上一步创建的动画控制器指定上去。
Alt text
这里的distance结构对应的是MMD中的Alt text,这里的父子集结构可以使我们在角色头部对不上的时候很方便的调整相机的高度,只需要调整最底层的Camera的Y轴位移即可,也不会影响到原本的镜头动画。因为坐标轴原因,重要的一点需要将Camera的Y轴Rotation旋转180度。
Alt text

警告!因为对摄像机做缩放是没有用的,所以你需要确保你的人物缩放尽量保持在1左右,若人物缩放过大或过小,则会发生相机完全对不到人物的情况发生,请一定注意。
Alt text

4、表情与口型的导入

还是插件、还是插件、还是插件、感谢写插件的大佬们https://github.com/ShiinaManatsu/MMD4UnityTools/releases/tag/1.1.0.3
直接把Alt text丢进unity安装。
导入口型时,由于插件问题导致不能正常运行,因此需要微调MMDExtensionsEditor源码。
注意:varchara = GameObject.Find(“U_Char_2”);括号内的名字请参考你模型的命名进行修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var curve = new AnimationCurve(package.ToArray());

varchara = GameObject.Find("U_Char_2");
var gameObjectName = chara.name;
var parentName = chara.transform.parent.name;
var mesh = chara.GetComponent<SkinnedMeshRenderer>().sharedMesh;

/* 被隐去的部分
var gameObjectName = Selection.gameObjects.First().name;
var parentName = Selection.gameObjects.First().transform.parent.name;
var mesh = Selection.gameObjects.First().GetComponent<SkinnedMeshRenderer>().sharedMesh;*/

var bsCounts = mesh.blendShapeCount;
var blendShapeNames = Enumerable.Range(0, bsCounts).ToList().ConvertAll(index => mesh.GetBlendShapeName(index));

按以下方法操作
Alt text
得到Alt text文件,回到角色的动画控制器新建一层
Alt text
Alt text
混合模式为叠加,权重为1即完全叠加,权重为0则为完全不叠加,Mask是Avatar Mask用来控制那部分参与叠加,那部分不参与叠加,如下图
Alt text

5、物理效果(头发,裙子等)

这里使用unity的插件 Magica Cloth 制作。首先我们需要先把骨骼显示出来
先安装Animation Rigging
Alt text
安装完成后选中你的角色
Alt text
在inspector面板就会多出来一个组件
Alt text
场景中我们角色的骨骼也会被渲染出来,方便我们后续的选骨骼操作
Alt text
为了安装Magica Cloth需要先安装Jobs与Burst插件,这两个插件相互依赖。后就可以安装Magica Cloth,获取方式是unity的资源商城,当然你也可以通过其他方式获取(笑
Alt text
我们需要根据角色的头发或者裙子创建不同的对象,我这里选择的是骨骼布料
Alt text

Alt text
这里简单解释一下
Root List即为根骨骼,如下图中红色的骨骼,可以理解为根骨骼以下的骨骼就是我们要作为布料运动的,即绿色的就是运动的。
Alt text
Collider List即为碰撞体列表,就是我们的头发会和那些部位发生碰撞
选中想要创建碰撞体的骨骼右键创建碰撞体,如下图,这里的碰撞体有三种类型,球形,胶囊型和平面。
Alt text
创建完成后通过inspector面板调节参数控制碰撞体的大小与位置方便与模型更加匹配
Alt text
Alt text
在骨骼与碰撞体都设置完成的情况下,我们直接点击Presrt选想要的预设就好
Alt text
面板拉倒最底部点击Alt text即可创建完成。

渲染导出

采用unity内置插件Recorder进行渲染输出。Alt text
选择你想渲染的格式。
Alt text
相信这些参数一定都看的懂,就不解释了。
Alt text
点击START RECORDING即可渲染输出。Alt text

下面是一些作品实例
和贝拉一起看月亮吧!Boom Clap~
符华 BoA-Action
元气舞蹈《我们快出发》首跳