开发

使用 Meta 虚拟形象 SDK 设计卓越的体验

使用 Meta 虚拟形象 SDK 为 Meta生态系统、Unity VR 应用以及其他多玩家体验创建高度逼真、多样化和可定制的虚拟形象身份。
Meta 虚拟形象 SDK 通过解读手势追踪、控制器追踪、眼部追踪、面部追踪以及音频输入,来驱动高度逼真的虚拟形象模型。Meta 虚拟形象 SDK 采用自定义的逆向动力学算法,以确保虚拟形象的身体姿势和面部表情尽可能逼真。随着时间的推移,这些算法会不断得到改进,并充分利用新涌现的硬件技术。最值得一提的是,您可以直接获得这些功能,而无需自己进行繁重的开发工作。
本文档提供了使用 Meta 虚拟形象 SDK 创建舒适且愉悦的虚拟形象体验的设计指南。

目录

设计原则

让用户能够自主控制他们的虚拟形象
人们应该被充分告知,并且在整个体验过程中能够有意义地控制他们的虚拟形象的外貌和行为。这对于维护隐私、保持完整性、与用户建立信任(即确保他们的虚拟化身看起来和行为符合预期),以及便于在不同情境下调整虚拟化身而言至关重要。(示例:虚拟形象检查镜子检查系统编辑器的深度链接)。
Avatar render in the loading screen shows the avatar
在 Horizon Home 中,3D 虚拟形象在镜子中的渲染效果让人们有机会在进入社交体验之前检查自己的虚拟形象外观。
优先考虑视觉和互动性,其次才是文本
鉴于在 VR 中阅读是一种具有挑战性的体验,当与用户沟通正在发生的事情或教导用户如何执行某项操作时,您应该让视觉和互动性发挥主要作用。当必须使用文字时,要用简洁的方式书写,并使用有意义的词汇。(示例:不活跃状态仅音频状态加载和错误状态
An inactive avatar replaced with a token
当用户被识别为“不活跃”时,可以考虑用个人资料的图标来替换虚拟形象,并使用适当的视觉/互动效果来传达其空闲时段。不要仅仅使用文字或图标来传达“不活跃”状态。
真实性为先,模拟为辅
人们希望其虚拟形象能够在 VR 中真实地反映他们的动作。在适用的情况下,虚拟形象应该根据用户的选择表现得真实自然。当需要模拟时,它应该基于可用的输入,并结合用户意图和给定情境来进行。当它们共存时,人们应该能够可靠地区分模拟行为和真实行为。(示例:追踪丢失手势追踪控制器追踪单手追踪情绪
真实的渲染基于手势输入。基于手势输入渲染面部表情:双手竖起大拇指会引发一个开心的表情。当启用身体追踪时,不要显示模拟的虚拟形象动画。例如,在试穿某些物品时,不要显示虚拟形象的预设动画。

虚拟形象设计指南

这些指南旨在为您的产品用户创造最佳体验,并基于用户研究和政策研究。但这些指南不会用作评估您的游戏是否可纳入 Meta Horizon 商店的依据。
  • 强烈推荐 - 强烈推荐的项目被视为公开发布时最基本且必不可少的产品特性。
  • 推荐 - 推荐的项目将带来良好的用户体验。
  • 改进 - 在当前技术能力下,改进的项目被认为是当前可交付的、最好且最完善的产品。

虚拟形象的创建

虚拟形象检查

  • 强烈推荐 - 为新用户提供检查其虚拟形象的方式,并为回归用户提供在加载应用之前编辑其虚拟形象的方式。这可让用户充分了解其虚拟形象的外观,并在需要时更新他们的形象。
注意:目前,Meta 虚拟形象 SDK 不提供标准化的用户界面。这是一个关于检查虚拟形象体验的好例子。
Horizon Worlds shows an avatar creation modal
在加载体验之前,Horizon Worlds 会显示用户的虚拟形象并提供编辑选项。
  • 强烈推荐 - 对于不需要自定义虚拟形象的应用:如果必须在体验中分配一个随机虚拟形象,请确保明确告知用户这一点(例如,设置为可选)。这可确保清晰度,并增强用户的化身代表感和舒适度。

镜子检查

  • 强烈推荐 - 为用户提供一个虚拟镜子,让他们在加入社交体验之前检查自己的虚拟形象。这将有助于提高用户使用虚拟形象时的自信心和化身感。这也确保用户在体验中看到自己的形象时不会感到惊讶。考虑使用 2D 镜子、虚拟形象的渲染图或静态的 3D 模型。镜子也是为编辑器添加深度链接的理想工具。
  • 注意:Meta 虚拟形象 SDK 不提供标准化的镜子资产。
Horizon World 私人空间中的镜子可让用户在进入公共区域前检查自己的虚拟形象。Horizon Workrooms UI 中的镜子可让用户在会议期间或会议之外的任何时候检查自己的虚拟形象。
  • 推荐 - 如果会话之间存在任何持续的应用内资产(尤其是可附加物品),建议在用户返回应用时提醒他们已装备的物品,例如,在镜子检查中显示它或以渲染 3D 模型的方式作为提醒。
通知用户该应用即将关闭的模态对话框。
  • 推荐 - 在用户有强烈意愿更新他们的虚拟化身时,提供一种方式直接链接到系统编辑器。示例包括用户个人主页和设置中的虚拟形象检查镜子检查
在 Horizon Worlds 中,可以通过镜子上的按钮进入虚拟形象编辑器。

应用内可附加物

  • 强烈推荐 - 禁止包含露骨内容、宣扬仇恨言论或以其他方式损害安全、包容体验的虚拟形象资产。更多信息请参阅 Meta 开发者内容准则
  • 推荐 - 针对各种虚拟形象的体型、服装选项、发型等进行资产测试。我们的袖子内容库旨在为手腕可穿戴设备提供足够的空间。
    • 具体而言,要确保资源在所有身体类型上的外观和行为表现一致,从而避免人们因为偏好而只选择使用某一种身体类型。这将有助于人们感受到自己被包容,无论他们选择哪种身体类型。
  • 改进 - 为虚拟形象提供应用内配饰(帽子、眼镜、腕饰等)。它让虚拟形象能够有更好的表现力,更加生动,并且能够适应各种体验场景。

形象

  • 强烈推荐 - 如果您的应用需要对虚拟形象进行重大视觉更改,请完成以下清单,以防止对形象产生任何负面影响
    • 不要限制某些发型或宗教头饰的显示。
    • 不要让照明或材质变化对某些肤色产生负面影响。
    • 在应用中使用预设时,请确保它们以均匀分布肤色、性别表达、体型等特征的顺序显示。
    • 确保默认虚拟形象的设计在性别、肤色和风格上保持中立,以避免代表用户未选择的内容。

预设

  • 推荐 - 如果您的应用需要预设选项(例如用于跨平台游戏),建议使用 SDK 提供的 6 个预设虚拟形象。这是一套经过审查、注重多元化和包容性的虚拟形象预设配置。
在您的应用中(在 UI 中或其他位置)展示虚拟形象预设时,请按照能够均匀分布肤色、性别表达、体型等特征的顺序进行展示。这有助于让所有用户都感到受欢迎和被重视。

虚拟形象可用性状态

不活跃状态或 AFK(远离键盘)

  • 推荐 - 在以下将用户从沉浸式共处体验中移除的使用场景中,应认为用户处于不活跃状态
    • 头戴设备已移除
    • 连接中断
    • 直通模式(例如:边界设置)
    • 设置场景
    • 其他用户对该应用的意识(或在该应用中的响应能力)显著受限的场景
  • 推荐 - 当用户处于不活跃状态时,应让虚拟形象呈现休息状态,或者使用适当的用户界面占位符来替换虚拟形象。一个静止不动的虚拟形象会干扰或分散其他用户之间的社交存在感体验,并且容易引起真实性问题方面的担忧。
A profile token represents an inactive user
该图片显示了用个人资料标识替换虚拟形象的最佳实践,并通过适当的视觉/互动处理方式传达空闲程度。不要仅仅使用文字或图标来传达“不活跃”状态。
  • 推荐 - 提供关于不活跃状态的第一人称反馈。向处于不活跃状态的人传达其状态正在显示的信息,以便他们相信其状态能够如实传达给其他人。

正在加载和错误状态

  • 推荐 - 在以下情况下,应考虑用户处于加载中/错误状态
    • 用户的虚拟形象正在加载
    • 用户正在从编辑器返回
    • 任何错误状态(如无法访问用户配置或查询 CDN 资产)
  • 推荐 - 当用户的虚拟形象正在加载或处于错误状态时,应使用一个合适的预留虚拟形象。
    • 预留虚拟形象必须保持性别中立,并在所有用户间保持一致。
    • 默认虚拟形象必须使用中性肤色和风格,以避免代表用户未选择的内容。
    • 创建一个第三人称视觉呈现方式,以向其他用户传达虚拟形象状态。
虚拟形象正在加载到场景。
Avatar with an error or loading state
如果用户处于加载中或错误状态,则显示柔和薰衣草色的中性默认虚拟形象。
  • 推荐 - 就加载和错误状态提供第一人称视觉反馈。根据加载时间和可能出现的错误,包含某种形式的预留化身。例如,使用中性虚拟形象,在用户虚拟形象上应用发光的肤色(如上面的例子所示),在控制器上显示提醒等。

仅音频状态

  • 推荐 - 当用户处于以下情况时,将其置于仅音频状态:
    • 暂时不在范围内
    • 深度链接到系统编辑器
    • 正从没有追踪功能的设备(如手机或游戏机)连接到体验中
    • 在用户身体追踪被严重限制但仍可通过音频连接的场景中
  • 推荐 - 根据参与者的空闲时段输入匹配其虚拟形象的保真度。例如,只有音频的用户可能只以具有说话指示器的空间化用户界面形式出现。
一个示例解决方案是将虚拟形象置于个人资料标识中,并开启唇形同步,以传达互动程度。

追踪丢失

  • 强烈推荐 - 当追踪丢失时,虚拟形象应进入适当的静止状态,直到追踪恢复。在任何情况下,都必须确保头像不会出现扭曲或不自然的外观。
alt_text
如果用户处于追踪不良的状态,应在其放下控制器时显示一个处于中性休息姿势的虚拟形象,而不是显示一个扭曲的状态。
  • 推荐 - 确保用户在执行关键且频繁的互动时,其动作处于控制器或手势追踪的最大追踪范围内。
  • 推荐 - 当用户动作超出追踪范围时,应尽可能向用户提供反馈,以便他们调整位置或动作,重新进入追踪区域。

互动

与用户界面互动

  • 强烈推荐 - 重要的虚拟形象控制(例如深度链接到系统编辑器镜子检查完整性和安全工具)应该清晰且容易发现。除了将这些设置与其他应用设置或快速操作进行分组外,还可以考虑在其他虚拟形象管理用户界面旁边添加一个单独的入口。
  • 推荐 - 当用户在多玩家体验中调用用户界面时,考虑向其他用户展示用户界面面板的呈现效果。这有助于传达意图,并避免角色看起来注意力不集中或“乱点一气”。
注意:这是针对一般用例的建议。根据上下文,可能有完整性和隐私问题。为确保这适合您的应用,对其进行隐私压力测试并观察用户的反应会很有帮助。
例如,在虚拟形象前面呈现用户界面可以更好地传达意图。第三人称虚拟形象在没有任何视觉提示的情况下与应用程序用户界面互动会显得很奇怪。
  • 推荐 - 用户应该能够根据自己的需求和使用场景开启或关闭不同的互动功能。例如,静音麦克风、静止面部表情(当被追踪时)、关闭手势追踪等控制功能应该易于获取。

控制器追踪

  • 推荐 - 在指导控制器输入时,在虚拟形象手上渲染控制器,使其更易于理解和跟随。

手势追踪

  • 推荐 - 对于社交体验,强烈推荐使用手势追踪。被追踪的手部所展现出的情感和手势表达可以极大地增强临场感。有关原则、最佳实践和互动的更多信息,请参阅手势设计

单手追踪

  • 推荐 - 如果未从手部或控制器检测到任何追踪输入,则受影响的虚拟形象手部应移动到休息姿势。这可能意味着手部放在桌面休息,或者自然下垂于身体一侧。将未追踪的虚拟形象手部固定在臀部或肩部以继承一些自然旋转/平移是一个好习惯。

面部和全身表情

  • 强烈推荐 - 使用基于用户输入和追踪数据的动画。我们建议,体验设计应尽可能让用户通过追踪的手势数据真实地表达自我。
  • 推荐 - 建议使用面部动画来提高表现力。
  • 推荐 - 确保应用程序中使用的任何全身动作和表情符号都能在不同文化中都被解读为友好和积极的。
  • 改进 - 第一人称反馈(视觉特效、声音特效或触感反馈)能够增强表现力,并确认动作已被触发。

化身

虚拟形象手部

  • 强烈推荐 - 在使用全臂表现(带逆向动力学)时,不要隐藏虚拟形象的手部。这会破坏沉浸感,可能令人感到不安。
例如,在使用书写工具时,虚拟形象的手势恰当可以增强沉浸感。
  • 推荐 - 在抓取虚拟物体时,尽可能使用手势来提高沉浸感和可信度。
  • 推荐 - 在使用全臂表现时,可以考虑将虚拟手限制在抓住的物体上,如杠杆、方向盘等。当超过某个特定阈值时,应解除这种限制,以防止逆向动力学解决方案显得过于生硬或不自然。

虚拟形象腿部

  • 强烈推荐 - 启用虚拟形象的腿部,并为站立、行走和慢跑添加动画。
    • 使用逆向动力学来实现下蹲时的高度变化,使膝盖弯曲。
    • 将追踪输入与姿态融合,以实现头戴设备和手势输入的混合
  • 强烈推荐 - 对于第三人称姿态,优先考虑动画质量而非追踪精度,以偏向自然且富有表现力的动作。
  • 强烈推荐 - 对于第一人称姿态,优先考虑追踪精度而非动画质量,以偏向来自头戴设备、双手和控制器输入的姿态准确性。
  • 改进 - 利用动画与行为系统来精细处理角色移动相关的各种细节和情境,包括空闲状态、过渡阶段、行走动作、游泳姿态、物品持握及抓取等。

坐姿和站姿

  • 推荐 - 在社交体验中,应考虑根据用户所设定的站立身高来调整虚拟形象的身高,从而避免产生令人不适的高度差异。然而,这一点应当与其他可用性权衡因素(比如触及虚拟物体的能力)综合考虑。
  • 改进 - 考虑增加一个切换功能,让用户能够设置站立或就坐模式。

视线目标

注意:Meta 虚拟形象 SDK 目前尚不支持视线追踪。当启用眼球追踪时,我们将忽略视线目标
  • 推荐 - 我们建议使用内置的视线目标系统,该系统简单自然,能够带来最佳社交体验。Meta 虚拟形象 SDK 配备了这一系统,其中包含了虚拟形象眼球跳动(注视点之间的移动)的自然节奏。
  • 推荐 - 如果您选择实现自己的系统,请密切关注视线目标如何影响社交存在感或舒适度(例如,虚拟形象的注视锁定在目标物体上,从而损害了眼神交流,或者虚拟形象的注视显得不自然)。有关视频目标的更多信息,请参阅此处

共享现实

  • 推荐 - 在社交体验中,强烈建议将用户的第一人称视角与第三人称视角相匹配。例如,在共享空间中,玩家应该拥有相同的空间位置和朝向,以便眼神交流和手势能够恰当地对应起来。
    • 有一个重要的例外情况需要考虑,那就是设置和完整性工具:在遇到被屏蔽/冒犯性的用户时,应该给人们提供机会来调整他们看待其他虚拟形象的视角,或者对个人界限进行缓解处理。(请参阅完整性相互渗透。)

混合现实和移动

  • 推荐 - 如果您的用户需要互相进行直接互动且他们的布景在混合现实环境中,请使用头戴设备锚定。如果在混合现实设置中使用 OvrAvatarAnimationBehavior 为虚拟形象提供 移动,请考虑使用头戴设备锚定。头戴设备锚定可以减少用户第一人称视角和呈现给他人的第三人称视角之间的分歧,但需要注意这可能导致完全具象化虚拟形象漂浮在地板上方或没入地板。更多信息,请参阅混合现实支持

相互渗透

  • 推荐 - 探索最适合您应用程序独特体验和挑战的解决方案,以处理相互渗透问题,使虚拟形象的互动感觉逼真,同时避免完整性方面的问题。这是一个示例解决方案:
    • 为躯干、头部和四肢创建“碰撞箱”,以便应用程序能够更容易且一致地进行相互渗透测试。当一个虚拟形象与另一个用户相交时,根据距离和受影响的碰撞区域,对该虚拟形象应用渐隐处理。
      • 在第一人称视角下,相交的虚拟形象应该渐隐。
      • 在第三人称视角下,两个相交的虚拟形象都应该渐隐。
让用户能够根据自己的舒适度和对社交距离的容忍度自主调整这些设置。
当虚拟形象相交(无论是有意还是无意)时,在第一人称视角下让第二个虚拟形象渐隐是一种合适的做法。

表现

  • 推荐 - 配置您的体验以利用虚拟形象动态性能系统,该系统可确定在任何给定时间下哪些虚拟形象具有最高优先级,并会更频繁地更新这些虚拟形象。
  • 推荐 - 当虚拟形象处于低保真度状态时,强烈建议在简化的虚拟形象上放置一个持续显示的标识(例如姓名标签),以传达用户的身份。
  • 推荐 - 优先级较低的虚拟形象(例如背景中的非玩家角色)可以用较低的细节级别加载,以帮助节省资源,从而使更重要的虚拟形象能够以更高的性能进行渲染。

非玩家角色 (NPC)

  • 推荐 - 如果您在体验中包含了 NPC 虚拟形象,请考虑用户的舒适度。如果 NPC 虚拟形象看起来太像真实用户,导致用户感到困惑或受到干扰,可以考虑应用视觉处理手段来帮助他们区分 NPC 和具身用户,例如,让 NPC 穿着制服或者不佩戴姓名标签。
  • 改进 - 我们鼓励将虚拟形象用作 NPC,以此在单人和多玩家体验中让虚拟世界感觉更加生动。可以考虑使用 SDK 提供的预设角色集作为此目的下的多样化角色。
    • 已知问题:使用虚拟形象流媒体接口播放的回放动画可能会随着虚拟形象内容或 Meta 虚拟形象 SDK 的更新而出现问题。我们目前正在探索替代的动画解决方案,以便在未来更好地支持这种用例。

辅助功能

肢体残缺的用户

  • 改进 - 如果没有检测到跟踪输入(来自手部或控制器),受影响的虚拟形象手部应该移动到休息姿势。这可能意味着手部放在桌面休息,或者自然下垂于身体一侧。将未追踪的虚拟形象手部固定在臀部或肩部以继承一些自然旋转/平移是一个好习惯。

完整性和隐私

注:完整性和隐私问题的解决方案在很大程度上取决于具体情境,因此以下建议旨在为一般情况提供指导,但可能并不适用于所有场景。此外,我们可能需要多种解决方案来解决一个问题。对于已经针对完整性和隐私问题制定了自身最佳实践的应用程序,请遵循最适合您体验的那些实践。一般来说,为了确保解决方案集非常适合您的应用程序,对其进行完整性和隐私压力测试总是很有帮助的。

用户安全

  • 推荐 - 如果您的应用程序包含屏蔽/静音功能,请考虑对受害者的虚拟形象应用视觉处理手段,以帮助减少继续滥用的机会。受害者视角的一些选项包括:
    • 将屏蔽的虚拟形象简化为更基础的呈现形式,同时保留名片:空间用户界面、简单模型、粒子效果等。
    • 当屏蔽的虚拟形象靠近受害者时,使其逐渐淡出。请参阅相互渗透
    • 姓名标签处理,清晰地向受害者传达某人已被屏蔽的信息。
  • 推荐 - 如果您的应用程序包含与屏蔽/静音功能相关的“安全气泡”系统,请注意它可能会如何影响应用程序的竞争系统或其他游戏功能。
  • 推荐 - 设计不会让受害者受到惩罚或面临报复的安全系统。例如,当人们使用安全功能时,不要使其对其他用户而言显而易见。

数据和隐私

  • 强烈推荐 - 遵守 Meta 开发者数据使用政策
  • 强烈推荐 - 用户的虚拟形象选择不能用于监视、歧视、推断或以其他方式针对该用户(用于广告、推荐或以其他方式提供服务内容)
  • 强烈推荐 - 用户的虚拟形象选择不能用于确定真实个人的身份。