前回の投稿で Quest 2 デバイスをターゲットとする 作成に成功したので、今度は Meta via Presence Platform によって提供される最も強力な機能セットの 1 つについて洞察していきます。 最初の Unity プロジェクトの Meta のプレゼンス プラットフォームとは何ですか? プレゼンス プラットフォームは、仮想現実環境で共有されたプレゼンスとインタラクションの感覚を生み出すように ています。 VR ヘッドセットを使用して、人々が没入型の仮想空間で接続し、対話し、交流できるようになります。 設計され Meta のプレゼンス プラットフォームの特徴と機能は次のとおりです。 プレゼンス プラットフォームを使用すると、ユーザーは仮想世界で自分を表すデジタル アバターを作成およびカスタマイズできます。これらのアバターは、ユーザーの実際の動き、表情、ジェスチャーを模倣することができ、臨場感と社会的交流を強化します。 アバター システム: ユーザーは、共有仮想環境で友人や他の人々と会い、交流することができます。ゲームをプレイしたり、仮想イベントに参加したり、ビデオを見たりするなど、さまざまなアクティビティを一緒に行うことができます。 ソーシャル インタラクション: プラットフォームには空間オーディオが組み込まれています。これは、仮想環境内のサウンドが位置ベースであることを意味します。これにより、ユーザーは現実世界と同じように特定の方向からの音を聞くことができるため、より現実的で没入型のオーディオ体験が生まれます。 空間オーディオ: プレゼンス プラットフォームはハンド トラッキング テクノロジーをサポートしており、ユーザーはコントローラーを必要とせずに VR 内で手や指を直接使用できます。これにより、対話がより自然かつ直感的になります。 ハンド トラッキング: このプラットフォームは、さまざまな Oculus VR ヘッドセット間で動作するように設計されており、さまざまなデバイスを持つユーザーがシームレスに参加し、相互に対話できるようになります。 クロスプラットフォームのサポート: 開発者向けに、Presence Platform は、VR アプリケーション、ゲーム、エクスペリエンスを作成および公開するためのツールと API を提供し、仮想コンテンツのエコシステムの繁栄を可能にします。 コンテンツ作成ツール: ハンドトラッキングから始める ご覧のとおり、Presence Platform はサブシステム/機能の包括的なセットであり、それぞれについて詳しく説明しますが、始めるにあたり、VR ゲーム開発の基本要件の 1 つであるハンド トラッキングから始めましょう。 、ハンド トラッキング ゲームのようなエクスペリエンスを構築して起動します。 完璧な出発点は、 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) にあります。 必要な依存関係をすべてインストールし、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; 仕組みは次のとおりです。 ご自身で試してみて、ハンド トラッキングを使用して何を構築したいかをお知らせください。