Skip to main content

1.从 Humanoid 模型创建 VRM 文件

准备一个可在 Unity 中以 Humanoid 形式处理的 3D 模型

初次准备

  • 请务必准备自己制作的模型,或者加工后被允许作为 VR avatar(化身)使用的模型数据。

因为

  • VRM文件中嵌入的许可证设置,用户需要根据作者(自己或他人)的权限使用情况进行设置。

然后,确保包含所需的骨骼,使模型可以被识别为 Humanoid。

Humanoid
你可以将 Humanoid 简单地理解为一种骨骼结构标准,用于对人型模型进行统一,以便于进行重定向,会有比如:骨骼的名称、骨骼链接顺序于骨骼必要性之类的规范化标准。

基本模型
有关可用的基础模型的详细信息,请参见 BaseModel(页面待完善)
所需的骨骼

将 FBX 模型导入 Unity

将 FBX 文件夹拖放到 Assets 文件夹中

将FBX模型导入Unity-by.北溟瞬息.png

补充:
官方文档中并没有提供文档中使用的模型资源。官方使用的角色模型是由 黑星红白 创作并由 ニコニ立体 官方发布的免费可商用模型,模型可以在 ニコニ立体 找到。
https://3d.nicovideo.jp/alicia/
请注意下载的文件格式,虽然直接提供了 VRM 格式,但是如果为了学习使用,建议还是和文档中一样使用 FBX 格式进行学习。

Unity

补充:
以下其中一个是我自己打开 Unity 的界面截图(深色界面),另一个是官方文档提供的例图(浅色界面)。由于 Unity 版本不同,文件浏览界面的显示方式不同。
官方例图(旧版本)中,可以直接在列表中点击三角形将资源展开。
而在较新版本的左侧 Project 窗口中,需要选中“alicia”文件夹,然后在右边的文件预览窗口中找到“Alicia_Solid_Unity”。
这个预览的地方在文件名太长的情况看不全文件名,注意区分文件,有一个后缀是 MMD,可以进入修改文件名称状态查看完整名称(双击文件名或按 F2),或者选中文件后在右边的 Inspector (检查器) 窗口查看文件名称。

新版Unity资源界面-by.北溟瞬息.png

旧版Unity资源界面-by.北溟瞬息.png

在 Project 窗口中,选中Alicia_Solid_Unity,这是FBX的资产 Prefab(预制件)。

(新版 Unity 请在旁边的窗口中查找相应资源)

FBX 的材质设置

FBX的材质设置1-by.北溟瞬息.png

如上图所示,默认情况下,FBX 的材质设置为带有默认参数的 StandardShader(仅分配了标准着色器的Color和ColorTexture,没有半透明设置等)。
为了尽量简单地演示 “FBX 转换为 VRM” 的操作,在接下来的示例中我们将材质的着色器设置为 MToon,并将颜色设置为白色。
具体操作方法请继续往下浏览。

补充:
上面的官方示例中是没有丢失贴图的,我复现官方操作时一直是丢失了贴图的状态(模型通体白色)。FBX的材质设置2-by.北溟瞬息.png

下图内容为找回贴图的方式:
根据 FBX 文件实际情况不同,相关设置可能不一样。调整完设置以后,点击 Apply 应用设置,下面的预览窗口才会刷新。找回丢失的贴图-by.北溟瞬息.png

着色器(Shader)
VRM支持三种类型的着色器:MToon,  Unlit 和 Standard。

点击 Extract Materials 按钮,在 FBX 文件中创建 Materials 文件夹。

Extract Materials-by.北溟瞬息.png

补充:这时会弹出选择文件夹的窗口,记得自己手动创建一个文件夹,并且选择这个文件夹,不然之后提取出来的文件是散的,会很乱。示例路径为 /Assets/FBX/Materials
材质导出路径-by.北溟瞬息.png

然后将提取的材质保存到刚创建的 Materials 文件夹中。如果在On Demand Remap(按需重映射)部分已经为每个材质分配了引用,则可以跳过这一步骤。

英文文档中提到:
另一种设置材质的方法是将 Location 为 Use External Materials (Legacy)。但官方文档只关注前一种方法。

进入材质文件夹-by.北溟瞬息.png

进入这个文件夹,把里面的所有材质的 Shader 改成 VRM/Mtoon

将材质地shader改成VRM-Mtoon-by.北溟瞬息.png

补充:可以在文件夹内同时选中所有材质,然后在查看器中同时修改。


将 Shade Color 切换为白色:

将shader的颜色改成白色-by.北溟瞬息.png

正确设置后的预览效果如下图所示:

正确设置着色器后的效果-by.北溟瞬息.png

关于如何设置 MToon 着色器的更多细节,请参考MToon设置(页面待完善)

因为是步骤说明,所以我们先继续往后。

将 fbx 设置为 humanoid

fbx 的 Animation Type 默认设置是 generic。

fbx 的 Animation Type 默认设置是 generic-by.北溟瞬息.png

