米哈游提供的模型是 .pmx 格式,无法直接导入 Unity,需要转换为 Unity 支持的 .fbx 格式。Unity 还支持其它格式的 3D 模型,但是对 .fbx 支持最好。在 Unity 项目中,应该尽量使用 .fbx 格式的模型。

本文记录将 .pmx 格式的原神模型转换为 .fbx 格式,并导入 Unity。

下载模型

相关模型可以在模之屋的原神官方账号中找到,点击这里

选择一个模型下载解压,比如「八重神子」。解压后文件结构如下:

文件结构

安装 Blender

Blender 是一款开源的 3D 建模软件,可以用来导出 .fbx 模型。点击这里下载 Blender。

安装 Cats 插件

Blender 本身并不支持 .pmx 格式,还需要安装 Cats 插件。点击这里打开 Cats 插件的 GitHub 仓库,点击下方 README.md 中的「Download here」下载插件。

下载后无需解压,在 Blender 中,点击 Edit > Preferences > Add-ons > Install… 选择下载的插件文件,点击「Install Add-on」安装插件。在插件列表中勾选激活插件。

启用插件

导入模型

首先,打开 CATS 面板,打开方法为:点击 Blender 右侧的 <,然后选择 CATS。

打开 CATS

点击 CATS 面板中的 Import Model,选择下载好的的 .pmx 模型,点击 Import Any Model 导入模型。

导入模型

导入后,选择 Fix Model 修复模型,修复后模型的贴图就显示正常了。

修复模型

导出模型

导出模型为 .fbx 格式,点击 File > Export > FBX (.fbx),导出设置如下:

导出模型

导入 Unity

将导出的 .fbx 模型拖入 Unity 项目中。在 Inspector 中设置模型的 Rig 为 Humanoid。

Humanoid

在 Materials 选项卡中,分别执行 Extract Textures 和 Extract Materials 操作,将贴图和材质导出到项目中。

导出材质

至此,模型就可以在 Unity 中正常显示了,下面是将材质改为 Unlit 的效果。

效果展示

报错解决

在该过程中,遇到了一些报错,这里记录一下。

激活 CATS 插件时报错

ValueError: bpy_struct: item.attr = val:: 'TESTING' not found in ('OFFICIAL', 'COMMUNITY')

解决方法:删除 __init__.py 中的 TESTING

bpy.context.window_manager.addon_support = {'OFFICIAL', 'COMMUNITY'}

Import Model 时报错

AttributeError: 'NoneType' object has no attribute 'select_set'

解决方法:删除 common.py 脚本中 delete_hierarchy() 方法里对 unselect_all() 的调用。

def delete_hierarchy(parent):
    # unselect_all()
    to_delete = []

导入 Unity 后没有贴图

  1. 确保导出模型时 Path Mode 改为 Copy,并激活 Path Mode 后面的 Embed Textures 图标。
  2. 确保在 Unity 中执行了 Extract Textures 和 Extract Materials 操作。