夜風のMixedReality

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

ゼロから学ぶHoloLens 初心者向けチュートリアル HoloLensの五大要素を学ぶ Input その① AirTap

チュートリアル枠です。

今回自分が3年前HoloLens に初めて触れ右も左もわからない中開発を行った頃の自分に向けてチュートリアルを作成します。

〇HoloLensへアプリをデプロイしよう!

今回はHoloLensアプリ開発環境を1から構築することを目的とします。 下のようなテーマで書いていこうと思います。

1.Unityの環境を構築しよう!

2.MRTKを使おう!MRTKとは何か?

    UnityEditorでMRTKを使おう

    アプリをUnityからビルドしよう。

    HoloLens実機にデプロイしよう

    

3.HoloLensの5大要素を学ぶ

      空間認識機能を実装する

      空間認識の表現

      ・AirTapの実装←本日はこちら

4.応用編

〇環境

・Unity2019.4.18f1(LTS)

・VisualStudio2019

●筆者PC環境

 ・OS:Windows10 Pro

 ・プロセッサ:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz 3.50 GHz

 GPU:NVIDIA GoForceRTX 3080

 Microsoft HoloLens 1st

Microsoft HoloLens 2

 スペックに関しては高いほうが良いですが、HoloLensアプリ開発の場合VRと比べ求められるスペックは低いです。

 VRアプリ開発の場合PC自体がVRReady(VRゲームを実行できる環境)であることがほぼ必須ですが、HoloLensの場合VRReadyではなくても開発自体はできます。

 Unityが動くスペックであれば最低限問題ないです。

〇AirTapの実装

今回はジェスチャを実装します。

 HoloLensではコントローラーがありません。HoloLens 1st、HoloLens 2ともにユーザーの手を使ったジェスチャで入力を行います。

[AirTap]とはHoloLensの最も基礎的なジェスチャで一般的なPCでいうところのクリック、スマートフォンなどでいうところのタップと同じような選択の機能を実現します。

redhologerbera.hatenablog.com

今回はこの機能を実装します。プロジェクトは前回のものを使用します。

redhologerbera.hatenablog.com

今回はAirTapを行うことでCubeを落下させる実装を行います。

初めに前回作成した[Drop]コンポーネントを次のように書き換えます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Drop : MonoBehaviour
{
    [SerializeField]
    Rigidbody rb;

    public void DropDown()
    {
      
        rb.useGravity = true;
    }

   
}

①[Cube]オブジェクトを選択しインスペクターウィンドウから[Interactable]というコンポーネントを追加します。

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

コンポーネントの追加はインスペクターウィンドウの最下部の[Add component]をクリックし[Interactable]と検索バーに入力することで行えます。

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

②[Interactable]コンポーネントはアクションに対してのリアクションを返すコンポーネントです。

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

これによって[Cube]をAirTapすることでリアクション(イベント)を発火させることができます。

次にイベントを設定します。

③[Events]のタブを開き[+]マークをクリックしイベントを追加します。

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

②hierarchyウィンドウから[Cube]オブジェクトを[Interactable]コンポーネントの[Events]にドラッグアンドドロップして設定します。

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

 これはAirTapに対してのリアクションをどのオブジェクトが行うかの設定です。

 次に何を行うかを設定します。

③[No Function]をクリックします。

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

④Cubeオブジェクトにアタッチしている[Drop]コンポーネント、[DorpDown]を選択します。

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

これでCubeをAirTapすることでCubeが落ちるようになります。

ゼロから学ぶHoloLens 初心者向けチュートリアル HoloLensの五大要素を学ぶ 空間認識 その② 

本日はチュートリアル枠です。

今回自分が3年前HoloLens に初めて触れ右も左もわからない中開発を行った頃の自分に向けてチュートリアルを作成します。

〇HoloLensへアプリをデプロイしよう!

今回はHoloLensアプリ開発環境を1から構築することを目的とします。 下のようなテーマで書いていこうと思います。

1.Unityの環境を構築しよう!

2.MRTKを使おう!MRTKとは何か?

    UnityEditorでMRTKを使おう

    アプリをUnityからビルドしよう。

    HoloLens実機にデプロイしよう

   

