2025年9月20日土曜日

Unityをモバイルで操作・ビルドする手法

 近年、外出先や自宅などでスマートフォン・タブレットからUnity開発を行いたいニーズが増えています。これには(1)Docker等でUnityビルド環境をクラウド化し、(2)スマホからリモートデスクトップ/ストリーミングでUnityエディターにアクセスし、(3)CI/CDやWeb経由でビルド起動する仕組みが有効です。以下に各要素について具体例とともに解説します。

DockerによるUnityビルド環境構築

Unity向けのDockerコンテナイメージがコミュニティから提供されており、これを利用するとクラウド上でUnityエディターをコマンド実行できる環境を簡単に作れます。代表的なのがGameCIプロジェクトの unityci/editor です。GameCIはUnityビルド用のDockerイメージを公開しておりgame.ci、Docker Hub上で「unityci/editor:バージョン-プラットフォーム-タグ」の形で入手可能です。これらのイメージにはGit/LFSや各種ビルドモジュールが揃っており、例えば次のようにして起動できます。

docker run -it --rm unityci/editor:2023.1.0f1-android-1.0.0 bash

起動後、コンテナ内部で /opt/Unity/Editor/Unity コマンドを使いビルドやテストを実行できます。ライセンス認証もCLIで行え(Unity Personalでも同様)、継続的インテグレーション(CI)パイプラインに組み込みやすくなっています。必要に応じて、公式のUnity Hubインストール手順をベースにしたカスタムDockerfileを作成し、Blenderや独自ツールを追加する例も紹介されていますgame.cigame.ci

このようなDockerイメージは多くの開発チームに利用されており、GameCI のサイトでは**「UnityプロジェクトのCIではすべて game-ci/docker が使用されており、Docker Hubにunityci/editorとして公開されている」**と明言されていますgame.ci。実際、GameCI(旧gableroux/unity3d)を利用したCircleCIやGitHub Actionsのワークフローも多く報告されており、CircleCI公式ブログではGameCIのUnity Orbによるマルチプラットフォームビルドの例が紹介されていますcircleci.com。これにより、WebGLやiOS/Androidなど多種多様なターゲットを含むビルドがクラウド上で自動化できますcircleci.com

具体例: 大手XRサービス「STYLY」はプルリク発行時にGitHub ActionsからUnity Build Automation(旧Cloud Build)を呼び出しており、PRごとに自動ビルド・テストを実行していますqiita.com。Dockerを利用したCI構築例やUnity向けビルドサーバ構築方法も各種ブログやGitHubに多数あります。

モバイルからのリモートアクセス手法

Unityエディターを直接スマホ上で動かすネイティブアプリは存在しないため、リモートデスクトップやストリーミングで操作する方法が主流です。大きく分けて「画面共有型」「クラウドPC型」「ストリーミング型」があります。

  • 画面共有型(ローカルPC→スマホ): Mac + iPadならSidecar、Windows/MacでDuet Displayなど、スマホ・タブレットをPCのセカンドディスプレイ化する手段がありますvagon.iovagon.io。また低遅延ストリーミングツールとしてParsecも人気です。Parsecはゲーム用に開発されただけあり、4K60FPS・低遅延でリモート操作が可能vagon.iounity.com。これらはあくまでホストPCの画面を転送するので、ホストPCの性能以上の体験は得られませんが、近距離だけでなく高速ネットワーク経由で遠隔地のマシンにもアクセスできますvagon.iounity.com。なお、一般的なVNCやMicrosoft RDPも技術的には使えますが、Unityエディターの作業は画面更新頻度が高いため、遅延や画質低下で快適とは言えません。

  • クラウドPC型: 高性能な仮想マシン上でUnity Editorを動かし、タブレットからブラウザや専用アプリで接続します。例えばVagon(旧Nimble Studio)などのクラウドワークステーションでは、GPU付きマシン上でUnityをインストールし、iPadのブラウザ経由で操作できますvagon.iovagon.io。この場合、Unityが実行されるのはクラウド上なので、iPadは単なる「操作端末」となり、パフォーマンスの主因はクラウドPCのスペックとネットワーク品質になりますvagon.io。記事では、Bluetoothキーボードやマウス併用、Apple Pencilでのポインティングなどを併用する運用が推奨されていますvagon.io。安定した高速回線下(例えばWi-Fi/5G)であれば、ほぼ机上PCと同等の操作感が得られると報告されていますvagon.io

  • Unity Render Streaming: Unity公式のWebRTCストリーミング機能を使い、Unityアプリ(エディターではなくゲームランタイム)をWebブラウザに配信する方法です。映像をスマホに送り、ブラウザ側の入力(タッチやキーボード)をUnityに送信できるので、UnityのUIやゲームをモバイルブラウザで操作できますdocs.unity3d.com。特に「マウス/キーボード/タッチ/ゲームパッド入力に対応」しており、複数ユーザーで同時操作も可能ですdocs.unity3d.com。開発途中のテストやマルチプレイヤー協業などで活用されています。

  • Unity Remoteアプリ: これはUnity公式のiOS/Androidアプリで、エディターのGameビューをスマホにミラーリングし、スマホのタッチや加速度センサー入力をエディターに送りますvagon.io。エディターの再生ボタンを押すとスマホ側に画面が表示され、スマホの操作感でUIや動作確認ができます。ただしあくまで「テスト用」で、グラフィック解像度は低く、パフォーマンスも本番ビルドより劣りますvagon.io。ビルドを介さず簡易検証する手段としては有用です。

