MRが楽しい

MRやVRについて学習したことを書き残す

MRTK v2のドキュメントを少しずつ読み解く MRTKのアイトラッキングのデモシーン

本日は MRTKv2 の調査枠です。
MRTKv2 の Guides ドキュメントを少しずつ読み進めていきます。

MRTKv2のGuidesドキュメント

以下のドキュメントを読み進めていきます。
microsoft.github.io

以下のページでは有志による本ドキュメントの日本語翻訳が行われています。
投稿時点でこちらで未翻訳、または著者が興味のある部分について記事にしていきます。
hololabinc.github.io

本記事では以下のページを読み進めます。
microsoft.github.io
f:id:bluebirdofoz:20200224040712j:plain

MRTKのアイトラッキングのデモシーン

本トピックでは MRTK アイトラッキングのデモシーンを基に、MRTK でアイトラッキングを利用する方法について説明します。
これらのサンプルを使用すると、新しい入力機能の1つであるアイトラッキングを体験できます。

デモには目線ベースのアクティベーションから、見ているものに関する情報を音声とジェスチャー入力と組み合わせる方法に至るまで、様々なユースケースが含まれています。
ユーザーはターゲットを見て「Select」と言うだけで、簡単にホログラフィックコンテンツをビューから選択および移動できます。
(またはハンドジェスチャーも利用できます)

この他、パネル上のテキストと画像の視線方向のスクロール、パン、ズームのサンプルも含まれています。
更に、2Dパネルでのユーザーの視線の注目点を記録および視覚化するためのサンプルを示します。

次のセクションでは、MRTK視線追跡サンプルパッケージの各サンプルに含まれる内容の詳細について説明します。
f:id:bluebirdofoz:20200224040723j:plain

MRTKアイトラッキングデモシーンは順にロードされます。以下で設定方法を説明します。

アイトラッキングデモサンプルの概要

Eye-Supported Target Selection

このチュートリアルでは、視線データにアクセスしてターゲットを選択する方法を紹介します。
微妙ながら強力なフィードバックの例が含まれており、ユーザーにターゲットに焦点が合っているという体験を提供します。
更に、見た後に自動で消えるスマート通知の簡単な例があります。

目、音声、および手入力の組み合わせを使用した高速で容易なターゲット選択。
microsoft.github.io

Eye-Supported Navigation

遠くのディスプレイまたは電子書籍リーダーで情報を読んでいるシーンを想像してください。
表示されたテキストの最後に到達すると、テキストが自動的に上にスクロールします。
または、見ている場所に向かって魔法のように直接ズームします。
これらは視線支援ナビゲーションに関するこのチュートリアルで紹介する例の一部です。
更に、3Dホログラムを現在の焦点に基づいて自動的に回転させることで、3Dホログラムをハンズフリーで回転させる例があります。

スクロール、パン、ズーム、目、音声、手の入力の組み合わせを使用した3D回転。
microsoft.github.io

Eye-Supported Positioning

このチュートリアルでは、Put-That-There と呼ばれる入力シナリオを、目、手、および音声入力で示します。
ターゲットの選択と位置決めを高速化するために、目を活用します。
ホログラムを見て「put this」と言い、配置したい場所を見て「there!」と言ってください。
ホログラムをより正確に配置するために、手、音声、またはコントローラーからの追加入力を使用できます。

目、音声、および手入力を使用したホログラムの配置(ドラッグアンドドロップ)。目と手を使用したスライダー。
microsoft.github.io

Visualization of visual attention

ユーザーがどこを見るかというデータは、設計の使いやすさを評価し、効率的な作業ストリームの問題を特定するための強力なツールになります。
このチュートリアルでは、様々なアイトラッキングの視覚化と、ニーズにどのように適合するかについて例示します。
アイトラッキングデータのロギングとロードの基本的な例と、それらを視覚化する方法の例を示します。

スレート上の2次元の注目マップ(ヒートマップ)。視線追跡データの記録と再生。

MRTK視線追跡サンプルのセットアップ

前提条件

バイスでアイトラッキングサンプルを使用するには、HoloLens 2と、パッケージの「Gaze Input」機能でビルドされたサンプルアプリパッケージが必要です。

