Unity模型导入系列 #04 | MMD资产导入Unity的完整流程

引言

素材来源:模之屋

使用软件Unity(建议Unity 2022.3或者更新版本)

过程 :下载模之屋的素材 -> 导入到Blender -> 转换为FBX后导入到unity

一、下载素材

模之屋网站:xxx(自行搜索,此处无法给出)

  1. 选择任意模型,然后下载即可。

注意:如果直接下载.fbx模型就可以省去转换的步骤

  1. 下载后会得到.zip文件夹,解压即可。
  2. 解压后会得到下图所示的文件,其中,.pmx是必须存在的,其他两个文件夹是贴图等。

二、在Unity中导入pmx模型

  1. Unity中下载大佬制作的一个插件:github.com/CandidumGam...
  2. 然后在Package Manager中导入即可。
  1. Tools中看到有这个UMT就是下载成功了
  1. 下载解压后的全部文件直接拖入unity,该插件会自动识别并配置好对应的贴图,最终得到配置好的预制体。
  1. 直接拖入场景即可。(此时导入的是.pmx素材)

后续直接绑定动画失败了,暂时不知道如何解决。

但是可以通过获取这个的Material实现后续的操作!请看后文。

三、转换为.pbx形式

使用软件blender

  1. 安装并启用MMD Tools
  1. 导入模型

3.导入贴图

点击Blender右上角第三个图标(材质预览),可以反复切换一下,导入需要一定的时间。

4.导出为.fbx

Blender右上角仅选中xx_mesh,其他的都是MMD相关的

导出

以下是导出的相关配置:

限制到选定的物体、物体类型仅选择网格(按住Shift)

关闭添加叶骨、关闭导出动画

四、上传 Mixamo 自动绑骨

Mixamo网站www.mixamo.com/#/

  1. 选择刚刚导出的.fbx文件,上传并等待加载完成。
  1. 确认模型后点击Next
  1. 绑定标记点并等待模型生成
  1. 下载生成的.fbx

五、下载动画(使用Mixamo动作库)

Mixamo网站www.mixamo.com/#/

  1. 选择合适的Animation并下载,记得勾选In Place
  1. 下载时的选项可以参考下方截图

3.导入动画

创建对应的Animation Controller,然后挂载在已经配置好的模型上,然后自行连线即可。

六、在Unity导入.pbx

  1. 将模型拖入文件夹,点击导入的文件,在Inspector中选择Rig并生成模型。

待它自动生成后会发现模型是白色的

  1. 替换材质和贴图

选择第二步导出的.mbx模型,选择material,导出到一个文件夹内

然后一步一步对照MMD那个模型的贴图,填入即可。。。

最终效果:

七、可能出现的一些问题

1.绑定动作

务必参考下面的配置

2.如果出现动作变形

如图,动作变形了,是因为绑定的时候没有统一Avatar。

解决方法 :点击你添加的动作,统一将Humanoid动作Copy From Other Avatar,Source填有贴图的那个模型!

3.如果位移类动作出现偏移

这是因为Mixamo跑步动作本身带了前后位移,然后本身项目是使用的PlayerMotor/CharacterController自己推角色移动,所以会看起来偏移,勾选下方选项即可。

八、结语

记录一下,希望下次碰到不会出错~

相关推荐
_zhourui_h_3 小时前
Unity MyFramework 用法说明(十六):使用 AsyncTaskGroup 等待多个异步任务完成
unity3d
_zhourui_h_3 小时前
Unity MyFramework 用法说明(十七):使用 WaitingManager 统一等待异步任务与业务条件
unity3d
SmalBox10 小时前
【节点】[UVCombine节点]原理解析与实际应用
unity3d·游戏开发·图形学
_zhourui_h_1 天前
Unity MyFramework 用法说明(十五):使用 ResourceRef 管理资源引用与异步加载
unity3d
SmalBox1 天前
【节点】[ThreadMapDetail节点]原理解析与实际应用
unity3d·游戏开发·图形学
SmalBox2 天前
【节点】[Emission节点]原理解析与实际应用
unity3d·游戏开发·图形学
_zhourui_h_2 天前
Unity MyFramework 用法说明(十四):使用 ComponentOwner 和 GameComponent 拆分对象能力
unity3d
_zhourui_h_3 天前
Unity MyFramework 用法说明(十三):使用 StateMachine 管理互斥与共存的角色状态
unity3d