原生导入虚拟形象
虚拟形象创建与导入指南
注意: 本指南有待重写,你可能需要查看 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。另请参阅 AtlasInfo 和 UVAtlasAnimator。
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(文件浏览器)导入资源。
会出现一个对话框,以下选项很重要:
- 3D Model(3D 模型)
- Regular / Avatar(常规 / 虚拟形象)
- Auto Humanoid Height(自动类人高度,参见 #Model Scale)
- Advanced Settings(高级设置)
- Scale(缩放) - 这与 #Model Scale 不同。
- Material and Prefer Specular(材质与首选高光) - 推荐使用带 Prefer Specular 的 PBS,但 XiexeToon 也是一个相近的替代方案。参见 #Texturing the Model 以及 PBS_Metallic、PBS_Specular 和 XiexeToon。
- 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 Menu 的 Home 页面生成。
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 Anchors、Grab 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,并根据他们的身份进行着色(Mentors、Moderation 和 Dev Team 就是一些例子)。不过,这可以进行 自定义,只要你没有冒充上述角色的成员即可。
Badges(徽章)
默认情况下,每个人都拥有一些 Badges,具体取决于用户的行为。有些是通过 Resonite 系统授予的,而大多数是自定义的,通过 Patreon 等其他方式添加,或由用户自己添加。
可以使用社区工具(如 User Badge Manager)轻松添加徽章。
还有一个关于 如何添加自定义徽章 的教程。
Fullbody Calibration(全身校准)
这里有一份关于为 Full Body Tracking(全身追踪)设置虚拟形象(或用户)的指南和说明。