EN

# 应用功能审核标准

更新日期:2023.6.14

# 一、应用本体需求

  1. 应用必须是VR应用。

  2. 应用必须签名,且同一应用的包名、证书必须唯一。

  3. 应用不能使用奇遇设备不支持的功能和相关内容,如Google移动服务、HMD触摸板等。

  4. 应用必须使用规定好的SDK版本,详情见奇遇开发者SDK文档 (opens new window)

  5. 应用本体和扩展文件大小不能超过3.5GB,扩展文件上传不超过5个。

  6. 应用提交到网站时必须为正式版,且为C++程序的64位二进制文件。

# 二、声音需求

应用需支持3D立体声音效。(推荐)

  • 额外说明

详情请见奇遇开发者SDK文档-声音部分 (opens new window)

  • 测试步骤

在程序中找到声源并旋转头部测试声效。

  • 预期结果

扬声器可以自然地产生声音环绕效果。

# 三、性能需求

1. 应用在奇遇设备运行时,应用帧率需维持在72Hz以上。

  • 额外说明

详情请见奇遇开发者SDK文档 (opens new window)

SDK sample提供了FPS.cs脚本用于计算游戏帧率。

  • 预期结果

应用除载入场景外,不应连续出现显示画面低于72帧的情况。

2. 应用正常运行45分钟,不会出现因设备过热进入降频模式的情况。

  • 测试步骤
  1. 运行脚本;点击下载 (opens new window)

    adb push freq_temp.sh/sdcard/
    adb shell
    cd sdcard
    chmod 775 freq_temp.sh
    nohup sh freq_temp.sh > ata.csv &
    
  2. 头显连续使用应用45分钟;

  3. 从sdcard下降数据拿出,可以确定每个CPU的频率和温度是否异常。

  • 预期结果

用户的体验不会因应用引起的设备高温降频而下降。

3. 应用启动时,需在头显内展示以下两种提示之一:①启动的4秒内展示一个缓慢跟随头部移动的图像;②展示加载指示

  • 测试步骤
  1. 打开应用;
  2. 对从打开应用到屏幕展示图像之间的时间进行记秒。
  • 预期结果

应用开启后手柄按键输入奏效,头显开始追踪,4秒内显示图像。

# 四、功能需求

1. 应用的安装和运行不可以出现崩溃、卡屏或长时间无响应的情况。

  • 测试步骤
  1. 打开应用;
  2. 正常使用应用45分钟。
  • 预期结果

应用的安装和运行未出现异常。

与录屏、投屏、截图等功能不会出现冲突。

2. 当用户摘下头显或打开Flexible Dock时,单机应用必须暂停运行。

  • 额外说明

在Unity中可以看到OnApplicationPause(true)在头显休眠后生效。

对应的,头显重新亮屏启动后,OnApplicationPause(false)也会生效。

触发OnApplicationPause(true)时,场景应当为以下几种:

○ 按下Home键返回主界面

○ 按下电源键熄屏

○ 摘下头显后息屏10秒

○ 移动到虚拟围栏以外
  • 测试步骤
  1. 打开应用;
  2. 摘下头显。
  • 预期结果

以下场景应用暂停:

○ 按下Home键返回主界面

○ 按下电源键熄屏

○ 摘下头显后息屏10秒

○ 移动到虚拟围栏以外

3. 应用运行过程中,不可以出现使用户体验受阻的情况

  • 额外说明

举例:如应用需要登录账号,则应用必须为用户提供明确可见的注册指引。此外,注册和登录界面可使用2D界面于应用内显示。

关卡和应用过程不能出现完全卡关的场景。

  • 测试步骤
  1. 打开应用;
  2. 使用应用45分钟。
  • 预期结果

用户必须能够体验到内容的各个维度,在这个过程中不能丢失推动应用进程的关键信息。

4. 使用头戴音量键,使用应用内音量、音效设置均可正确调节音量。

  • 测试步骤

在程序中使用头戴音量键和应用内音量、音效设置改变音量大小。

  • 预期结果

可正常调节音量。

5. 应用必须正确响应头显的追踪和定位。

  • 测试步骤
  1. 打开应用;
  2. 在戴着运行应用的头显时向各个方向倾斜身体。
  • 预期结果

头显内画面视角应当与在VR世界内移动动作匹配。

