为 Oculus Quest 开发

前言

本教程介绍的是如何使用 Godot Oculus Mobile 插件入门 Meta Quest 开发。

在开始之前, 你有2件事情需要做:

首先你需要完成 为 Android 导出 页面上的步骤. 这将引导你安装Godot导出到Android设备所需的工具集.

接下来你需要Quest插件. 你可以从素材库中获得它, 或者从 这里 手动下载.

设置 Godot

要开始,请打开 Godot 并创建一个新项目。

../../../_images/quest_new_project.png

确保选择 GLES2 渲染器, 由于Quest的GPU, 这个后端更适合Quest.

将 Oculus Mobile 素材中的 addons 文件夹复制到你的 Godot 项目中,你的项目树应该类似于这样:

../../../_images/quest_project_tree.png

现在你可以开始构建主场景:

  • 首先添加一个 ARVROrigin 节点.

  • 然后在原节点上添加三个子节点, 一个 ARVRCamera 和两个 ARVRController 节点.

  • 将控制器ID 1分配给第一个 ARVRController 并将其重命名为 LeftHand .

  • 将控制器ID 2分配给第二个 ARVRController 并将其重命名为 RightHand .

  • 最后添加一个 MeshInstance 作为我们第一个 ARVRController 的子节点, 并创建一个盒子形状, 调整盒子的大小, 使每个边都设置为 0.1. 现在复制 MeshInstance 并将其移动到第二个 ARVRController 节点. 这些节点将代表我们的控制器.

../../../_images/quest_scene_tree.png

现在给主节点添加一个脚本, 并添加以下代码:

extends Spatial


var perform_runtime_config = false


onready var ovr_init_config = preload("res://addons/godot_ovrmobile/OvrInitConfig.gdns").new()
onready var ovr_performance = preload("res://addons/godot_ovrmobile/OvrPerformance.gdns").new()


func _ready():
    var interface = ARVRServer.find_interface("OVRMobile")
    if interface:
        ovr_init_config.set_render_target_size_multiplier(1)

        if interface.initialize():
            get_viewport().arvr = true


func _process(_delta):
    if not perform_runtime_config:
        ovr_performance.set_clock_levels(1, 1)
        ovr_performance.set_extra_latency_mode(1)
        perform_runtime_config = true

将项目导出到Quest之前, 您需要做三件事.

首先进入项目设置, 确保主场景是运行的场景,Godot不要求你在导出时设置这个.

../../../_images/quest_project_settings.png

打开导出菜单,配置一个新的 Android 导出。如果你还没有看过 为 Android 导出 请先去看一下,否则屏幕上应该会显示红色的消息。

如果你这样做了, 可以继续前进, 并对导出设置进行一些小的修改, 首先将XR模式改为 Oculus Mobile VR . 然后将自由度模式改为 6DOF .

../../../_images/quest_export_settings.png

现在保存并关闭导出窗口.

设置您的任务

按照这些说明设置你的开发设备。

设置好设备并连接后,点击出现在 Godot 编辑器右上角的 Android 徽标。点击后,会对项目进行导出并在连接的设备上运行。如果你没有看到 Android 徽标,请确认你在“导出”对话框中创建了 Android 导出预设,并已将其标记为可运行的

上面的内容只是让你的项目在Quest上运行的最低限度, 并不会很令人兴奋.Holger Dammertz为Quest制作了一个很棒的工具包, 其中包含了很多场景, 可以帮助你走上成功之路, 包括非常漂亮的控制器网格.

你可以在这里找到工具包 here .

如果你想帮助改进这个插件, 请加入我们的行列 here .