Skip to main content

Rig Mesh Transfer Tool(骨骼网格体转移工具)介绍

Rig Mesh Transfer Tool(骨骼网格体转移工具)介绍

Rig Mesh Transfer Tool(骨骼网格体转移工具)是一款用于在不同的骨骼架构(Rigs)之间转移网格体(Meshes)的工具。它允许你使用新导入的模型自动更新现有的对象(例如 Avatar 虚拟形象),并在需要时自动更新骨骼和混合变形(Blend shape)信息。

image.png

如何获取该工具

Rig Mesh Transfer Tool 可以在 Resonite Essentials(Resonite 基础库)中找到。

使用该工具

image.png

装备该工具后,按下次要操作(单击次键)按钮将选择一个对象作为“源(Source)”。这应该是你想从中提取转移数据的新版本模型。

装备该工具时,你选定的源网格体(Source mesh)名称会显示在屏幕角落的 HUD 上。你可以通过使用轮盘菜单(Context menu)中的“Clear source(清除源)”按钮来清除已选定的目标。

选择好源网格体后,你可以对着另一个不同的对象执行主要操作(单击主键),以将网格体和骨骼转移到该对象(即目标对象)上。

可能出现的问题

在最简单的情况下,该工具应该能够自动完成所有操作。然而,如果源对象和目标对象之间存在较复杂的差异(例如新增了网格体或更改了网格体名称),该工具可能需要一些人工干预。

image.png

该工具不会在目标网格体上转移或创建材质(Materials)。如果源网格体使用了新材质,在您手动将它们添加到目标 SkinnedMeshRenderer(蒙皮网格渲染器)的 Materials(材质)列表之前,它们将不会被渲染显示。

该工具通常无法完美处理源对象中“全新增加”的网格体(详见下文)。如果你试图添加一个全新的网格体(例如一件衣服),你最好在使用该工具之前,先在目标对象上手动创建一个名称匹配的新插槽(Slot),并为其添加 SkinnedMeshRenderer 组件。

同样地,该工具会尝试更新目标对象上的所有网格体。因此,如果你在目标对象上故意保留了一个源对象中不存在的网格体,它很可能会在转移过程中损坏。

转移算法原理解析

以下是该工具在运行过程中使用的算法的详细概述。如果转移失败或出现问题,这有助于你正确理解和诊断转移过程。

  1. 第一步:算法会在源对象和目标对象的骨架(Armature)之间创建一个映射。它通过查找两个对象 Rig 组件中的骨骼来实现,并且通过名称来匹配骨骼。如果两个对象都有 VRIK 组件,解算器的骨骼引用也可以用作备用的匹配依据(这允许在遵循人形 IK 骨骼要求的不同骨架之间进行映射)。
  2. 第二步:算法会遍历目标对象中所有的 SkinnedMeshRenderers 组件,并尝试将它们与源对象上的组件进行匹配。首先会尝试通过确切的名称进行匹配;如果名称不匹配,则退而求其次,选择顶点数最接近的网格体。匹配成功后,算法会从源对象复制新的网格体资产,同步混合权重(Blend weights),并将骨骼链接到骨架上。
  3. 第三步:如果目标对象具有 VRIKAvatarVisemeAnalyzer 组件,算法会在目标对象上重新设置口型(Visemes)。
  4. 第四步:最后,目标对象的 Rig 组件将被更新,以包含所有的骨骼。

参见