将它切换为 Humanoid。

将它切换为 Humanoid-by.北溟瞬息.png

并且点击【Apply】按钮应用设置。

你需要重新选中 Alicia_Solid_Unity 这个资源文件才能找到这个设置。(官方没说,搞得我找半天)
上面两图一个是旧版界面,一个是新版界面,除了颜色,基本没什么区别。

Humanoid
此时,fbx importer(FBX导入器) 会自动推测 Humanoid 骨骼的分配。有时可能会失败,并且,即使程序成功执行,也可能出现最终效果错误的情况。

点击【Configure】以配置你的模型。

将弹出一个消息框,询问您是否要保存当前场景。单击【save】保存它。

点击【Configure】配置模型-by.北溟瞬息.png

补充:我复刻操作但是没看到所说的这个保存当前场景的询问,可能是演示人员修改了其他设置没有保存,所以进入 Configure 界面时弹出了提示。

BoneMapping(骨骼映射)-by.北溟瞬息.png

请检查并确认骨骼分配情况。

上面这个图,在官方文档里就像这样这么圈了划了几下,也没说怎么设置之类的,估计意思就是让你把错误的骨骼重新配置以下,这东西我也不会用,反正设置完以后点右下角的【Done】就可以退出这个界面了。

BONE(骨骼)
下巴骨骼可能被分配到前发际。
眼睛骨骼可能被分配到眼睛高光。
注意这些细节是否符合你需要的效果。


将 prefab(预制件) 放入场景中

将 prefab(预制件) 放入场景中-by.北溟瞬息.png

将预制件从 “Project”(项目) 窗口拖到 “Hierarchy”(层次结构) 窗口。

新版本 Unity 直接把资源从 Poject 窗口拖到 Hierarchy 的层级菜单里,这样的话,角色会被放置在空间原点。如果直接拖动到3D窗口,角色会被放置在鼠标位置。

老版本的 Unity 直接从左边的大纲(文件树状图)里把 FBX 文件拖拽进去(文章开头也有提到两个版本的界面区别),官方文档放的老版本 Unity 的截图太长了这里就不放了。
官网的页面大改过一次(大概24年初),这一改,居然把这个位置的老版本 Unity 的示例截图弄丢了。这官方真就是个草台班子啊。本来还想把老版本的例图放上来对比的。


确认 fbx 的 blendshpae 法线是否混乱


以下是 BlendShape 中出现奇怪阴影时的对策。

检查并确认BlendShape(页面待完善)

从菜单中将模型导出为VRM

新版本UniVRM导出-by.北溟瞬息.png

点击“VRM0”->Export to VRM 0.X”,弹出对话框。

旧一点的版本是,点击“VRM0”->“xport UniVRM-0.XX.X”。如下图:
旧版本UniVRM导出-by.北溟瞬息.png
再老一点的版本是,点击“VRM” -> “UniVRM-0.XX.X” -> “Export humanoid” 如下图:
更旧版本UniVRM导出-by.北溟瞬息.png


【Export Root】-by.北溟瞬息.png

点击将 【Export Root】栏右边的圈◉,选中 prefab 展开的 GameObject ,将其设置到 Export Root。

ERROR(错误)
在导出对话框中执行各种错误检查。
    1.必须要解决的错误消息会显示为“红色”
    2.如果要立即导出VRM,则可以忽略警告的消息显示为“黄色”
导出对话框(页面待完善)

补充:
如果导出前你没选中角色模型,下面则会提示:
中文:请为模型导出设置 ExprotRoot
日语:ExportRoot をセットしてください
英语:Please set up a ExportRoot for model export
右上角可以切换语言,但是窗口界面可能不会立刻刷新,需要重新打开窗口。
如果你在导出时已经选中了角色模型,则会跳过这个窗口进入下一个阶段

VRM导出时的错误信息-by.北溟瞬息.png

请输入许可证信息。如果没有红色消息,则可以点击 Export(导出) 按钮。为了进行下一步操作,请创建 Assets/models/vrm 文件夹并将其导出到该文件夹中。

导出位置
您可以选择将导出的文件放置在 Unity 中的 Assets 文件夹内或外。如果选择放置在 Assets 文件夹内,导出后会立即进行导入(导入较为耗时)。并且如果选择放置在 Assets 文件夹内,建议创建一个新的、专门的文件夹,以便更清晰地管理。


导出设置

制成T-Pose-by.北溟瞬息.png

Make T-Pose(制成 T-Pose)
如果模型不处于T形姿势,请单击“Make T-Pose ”以制作一个T形站姿姿势。
该功能可以将角色模型自动转换为 T-Pose。如果不使用此选项,自己在场景中手动调整成 T-Pose 的外观也没有问题。

Pose Freeze(姿态冻结选项框)
“Pose Freeze”用于导出过程中的模型规格化。新版本将自动勾选此复选框,以检查将自动检查导出目标是否需要规范化(在设置 ExportRoot 后自动检查是否存在旋转和缩放)。