Skip to main content

原生导入虚拟形象

虚拟形象创建与导入指南

注意: 本指南有待重写,你可能需要查看 Avatar Hub(虚拟形象中心)以获取更多信息。

请根据你的需求跳读本指南,尽管建议将其作为一套完整的步骤来阅读。

指南使用说明

本节描述了步骤中包含的内容以及需要做的事情。

WARNING: There are gotchas in this process(警告:过程中存在陷阱)
跳过这些标记可能会导致出错,甚至导致虚拟形象被删除或损坏。

NOTE: This guide is long(注意:本指南篇幅较长)
这里列出了常见的方法和问题,指南的大部分内容是如何修复出错的地方。如果不适用,请直接跳过!

VERIFY: Do you have a working PC(验证:你的电脑是否工作正常)
此过程中的小问题会随着时间的推移而恶化,这些标记会尽早提醒你可能存在的问题。

NOTE: The guide is ordered(注意:指南是有序的)
本指南旨在按照导入流程阅读,如果一个步骤在另一个步骤之前,则通常应该按照相同的顺序执行。

准备模型

Resonite 支持多种 文件类型,支持的特性各不相同。

NOTE: Humanoid Rig Requirements for IK(注意:IK 的类人骨骼绑定要求)

WARNING: Model Scale(警告:模型比例)
Resonite 使用米(Meter)作为单位,但许多虚拟形象并非如此。导入过程会使用一个乘数将虚拟形象缩放到人类平均高度。
如果该乘数 >1000<0.0001,某些创建步骤可能会出错。
在使用 Blender 等工具导出时可以对模型进行缩放。如果你在 Blender 导出时使用了 Resonite 应用的那个缩放比例,虚拟形象将以 1 的比例导入且不会出现问题。
这可能会导致以后难以更改虚拟形象网格,如果模型比例在此范围内,则无需缩放。本指南中的 CHECK(检查) 标记会提示何时验证模型比例。

.GLB/.GLTF - 推荐

Draco 网格压缩

注意: 此问题已被追踪:issue #155

不支持 Draco 网格压缩扩展。你可能需要从 Blender 重新导出并取消勾选 Compression(压缩)设置。

.FBX - 良好

WARNING: Transform Slots(警告:变换插槽/额外骨骼)
某些 FBX 文件导入时会带有额外的骨骼,这可能导致虚拟形象的许多部分损坏。本指南中的 CHECK(检查) 标记会提示何时检测此问题。
如果模型有这些骨骼,以下功能可能无法正常工作:

  • 动态骨骼(Dynamic Bones)可能会显得比正常情况下更“摇晃”,并且弯曲得不自然。
  • 手指会以奇怪的角度蜷缩。

WARNING: Many variants of FBX exist(警告:存在许多 FBX 变体)
基于 FBX 版本和导出选项的微小差异,同一个模型的两个 FBX 文件导入结果可能大相径庭,因此不建议使用 FBX。

NOTE: This format is common(注意:这种格式很常见)
这是 Gumroad 和其他平台上常见的格式。

准备贴图

NOTE: Animated Textures(注意:动画贴图)
动画贴图使用图集(Texture atlas),请参阅 Panner2D。另请参阅 AtlasInfoUVAtlasAnimator

NOTE: Resolutions(注意:分辨率)
通常 2k 分辨率对于大多数身体贴图来说是一个不错的尺寸。建议以目标分辨率导出贴图,而不是在 Resonite 内部调整大小。

.WEBP - 推荐

加载速度更快,体积比 PNG 小,同时具有相同的色彩支持。

NOTE: Asset Conversions(注意:资源转换)
在 Resonite 内部修改贴图(例如调整大小或去除 Alpha 通道)将会把贴图重新保存为 WEBP 格式。

.PNG - 良好

通常随虚拟形象文件一同提供。

找个世界 (Find a World)

导入虚拟形象是一项社交活动,带上朋友,带上爆米花!看看会出什么乱子并尝试新事物,谁知道你的手可以缩放到正常大小的 20 倍还能用呢?!如果有人说“哎呀(oops)”就喝一杯,玩得开心点。

文化考量

在世界中导入虚拟形象就像在别人的客厅里搭乐高积木,有些人喜欢,有些人则不希望你这么做。如果有疑问,请询问是否可以在该世界中导入虚拟形象。

NOTE: No does not mean leave(注意:拒绝并不意味着离开)
要求你不要导入虚拟形象的房主并不是要求你离开(除非他们明确说了),被拒绝可能在情感上有点令人困惑,但你很可能可以留在那里,只是不要导入虚拟形象。如果你仍想导入虚拟形象,可以询问哪里可以,他们可能知道其他合适的房间。

