夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

月面探査機アプリを作る HoloLens2アプリのチュートリアルその⑮

Microsoftのドキュメント[Microsoft Docs]ではHoloLens 2の入門チュートリアルが公開されています。

ツールのインストールから詳しく掲載されているためこちらを今回勉強しながらHoloLens 2が手元にないためHoloLens 1stで動かしてみます。

 チュートリアルは以下で公開されています。

docs.microsoft.com

前回はユーザーの視線を用いたイベントを付与しました。

〇7. 月面探査機のサンプルアプリケーションを作成する

 今回からは、以前のチュートリアルセクションの複数の概念を組み合わせて、サンプルアプリケーションを作成します。

〇今回作成する月面探査機の概要

 ここで作成するアプリのユーザーの目標は、テーブルに展開される5つのパーツを正しい位置に配置することです。

 これを行うには、次の手順を実行します。

●1. ロケットランチャー prefab をシーンに追加する

 [Project]ウィンドウで、[Asset > MRTK.Tutorials.GettingStarted]に移動します。 [Prefabs > RocketLauncher]フォルダーに移動し、[RocketLauncher prefab] を [Hierarchy] ウィンドウにドラッグしてシーンに追加した後、位置を変更します。

f:id:Holomoto-Sumire:20200324085544j:plain

 位置は次のように設定します。

 位置(X = 1.5、Y =-0.4、Z = 0)  回転 (X = 0、Y = 180、Z = 0)

f:id:Holomoto-Sumire:20200324085848j:plain

●2. すべての部分に対してオブジェクトの操作を有効にします。

[Hierarchy] ウィンドウで、[RocketLauncher]プレファブの左側の矢印をクリックしオブジェクトを展開し[Lunarmoduleparts]オブジェクトを見つけ, さらに展開し、[Lunarmoduleparts]オブジェクトのすべての子オブジェクトを選択し、[Manipulation Handler]コンポーネントと[NearInteractionGrabbable] コンポーネントを追加します。

f:id:Holomoto-Sumire:20200324090756j:plain

[Manipulation Handler]を次のように構成します。

 ・[Allow Far Manipulation] チェックボックスをオフにして遠隔での操作では反応しないようにします。

 ・[Two Handed Manipulation Type]を[Move Rotate]に変更して、スケーリング(拡大縮小)が無効になるようにします。

f:id:Holomoto-Sumire:20200324091834j:plain

●3. パーツアセンブリのデモコンポーネントを追加して構成する

 ●2同様すべての[LunarModuleParts]オブジェクトの子オブジェクトを選択したまま、[Add Component]から[AudioSource]コンポーネントを追加し、次のように構成します。

f:id:Holomoto-Sumire:20200324092947j:plain

 音源に当たるオーディオクリップを[audioclip]フィールドに割り当てます (ここでは[MRKT_Scale_Start]をアタッチします。

f:id:Holomoto-Sumire:20200324093921j:plain

シーンの実行時にオーディオクリップが自動的に再生されないように、 [Play On Awak] チェックボックスをオフにします。

f:id:Holomoto-Sumire:20200324094121j:plain

 [Spatial Blend]を1(=3D)に変更して、空間オーディオを有効にする。

 次にすべての[LunarModuleParts]の子オブジェクトが選択されている状態で、 [Part Assembly Demo] コンポーネントを追加します。

f:id:Holomoto-Sumire:20200324095403j:plain

[Hierarchy] ウィンドウで、[RocketLauncher] の子オブジェクトの[LunarModuleParts]のさらに子オブジェクト[RoverEnclosure] オブジェクトを選択し、[PartAssemblyDemo] コンポーネントを次のように構成します。

・[Object To Place]にオブジェクト自分自身([Roverenclosure]オブジェクトの場合[Roverenclosure]) を割り当てます。

・[Location to Place]フィールドに、[LunarModule]の子オブジェクトの対応する[PlacementHints]オブジェクト (ここでは [RoverEnclosure_PlacementHint] オブジェクト) を割り当てます。

・[Tool Tip Object]フィールドに、対応するツールヒント([Roverenclosure]オブジェクトの場合は [RoverEnclosure_ToolTip]オブジェクト) を割り当てます。

・[AudioSource] フィールドに、オブジェクト自体([Roverenclosure]オブジェクトの場合は roverenclosure クロージャオブジェクト) を割り当てます。

f:id:Holomoto-Sumire:20200324181739j:plain

 他のすべての[LunarModuleParts]の子オブジェクト ([Futex]、[EnergyCell]、[DockingPortal]、[ExternalSensor]) に対して繰り返します。

以上でLunaObjectの設定が完了しました。