paint-brush
Presence Platform 交互 SDK 入门:手部追踪经过@shiaart
24,199 讀數
24,199 讀數

Presence Platform 交互 SDK 入门:手部追踪

经过 Artem Shiabutdinov4m2023/07/31
Read on Terminal Reader

太長; 讀書

存在平台旨在在虚拟现实环境中创建共享存在和交互的感觉。它使人们能够使用 VR 耳机在沉浸式虚拟空间中相互联系、互动和交流。手部追踪是VR游戏开发的基本要求之一——我们将设置、构建和推出手部追踪游戏般的体验。
featured image - Presence Platform 交互 SDK 入门:手部追踪
Artem Shiabutdinov HackerNoon profile picture
0-item
1-item
2-item

正如我们在上一篇文章中成功创建了第一个针对 Quest 2 设备的 Unity 项目一样,现在我们将深入了解 Meta 通过 Presence Platform 提供的最强大的功能集之一。

Meta 的呈现平台是什么?

呈现平台旨在在虚拟现实环境中营造共享呈现和互动的感觉。它使人们能够使用 VR 耳机在沉浸式虚拟空间中相互联系、互动和交流。


Meta 在线状态平台的特性和功能包括:


  1. 化身系统:呈现平台允许用户创建和定制他们的数字化身,在虚拟世界中代表他们。这些化身可以模仿用户现实生活中的动作、表情和手势,增强临场感和社交互动。
  2. 社交互动:用户可以在共享虚拟环境中与朋友和其他人见面并互动。他们可以一起参与各种活动,例如玩游戏、参加虚拟活动、观看视频等。
  3. 空间音频:该平台包含空间音频,这意味着虚拟环境中的声音是基于位置的。这创造了更加真实和身临其境的音频体验,因为用户可以听到来自特定方向的声音,就像在现实世界中一样。
  4. 手部追踪: Presence平台支持手部追踪技术,使用户能够在VR中直接使用手和手指,无需控制器。这使得交互更加自然和直观。
  5. 跨平台支持:该平台旨在跨不同的 Oculus VR 耳机工作,允许使用不同设备的用户无缝加入并交互。
  6. 内容创建工具:对于开发人员来说,Presence Platform 提供了用于创建和发布 VR 应用程序、游戏和体验的工具和 API,从而实现了蓬勃发展的虚拟内容生态系统。


从手部追踪开始

正如您所看到的,Presence Platform 是一套全面的子系统/功能,我将详细介绍它们中的每一个,但首先 - 让我们从手部跟踪开始,作为 VR 游戏开发的基本要求之一 - 我们将设置,构建并推出类似手部追踪游戏的体验。


https://docs.unity3d.com/


一个完美的起点是 oculus-samples repo提供的Unity-FirstHand体验。

再次,请参考之前关于设置开发环境的文章,并确保安装了各种依赖项。


确保已安装 Git LFS,运行以下命令:

 git lfs install


然后,使用“代码”克隆存储库,在 Github 桌面中打开并运行以下命令:

 git clone https://github.com/oculus-samples/Unity-FirstHand.git


所有实际的项目文件都位于“资产”→“项目”中。此文件夹包含运行示例的所有脚本和资源,不包括 Interaction SDK 本身。该项目包括 Oculus SDK v41,其中包括 Interaction SDK。您可以在 [Assets/Oculus/Interaction]{Assets/Oculus/Interaction) 中找到 Interaction SDK。


Unity 编辑器中的第一手资料


安装所有必需的依赖项并配置构建以在 Quest 设备上运行后,您将在编辑器中获得与上述类似的内容。


构建并运行

如果您使用的是 Mac,请转至文件 → 构建设置。

如果您按照我上一篇文章中的说明连接了您的设备,那么您应该在“构建设置”中看到以下内容。

构建和运行设置

单击“构建并运行”,等待 Unity 几分钟的时间来构建并等待您的应用程序正在部署到连接的 Quest 设备的消息。


跑步体验

定制和更改

我强烈建议您尝试此示例并尝试自定义组件和脚本以了解其内部工作原理,以便能够转到 Unity 编辑器的“项目”部分并展开项目目录层次结构。


我们将定制 LazerProjectile:


项目结构

 public class LazerProjectile : ActiveStateObserver { [SerializeField] Transform _target; [SerializeField] GameObject _effect; [SerializeField] float _rayCastDelay = 0.5f; [SerializeField] float _fadeOutTime = 0.1f; [SerializeField] float _delayBetweenShots = 0.5f; [SerializeField] AudioTrigger _chargeUp; [SerializeField, Optional] AudioTrigger _chargeUpComplete; protected override void Update() { base.Update(); Vector3 endPos = Vector3.Lerp(_target.position, transform.position + transform.forward * 20, 5 * Time.deltaTime); _target.position = endPos; } //...... }


让我们增加光线投射延迟并通过替换来测试耳机上的应用程序


float _rayCastDelay = 0.1f;

float _rayCastDelay = 0.5f;


下面是它的工作原理!

演示


亲自尝试一下,让我知道您想使用手部追踪来构建什么。