夜風のMixedReality

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

月面探査機の機能を実装する HoloLens2アプリのチュートリアルその⑯

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

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

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

docs.microsoft.com

 前回はユーザーの月面着陸機のアプリを作るためのオブジェクトの設定を行いました。

〇月着陸船の構成

 ここでは月面着陸船を構成して次のことを行えるようにします。

 ・月着陸船を操作する

 ・月着陸船を宇宙に打ち上げ、打ち上げ時にサウンドを再生する

 ・アプリケーションをリセットして、月着陸船とすべての部品を元の位置に戻す

 ・配置ヒントを非表示にして、部品アセンブリの課題をより難しくする。

●1.オブジェクトの操作を有効にする

 [Hierarchy]ウィンドウで、[RocketLauncher] > [LunarModule] オブジェクトを選択します。次に、[Inspector]ウィンドウから[Add Component]ボタンより[Manipulation Handler] コンポーネントおよび [Near Interaction Grabbable]コンポーネントを追加します。

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

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

 [Allow Far Manipulation]チェックボックスをオフにして、近距離での操作のみを許可するようにします。

 [Two Handed Manipulation Type]を[Move Rotate]に変更して、Scaleによる拡大縮小を無効にします。

[Manipulation Handler]コンポーネントはオブジェクトの移動や回転、拡大縮小を行うことができる機能です。

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

●2.物理的処理を有効にする

 [RocketLauncher] > [LunarModule] オブジェクトを選択したまま、[Rigidbody]コンポーネントを追加し、次のように構成します。

 [Use Gravity]チェックボックスをオフにして、月着陸船が重力の影響を受けないようにします

 [Is Kinematic] チェックボックスをオンにして、月着陸船が最初は物理的な力の影響を受けないようにします。

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

 RigidBodyのリファレンスを見てみると以下のように解説されています。

docs.unity3d.com

Is Kinematicを有効にすると、オブジェクトは物理エンジンによって駆動されず、その Transform によってのみ操作されます。これは、プラットフォームを移動したい場合や、Hinge Joint を加えたリジッドボディをアニメーション化したい場合に便利です。

●3.Audio Source コンポーネントを追加する

 [RocketLauncher] > [LunarModule] オブジェクトを選択したまま、[Inspector]ウィンドウから[Add Component]ボタンより[Audio Source]コンポーネントを追加し、次のように構成します。

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

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

●4.Launch Lunar Moduleコンポーネントを追加して構成する。

 [Launch Lunar Module]はMRTKではなくチュートリアル用に提供されているコンポーネントです。

 [RocketLauncher] > [LunarModule] オブジェクトを選択したまま、[Launch Lunar Module]コンポーネントを追加し、次のように構成します。

Thrust の値を変更して、月着陸船が打ち上げ時に滑らかに上昇するようにします (ここでは、0.01に設定しました)。

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

●5.Toggle Placement Hintsコンポーネントを追加して構成する

 [RocketLauncher] > [LunarModule] オブジェクトを選択したまま、[Toggle Placement Hints ]コンポーネントを追加し、次のように構成します。

 ・ゲーム オブジェクトListの [Size] を 5 に設定します

 ・[RocketLauncher] > [LunarModule] > [PlacementHints] オブジェクトの子オブジェクトをListの [Element] フィールドに割り当てます。

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

 以上で[LunarModule]の設定が完了しました。

 次回ボタンを押すことで実際に[LunarModule]が離陸する機能を実装します。