paint-brush
プレゼンス プラットフォーム インタラクション SDK の概要: ハンド トラッキング@shiaart
24,233 測定値
24,233 測定値

プレゼンス プラットフォーム インタラクション SDK の概要: ハンド トラッキング

Art Sh4m2023/07/31
Read on Terminal Reader

長すぎる; 読むには

プレゼンス プラットフォームは、仮想現実環境で共有されたプレゼンスとインタラクションの感覚を生み出すように設計されています。 VR ヘッドセットを使用して、人々が没入型の仮想空間で接続し、対話し、交流できるようになります。ハンド トラッキングは VR ゲーム開発の基本要件の 1 つです。ハンド トラッキング ゲームのようなエクスペリエンスをセットアップ、構築、起動します。
featured image - プレゼンス プラットフォーム インタラクション SDK の概要: ハンド トラッキング
Art Sh HackerNoon profile picture
0-item
1-item
2-item

前回の投稿で Quest 2 デバイスをターゲットとする最初の Unity プロジェクトの作成に成功したので、今度は Meta via Presence Platform によって提供される最も強力な機能セットの 1 つについて洞察していきます。

Meta のプレゼンス プラットフォームとは何ですか?

プレゼンス プラットフォームは、仮想現実環境で共有されたプレゼンスとインタラクションの感覚を生み出すように設計されています。 VR ヘッドセットを使用して、人々が没入型の仮想空間で接続し、対話し、交流できるようになります。


Meta のプレゼンス プラットフォームの特徴と機能は次のとおりです。


  1. アバター システム:プレゼンス プラットフォームを使用すると、ユーザーは仮想世界で自分を表すデジタル アバターを作成およびカスタマイズできます。これらのアバターは、ユーザーの実際の動き、表情、ジェスチャーを模倣することができ、臨場感と社会的交流を強化します。
  2. ソーシャル インタラクション:ユーザーは、共有仮想環境で友人や他の人々と会い、交流することができます。ゲームをプレイしたり、仮想イベントに参加したり、ビデオを見たりするなど、さまざまなアクティビティを一緒に行うことができます。
  3. 空間オーディオ:プラットフォームには空間オーディオが組み込まれています。これは、仮想環境内のサウンドが位置ベースであることを意味します。これにより、ユーザーは現実世界と同じように特定の方向からの音を聞くことができるため、より現実的で没入型のオーディオ体験が生まれます。
  4. ハンド トラッキング:プレゼンス プラットフォームはハンド トラッキング テクノロジーをサポートしており、ユーザーはコントローラーを必要とせずに VR 内で手や指を直接使用できます。これにより、対話がより自然かつ直感的になります。
  5. クロスプラットフォームのサポート:このプラットフォームは、さまざまな Oculus VR ヘッドセット間で動作するように設計されており、さまざまなデバイスを持つユーザーがシームレスに参加し、相互に対話できるようになります。
  6. コンテンツ作成ツール:開発者向けに、Presence Platform は、VR アプリケーション、ゲーム、エクスペリエンスを作成および公開するためのツールと API を提供し、仮想コンテンツのエコシステムの繁栄を可能にします。


ハンドトラッキングから始める

ご覧のとおり、Presence Platform はサブシステム/機能の包括的なセットであり、それぞれについて詳しく説明しますが、始めるにあたり、VR ゲーム開発の基本要件の 1 つであるハンド トラッキングから始めましょう。 、ハンド トラッキング ゲームのようなエクスペリエンスを構築して起動します。


https://docs.unity3d.com/


完璧な出発点は、 oculus-samplesリポジトリによって提供されるUnity-FirstHandエクスペリエンスです。

繰り返しますが、開発環境のセットアップに関する以前の投稿を参照し、さまざまな依存関係がインストールされていることを確認してください。


Git LFS がインストールされていることを確認し、次のコマンドを実行します。

 git lfs install


次に、「コード」を使用してリポジトリのクローンを作成し、Github デスクトップで開き、次のコマンドを実行します。

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


実際のプロジェクト ファイルはすべて [Assets] → [Project] にあります。このフォルダーには、Interaction SDK 自体を除く、サンプルを実行するためのすべてのスクリプトとアセットが含まれています。プロジェクトには、Interaction SDK を含む Oculus SDK v41 が含まれています。インタラクション SDK は、[Assets/Oculus/Interaction]{Assets/Oculus/Interaction) にあります。


Unity エディターでの FirstHand


必要な依存関係をすべてインストールし、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;


仕組みは次のとおりです。

デモ


ご自身で試してみて、ハンド トラッキングを使用して何を構築したいかをお知らせください。