長いビルド時間をもっと有意義に使いたい!
Unityでゲーム開発をする時、最終的なゲームデータをつくるにビルドという工程が必要です。詳しくは以下の関連記事で解説しています。

ですが、ビルド処理は、プロジェクトが大きくなるほど時間が掛かり、ビルド中は一切プロジェクトの編集作業が出来なくなるなど、ビルド中の時間がもどかしいと感じる人もいると思います。
ゲーム会社の開発現場などでは、ビルド用のマシーンを確保し、たとえば、GitHubなどにプッシュされたタイミングで自動的にビルドを走らせるような仕組みがあったりするそうです。
ですが、中々個人開発で、そこまでの仕組みを作るのはちょっと大変。
そこで、Unity公式のサービスである、Unity Build Automationを使うことで、自分のPCのリソースを使わずに、クラウド上でビルドしてくれるサービスがあります。
今回は、このBuild Automationの使い方を解説します。
ちなみに、こういったプロジェクトデータを継続的に編集・更新を行っていく仕組み作りを、CI/CDといいます。今回紹介する内容は、プロジェクトファイルを更新して、クラウド上でビルドするまでの流れまでです。
Build Automationの設定方法
Build Automationのインストール
まずは、プロジェクトにBuild Automationのパッケージをインストールします。
パッケージマネージャーの、[Unityレジストリ]から、[Build Automation]を選択して、インストールします。

次に、プロジェクト設定から、オートメーションをビルドを選択。
右上にあるトグルをONにします。

しばらく待つと、以下の画面になるので、[Manage Build Target]を選択します。
すると、Unity Cloudの画面が開きます。
Unity Cloudはあんまり知られていないのですが、結構良いサービスが揃っています。
次に[GetStarted]を選択します。
[Source Control]から、ビルドデータを作成するSourceを選択します。
GitHub、SVNなどから選ぶことが出来ます。

GitHubの使い方は以下で解説しているので、よければ参考にしてください。

私はGitHubをメインで使っているので、GitHubベースに解説します。
Personal Access Tokenは[Settings]→[Developer Settings]→[Tokens]で取得出来ます。



こんな感じでリポジトリを設定しました。

GitHub側の設定
次にGitHub側も設定を行います。GitHub側では、DeployKeysを設定します。
[Settings ]→[Deploy Keys]を選択し、[Add deply key]をクリックしてデプロイキーを設定します。

次に、UnityCloud上で、SSHKeyを取得し、貼り付けます。
SSHkeyは[Source control]から取得出来ます。

GitHub上でSSHKeyを貼り付けて[Add key]を押せば一旦設定は完了です。

ビルド設定を行う
次に、UnityCloudでビルド設定を行います。
[DevOps]→[ビルド構成]から、[Quick target setup]を選択。

プラットフォームを選択します。今回はWebGLを選択しました。

次に、ビルドの設定を行います。
Branchには、ビルド対象のブランチを選択します。main(master)ブランチなどにすると良いと思います。

次に、ビルドを行うマシーンスペックを選択します。
Automation Buildはビルドにかかった時間に応じて課金がされます。ですが、200分/月までは無料です。

最後にビルドを行う条件を設定します。
Auto-Buildは、リポジトリに更新が入ったときに行います。
例えば、main(master)ブランチにプッシュしたタイミングなどです、
Configure a repeating build scheduleは、定期ビルドです。日次で夜間にビルドするといったことが可能です。

自動ビルドした結果を確認してみる
リポジトリに変更を掛けるには、Unity側でプロジェクトになにかしら変更を加え、GitHubにプッシュします。
また、Build Historyから手動でクラウドビルドを起動することも出来ます。

プッシュしてしばらく経つと、自動でビルドが走り始めます。

ビルド結果を通知する
さて、最後に、クラウドでビルドを行ったら通知を出して欲しいですよね。
最後に通知の設定をしていきます。
[管理]→[プロジェクトインテグレーション]→[新しい統合]を選択

通知する先を選択出来ます。私はDiscordを選択しました。

通知する内容を選択出来ます。

これで、ビルドに関する通知がDiscordに飛ぶようになりました。チーム開発の際に有用ですね。
設定を行うと、ビルドを開始時に、以下のような通知がDiscordに飛ぶようになります。

ビルドに成功すると以下のような通知が来ます。

ただ、このビルド時間は、スペックにはよりますが、自前のPCでビルドするよりも長く掛かると思います。ほぼ空のビルドファイル作るのに29分も掛かりました。

通知に記載のある、Downloadのリンクに飛ぶと、以下のような画面になります。

WebGLであればPlayを押すことでブラウザ上で実行確認が可能です。

プラットフォームがiOS、Androidの場合は実行ファイルをダウンロードできるURLが取得出来ます。
まとめ
Unity Build Automationの使い方のでした。
ノーコードで設定出来ますし、CI/CDに馴染みのない人でも設定しやすい作りになっていて、良いサービスだと思います。
一方、設定がカンタンな分、自由度は少ないといった感じです。ビルド後に何か処理を入れ込みたい、みたいなことはちょっと難しいと思います。
所感としては、プロジェクト初期はローカルのビルドで動作確認し、プロジェクト中期あたりから定期ビルドして、日次で動作確認していく使い方が良さそうだと思いました。積極的に使っていこうと思います。
それでは素敵なゲーム制作ライフを!
コメント