拡張版ハンドトラッキングのサンプル
Core Assets
Core Assets
のサンプルを使用すると、プロジェクト間で共有される定義済みのアセットを取得できます。
これらのアセットはサンプルとして提供されており、プロジェクトにインポートしてベースとして使用したり、カスタマイズしたりできます。
サンプルには、定義済みのXRリグとインタラクターに加えて、QCHTIプロジェクトのセットアップを素早く行うためのデフォルトの入力マッピングが含まれています。
QCHTのサンプル
このサンプルシーンでは、ハンドトラッキング機能を使用して、デモとして様々なインタラクション(近位、遠位、片手、両手)を紹介します。ハンドトラッキングの仕組みの詳細については、基本的なシーン設定の項目を参照してください。
ビルドのサンプルシーン
まず、プロジェクト設定のOpenXRの項目でHand Tracking
が有効になっていることを確認します。
次に、QCHT Unity Interactionsパッケージからサンプルをインポートします。
全てのシーンは、以下のフォルダに存在します。
Assets > Samples > QCHT Unity Interactions > [パッケージ バージョン番号] > QCHT Interactions Samples
これらのサンプルをエディターモードで試すには、以下のシーンを開きます。
Assets > Samples > QCHT Unity Interactions > [パッケージ バージョン番号] > QCHT Interactions Samples > Menu > Scenes > QCHT Sample - Menu
エディターのシミュレーションモードでインタラクションを試すには、 基本的なシーン設定の情報を参照してください。
ハンドトラッキングのサンプルをテストする前に、すべてのシーンをビルド設定に追加する必要があります。
サンプルの説明
サンプルは4つのシーンに分かれています。これらの4つのシーンを選ぶのがQCHT Sample - Menu
シーンです。
QCHT Sample - Menu
シーン内のメインメニューでは、以下の項目を切り替えることができます。
- シーン
- インタラクション
- 手のアバター
ARコンテキストでアバターを表示することは、一般的には推奨されません。
近くのオブジェクト
シンプルなインタラクション
- ピンクの立方体:つまむことで、オブジェクトを操作できます。
- 水色の立方体:つかむ(握る)ことで、オブジェクトを操作できます。
スナップ
ユーザーがピンクの立方体をつまむと、スナップの項目でプリセットされているように、手のアバターがその上にスナップします。
スナップ可能なオブジェクトは、主にスナップポーズのプロバイダシステムとスナップのポーズジェネレーターで動作します。
遠くのオブジェクト
パンダは、ユーザーが手からレイキャストを照射してターゲットにするとインタラクティブになります。コントロールボックスのコンポーネントにより、つまむことで移動、回転、サイズ変更ができます。
UIエレメント
UIエレメントについては、レイキャストを使用して操作できます。ラジオボタン、チェックボックス、スライダー、スクロールビュー、ボタンなど操作する要素は多数あります。UI内の項目にポインターを合わせ、つまむことで選択できます。
UIエレメントはすべてのイベントを受信し、Unity標準に形式に変換します。これは、ユーザーアクションとシステムリアクションの間のリンクです。レイキャストされた要素は、すべてのUnityのコールバックに応答します。レイキャストのシステムの詳細については、遠くのインタラクションの項目を参照してください。
描く
- つまむジェスチャー:描くアクションを開始します。
- 手をひらくジェスチャー:描くアクションを停止します。
タイピング(実験的)
タイピングのサンプルシーンは、以下の場所に存在します。
Assets > Samples > QCHT Unity Interaction > [パッケージ バージョン番号] > QCHT Interaction Samples > Poke > QCHT Sample - Poke > QCHT Sample - Poke
このシーンでは、Poke Interactor
がバーチャルキーボードに使われています。このキーボードでは、Poke Interactor
のおかげで、ユーザーが人差し指でキーに触れてテキストを入力することができます。
それぞれのキーには、Button
とSimple Interactable
が含まれています。
キーは押された動作を視覚効果的に与えるXRPokeFollowTransform
コンポーネントと、押されたときの動作を設定するKeyButton
を含みます。
また、Distal Interactions
を使って、キーとインタラクトすることも可能です。
このシーンにはカメラが存在しないため、QCHT Sample - Poke
シーン内の全てのオブジェクトをQCHT Sample - Menu
シーン等のカメラがあるシーンにコピーして利用することで 動作します。