Microsoftのドキュメント[Microsoft Docs]ではHoloLens 2の入門チュートリアルが公開されています。
ツールのインストールから詳しく掲載されているためこちらを今回勉強しながらHoloLens 2が手元にないためHoloLens 1stで動かしてみます。
チュートリアルは以下で公開されています。
前回は音声認識有効にして音声コマンドを付与しました。
〇視線追跡
HoloLens 2ではレンズ部分にセンサーが追加され瞳の動きを検出することが可能になりました。
これを用いてデバイスログイン時の[Windows Hello](虹彩認証でデバイスを装着するだけでログインすることができる)などのセキュリティに用いられているだけではなく、アプリケーション内での入力として視線追跡が用いることができます。
●1. [3DObjectCollection]のすべての子オブジェクトに[EyeTrackingTarget] コンポーネントを追加します。
[Hierarchy]ウィンドウで、[3DObjectCollection]オブジェクトを展開し、すべての子オブジェクトを選択します。次に、[Inspector]ウィンドウで [Add Component]ボタンを使用して、すべての子オブジェクトに[EyeTrackingTarget] コンポーネントを追加します。
すべての子オブジェクトが選択された状態で、次のように[EyeTrackingTarget]コンポーネントを構成します。
・[SelectAction]を変更し[Select]として定義します。
・[Voice Select] のタグを展開し、[Size] を1に設定します。次に、表示される新しい要素の一覧で、[Element 0] を [Select] に変更し、このオブジェクトの音声コマンドアクションを [Select] として定義します。
●2. すべてのターゲットオブジェクトにEyeTrackingTutorialDemoコンポーネントを追加する
すべての子オブジェクトがまだ選択されている状態で、 [Add Component] ボタンを使用して、すべての子オブジェクトにチュートリアル用のコンポーネントとして提供されている[EyeTrackingTutorialDemo] コンポーネントを追加します。
●3. ターゲットイベントを実装します
[Hierarchy]ウィンドウで、[Cheese]オブジェクトを選択し、[While Looking At Target () ]イベントに新しいをイベント作成します。
次に、イベントを受信するように[Cheese]オブジェクト設定し、トリガーするアクションとして[EyeTrackingTutorialDemo.RotateTarget]を定義します。
[Cheese]以下のすべてのオブジェクトに対しても同様の作業を行います。
今までは[Shift]キーを用いて複数選択し一度に設定していましたが、今回は各オブジェクトの自分自身のそれぞれのコンポーネントを参照するためここに作業します。
●4. イベントのアクションを実装する
[Hierarchy]ウィンドウで、[Cheese]オブジェクトを選択し、[ On Selected() ]イベントを作成します。次に、イベントを受信するようにチーズオブジェクトを設定し、トリガーされるアクションとして[EyeTrackingTutorialDemo.BlipTarget]を定義します。
●3同様すべての子オブジェクトに対して同じ操作を行います。
〇5. エディター内のシミュレーションのシミュレートされた目の追跡を有効にする
[Hierarchy] ウィンドウで [MixedRealityToolkit] オブジェクトを選択し、[Inspector] ウィンドウで [Input] タブを選択します。次に、[InputDataProvider] セクションを展開し、 [InputSimulationService] セクションを展開し、 [DefaultMixedRealityInputSimulationProfile]を複製して独自のカスタマイズ可能な入力シミュレーションプロファイルに置き換えます。
[Eye Simulation] セクションで、[Simulation Eye position] のチェックボックスをオンにして、視線追跡シミュレーションを有効にします。
UnityEditorを実行しゲームモードに入ると、ビューを調整することで、実装したスピンとブリップが発生の効果をテストできます。これにより、カーソルがオブジェクトの1つにヒットし、手動操作または音声コマンドを使用してオブジェクトを選択できるようになります。
以上で視線追跡でのオブジェクトの操作を実装しました。
視線追跡はHandTracking以上に実機ではなくEditor上での確認が難しいですが、ユーザーとの対話において重要な要素の一つになります。