MagicLeapで動作させる場合の各種設定について

目次

  概要
  前提条件

  MagicLeap の開発環境を整える(1) LuminSDK のパスの登録
  MagicLeap の開発環境を整える(2) Luminプラットフォームへの変更
  MagicLeap の開発環境を整える(3) XR Management のインストール
  MagicLeap の開発環境を整える(4) MagicLeapLoader の追加
  MagicLeap の開発環境を整える(5) MagicLeap Unity Package のインポート
  MagicLeap の開発環境を整える(6) Unity プロジェクトの設定

  MUN への対応 (1) 通信制御に関する MagicLeap のパーミッション変更
  MUN への対応 (2) MUNのライブラリを MagicLeap プラットフォーム用にコピーする
  MUN への対応 (3) MagicLeap向けのシーンの設定

概要

MagicLeapを利用する場合、MUNを使ったネットワーク通信のためのパーミッション設定が必要になる

  ここでは、Unityで利用可能なVRデバイスの1つである「MagicLeap」を媒体とする場合における、
  MUNを使ったネットワーク通信の環境設定について説明します。

  MagicLeapを利用する場合、MagicLeapを動作させるためのLumisOS/SDKによって個別にパーミッション設定が割り振られており、
  デフォルトの状態では、ネットワーク通信に関する権限が無効になっています。
  そのため、MagicLeap(LuminSDK)を利用している場合に限り、ここで紹介するパーミッション権限の変更が必要です。


前提条件

MagicLeap+MUNを利用するための前提条件

  MagicLeap上でMUNを利用するための前提条件は以下の通りです。
1. 開発環境が Unity2019.2.0 以降である
2. Unityのインストール時に、LuminOS 用のプラットフォームモジュールを含めている
3. MagicLeap 開発者アカウントを登録し、MagicLeap本体と開発者アカウントを紐づけている
4. MagicLeap 開発者ページより、Certificates を作成し、PrivateKeyの発行を行っている
5. MagicLeap 開発者ページより、開発支援ツール(The Lab)をダウンロード&インストールしている
6. 開発支援ツール(The Lab)より、LuminSDK および MagicLeap Unity Package をダウンロードしている
  なお、3. 以降の前提条件については下記ページを参考に開発環境を整えてください。

    MagicLeapの開発者ページ(Unity向け)
       https://developer.magicleap.com/ja-jp/learn/guides/unity-overview


MagicLeap の開発環境を整える(1) LuminSDK のパスの登録

LuminSDK のパスの登録

  前提条件が整ったところで、MagicLeap+MUNの開発環境を整えて行きましょう。
  UnityEditor のメニューから Edit > Preferences を選んでください。

  Preferences のウィンドウが開いたら、External Tools を選択し、Lumin SDK のパスを設定してください。


MagicLeap の開発環境を整える(2) Luminプラットフォームへの変更

Luminプラットフォームへの変更

  続けて、Unity Editor のメニューから File > Build Settings を選択します。

  Build Settings のウィンドウが開いたら、Platform の項目から Lumin を選択し、
  Switch Platform ボタンを押下してプラットフォームを切り替えてください。


MagicLeap の開発環境を整える(3) XR Management のインストール

XR Management のインストール

  さらに続けて、Unity Editor のメニューから Window > Package Manager を選択します。

  Package Manager のウィンドウから Advanced > Show preview packages の XR Management を選択してください。

  選択後、右下の Install ボタンを押してインストールします。


MagicLeap の開発環境を整える(4) MagicLeapLoader の追加

MagicLeapLoader の追加

  さらに続けて、Unity Editor のメニューから Edit > Project Settings を選択します。

  Project Settings ウィンドウの項目に XR Plugin Management がありますので、それを選択します。

  XR Plugin Management の画面で Lumin のアイコンタブをクリックし、右下の + ボタンを押します。
  + ボタンを押したら Download > Magic Leap Loader を選び、ダウンロードしてください。
  ダウンロード選択後、さらに + ボタンを押し、 Available > Magic Leap Loader を選び、登録してください。


MagicLeap の開発環境を整える(5) MagicLeap Unity Package のインポート