3.HoloLensの5大要素を学ぶ

      空間認識機能を実装する

      ・空間認識の表現←本日はここ

4.応用編

〇環境

・Unity2019.4.18f1(LTS)

・VisualStudio2019

●筆者PC環境

 ・OS:Windows10 Pro

 ・プロセッサ:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz 3.50 GHz

 GPU:NVIDIA GoForceRTX 3080

 Microsoft HoloLens 1st

Microsoft HoloLens 2

 スペックに関しては高いほうが良いですが、HoloLensアプリ開発の場合VRと比べ求められるスペックは低いです。

 VRアプリ開発の場合PC自体がVRReady(VRゲームを実行できる環境)であることがほぼ必須ですが、HoloLensの場合VRReadyではなくても開発自体はできます。

 Unityが動くスペックであれば最低限問題ないです。

〇空間認識の表現

昨日のチュートリアルではHoloLensの空間認識(SpatialAwareness)の実装を行いました。

HoloLensのSpatialAwarenessではユーザーの周囲の物理環境を認識して、メッシュを張ることでHoloLensによって生み出されたデジタルなオブジェクトと現実の床や壁など物理情報を融合したMixedRealityを実現しています。

 youtu.be

 昨日の状態では動画のようにメッシュがはっきり描画されており、アプリの体験としては非常に邪魔な存在になっています。

 今回はこのSpatialAwarenessのメッシュの見た目を変更していきます。

①hierarchyウィンドウから[MixedRealityToolkit]オブジェクトを選択し、インスペクターから[SpatialAwareness]のタブを開きます。

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

②[SpatialAwarenessSystemSettings]タブに設定されているProfileを[Clone]ボタンをクリックし複製します。

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

③設定されているProfileの最下部の項目[DisplaySettings]から[DisplayOption]を[Visible]から[Occlusion]に変更します。

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

この状態でHoloLens 実機にデプロイします。

youtu.be

ワイヤフレーム上に表示されていたメッシュが透明になっていることを確認できました。

次にMRTKで提供されているほかの表現を試してみます。

④[Visible]へと設定を戻し[Visible Material]に[MRTK_Pulse_SpatialMeshBlue]マテリアルを設定します。

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

この[MRTK_Pulse_SpatialMeshBlue]マテリアルはAssets/MRTK/SDK/Features/UX/Materials/PulseShaderにあります。

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

次に[MRTK_Pulse_SpatialMeshBlue]マテリアルを選択した状態でインスペクターウィンドウから[AutoPulse]にチェックを入れ、有効化します。

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

この状態でHoloLens実機でデプロイしてみていきます。

youtu.be

こちらの表現では周期的にパルスが現れる見た目を実装できます。

以上で空間認識の表現を実装できました。

ゼロから学ぶHoloLens 初心者向けチュートリアル HoloLensの五大要素を学ぶ 空間認識 その①

本日はチュートリアル枠です。

今回自分が3年前HoloLens に初めて触れ右も左もわからない中開発を行った頃の自分に向けてチュートリアルを作成します。

〇HoloLensへアプリをデプロイしよう!

今回はHoloLensアプリ開発環境を1から構築することを目的とします。 下のようなテーマで書いていこうと思います。

1.Unityの環境を構築しよう!

2.MRTKを使おう!MRTKとは何か?

    UnityEditorでMRTKを使おう

    アプリをUnityからビルドしよう。

    HoloLens実機にデプロイしよう

3.HoloLensの5大要素を学ぶ

    ・空間認識機能を実装する。←

4.応用編

〇環境

・Unity2019.4.18f1(LTS)

・VisualStudio2019

●筆者PC環境

 ・OS:Windows10 Pro

 ・プロセッサ:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz 3.50 GHz

 GPU:NVIDIA GoForceRTX 3080

 Microsoft HoloLens 1st

Microsoft HoloLens 2

 スペックに関しては高いほうが良いですが、HoloLensアプリ開発の場合VRと比べ求められるスペックは低いです。

 VRアプリ開発の場合PC自体がVRReady(VRゲームを実行できる環境)であることがほぼ必須ですが、HoloLensの場合VRReadyではなくても開発自体はできます。

 Unityが動くスペックであれば最低限問題ないです。

〇空間認識を使う

