デコシノニッキ

ホロレンジャーの戦いの記録

MR Learning Base Module で学ぶHoloLens 2アプリ開発 その3 動的なコンテンツ配置とソルバー

※ この記事は2019/02/26時点のものを参考に書いています

www.tattichan.work

2ではボタンを配置して操作するUIの作成練習でした
3では物がユーザの動きに従って追従するようにします

Instructions

MRTK内のソルバーの場所

"Solver" は日本語では解決と訳される訳ですが,物の位置を所謂”いい感じにする”やつです。訳しづらいのでソルバーとそのままカタカナ表記で行きます。

ソルバーはプロジェクトのMRTK SDKフォルダの,Utilitiesの配下にいます。


f:id:haikage1755:20190501213724p:plain:w450

Note: このレッスンでは,"Orbital"ソルバーと"RadialView"ソルバーを使います。より詳細については,こちらを参考にしてください。

ユーザを追跡するソルバーを使う

この章でのゴールは前章で作成したボタンコレクションを,ユーザの視線方向に沿うように拡張することです。今までは"taglong"と呼ばれていた機能がこれに該当します。

1.Button Collectionを選択します


f:id:haikage1755:20190501214102p:plain:w450

2.Inspectorパネルから,"Add Component"を押し,"orbital"と検索し選択します。


f:id:haikage1755:20190501214211p:plain:w450

Note: この時自動でSolverHanderもアタッチされますが,Orbitalに必要なものなのでそのままにしてください。

3.ボタンコレクションがユーザに追従するように設定するには,以下のような調整が必要です。

  • Orbital の"orientation type"のドロップダウンリストを"Yaw Only"にセットする。これにより,ユーザの動きに従ってオブジェクトの1つの軸だけが回転します。
  • 全ての軸でLocal Offset を0に設定します。これは,ユーザが高さを変えたときにオブジェクトが物理的環境内で固定の高さに留まるようにオブジェクトの動きを固定しながら,ユーザが動き回る時にオブジェクトの追従を可能にします。
  • ユーザが頭を十分遠くに回した後でのみボタンが追従するという動作を行う場合は,"User Angle Stepping for world offset"を有効にします。例えば,オブジェクトを90度毎にユーザに追従させるにはステップ下数を4に設定します。


f:id:haikage1755:20190501215125p:plain:w450

手にオブジェクトが追従するようにする

このセクションでは,RadialViewソルバーを使ってcubeがユーザの手に追従するようにします。

1.Cubeを選択し,"Add Component"を押します


f:id:haikage1755:20190501215333p:plain:w450

2."RadialView"と検索,選択し,CubeにRadialViewを追加します

3.Radial Viewが頭ではなく左手に追従するように設定します。"Tracked Object To Reference"のドロップダウンから,"Hand Joint Left"を選択します


f:id:haikage1755:20190501215539p:plain:w450

4.Hand Jointを選択すると,手のどの部分にCubeが追従するかを選択することができます。この例では,"Wrist(手首)"を選択します。


f:id:haikage1755:20190501215745p:plain:w450

5.最大値と最小値を0にすると,Cubeと手首との間の距離が0になり,ぴったりくっついてきます。"Reference Direction"からCubeの向きをどのようにするかも決めることができます。


f:id:haikage1755:20190501220011p:plain:w450

www.tattichan.work

[デコシノニッキ]は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」