米哈游提供的模型是 .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 面板中的 Import Model
,选择下载好的的 .pmx
模型,点击 Import Any Model
导入模型。
导入后,选择 Fix Model
修复模型,修复后模型的贴图就显示正常了。
导出模型
导出模型为 .fbx
格式,点击 File > Export > FBX (.fbx),导出设置如下:
导入 Unity
将导出的 .fbx
模型拖入 Unity 项目中。在 Inspector 中设置模型的 Rig 为 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 后没有贴图
- 确保导出模型时
Path Mode
改为Copy
,并激活Path Mode
后面的Embed Textures
图标。 - 确保在 Unity 中执行了 Extract Textures 和 Extract Materials 操作。