[空間認識(SpatialAwareness)]はHoloLensのMixedRealityを実現するうえで最も重要な要素です。

HoloLensの前面に内蔵された赤外線カメラによって周囲の物理環境をスキャン、メッシュ化し、アプリ内で使用できます。

これによってHoloLensでは現実の壁に穴をあける表現や壁の奥にあるオブジェクトが現実のそれと同じく見えなくなるといった表現が可能になります。

〇MRTKで空間認識を実装する

空間認識などのデバイス固有の基本機能は[MixedRealityToolkit]オブジェクトの[MixedRealityToolkit]コンポーネントで管理されています。

①Unityのhierarchyウィンドウから[MixedRealityToolkit]オブジェクトを選択し、インスペクターウィンドウに[MixedRealityToolkit]を表示させます。

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

②[SpatialAwareness]のタブが空間認識の設定になりますが、初期状態では内部の設定を変更することができません。

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

これはMRTKで最初から提供されているProfileは編集不能のためです。各開発者はこれら最初から提供されているテンプレートをもとに各自でカスタマイズする必要があります。

③MRTKのProfileを画像のように[Clone]を選択し、複製します。

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

④複製したProfileでは任意の名前を付けることができます。

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

⑤[EnableSpatialAwareness]にチェックを入れ有効化します。

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

これによって空間認識が使用できるようになりました。

この状態でデプロイします。

アプリ起動時にSpatialAwarenessでスキャンした空間がメッシュとして表示されます。

youtu.be

以上でSpatialAwarenessの実装が終わりました。

次にSpatialAwarenessの物理挙動を確認するためにCubeを配置してみます。

⑥hierarchyウィンドウで右クリックをし[Cube]を選択、配置します。

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

⑦Cubeを選択した状態でインスペクターウィンドウのTransformを次の画像のように設定します。

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

これはCubeの座標をアプリ起動位置から80cm先、大きさが10cmの立方体という意味になります。

⑧[Cube]に[Rigidbody]コンポーネントを加えます。これはCubeに重力を与えます。

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

 これで実行するとCubeが地面に落ちるという実装ができました。しかしSpatialAwarenessで張られるSpatialMeshはアプリ起動後に動的にスキャン、作成されるため現状ではMeshが作成される前にCubeが落ちてしまいます。

⑧プロジェクトウィンドウを右クリック、新規のC#スクリプトを作成し[Drop]と名付けます。

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

⑨作成した[Drop]をダブルクリックしエディタで次のようにコードを記入します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Drop : MonoBehaviour
{
    [SerializeField]
    Rigidbody rb;
    
    void Awake()
    {
        StartCoroutine(Dropdown());
    }

    IEnumerator Dropdown()
    {
        //10秒間処理を待つ
        yield return new WaitForSeconds(10);
        rb.useGravity = true;
    }

   
}

⑩CubeにDropコンポーネントをアタッチしてCubeのRidigoBodyをDropコンポーネントにアタッチします。

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

⑪次にRigidBodyの[use gravity]のチェックを外し重力を無効化します。

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

これによって10秒後に重力が有効になるようになりました。

実機で確認します。

youtu.be

Cubeが地面に落ちることを確認しました。以上でHoloLensの空間認識機能が正しく使用できるようになりました。

ゼロから学ぶHoloLens 初心者向けチュートリアル アプリをHoloLens実機へデプロイしよう デプロイ編

本日はチュートリアル枠です。

今回自分が3年前HoloLens に初めて触れ右も左もわからない中開発を行った頃の自分に向けてチュートリアルを作成します。

〇HoloLensへアプリをデプロイしよう!

今回はHoloLensアプリ開発環境を1から構築することを目的とします。 下のようなテーマで書いていこうと思います。

1.Unityの環境を構築しよう!

2.MRTKを使おう!MRTKとは何か?

    UnityEditorでMRTKを使おう

    アプリをUnityからビルドしよう。

    ・HoloLensへアプリをデプロイしよう。

3.HoloLensの5大要素を学ぶ

4.応用編

〇環境

・Unity2019.4.18f1(LTS)

・VisualStudio2019

