見出し画像

Nreal Light Developer Kit開発手順(サンプルシーンの起動まで)

はじめに

MRグラスのNreal Light Developer Kit を開発する機会に恵まれました。

詰まった部分が何か所かあったので開発手順をまとめます。

基本的にはを公式開発ドキュメント参照してください。

https://developer.nreal.ai/develop/unity/android-quickstart

各種ツールのインストール方法など冗長なくらいに書いているので適宜読み飛ばしてください。

公式ドキュメントに書いていない部分など重要と思われる箇所のみ太字にしています。

開発環境

Windows 10

Unity 2019.3.0f3

Unityの設定1

Unityプロジェクト を作製し [Build Settings] からプラットフォームをAndroidに変更。

Java SE Development Kit (JDK) の設定

Java SE Development Kitをインストールします。私の環境では jdk1.8.0_231 で動作確認できました。

UnityにJDKのパスを通します。

Unityの [Edit] > [Preferences] > [External Tools] で JDK Install with Unity のチェックボックスを外し、インストールしたJDKのパスを指定してください。

画像1

Android SDK の設定

対応するバージョンの Android SDK をインストールします。

私の環境では Android 7.0(Nougat)を使用しました。

追記:NRSDKの更新により必要なAndroid SDKのバージョンも変わっています。公式を確認してください

Android Studio の [Configure] > [SDK Manager] を開きます。

画像2

Android SDK のインストールしたいバージョンにチェックを入れて [OK] してインストールします。

画像3

Unityに Android SDK のパスを通します。

Unityの [Edit] > [Preferences] > [External Tools] でAndroid SDK Tools Installed with Unity のチェックボックスを外しAndroid StudioのSDKインストール画面に記載されたパス(上の画像赤丸部分)をコピペします。

画像4

Unityの設定2

・Nreal の SDKのNRSDKをダウンロード・インポート。

https://developer.nreal.ai/download

・[Player Settings] > [Other Settings] > [Api Comptibility Level*] を .NET 4.xに変更。

・[Assets] > [NRSDK] > [Demos] > HelloMR シーンを開きます。

[Player Settings] > [Resolution and Presentation] > [Aspect Ratio Mode] を Legacy Wide Screen に変更。(自分の環境ではこれをしないとビルドに失敗してしまいました。別の人の環境ではここを触らずにビルドできたようなので必須ではないかもしれません)

・[Player Settings] > [Resolution and Presentation] > [Default Orientation] を Portrait に変更。

[Player Settings] > [Other Settings]でGraphics APIs から Vulkan を削除する

・[Player Settings] > [Other Settings] >[Package Name] を適当なものに変更。ここでつけるPackage Nameは[com.nreal.xxxx]という形式にしないとLaunch appに取り込まれないようです

・[Player Settings] > [Other Settings] >[Minimum API Level] を Android 7.0 'Nought'(API level 24)に変更

追記:NRSDKの更新により必要なAndroid SDKのバージョンも変わっています。公式ドキュメントを確認してください

・[Player Settings] > [Other Settings] >[Target API Level] を Android 7.0 'Nought'(API level 24)に変更

・[Player Settings] > [Other Settings] >[Scripting Backend] を IL2CPP に変更。
追記:IL2CPPでは動画キャプチャができなくなるなど問題が発生するので、Monoの方がよさそうです。

・[Player Settings] > [Other Settings] >[Allow 'unsafe' code] のチェックボックスにチェックを入れる。

・[Project Settings] > [Quality] > [V Sync Count] を Don't Syncに変更

これでビルドすると通るようになりました。

adbとUSBドライバの導入

Android Debug Bridge(adb)を使用するのでインストールしてください。

Android Studio の [Configure] > [SDK Manager] > [SDK Tools] > [Android SDK Platform-Tools] というパッケージ内に含まれているのでダウンロード。

USB経由でadb install をするのにUSBドライバが必要です。

今回はGoogle製のUSBドライバをインストールしたところ動作しました。(このドライバがなくてもWiFi経由での作業は可能です)

こちらもAndroid Studio の [Configure] > [SDK Manager] > [SDK Tools] > [Google USB Driver]からインストール可能です。

画像5

scrcpyの導入

Nreal Light Developer Kit のComputing unitは、ほぼディスプレイのないAndroid端末のようです。

scrcpyというミラーリングアプリを使ってPCから操作します。

WiFiやスリープモードなどの設定もこちらから可能です。

scrcpyを上記リンクからインストールしてアプリをPC上で起動すると以下画像のように普通のAndroid端末と同じように操作可能になります。

画像6

Nreal Lightでの動作確認 

USBケーブルで computing unitとPCを接続します。

コマンドプロンプトで以下のコマンドを実行すると接続されているデバイスを確認できます。

adb devices -l

接続確認が出来たらapkファイルを以下のコマンドで computing unit にインストールします。

adb install -r xxxx.apk

Successと表示されていればインストール成功です。

scrcpyを起動してインストールしたapkファイルをクリックします。

起動するとメディアアクセスのチェックが現れるのでALLOWして一旦終了します。

画像7

これでNreal Lightのグラス側をcomputing unitに接続するとUnityアイコンが表示されて起動できるようになります。

画像8

最後に

とりあえずサンプルシーンを動かすところまでを行いました。

なにか誤りや質問などありましたらTwitterでお気軽におねがいします!

今回AR/MRデバイスは初めて開発しているのですがとにかくワクワク楽しいです。

xR界隈盛り上げていきたいですねー!

サポートは開発・勉強用に使用させていただきます。