これらの手法はいずれも「エディターのUIはモバイル向けではない」点に留意が必要です。Unityエディターはマウス/キーボード前提の設計なので、スマホの指操作では細かいメニューやシーン内オブジェクトの選択がしづらいことがありますvagon.io。Apple Pencil等のスタイラスや外部入力機器併用が推奨されvagon.io、必要に応じてホストOS側でDPIスケーリングを大きく設定するなどの工夫も有効です。ネットワークについては低遅延・高帯域を確保することが鍵で、特に画面転送系(Parsec等)では安定したWi-Fi/5G環境下でないと操作に支障が出ますvagon.iounity.com

モバイルからのビルド起動方法

ビルドのトリガー自体は、スマホからWebブラウザやモバイルアプリを通じてCI/CDツールの操作やスクリプト実行を行う流れになります。例えば、Unity Build Automation(旧Cloud Build)では「リポジトリへのコミットを検出して自動でビルドを走らせる」パイプラインが基本ですunity.com。実際、Unity公式ドキュメントにもビルドトリガー工程が「プロジェクトにコミットするとビルドが自動実行される」ステップで説明されていますunity.com。さらにSTYLYの例では、GitHubにプルリクエストが作成された瞬間にGitHub Actionsが発火し、Unity Build Automation上でビルドとテストが行われる仕組みが構築されていますqiita.com。このようにCI/CDプラットフォーム経由でモバイルからビルド命令を送るのが一般的です。

具体的には、JenkinsやGitLab CI、GitHub ActionsといったCIサービスにはモバイル対応のWebインターフェースや(非公式ながら)スマホアプリが存在するため、スマホブラウザからビルドジョブの実行や状態確認ができます。またGitHubやGitLabではプルリクエストコメントでビルド起動といった拡張も可能です。Unity専用ではないものの、CIステータスバッジや通知機能を活用してスマホに結果を通知させる方法も一般的です。要するに、「モバイルからGit操作→自動的にビルド実行」または「モバイルでCI画面を開いて手動ボタン実行」という形で対応できます。

モバイル利用上の注意・Tips