●筆者PC環境

 ・OS:Windows10 Pro

 ・プロセッサ:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz 3.50 GHz

 GPU:NVIDIA GoForceRTX 3080

 Microsoft HoloLens 1st

Microsoft HoloLens 2

 スペックに関しては高いほうが良いですが、HoloLensアプリ開発の場合VRと比べ求められるスペックは低いです。

 VRアプリ開発の場合PC自体がVRReady(VRゲームを実行できる環境)であることがほぼ必須ですが、HoloLensの場合VRReadyではなくても開発自体はできます。

 Unityが動くスペックであれば最低限問題ないです。

〇HoloLens実機へデプロイ

Windowsの設定画面から[更新とセキュリティ]タブを開きます。[開発者向け]から開発者モードを有効にします。

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

②デバイスの検出を有効にします。

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

これはHoloLensなど外部デバイスとPCを接続する際に使用します。

③Unityからビルドしたソリューションファイル(.sln)を[VisualStudio2019]で開きます。

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

VisualStudioを開いた際追加のコンポーネントをインストールすることを要求されることがあります。

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

筆者の場合C++のパッケージが表示されています。これはUnityで出力されるビルドファイルが[IL2CPP]という形式で、一度C++に展開することでアプリの起動などを最適化するという内部処理が行われているためです。

④VisualStudioの上部画面からソリューション構成を[Release]に変更します。

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

これはデプロイ形式です。[Release]のほかに[Master]、[Debug]などがあります。 アプリをストアなどで公開する際は[Master]にする必要があります。

⑤ソリューションプラットフォームを[ARM]もしくは[ARM64]に設定します。(HoloLens 1stの場合は[x86]に設定します。)

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

[ARM]と[ARM64]はアプリ実行上ユーザーに分かる形での差異はありませんが、ある機能を片方でデプロイする際にバグが発生する場合があります。

このような問題はMicrosoftのissueに記述されている場合が多いので、思わぬバグに遭遇した場合もう片方のソリューションプラットフォームに変えてみることをお勧めします。

⑥最後にデプロイ方法を[バイス]に変更します。 これはネットワークを利用した方法などもあるのですが筆者の経験上一番確実な方法が有線でのデプロイです。

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

⑦PCとHoloLensをUSBで接続します。初めてPCとHoloLensを接続した場合次のようにセットアップが始まります。この作業は自動で行われるものです。

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

⑧PC側で正しく認識されている場合[エクスプローラ]の表示にHoloLensのアイコンが追加されます。

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

⑨[VisualStudio]上部の[デバッグ]タブから[デバッグなしで開始]を選択します。

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

この作業によってHoloLensへアプリのデプロイが始まります。

PC環境によって変わりますが、3~10分ほどでデプロイが完了します。

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

そのHoloLensへのデプロイが初回のみ次のような画面が現れることがあります。

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

これはHoloLensとPCのペアリングが完了していないため発生します。

HoloLensの設定アプリから[開発者向け]から[Pair]を選択することで表示されるコードをPC側に入力します。

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

以上でHoloLens実機へデプロイが完了します。

ゼロから学ぶHoloLens 初心者向けチュートリアル アプリをHoloLens実機へデプロイしよう ビルド編

本日はチュートリアル枠です。

今回自分が3年前HoloLens に初めて触れ右も左もわからない中開発を行った頃の自分に向けてチュートリアルを作成します。

〇アプリをビルドしよう!

今回はHoloLensアプリ開発環境を1から構築することを目的とします。 下のようなテーマで書いていこうと思います。

1.[Unityの環境を構築しよう!]

2.MRTKを使おう!MRTKとは何か?

    ・UnityEditorでMRTKを使おう

    ・HoloLensへアプリをデプロイしよう。

3.HoloLensの5大要素を学ぶ

4.応用編

〇環境

・Unity2019.4.18f1(LTS)

・VisualStudio2019

●筆者PC環境

 ・OS:Windows10 Pro

 ・プロセッサ:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz 3.50 GHz

 GPU:NVIDIA GoForceRTX 3080

 Microsoft HoloLens 1st

Microsoft HoloLens 2

 スペックに関しては高いほうが良いですが、HoloLensアプリ開発の場合VRと比べ求められるスペックは低いです。

 VRアプリ開発の場合PC自体がVRReady(VRゲームを実行できる環境)であることがほぼ必須ですが、HoloLensの場合VRReadyではなくても開発自体はできます。

 Unityが動くスペックであれば最低限問題ないです。

