夜風のMixedReality

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

UnityRenderStreamingでスマホARをHDRPで動かす。

本日はUnity枠です。

〇RenderStreamingとは?

RenderStreamingはUnityが提供するクラウドレンダリングを実現するパッケージです。

WebRTCの技術を用いてネットワークを経由してリモートで処理を実行できるのが特徴です。

通常HDRPプロジェクトはハイエンドデバイスのみがサポートされていますが、RenderStreamingを用いることで例えばスマートフォーンなどでもHDRPのアプリケーションを実行可能です。

前回はサンプルを動かしました。

今回はスマホARを実行します。

〇環境

・Unity2022.3.5f1 (HDRP)

Windows 11PC

Mac mini

iPhone 12ProMax

・AR Foundation

・XR Plugin Management

〇サンプルアプリの導入

RenderStreamingのサンプルにはARFaundationのサンプルが含まれており、今回はこれを動かすことを目的としていきます。

docs.unity3d.com

HDRPのプロジェクトではiPhoneに向けてビルドができないため、別のURPプロジェクトを作成してスマホ用のプロジェクトとしています。

サンプルを実行するためにはARFaundation及びXRPluginManagementに加え自身のプラットフォームに合わせてARkitもしくはARCoreを導入する必要があります。

今回はiPhoneで実行するためARKitを導入します。

①XRPluginManagementからARkitチェックボックスを有効にします。

ARFoundationシーンを開きます。

シーンはAssets/Samples/Unity Render Streaming/3.1.0-exp.7/Example/ARFoundation/ARFoundation.unityにあります。

iPhoneにビルドようにXRPluginManegimentでARKitにチェックを入れPlayerSettingsでRequires ARKit supportにちぇくを入れます。

③BuildSettingsでSammple以下のMenuBroadcastARFoundationのシーンを追加しビルドします。

ビルドしたファイルをXCodeを使用してiPhoneへデプロイします。(ここでは説明を省略します。)

〇サンプルアプリの実行

前提として今回はiPhoneWindowsをTailscaleを使用してVPN接続してアクセスできるようにしています。

redhologerbera.hatenablog.com

①WindowsPCでコマンドプロンプトからwebserver.exeを起動します。

②WindowsPCでUnityEditorのMenuシーンを実行します。

TypeHttpに変更しBroadcastを選択します。

webserver.exeを実行しているコマンドプロンプトを確認します。

iPhoneアプリを起動します。

AddressをPC側のローカルIPアドレスを入力します。

この際に:80というポートを指定します。

ARのボタンを選択します。

Startボタンを押すことでUnityEditorの画面が表示されます。

このシーンではスマートフォンの挙動に合わせてスマホVRとして動かすことができます。

以上でスマホAR(現時点ではVRですが)でHDRPのRenderStreamingを実行できました。

今回参考にさせていただいたこちらの記事ではサーバーを立てていますが、今回は筆者のプライベートデバイスのみで実行するためVPNを使用したことで非常に効率的に実行できました。

qiita.com

本日は以上です。