技术考量

导入虚拟形象可能需要将大量可能很大的资源直接加载到世界中。Resonite 会预处理云端保存的资源,但对于导入的资源,如果不先保存,就无法进行预处理。

WARNING: Imported assets are retransmitted by the host(警告:导入的资源由房主转发)
如果你导入网格或模型等资源,该资源会从你的机器传输到房主,然后再传输给房间中的其他用户。如果房间状况不佳,或者房间中某位用户的网络跟不上,导入资源和创建虚拟形象可能会意外导致他们掉线。

NOTE: Cloud Assets(注意:云端资源)
一旦资源保存到 Resonite 云端,它们将直接从云端下载,而不是从房主处下载。存储在云端的资源也会经过预处理,使其体积更小,加载速度更快(对于直接导入的资源,每个客户端都会独立进行此预处理)。

权限

你需要 Builder(建造者)权限才能导入虚拟形象,这赋予你修改世界中任何东西的能力。其他用户可能不希望你拥有这种权力。

导入模型

将模型从桌面拖放到 Resonite 窗口中,或通过 File Browser(文件浏览器)导入资源。

会出现一个对话框,以下选项很重要:

  1. 3D Model(3D 模型)
  2. Regular / Avatar(常规 / 虚拟形象)
  3. Auto Humanoid Height(自动类人高度,参见 #Model Scale
  4. Advanced Settings(高级设置)
    1. Scale(缩放) - 这与 #Model Scale 不同。
    2. Material and Prefer Specular(材质与首选高光) - 推荐使用带 Prefer Specular 的 PBS,但 XiexeToon 也是一个相近的替代方案。参见 #Texturing the Model 以及 PBS_MetallicPBS_SpecularXiexeToon
    3. Spawn Material Orbs(生成材质球) - 这可以使 #Texturing the Model 更容易,因为不需要 Scene Inspector 即可访问材质。但这是可选的。

WARNING: Do not grab the model after it is imported(警告:导入后不要抓取模型)
默认情况下,许多虚拟形象以 T Pose 或 A Pose 导入,虚拟形象的对称性可以减少 #Aligning Hands(对齐手部)出错的几率。
如果抓取了模型,请在 Context menu(上下文菜单)中选择 Undo(撤销)。

CHECK: Model Scale(检查:模型比例)
使用 developer tool(开发者工具)检查虚拟形象,查看应用于 Root 插槽的 Scale(缩放)。这个缩放就是 #Model Scale 中提到的。

Avatar Creator(虚拟形象创建工具)

WARNING: Ensure you are logged in(警告:确保你已登录)
保存虚拟形象到 Inventory(库存)需要有效的账户,并且在某些情况下 SimpleAvatarProtection 可能会软锁定虚拟形象,参见 #Protecting an Avatar

WARNING: You may be blinded when first getting into a newly created avatar(警告:首次进入新创建的虚拟形象时视线可能会被遮挡)
眼部前方的几何体可能会遮挡视口,导致虚拟形象内的用户“失明”。
要脱离该虚拟形象,请点击之前的虚拟形象并通过 context menu 装备它。切换到 desktop Mode(桌面模式)并使用 third person camera(第三人称相机)是另一种解决方法。
通过 inventory 装备新虚拟形象会删除当前装备的虚拟形象,从而破坏你的进度。
请参阅 #Near Clip#Adjusting Proxies 以解决此问题。
如果是双人协作导入,让被遮挡视线的用户留在虚拟形象中,由另一位用户按照 #Near Clip#Adjusting Proxies 进行操作。

Avatar Creator(虚拟形象创建器)可以从 Dash MenuHome 页面生成。

Aligning Head(对齐头部)

将头显代表物放置在模型头部上方,依次按下 Align Head Forward(对齐头部前方)、Align Head Up(对齐头部上方)、Align Head Right(对齐头部右方)、Center Head Position(居中头部位置),最后按 Try Align Hands(尝试对齐手部)。

Aligning Hands(对齐手部)

NOTE: Align the head first(注意:先对齐头部)
手部默认以头部作为对称轴,只要模型仍处于对称姿势,先对齐头部就不需要对齐第二只手。参见 #symmetric pose warning

调整其中一只手,使手部的中心和旋转与模型的手对齐。如果模型是对称的,另一只手也会对齐;如果不对称,请在 Avatar Creator 中取消勾选 Use Symmetry(使用对称)并放置第二只手。

Aligning Tool Anchors(对齐工具锚点)

可选:在 Avatar Creator 中勾选 Show Tool Anchors(显示工具锚点),以自定义虚拟形象的 Tool AnchorsGrab Spheres(抓取球)和 Tool Shelves(工具架)的位置。

如果调整了工具锚点,请在按下 Create 之前,先在 Avatar Creator 中按下 Align Tool Anchors

Additional Creator Options(其他创建选项)

Avatar Creator 中,可选勾选 Setup Volume Meter(设置音量条)和 Setup Face Tracking(设置面部追踪)(通常建议勾选)。

WARNING: Pressing Create When Protect Avatar is checked(警告:在勾选 Protect Avatar 时按下创建)
如果勾选了 Protect Avatar(保护虚拟形象),无论谁点击 Create,虚拟形象都会通过 SimpleAvatarProtection 绑定到该用户。如果点击 Create 的用户未在当前房间中登录,这可能会锁定虚拟形象,导致任何人都无法使用。

WARNING: Getting into the avatar may blind you(警告:进入虚拟形象可能会遮挡视线)
确保你有应对视线被遮挡时脱离虚拟形象的策略,请参阅 #blinded warning

准备就绪后,让将要拥有该虚拟形象的用户在 Avatar Creator 上按下 Create(创建)。

Adjusting Proxies(调整代理)

使用 Avatar Creator 创建的虚拟形象具有通用的层级结构。每个 Proxy(代理)下的 Target(目标)插槽控制虚拟形象身体部位相对于输入位置(如控制器或头显)的尝试位置。

如果虚拟形象头部遮挡了部分视口:向后移动 Head Proxy 下的 Target。这会使头部后移,将有问题的几何体移至摄像机后方。

WARNING: Adjusting the viewport back can stretch the spine(警告:向后调整视口可能会拉伸脊柱)
由于头部平衡点靠后,向下看时脊柱会向上拉伸以进行补偿。这可能会导致向下看时虚拟形象的双脚离地。

Near Clip(近裁剪面)

当装备虚拟形象时,可以通过虚拟形象中的 AvatarRenderSettings 组件配置近裁剪面(Near clip)和远裁剪面(Far clip)。
向虚拟形象添加一个带有 AvatarRenderSettings 的插槽,并将 NearClip 字段设置为 0.1,检查视野是否清晰,然后缓慢减小该值,直到刚好移除有问题的几何体。

WARNING: Near clip effects everything(警告:近裁剪面影响所有物体)
建议尽可能不使用 Near Clip,因为 Near Clip 不会渲染摄像机前方该距离内的任何东西,包括道具或某些特效。
如果可能,建议先移动 Proxy,如果仍然需要,再使用非常小的 Near Clip 值。

NOTE: Check no clipping happens when moving(注意:检查移动时是否发生穿模)
有时虚拟形象可能会稍微滞后于玩家,请确保在移动时有问题的几何体仍然不可见。

Texturing the Model(模型贴图)

使用 developer tool(开发者工具)检查虚拟形象,在虚拟形象的 Armature(骨架)插槽下方找到 Renderers(渲染器),这些渲染器引用了材质。

NOTE: Extracting materials may not be needed(注意:可能不需要提取材质)
如果在 #spawn material orbs 步骤中已经生成了材质球,则网格的材质已经提供了。

将贴图拖到 Resonite 窗口中导入,或通过 File Browser 导入。

使用 material tool(材质工具)编辑随虚拟形象导入生成的材质球,或使用检查器中查看材质时生成的面板。

将贴图拖放到材质的相应插槽中。

CHECK: The color of an imported model often defaults to gray(检查:导入模型的颜色通常默认为灰色)
添加贴图时,请务必将灰色更改为白色(White),以防止颜色看起来褪色/发灰。

Optional Steps(可选步骤)

Dynamic Bones(动态骨骼)

Nameplates(名牌)

默认情况下,每个用户都有一个 Nameplate,并根据他们的身份进行着色(MentorsModerationDev Team 就是一些例子)。不过,这可以进行 自定义,只要你没有冒充上述角色的成员即可。

Badges(徽章)

默认情况下,每个人都拥有一些 Badges,具体取决于用户的行为。有些是通过 Resonite 系统授予的,而大多数是自定义的,通过 Patreon 等其他方式添加,或由用户自己添加。

可以使用社区工具(如 User Badge Manager)轻松添加徽章。

还有一个关于 如何添加自定义徽章 的教程。

Fullbody Calibration(全身校准)

这里有一份关于为 Full Body Tracking(全身追踪)设置虚拟形象(或用户)的指南和说明。