〇HoloLens実機へUnityからビルド

昨日MRTKを導入してUnityエディタ上で動かしました。

今回は実機へデプロイします。

①Unity上部のメニューから[Edit]→[BuildSettings]を選択しビルド設定を開きます。

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

②[Platform]が[Universal Windows Platform]を選択して、[Switch Platform]をクリックして切り替えます。

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

この操作はアプリの出力先であるプラットフォームを指定します。 HoloLensシリーズは[Universal Windows Platform](UWP)を指定する必要があります。

③上部のワールドメニューから[Window]→[PackageManager]を選択します。

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

④表示されるPackagemanagerのウィンドウから[XRPluginManagimant]を探しインストールします。

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

④[BuildSettings]の下部[Player Settings]を選択します。

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

⑤[PlayerSettings]から[XRPluginManagiment]タブを開きます。 また[WindowsMixedReality]にチェックを入れ有効化します。

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

⑤[Publishinc ]タブを開き、[Pacagename]をデフォルトで設定されている[Template 3D]から任意の名前に変更します。

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

これは同一名のアプリがHoloLens実機に入れられた場合片方が上書きされてしまいます。

⑥[BuildSettings]に戻り[Add Open Scene]をクリックし現在開いているMRTKを設定したシーンを設定します。

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

⑦[Build]をクリックします。

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

⑧開いたウィンドウから右クリックし新規でフォルダを作成します。

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

⑨作成したファイル名に適当な名前を作成します。ここでは[Apps]と名付けます。

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

〇エラーが発生する場合

ビルド中にエラーが発生した場合WindowsSDKが足りていない場合があります。

①[VisualStudioInstaller]を起動します。

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

②[変更]を選択します。

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

③[Universal Windows Platform開発]にチェックを入れます。

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

これによってUnityでビルドができるようになります。

ビルド完了後に指定した[Apps]フォルダ内に.slnファイルが作成されます。

これでビルドが完了しました。

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

次にこのファイルをHoloLensへデプロイすることでHoloLens実機でアプリとして遊ぶことができるようになります。

それはまた明日。

ゼロから学ぶHoloLens 初心者向けチュートリアル MRTKを使おう! UnityEditorで動かす。

本日はチュートリアル枠です。

今回自分が3年前HoloLens に初めて触れ右も左もわからない中開発を行った頃の自分に向けてチュートリアルを作成します。

〇環境を構築しよう!

今回はHoloLensアプリ開発環境を1から構築することを目的とします。 下のようなテーマで書いていこうと思います。

1.Unityの環境を構築しよう!

2.MRTKを使おう!MRTKとは何か?←

3.HoloLensの5大要素を学ぶ

4.応用編

〇環境

・Unity2019.4.18f1(LTS)

 ・VisualStudio2019

●筆者PC環境

 ・OS:Windows10 Pro

 ・プロセッサ:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz 3.50 GHz

 GPU:NVIDIA GoForceRTX 3080

 Microsoft HoloLens 1st

Microsoft HoloLens 2

 スペックに関しては高いほうが良いですが、HoloLensアプリ開発の場合VRとくらべ求められるスペックは低いです。

 Unityが動くスペックであれば最低限問題ないです。

〇MRTKとは?

昨日Unityを導入しました。

UnityではC#を用いてプログラミングを行いHoloLensのアプリを作成することができます。

HoloLensのメーカーであるMicrosoftはHoloLensアプリの開発のスピードを上げるために[MixedRealityToolkit(MRTK)]と呼ばれる開発ツールを提供しています。

MRTKを使用することで基本的な動作に関してはノーコーディング(プログラミングなしで)もしくはローコーディング(わずかなプログラミング)で構築することが可能です。

MRTKはHoloLensを含む主に次のようなマルチプラットフォームバイスに対応しています。

・HoloLens 1st

・HoloLens 2

・OculusQuest

・OculusQuest 2

・OpenXR

Windows MixedRealtyデバイス

〇MRTKの導入

Unity用のMRTKは次のリンクで公開されています。

github.com