これらのアイトラッキングサンプルをデバイスで使用するには 、Visual Studioでアプリをビルドする前に、次の手順を必ず 実行してください。

1.EyeTrackingDemo-00-RootScene.unityをロードします

EyeTrackingDemo-00-RootSceneは、すべてのコアMRTKコンポーネントが含まれるベース(ルート)シーンです。
これは最初にロードする必要があるシーンで、ここから視線追跡デモを実行します。
ロードされる異なるアイトラッキングサンプルを簡単に切り替えることができるグラフィカルシーンメニューを備えています。
f:id:bluebirdofoz:20200224040805j:plain

ルートシーンには、MRTKで構成されたプロファイルやシーンカメラなど、次にロードされるシーン全体で保持されるいくつかのコアコンポーネントが含まれています。
MixedRealityBasicSceneSetup は(下のスクリーンショット参照)には、起動時に参照シーンを自動的にロードするスクリプトが含まれています。
デフォルトでは EyeTrackingDemo-02-TargetSelection が対象です。
f:id:bluebirdofoz:20200224040816j:plain

2.ビルドメニューにシーンを追加する

実行時に追加シーンをロードするには、これらのシーンを Build Settings の[Scenes In Build]に追加する必要があります。
このとき、ルートシーン(EyeTrackingDemo-00-RootScene)をリストの最初のシーンとします。
f:id:bluebirdofoz:20200224040827j:plain

3. Unityエディターで視線追跡サンプルを再生します

シーンをビルド設定に追加し、EyeTrackingDemo-00-RootScene をロードしました。
最後に MixedRealityBasicSceneSetup GameObject にアタッチされている「OnLoadStartScene」スクリプトが有効になっているかを確認してください。

これは最初にロードするデモシーンをルートシーンに知らせるものです。
f:id:bluebirdofoz:20200224040836j:plain

Unityエディターの「Play」を押してください。
Game ウィンドウでいくつかの宝石が表示され、上部にはシーンメニューが表示されます。
f:id:bluebirdofoz:20200224040845j:plain

ゲームビューの中央に小さな半透明の円があることを確認してください。
これはシミュレートされた視線のインジケータ(カーソル)として機能します。

マウスの右ボタンを押して、マウスを動かして位置を変更するだけです。
カーソルを宝石の上に置くと、現在表示されている宝石の中心にスナップします。
これは、ターゲットを「見る」ときに期待どおりにイベントがトリガーされるかどうかをテストする方法です。

マウス制御を介してシミュレートされた視線は、私たちの急速で意図しない眼球運動の補足としては不十分であることに注意してください。
ただし、HoloLens2 デバイスに展開して設計を繰り返す前に、基本機能をテストするのには最適です。
視線追跡のサンプルシーンでは宝石は見ている限り回転し、以下の操作を合わせることで破壊できます。

・Enterキーを押す(「Select」と言うことをシミュレートします)
・マイクに「Select」と言う
・スペースを押してシミュレートされた手の入力を表示し、マウスの左ボタンをクリックしてピンチをシミュレートします

これらの相互作用を実現する方法については、Eye-Supported Target Selection チュートリアルで詳しく説明します。
microsoft.github.io

カーソルをシーンの一番上のメニューバーに移動すると、現在ホバーされているアイテムが強調表示されます。
上記のコミット方法のいずれかを使用して(Enter を押すなど)、強調表示されている項目を選択できます。
これにより、異なるアイトラッキングサンプルシーンに切り替えることができます。

4.特定のサブシーンをテストする方法

特定のシナリオで作業する場合、毎回シーンメニューを使用する必要はありません。
代わりに、[Play]ボタンを押したときに現在作業しているシーンから直接開始することができます。

手順は次のとおりです。
1.ルートシーンをロードする
2.ルートシーンで、「OnLoadStartScene」スクリプトを無効にします
3.下のスクリーンショットに示すように、アイトラッキングテストシーン(または他のシーン)を Hierachy にドラッグアンドドロップします。
f:id:bluebirdofoz:20200224040905j:plain
4.「Play」を押す

このようなサブシーンのロードは永続的ではないことに注意してください。
これは、HoloLens 2デバイスにアプリをデプロイする場合、ルートシーンのみをロードすることを意味します。
また、プロジェクトを他の人と共有する場合、サブシーンは自動的にロードされません。