6. 应用的本体及商店资料中,显示的头显和手柄模型等相关硬件信息只能展示奇遇。

  • 测试步骤
  1. 打开应用;
  2. 正常运行45分钟。
  • 预期结果

应用应当只出现奇遇头显和手柄模型与图标。

当自定义手柄模型时,不得与其他设备品牌手柄相似。

7. 应用不可以出现丢失用户资料的情况,包括存档、设置、下载、内容。若有排行榜,排行榜记录必须被保存。

  • 测试步骤
  1. 打开应用;
  2. 推动应用进程并进行存档;
  3. 退出并重启应用;
  4. 安装更新版本的应用;
  5. 卸载并重装应用。
  • 预期结果

所有用户的存档/设置/下载内容等都应当存储在应用中。

若有排行榜,排行榜记录需被正确保存,不会在任何操作下消失。

8. 如果应用的核心功能需要网络支持,在未联网时需提醒用户连接网络。

  • 额外说明

在Unity中,你可以使用Application.internetReachability来测试可用的网络连接。

除Unity外,其他引擎除网络连接外还需要测试连接服务器。

  • 测试步骤
  1. 将设备断网;
  2. 打开应用。
  • 预期结果

如果应用需要联网,此时会弹出提示消息。

9. 联机或排行榜等网络功能在国内网络环境下能够正常使用。( 对于在中国大陆上线的应用,我们要求服务器架设在中国大陆境内。且中国大陆用户数据不得与海外用户数据互通。)

  • 测试步骤

在国内网络环境下,打开应用并启用联机或排行榜等相关网络功能。

  • 预期结果

多人联机玩法正常可用。

多人联机玩法单次匹配时长合理。如匹配时长较长时,给予玩家明确提示或自动取消匹配。

可成功创建/关闭/加入多人房间。

10. 语音功能健全。

  • 测试步骤

打开应用并启用语音功能。

  • 预期结果

语音功能正常可用。

(若支持)语音功能可通过应用内设置开启/关闭。

11. 如果正在进行联机,用户按下主页键或摘下头显休眠时用户状态不应从对局中退出。

  • 测试步骤
  1. 打开应用并启动联机模式;

  2. 取下头显或按下主页键。

  • 预期结果

用户应当在多人房间中保持连接至少一分钟。

12. 当用户摘下头显时,APP中的内容下载必须继续进行。

  • 额外说明

当用户摘下头显且正在运行的应用暂停,可能会导致内部下载行为也暂停。故为了保证良好的用户体验,用户摘下头显后应用的下载行为也应当继续。为保证实现,详情可以参考Android DownloadManager (opens new window)

  • 测试步骤
  1. 打开应用,与此同时启动下载;
  2. 摘下头显。
  • 预期结果

应用中的下载将继续进行。

13. 应用必须支持用户进行朝向重置。

  • 测试步骤
  1. 打开应用;
  2. 确认视觉朝向;
  3. 身体向后旋转180度;
  4. 长按主页键。
  • 预期结果

正面朝向视角重置。

14. 操作菜单或其他UI尽量避免跟随用户视角。(推荐)

  • 测试步骤
  1. 应用中使用多个功能;
  2. 观察是否有持续跟随视角的元素。
  • 预期结果

不应有持续遮挡视线的元素。

15. 应用必须只能使用奇遇提供的支付渠道处理用户的所有支付行为。

  • 测试步骤

打开应用,查看应用内是否有支付渠道。

  • 预期结果

应用内不应出现奇遇平台未提供的支付渠道(包括支付入口、支付链接、应用内购买或应用内广告)。

16. 涉及应用额外购买内容的,应可在奇遇渠道正常支付、到账。

  • 测试步骤

打开应用并购买额外内容。

  • 预期结果

用户应可以在奇遇渠道正常支付、正常使用购买内容。

17. 若应用支持MRC录制功能,MRC录制过程中,画面应与应用内一致。

  • 测试步骤

在一体机内启动混合现实录制应用,在奇遇app内连线一体机,启动应用进行MRC录制。

  • 预期结果

用户可以正常使用MRC录制功能,录制画面与应用内一致。

18. 应用中提供的内容/功能/玩法数量及情况,不应低于其他设备平台版本的表现情况。

# 五、安全需求

应用在满足基本权限申请的情况下,必须最大限度地减少权限申请。并且不得申请奇遇设备不支持的权限。奇遇支持申请的权限:存储空间,位置信息,麦克风。

  • 额外说明