ページ中央部の[release]を選択します。

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

2021年5月末現在最新版である2.7のreleaseページへ飛びます。ページ下部のUnityPackageをダウンロードします。

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

ここでMRTKにはいくつかのUnityパッケージが存在していることに気が付きます。

それぞれ次のような機能を持っています。

Microsoft.MixedReality.Toolkit.Unity.Foundation.2.7.0.unitypackage

MRTKのコアパッケージです。 MRTKを使用するために最初に導入します。

Microsoft.MixedReality.Toolkit.Unity.Examples.2.7.0.unitypackage

サンプル集です。 MRTKの中で必須のコンポーネントは入っていませんが機能を流用することでノーコーディングでアプリ開発が行えるため特に初心者の方は入れておくことをお勧めします。

Microsoft.MixedReality.Toolkit.Unity.Extensions.2.7.0.unitypackage

拡張機能ですOculusなどの機能を使用できます。

Microsoft.MixedReality.Toolkit.Unity.Tools.2.7.0.unitypackage

ビルド用のコンポーネントです。 Microsoft.MixedReality.Toolkit.Unity.TestUtilities.2.7.0.unitypackage

この中で必須となるパッケージは[Microsoft.MixedReality.Toolkit.Unity.Foundation]です。

ダウンロードしたMRTKのパッケージをUnityのプロジェクトウィンドウへD&Dします。もしくはプロジェクトウィンドウでマウスの右クリック[ImportPackage]→[Custom Package]で開いたエクスプローラーからUnityPackageを選択します。

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

正常にインストールが完了すると上部のワールドメニューに[MixedRealityToolkit]のタブとプロジェクトウィンドウのAssetsに[MRTK]および[MixedRealityToolkit.Generated]というフォルダが作成されます。

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

以上でMRTKの導入が完了しました。

〇HoloLens用のシーンの構築

開発ツールの導入が完了したため次に実際にHoloLensアプリで使用するシーンを作成します。

①上部ワールドメニュー[MixedRealityToolkit]から[Toolkit]→[Add to Scene and Configure]を選択します。   この作業によってシーンに[MixedRealityToolkit]と[MixedRealityPlayspace]と[MixedRealitySceneContent]オブジェクトが追加されます。

f:id:Holomoto-Sumire:20210530133249p:plain

[MixedRealityPlayspace]はカメラやカーソル、HandTrackingのオブジェクト等デバイス依存のオブジェクトが生成、格納されます。

[MixedRealityToolkit]オブジェクトはターゲットデバイスの設定や使用する機能の設定などを行います。

②[MixedRealityToolkit]をクリックしてインスペクターウィンドウから[MixedRelityToolkit]の最上部に表示されているプルダウンメニューから[default HoloLens2ConfigurationProfile]もしくはHoloLens 1st向けに開発する場合は[default HoloLens1stConfigurationProfile]へ切り替えます。

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

 これはターゲットデバイスごとに使用する機能のテンプレートで、プルダウンメニューに表示されるテンプレートをもとに自分のアプリにあった設定へ書き換えていきます。

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

 Unity上部の再生ボタンを押します。

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

 UnityEditorが実行されます。

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

〇UnityEditor上の操作方法

UnityEditor上ではHoloLens実機で動かすアプリをシュミレートできます。

〇移動

・Wキー→全身

・Aキー→左移動

・Dキー→右移動

・Sキー→後退

・Eキー→上昇

・Qキー→下降(しゃがむ)

・マウス右クリックしながら動かす→視点操作

・マウス右クリックしながらホイール→傾き

〇HandTracking

・Tキー→左手を表示

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

・Yキー→右手を表示

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

・スペースキー→右手の表示

・スペースキー+マウス→右手の移動

・左Shiftキー→左手の表示

・左Shiftキー+マウス→左手の移動

・手が表示されている状態+マウスクリック→AirTapジェスチャー

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

以上が基本的なUnity上での操作です。 今回MRTKを導入した基本的なシーンを作成しました。次回HoloLensへビルドして実機で表示します。

ゼロから学ぶHoloLens 初心者向けチュートリアル Unityでの環境を構築しよう!

本日はチュートリアル枠です。

