コントローラーアニメーションの追加
更新日時: 2025/11/10
ゲームチュートリアル内のコントローラーアニメーション
Metaヘッドセット用のレーシングゲームを開発しているとしましょう。ユーザーがコースで走行を始める前に、車のドアを開き、車に乗り込み、ハンドルを握る方法を教えるチュートリアルを作成できます。
車のドアを開く
- プレイヤーは、トリガーグリップをつかみ、車のドアハンドルを引いてドアを開く必要があります。
- チュートリアルで、ドアを開くにはトリガーボタンを押す必要があることを示すオーバーレイを表示します。
- トリガーボタンのアニメーションが再生されます。
- プレイヤーは、トリガーボタンを押し、車のドアを引いて開きます。
車に乗り込む
- プレイヤーは車に乗り込む必要があります。
- チュートリアルで、車に乗り込むにはBボタンを押す必要があることを示すオーバーレイを表示します。
- Bボタンのコントローラーアニメーションが再生されます。
- プレイヤーは、Bボタンを押して車に乗り込みます。
ハンドルを握る
- プレイヤーは、左右のコントローラーを持ち、両手を閉じてトリガーを握る必要があります。
- チュートリアルで、ハンドルを操作するには左右のグリップトリガーボタンを押す必要があることを示すオーバーレイを表示します。
- 左右のグリップトリガーのアニメーションが再生されます。
- プレイヤーは左右のグリップトリガーボタンを押します。
コントローラーアニメーションは、チュートリアルが終わった後のゲーム中でも、車のドアを開けるなどのアクションを行うための正しいボタンをプレイヤーに思い出させるために使用できます。
コントローラーのタイプごとに、次のボタンを使用できます:
- button01
- stickSE
- trigger
- button02
- button03
- button04
- stickSW
- grip
- sticks
- stickNW
- stickNE
- stickW
- stickS
- stickN
- button01_neutral
- button02_neutral
- trigger_neutral
- grip_neutral
アニメーションクリップを使用して、コントローラーモデルのボタン、トリガー、サムスティックをアニメーション化できます。
コントローラーアニメーションを表示するには:
- [Project (プロジェクト)]ビューで、[Packages (パッケージ)] > [Meta XR Core SDK] > [Meshes (メッシュ)]フォルダーを展開します。
- その内には、Meta Questコントローラータイプごとに名前が付けられたフォルダーがあります。表示したいものを展開します。
- コントローラーアニメーションをクリックします。
- [Inspector (インスペクター)]ビューで、[Animation (アニメーション)]タブを選択します。
- [Preview (プレビュー)]ビューでアニメーションを視聴します。
アニメーションクリップコントローラーは、コントローラー入力に基づいて、ボタン、トリガー、サムスティックのアニメーションをレイヤー化してブレンドします。
- [Project (プロジェクト)]ビューで、[Packages (パッケージ)] > [Meta XR Core SDK] > [Meshes (メッシュ)]フォルダーを展開します。
- その内には、Meta Questコントローラータイプごとに名前が付けられたフォルダーがあります。表示したいものを展開します。
- [Animation (アニメーション)]フォルダーをクリックします。
アニメーションをコントローラーボタンにバインドするシンプルな実装の例を以下に示します。
if (m_animator != null)
{
m_animator.SetFloat("Button 1", OVRInput.Get(OVRInput.Button.One, m_controller) ? 1.0f : 0.0f);
m_animator.SetFloat("Button 2", OVRInput.Get(OVRInput.Button.Two, m_controller) ? 1.0f : 0.0f);
m_animator.SetFloat("Button 3", OVRInput.Get(OVRInput.Button.Start, m_controller) ? 1.0f : 0.0f);
m_animator.SetFloat("Joy X", OVRInput.Get(OVRInput.Axis2D.PrimaryThumbstick, m_controller).x);
m_animator.SetFloat("Joy Y", OVRInput.Get(OVRInput.Axis2D.PrimaryThumbstick, m_controller).y);
m_animator.SetFloat("Trigger", OVRInput.Get(OVRInput.Axis1D.PrimaryIndexTrigger, m_controller));
m_animator.SetFloat("Grip", OVRInput.Get(OVRInput.Axis1D.PrimaryHandTrigger, m_controller));
}
OVRControllerPrefabは、これらのアニメーションコントローラーを使用します。このprefabは、これらのアニメーションコントローラーをカスタムスクリプトで使用する方法を示す良い例です。
OVRControllerPrefabを表示するには、[Project (プロジェクト)]ビューに移動して、[Packages (パッケージ)] > [Meta XR Core SDK] > [Prefabs]フォルダーを展開します。
詳しくは、以下をご覧ください。
- 入力モダリティ: さまざまな入力モダリティについて学びます。
- ヘッド: ヘッド入力を使用するための設計とUXのベストプラクティスについて学びます。
- 手: 手を使用するための設計とUXのベストプラクティスについて学びます。
- コントローラー: コントローラーを使用するための設計とUXのベストプラクティスについて学びます。
- 音声: 音声を使用するための設計とUXのベストプラクティスについて学びます。
- 周辺機器: 周辺機器を使うための設計とUXのベストプラクティスについて学びます。