Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
XR 工具简介
Godot 引擎本身就自带了搭建 XR 项目所需的所有基础支持。不过,像 XR 特有的游戏机制,还是需要在这个基础之上另行实现的。虽然 Godot 已经让这件事变得相对容易了,但这依然可能是一个让人感到有些棘手的任务。
正因如此,Godot 开发了一套名为 Godot XR Tools 的工具包,它实现了 XR 游戏中许多基础的核心玩法机制,涵盖了移动、物体交互到 UI 交互等各个方面。
这个工具包旨在同时兼容 OpenXR 和 WebXR 运行时环境。我们将以此作为这里文档内容的基础。它能帮助开发者们快速上手、立即投入开发;不过,针对一些更具体的特殊需求,自己编写逻辑也是完全可行的。在这种情况下,XR Tools 依然能为你提供很好的灵感参考。
安装 XR 工具
在我们上一篇教程 设置 XR 的基础上,接下来我们要把 Godot XR Tools 库加进来。你可以从 Godot XR Tools releases page 下载它。找到最新的 Godot 4 适配版本,在页面下方的 Assets (资源)区域,下载 godot-xr-tools.zip 文件。另外,你也可以直接在 Godot 引擎的 Asset Library(资源商店)里搜索标题为 'Godot XR Tools for Godot 4' 来找到并安装它。
如果你使用的是压缩包(zip file),下载完成后请先把它解压。你会注意到,里面的文件都放在一个名为 godot-xr-tools 的子文件夹里。在这个文件夹里面,你会找到一个 addons 文件夹。你需要做的,就是把这个 addons 文件夹完整地复制到你自己的 Godot 项目文件夹里。操作完成后,你的项目目录结构看起来应该像这样:
现在,如果你还没打开 Godot 的话,就赶紧去打开你的项目吧。然后耐心等个一分钟左右,让引擎把插件的所有资源都导入完毕。如果编辑器弹窗提示你需要设置 Blender 的路径,你直接点击那个选项,选择‘禁用 Blender 导入(disable blender import)’,然后重启编辑器就可以了。
导入完成后,你可能会注意到弹出了好几条 "无法加载脚本(failed to load script)" 的报错信息,这完全是正常的,只是因为插件还没在项目设置里启用而已。
接下来,打开顶部的 Project (项目)菜单,然后选择 Project Settings.. (项目设置..)。接着切换到 Plugins (插件)标签页,在那里找到对应的插件并启用它。
操作完成之后,你需要先关闭再重新打开你的项目,这样才能确保所有功能都被正确激活。
简单手部
为了先找找感觉(熟悉一下整体流程),我们要给场景里添加几个标准的组件,首先就从给玩家加上‘双手’开始吧。
虽然 OpenXR 支持完整的手部追踪功能,但目前不同的 XR 运行环境(XR Runtimes)在具体的能力上仍然存在不小的差异。
作为一个非常靠谱的替代方案,Godot XR Tools 自带了一组已经绑定好骨骼(rigged)的手部场景,它们可以随着你手柄的扳机键(trigger)和抓握键(grip)的输入做出相应的反应。这些手部模型提供了低模(low poly)和高模(high poly)两种版本,包含多种预设配置和多种不同的纹理贴图,同时还附带了一组用来控制手指姿态的动画文件。
在你的场景树(Scene Tree)中,选中你的左手 XRController3D 节点。然后点击 实例化子场景(Instantiate Child Scene) 按钮来添加一个子场景。点击 addons 旁边的切换开关(toggle),这样就可以搜索 addons 文件夹里的内容了。接着搜索 left_hand_low.tscn 这个文件,并选中它。
从该场景的文件路径就能看出,低模(low poly models)都放在 lowpoly 子文件夹里,而高模(high poly models)则在 highpoly 子文件夹里。如果你打算把游戏发布到移动设备(比如手机或平板)上,建议使用低模版本。
我们选择的手默认只是一个手。其他选项包括:
tac_glove -手戴手套,手指外露
full_glove -手戴着覆盖整个手的手套
最后,每只手都有一个物理版本。这暴露了所有的骨骼。我们将在另一个教程中介绍如何使用它。
我们对右手也重复同样的操作。
更多信息
在接下来的几页中,我们将继续使用 Godot XR 工具为我们的教程项目添加功能。有关工具包的更多详细信息,请访问工具包帮助页面。