今回自分が3年前HoloLens に初めて触れ右も左もわからない中開発を行った頃の自分に向けてチュートリアルを作成します。

〇環境を構築しよう!

今回はHoloLensアプリ開発環境を1から構築することを目的とします。 下のようなテーマで書いていこうと思います。

1.Unityの環境を構築しよう!

2.MRTKを使おう!MRTKとは何か?

3.HoloLensの5大要素を学ぶ

4.応用編

〇環境

 ・Unity2019.4.18f1(LTS)

 ・VisualStudio2019

●筆者PC環境

 ・OS:Windows10 Pro

 ・プロセッサ:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz 3.50 GHz

 ・GPU:NVIDIA GoForceRTX 3080

 Microsoft HoloLens 1st

Microsoft HoloLens 2

 スペックに関しては高いほうが良いですが、HoloLensアプリ開発の場合VRとくらべ求められるスペックは低いです。

 Unityが動くスペックであれば最低限問題ないです。

〇Unityの導入

 UnityはWindows,Mac環境下で動くマルチプラットフォーム環境対応のゲームエンジンです。

 HoloLensでは2021年現在次の環境でアプリケーションを開発できます。

・Unity

・UnrealEngne

DirectX  この中でUnrealEngineは比較的新しく開発環境として整備されており、Unityでの開発が情報が多く初心者におすすめです。

 Unityは下のリンクからダウンロードします。

unity3d.com

f:id:Holomoto-Sumire:20210322213138j:plain   出来れば[UnityHub]をダウンロードすることをお勧めします。

Unityは様々なVersionがあります。UnityHubを使用することでプロジェクトごとのバージョン管理やコンポーネントの管理などが行いやすく非常に便利なツールになっています。

UnityHubをダウンロードしてセットアップメニューの指示に従ってUnityHubをインストールします。

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

〇ライセンスの認証

初めてUnityHubを起動すると次のようにライセンスを求められます。

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

[ライセンスの管理]からUnityアカウントを持っている場合ログインします。ログインすることで[新規ライセンスの認証]が選択可能になります。

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

[Unity personal]と[Unity Pro/Plus]が選択できます。

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

[Unity personal]は無料で使用できます。[Unity Pro/Plus]は商用利用を想定した有償のUnityバージョンで、Personalよりもできることは多いですがHoloLensアプリ開発それ自体に大きな差はありません。

たとえば[Unity Pro/Plus]ではアプリ起動時表示されるスプラッシュスクリーンをデフォルトの[Made With Unity]から変えることができます。

redhologerbera.hatenablog.com

状況に合うものを選択します。

〇Unityのインストール

前述のとおりUnityHubは複数のUnityバージョンを管理するものです。

UnityHubのライセンス認証が完了するとUnityのインストールが可能になります。

[インストール]タブを開き、右上の青ボタン[インストール]を選択します。任意のバージョンを選択します。

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

筆者の場合[Unity 2019.4.18f1]を導入したいのですが、リストに表示されていません。

このような場合[長期サポートリリース(LTS)]をクリックします。

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

ブラウザで一覧が表示されるのでここで任意のバージョンを選択します。お使いのPCの環境を選んでダウンロードしインストーラーを実行します。

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

インストール完了後にUnityHubの[追加]を選択します。

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

開いたウィンドウからインストールしたUnityを選択します。これはデフォルトで[C:\Program Files\Unity\Editor]にあります。

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

これでUnitHubにインストールしたUnityのバージョンが追加されます。

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

次にUnityHubのインストーラーに最初から使用したいバージョンが表示されている場合ラジオボタンを選択します。

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

[Next]を選択することでモジュールを追加する画面が表示されます。

Unityインストール後に後から導入することもできますが、各プラットフォームの設定などをここで追加します。

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

HoloLens開発の場合は[Universal Windows Platform]を選択します。指示に従って続けることでインストールが始まります。

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

〇Untiyでプロジェクトを作成する。

Unityの導入が完了したら早速プロジェクトを作成します。

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

プロジェクト名、保存場所を選択し[作成]を選択します。

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

以上でUnityプロジェクトが開きました。

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

お疲れ様です。これでUnity環境が導入されました。

次回はHoloLensアプリ開発ツールであるMRTKを導入していきます。