MMD是个资源丰富的素材库,但是其骨骼工作方式过于精细且与Mixamo的骨骼布局不能匹配。我的Godot项目一般小打小闹,对骨骼布局精度没有过高的要求(Godot本身也没有),因此导入之后需要对骨骼进行一定的清理,这篇文章会记录一下怎么完成。
直接导入Godot
Godot Asset Library里面有一个GodotMMD插件,支持直接将MMD模型导入Godot,但是强制需要.NET版本的Godot才能使用这个插件。我没有使用过这个插件也不知道效果如何,也不知道能否自动清理与重命名骨骼,因此这边就暂时忽略。
导入流程
这边通过Blender来中转一下MMD模型,顺便进行骨骼处理。Blender使用MMD Tools插件来导入(这东西比Cinema4D的好使一百倍),导入时我习惯会勾选将骨骼名称翻译成英文,可以增加可读性。
接下来按这些选项来处理模型,整理一下骨骼,并且把材质转换为Blender格式,这样导入Godot的时候就能自动把Albedo贴上,不用自己挨个去找对应的贴图。
下面处理骨骼,去骨骼组给这个shadow和dummy先都删了。
下面使用Voyage Bones Merger插件,能够附带权重一块合并两个骨骼。对照Godot的标准Armature把那些分出去过于精细的骨骼全合了。合成完之后,调整一下骨骼层级结构,使得骨骼层级与Godot的标准Armature一样。
注意Hip和Waist需要调整到和Godot的Armature相对应的位置,原本的位置一般都是不对的。调整完的模型一般这样
由于Godot和Mixamo的默认模型姿势都是T-Pose,我们需要把A-Pose调整成T-Pose。具体做法是,在姿势模式里将A-Pose手动调整成T-Pose,然后将Armature修改器复制一份,把复制的设置成invisible。接着使用插件Apply Modifiers With Shape Keys插件(当然如果角色没有Shape Key只接Apply即可),将生效的Armature修改器塌陷了,接着在Pose Mode下将当前姿势设定为Rest Pose,恢复Armature的Invisible属性即可。
之后将模型导进Godot即可。Blender到Godot应该非常基础,记得用Retarget将骨骼重命名一下,这里就不再赘述~