24.7K Views
October 15, 23
スライド概要
環境構築、シミュレータの使い方、最初のUnityプロジェクトの作成、動作確認までを説明します。
MAGICLEAP 2のはじめての開発 環境構築から実機での動作まで
大久保 聡 Mail [email protected] Twitter @followapp
環境構築 環境設定については、PluginとProject Settingsの一部を入れていますが、細かな部分は解説されて いるHomeページがたくさんありますので省略します。 プロジェクトはURPで作成しています。 検証済みのバージョンの組み合わせは下記の通りです。 Unity2022 2022.3.10f Unity Package 1.11.0 ML C SDK 1.4.0-dev2 ML C SDK Cmake Support 1.0.6.0 Magic Leap Setup Tool 2.0.4 Magic Leap OS 1.4.0-dev2
UNITYのインストール Unity Hubから、Unity エディターをインストールを行います。
モジュールの追加 Android Build Supportをモジュールに追加します。
THE MAGIC LEAP HUBのダウンロード 公式のDeveloper PortalからThe Magic Leap Hubをダウンロードする。
THE MAGIC LEAP HUBのインストール インストーラーを起動し、Hubをインストールします。
OSバージョンのアップデート 最初にデバイスのOSバージョンが古い場合、最新にアップデートを実行します。 今回は1.1.0だったので、Magc Leap Hubで1.4.0-dev2へアップデートを行っています。
パッケージのインストール Package Managerを起動します。
UNITYバンドルをインストール Unityにチェックをいれます。Magic Leap Application Simulator for Unity、Unity MRTK、 Magic Leap Appllication SimulatorにもチェックをいれてApply Changesを押下します。
MAGIC LEAP HUBの設定 HomeからSettingsに入り、Developerを選択します。
UNITYの設定を確認しANDROID SDKの場所を調べる EditメニューよりPreferencesを開き、External ToolsよりSDKのパスを調べます。
MAGIC LEAP HUBにADBパスを設定 Use Custom adbを選択し、調べたSDKパスよりadb.exeを選択し設定します。
UNITYプロジェクトの作成 3D(URP)を選択、プロジェクト名を入力しプロジェクトを作成します。
MAGIC LEAP SETUP TOOL Unity Asset Storeより、Magic Leap Setup Toolを検索しAdd to My Assetsを押下します。
MAGIC LEAP SETUP TOOLのダウンロード パッケージマネージャでMagic Leap Setup Toolをダウンロードします。
MAGIC LEAP SETUP TOOLのインストール パッケージマネージャでMagic Leap Setup Toolをインストールします。
SDKフォルダの設定 Proect Setup Toolが開くので、Locate SDKボタンを押下します。
SDKフォルダの選択 SDKのインストールフォルダ(V1.4.0-dev2)を選択し、フォルダーの選択ボタンを押下します。
PROJECT SETUP TOOLで最適化 Apply Allを押下します。
PROJECT SETUP TOOLで最適化 Magic Leap ResistryからSDKをインストールします。
PROJECT SETUP TOOLで最適化 全部グリーンになるまで、全てを適用していきます。
シミュレーターのファイル格納場所を確認 Package Managerで、My ToolsからSimulatorのフォルダを開きcom.magicleap.appsim.tgzの場 所を確認します。
シュミレーターをインストールする Unityのパッケージマネージャを開き、 tarballからパッケージの追加を選択します。 先ほど調べたcom.magicleap.appsim.tgzファイルを指定しインストールを行います。
EXTERNAL TOOLS うまくセットアップできていれば、PreferencesのExternal Toolsにシュミレーターが設定されてい ます。
最初のアプリを作る
シンプルなアプリ作成 Main Cameraを削除。PackagesからXR Rigを配置する。
レンダーパイプライン設定 デフォルトの設定を削除し、新たにURP Assetを作成する。ML2URP_Assetという名前で作成しま した。
URPレンダーパイプライン設定 URPレンダーパイプライン設定を下記のように設定します。
URPレンダーパイプラインをプロジェクトに設定 Project Settingsを開き、Graphicsに作成したアセットをセットする。
SIMULATORで動作させる
OPENGL COREを使用するように設定 PlayerのOther Settingsを開き、Graphics APIs for WindowsをOpenGL Coreのみに変更する。
APP SIM TARGETを開く WindowメニューのMagic Leap App Simulatorから、App Sim Targetを開く。 TargetをSimulatorにして、プレイボタンを押下する。
ML2シュミレーターをUNITY内で開く WindowメニューのMagic Leap App Simulatorから、必要なパネルを開く。
アプリを起動し動作確認する Unityのプレイボタンを押下し、アプリを起動し動作確認する。
デバイスで動作させる USB接続でUNITYからデバッグ実行
デバイスをパソコンにつなぐ Magicleap2の電源をいれてUSBケーブルでパソコンに接続する。 USBデバッグの許可を聞かれるので許可ボタンを押下する。
APP SIM TARGETを開く WindowメニューのMagic Leap App Simulatorから、App Sim Targetを開く。 TargetをDeviceにして、プレイボタンを押下する。
パーミッションの確認 実機にパーミッションの許可の確認が表示されるので、許可を与える。
アプリを起動し動作確認する Unityのプレイボタンを押下し、アプリを起動し動作確認する。
デバイスで動作させる ビルドしたアプリをインストール
デバイスをパソコンにつなぐ Magicleap2の電源をいれてUSBケーブルでパソコンに接続する。 USBデバッグの許可を聞かれるので許可ボタンを押下する。
ビルドして実機で動かす UnityでBuild And Runを選択し実行します。
セグメントディミング機能(SIMPLE) CG(メッシュ)を透けにくくする
新しいシーンを作成 シーン上のメッシュ全てにデミング機能を付加します。 「最初のアプリを作る」のセクションと同様に、 XR Rigを配置しレンダーパイプラインの設定を終え た状態を作成します。
セグメントディミング(SIMPLE) 全てのメッシュにディミングを適用する場合。 空のGame ObjectをDimmingという名前で作成。
DIMMERをアクティブにするスクリプトを作成 Dimming.csという名前で、C#スクリプトを作成しDimmerをActiveにするスクリプトを作成します。
DIMMINGスクリプトの割り当て Dimmingゲームオブジェクトに、作成したDimming.csをAdd Componentします。
動作確認 UnityでBuild And Runを選択し実行します。
セグメントディミング機能(ADVANCED) CG(メッシュ)を透けにくくする
新しいシーンを作成 自分が透けにくくしたいメッシュだけにデミング機能を付加します。 DimmerをActiveにするスクリプトが必要となるため、セグメントディミング機能(SIMPLE)のプロ ジェクトをベースに開発します。
セグメントディミング(ADVANCED) 一部のメッシュにのみディミングを適用する場合。 ディミングのレイヤー(SegmentedDimmer)を追加します。
URPレンダラーの設定を変更 前工程で作成したAsset_Rendererを選択します。 Opaque_Layer MaskとTransparent Layer Maskから、 SegmentedDimmerを除外します。
レンダーフィーチャーの追加 Add Renderer Featureで、Segmented Dimmerを追加します。 Segmented DimmerのLayer Maskを先ほど作成したSegmentedDimmerを設定します。
ディミング対象のGAME OBJECTを作成する Cubeをシーンに新規に作成します。作成したCubeを複製しCubeDimmerという名前に変更します。 CubeDimmerのレイヤーをSegmentedDimmerに変更します。
マテリアルの変更 ProjectウィンドウのPackagesにある、Magic Leap XR Pluginフォルダ配下の SegmentedDimmerMaterialをCubeDimmerに割り当てます。
DIMMERオブジェクトの設定 Dimmerオブジェクトを選択し、レイヤーをSegmentedDimmerに変更します。 Mesh RendererのCast Shadows、Global Illumination、Light Probesの設定を変更します。
動作確認 UnityでBuild And Runを選択し実行します。
MRTKでの環境構築
準備 TextMeshProをインポートします。
パーミッションの設定 Project SettingsのMagicLeap、Permissionsで、必要な許可にチェックをいれます。 例えば、ハンドトラッキングの利用や、アイトラッキングの利用など。
MRTKのGITHUBを開く GitHubを開きます。 https://github.com/Microsoft/MixedRealityToolkit-Unity/releases
UNITYパッケージのダウンロード MRTK Foundation 2.8 と MRTK Examplesをダウンロードします。
パッケージをUNITYへインポート MRTK Foundation 2.8をインポート
CONFIGURATORの実行 MRTKの推奨設定を反映させます。
サンプル集のインポート ダウンロードした、Examplesをインポートします。
MAGIC LEAPのUNITY MRTKパッケージのインポート UNITYバンドルをインストールの説明のところで、Magic Leap HubでインストールしたUnity MRTK Packageの格納場所をOpen Folderで調べ、そこに格納されているUnity PackageをUnityで インポートします。
MRTK SHADERのアップグレード メニューのMixed Reality Toolkit UtilitiesのUpgrade MRTK Standard Shader for URPを選択し ます。
URP用マテリアルに変換 WindowからRender Pipeline Convertを開き Material Upgradeをチェックし、Initialize And Convertを押下する。 Convert Assetsを押下する。
標準シェーダーのエラー対策 775行目を fixed facing : VFACE を bool facing : SV_IsFrontFaceに変更する。
標準シェーダーのエラー対策 956 行目と 959 行目の * facing を * (facing ? 1.0 : -1.0)に変更する。
MRTKアプリの作成
MRTKの基本オブジェクトをシーンに追加 Mixed Realityメニューより、Add to Scene and Configureを選択します。
手でオブジェクトを掴めるようにする Cubeをシーンに配置します。 InspectorでCubeに、Add ComponetでObject Manipulator、NearInteractionGrabbableを追加 します。
パーミッションの設定 ハンドトラッキングの許可にチェックをいれます。
MRTKのプロファイルの設定 シーン上に追加されたMixed Reality Toolkitを選択し、Inspectorを開きます。 プロファイルにMagicLeap2 Default ConfigurationProfileを選択します。
両手の設定 Inputボタン押下し、Input Data ProvidersのMagic Leap HandTracking Inputにある Handedness SettingsにBothを設定し両手が使えるようにします。
手のジョイントを非表示 お好みで手のジョイントを非表示にします。Visualization ModesをNothingに変更します。
CUBEを握れるように シーンにCubeを配置します。 配置したCubeにObject ManipulatorとNearInteractionGrabbableコンポーネントを追加します。
動作確認 UnityでBuild And Runを選択し実行します。