MagicLeap Unity Package のインポート

  さらに続けて、Unity Editor のメニューから Asset > Import package > Custom Package を選択します。
  MagicLeapの開発支援ツール(The Lab)を使ってダウンロード入手したMagicLeap.unitypackage をインポートします。


MagicLeap の開発環境を整える(6) Unity プロジェクトの設定

Unity プロジェクトの設定

  さらに続けて、Unity Editor のメニューから File > Build Settings を選択してください。
  Build Settings のウィンドウから Player Settings のボタンを押下します。
  Project Settings ウィンドウが開いたら、Project > Player の項目を選択します。
  さらに Player ウィンドウの LuminOS プラットフォームを選択した状態で、Other Settings の項目を選択して開いてください。
  Other Settings の Identification > Build Identifier を任意のバンドル識別名に書き換えます。
  (必ずすべて小文字+ピリオドを含めた文字列で定義してください。)
  また、同じく Other Settings の Configuration > Api Compatibility Level について、.NET 4.x に変更します。
  さらに Player ウィンドウの Publishing Settings の項目を開き、
  ここの中の ML Certificate の項目に対し、MagicLeap 開発者ページで作成・発行した Certificates PrivateKey へのパスを指定します。
  (.cert1ファイルへのディレクトリを指定してください)


MUN への対応 (1) 通信制御に関する MagicLeap のパーミッション変更

MUNを利用するために、MagicLeap のパーミッション設定を変更する

  ここまでの設定を終えて、初めて MagicLeap のパーミッション設定の変更ができるようになりました。
  Unity Editor のメニューから File > Build Settings を選択してください。
  Build Settings のウィンドウから Player Settings のボタンを押下します。
  Project Settings のウィンドウが開いたら、Magic Leap > Manifest Settings の項目を選択してください。
  Manifest Setting ウィンドウ内の Minimum API Level の項目を 4 に設定します。
  同じく Manifest Setting ウィンドウ内の Autogranted Privileges の項目内にある
  「Internet」「LowLatency Lightware」の2項目のチェックボックスを ON にします。
  同じく Manifest Setting ウィンドウ内の Sensitive Privileges の項目内にある
  「LocalNetworkArea」の項目のチェックボックスを ON にします。

MagicLeap のパーミッション設定が反映されたかを確認する



MUN への対応 (2) MUNのライブラリを MagicLeap プラットフォーム用にコピーする

Android 用のライブラリを MagicLeap プラットフォーム用にコピーする

  また、2021/07/27 現在において、頒布されている MUN パッケージに「LuminOS に対応したライブラリ」が含まれておりませんが、
  既存の AndroidOS 用のライブラリで代用するために、コピー&ペーストで移動させます。

  現在使用しているプロジェクト内にある Assets/Plugins/Android/mun.dll をAssets/Plugins/Lumin ディレクトリ内にコピーしてください。
  同様に、Assets/Plugins/Android/arm64-v8a/mrs.so を、 Assets/Plugins/Lumin ディレクトリ内にコピーします。


MUN への対応 (3) MagicLeap 向けのシーンの設定

シーン上のカメラを削除し、MagicLeap用のカメラを代替する

  MagicLeap 向けのカメラについて、シーン上に配置しましょう。
  現在の Unity のシーン上で配置されている Hierarchy 上の MainCamera を右クリックし、Delete を選択して削除してください。
  削除した Main Camera の代わりに、Assets/MagicLeap/Core/Prefabs/MainCamera.prefab を現在の Unity シーンに置き換えます。

ネットワーク同期制御の有効化

  さらに、MagicLeap で同期通信を行うためのオブジェクトも追加します。
  同一シーン上の Hierarchy に新規の空オブジェクトを作成してください。
  作成したオブジェクトに対し、Assets/MagicLeap/Core/Scripts/PrivilegeRequester.cs をアタッチします。
  アタッチ後、GameObject の Inspector を開き、
  PrivilegeRequester のコンポーネントにある Privileses の size を 1 に設定したうえで、
  Elements 0 に Local Area Network を設定してください。