モバイル環境でUnityを操作・ビルドする際には以下の点に注意するとよいでしょう。

  • ネットワーク品質: リモート操作やクラウドビルドでは回線品質が体験を左右します。Wi-Fi(特に5GHz帯)や5Gなど低遅延・高速な通信環境を推奨します。解析・開発環境のストリーミングでは数Mbps〜数十Mbpsが必要で、遅延やパケットロスが操作感を大きく悪化させますvagon.iounity.com。特にParsecでは4K/60FPSのストリーミングが可能ですが、高画質設定では数十Mbps以上必要ですunity.com

  • UI/表示の見やすさ: UnityエディターのGUIはデスクトップ向けで、スマホ画面では非常に細かく見づらくなります。リモートデスクトップアプリによるピンチ拡大や、ホストOSのDPI拡大設定を活用しましょう。また、Unityエディタ側で大きなウィンドウレイアウト(大アイコン化)などUI調整できる部分は最大限活用します。編集作業は可能な限りモバイル向けではなくPC側で、モバイルではデバッグや軽作業に留める運用がおすすめです。

  • 入力機器: 純粋なタッチ操作だけではUnityの操作はしにくいので、Bluetoothキーボードやマウス(あるいはApple Pencilなど)を併用すると格段に効率が上がりますvagon.io。たとえばVagonのケースでは「Bluetoothキーボード・マウス併用、Apple Pencilはポインタ代わりに使う」ことが推奨されていますvagon.io。タッチは主にメニュー選択やドラッグに限定し、コンテキストメニュー呼び出しや細かなドラッグ操作は入力デバイスで行うイメージです。

  • 性能の分散: Unityエディターやビルドは多くの演算リソースを使うため、スマホではなくホスト側/クラウド側で重処理を行うのが前提です。自分のモバイル端末は表示・入力用に徹し、ビルド自体はサーバやGPU付きVMで行うようにします。逆にモバイルデバイスでのUnity Remote検証(ゲーム挙動の確認)にのみ負荷がかかります。

実例・事例紹介

  • GameCI + CircleCI: GameCIコミュニティが提供するUnity用CI/CDツールは実際の成功例です。彼らはDockerイメージやGitHub Actions(Unity Builderなど)を通じて1000以上のチームに採用されており、Unityコンパイル・テスト環境の自動化が可能ですcircleci.com。CircleCIではGameCIと協力して「Unity Orb」を公開し、最小設定でAndroid/iOSを含むマルチプラットフォームビルドを実現していますcircleci.com。このOrbを使えば、CircleCIクラウド上でWebGL〜Androidまで一連のビルドが成功する例が報告されていますcircleci.com

  • Unity Cloud Build (Build Automation): Unity公式のクラウドビルド機能も広く利用されています。先述のようにコミットやPRイベントで自動起動できるほか、Unity Cloud BuildのREST APIを使えば外部からビルドをキックできますqiita.comunity.com。STYLY社ではGitHub ActionsでUnity Cloud Build設定を動的に作成し、プルリク毎にビルド・テストを行うシステムを2024年頃から運用していますqiita.com。商用ゲームでも、デイリービルドやQA用ビルドにUnity Cloud Buildを組み込んでいる事例が多く、スマホ操作とは別軸ながら、ビルドの管理面でクラウド化の成功例と言えます。

  • Incredibuild: ビルド高速化ツールとしてIncredibuildがUnityに対応したことも注目事例です。Incredibuildを導入すると、UnityのIL2CPPコンパイルやシェーダービルドなどを自動分散でき、既存のCI(Jenkins、GitHub Actions、TeamCityなど)でそのまま高速ビルドが行えますincredibuild.com。実際、Unityプロジェクトでビルド時間が最大5倍以上短縮されたベンチマークも公表されており、大規模開発におけるビルド効率化に寄与していますincredibuild.com

以上のように、モバイルからUnityエディターやビルド機能を活用するには、Docker/クラウド環境によるビルド自動化リモートアクセス技術の組み合わせが鍵となります。特にGameCIのDockerイメージやUnity Cloud Buildといったツール・サービスを組み合わせることで、スマホ・タブレットからでも十分に開発・ビルドをこなす環境が構築可能です。これらの手法を応用し、回線品質やUI操作性の工夫を行えば、モバイルワークフローを現実的な形で実現できますvagon.iovagon.io

参考資料: GameCI公式ドキュメントgame.cicircleci.comcircleci.com、Vagonブログ記事vagon.iovagon.iovagon.io、Unity公式マニュアル・事例unity.comqiita.comincredibuild.com、Parsec製品情報unity.comなど。