https://developer.android.com/guide/topics/permissions/overview.html (opens new window)

  • 测试步骤
  1. 检查应用申请的权限,运行$ aapt dump badging 指令并搜索uses-permission
  2. 确认权限和功能匹配。
  • 预期结果

所有应用需要的权限符合应用功能。

# 六、追踪模式与安全区需求

1. 应用的坐姿、站立、房间规模设定等,使用体验必须与其相匹配。

  • 测试步骤
  1. 打开应用;
  2. 通过几个关卡或使用几个功能。
  • 预期结果

坐姿:没有需要站立或伏地的交互。

站姿:能够在2 x 2 (m²)区域内完成包括站立、转身、拾取等各类交互。

房间规模:应用必须在2 x 2 (m²)范围内能够完全游玩。

2. 原地模式时,应用可正常运行和交互;自定义模式时,在最大安全边界范围内,应用均可正常运行和交互。

  • 测试步骤

打开应用,设置最小安全区并开启。

  • 预期结果

开启安全区时,在应用中走出安全区后给予明显提示。

在安全区内可以满足所有交互需求,应用均可正常运行。

3. Seethrough再回来应用能够正常运行,走出安全区能够重新设置安全区。

  • 测试步骤
  1. 打开应用,设置安全区;
  2. 走出安全区再回到安全区;
  3. 走出安全区后重新设置一个安全区。
  • 预期结果

在应用中走出安全区再回到安全区内,应用可以继续进行。

在应用中走出安全区后重新设置一个安全区,应用可以继续进行。

4. 如果检测到系统安全区已关闭,需提供明确、充分、醒目的安全提示。

  • 测试步骤

关闭系统安全区,打开应用;

  • 预期结果

安全区关闭的情况下进入应用需给予未打开安全区的提示

# 七、操作方式需求

1. 应用需支持通过奇遇左手柄菜单键唤出应用内的菜单。(推荐)

  • 测试步骤
  1. 打开应用;
  2. 按下左手柄菜单键。
  • 预期结果

应用内能够呼出应用的菜单。

2. 应用中做抓取的操作,应该使用握持键而不是扳机键。(推荐)

  • 测试步骤
  1. 打开应用;
  2. 捡起一个应用内物品。
  • 预期结果

能够使用扳机键捡起物品。

3. 手和手柄的位置与方向,应用中的模型与实际操作需要尽可能一致

  • 测试步骤

使用应用时手握手柄放置于面前并稍稍抬起头显,保证能够观察到现实双手和虚拟双手。测试不同角度,对比两种环境下双手的大小和位置是否一致。

  • 预期结果

应用内双手与现实中的大小和位置一致。

4. 截图/录屏过程中不会出现阻断应用进程的异常

  • 测试步骤

应用内使用快捷键(同时按home键和右手柄扳机键)截图。

  • 预期结果

可以正常截取图片,截图过程中不会唤出应用内菜单,导致应用画面被遮挡。

# 八、易用性需求

  1. 应用应提供中文本地化,默认语言需与系统语言匹配,如有其他语言也应包含在内。
  2. 应用应尽量支持通过字幕的形式展现对话、音效等,以便在没有声音的情况下也可以体验。(推荐)
  3. 应用内的文本、操作说明、UI等影响应用进程的元素,都应该清晰可见且易于阅读。并尽量支持调节对比度和缩放用户界面的选项。对于复杂的操作或玩法应提供详细的教程。(推荐)
  4. 应用内容应尽量具备一套清晰明确的包括图像、声效、震动等方式的反馈,而非所有交互反馈都依赖仅一种方式。(推荐)
  5. 应用应尽量提供单手模式的选项。同时尽量提供用户自定义手柄按键的功能。(推荐)
  6. 应用应提供调节亮度、对比度等设置画面的选项,以满足用户的视觉偏好。(推荐)
  7. 应用应尽量提供色盲模式的设定来支持选择色盲人群使用,或通过技术手段将颜色整合成易于观看的状态。(推荐)
  8. 应用可以提供用户通过手柄旋转视角的功能选项。(推荐)
  9. 应用应尽量支持多种主视角移动方式,包括但不限于传送、自由移动、一键转身等。(推荐)
  10. 当使用坐姿或站姿方式使用时,应用应尽量支持在固定位置上通过不同的姿势进行正常的功能交互和信息的获取。(推荐)