【第29回Ex】作成したゲームをAndroid向けにビルドするUnityチュートリアル
- 2020.12.16
- Unityチュートリアル
- Unity, ゲーム開発, チュートリアル
ゴルフっぽいゲーム『Gold Poi』を作るチュートリアルでは、PC向けビルドを行いました。
PC向けに加えてAndroid向けのビルドについても簡単にチュートリアルとして触れてみたいと思います。
PC向けビルドについては以下の記事で紹介しています。
なお、このブログで公開しているチュートリアルではUnity2017.4を対象にしていますが、流石に2020年の年末に使うには厳しすぎるのでこのページではUnity2019.4を使ってビルドの手順を紹介します。ビルドしたパッケージは実機でテストすることを想定しています。
環境
macOS 10.15 Catalina
Unity2019.4.4f1
Unity Hub 2.4.2
プロジェクトの準備
前回のチュートリアルで作成したプロジェクトをそのまま使います。
このページに先にたどり着いた方は、チュートリアルの初回から追っていただけるといいかもしれません。
またはビルドできることを確認できればいいので任意のプロジェクトでもOKです。
Unity Hubでモジュールを追加
チュートリアルではUnityをバージョンごとにインストールする方法で進めていましたが、ここではUnity Hubを使って手順を解説します。特に理由がなければUnity Hubを使った方が便利です。
Unity Hubを開いたら、インストールタブを開きます。マシンにインストールされているUnityのバージョンが表示されるので、ビルドに使うバージョンのパネル右上にある [︙] をクリックしてメニューを開き、[モジュールを加える] を選択します。
モジュールの追加画面では [Android Build Support] にチェックを入れて [実行] をクリックします。
インストールが完了するとUnityでAndroid向けにビルドできるようになります。モジュールのインストール中はインターネットの接続が途切れると再びやり直しになったりするので、ネットワークの環境が安定するところでのインストールがおすすめです。
ビルドの設定
モジュールの追加ができたらプロジェクトを開いてビルドの設定を行います。既に開いていた場合は一度プロジェクトを閉じて再度開きます。画面上部にあるメニューバーから [File] -> [Build Settings] を選択してBuild Settingsのウィンドウを表示します。
以下のようにBuild Settingsのウィンドウが表示されたら [Add Open Scenes] のボタンをクリックして現在開いているシーンをビルドに含めるようにします。リストに追加したけど、やっぱいらないかなーって時はチェックを外すか、[Delete]キーでリストから削除します。
シーン名の右にある数字は読み込む順番で、リストの一番上から読み込まれます。上からと言っても、同時に全部読み込まれる訳ではなく、一番上のシーンがまずロードされ、そのシーン内で別のシーンを読み込む処理を行うことで、別のシーンに遷移します。
続いてプラットフォームを変更します。現在選択されているプラットフォームの名前にはUnityのアイコンが表示されています。この画像の例だとPC, Mac & Linux Standaloneですね。
変更する先のプラットフォーム名である [Android] を選択した状態でウィンドウの右下にある [Switch Platform] をクリックするとプラットフォームを切り替えることができます。
プラットフォームが切り替わると、以下の画像のようにAndroidの名前の右側にUnityのアイコンが表示されます。プラットフォームの切り替えはプロジェクト内のアセットを再インポートする作業があるため、アセットの量が多くなると切り替えにかかる時間も長くなります。ゲームの規模が大きくなってきた場合は切り替えに時間がかかることも意識しておくと焦らなくて済みます。
Player Settingsで設定
実際にリリース向けにビルドする場合は、ウィンドウの左下にある [Player Settings] のボタンからPlayer Settingsウィンドウを開き、アイコンの設定やターゲットAPIレベル、アプリのキーの情報を入力していきます。ここではアプリ名やAPIレベル、アーキテクチャを設定してみましょう。
[Player Settings] のボタンをクリックし、Player Settingsウィンドウを開きます。「Campany Name」の項目にあなたのチーム名を、「Product Name」の項目にアプリの名前を入力します。
また、「Other Settings」の中にあるIdentificationの項目で、「PackageName」と「Minimum API Level」も確認しておきましょう。
「PackageName」はドメイン名を逆から入れていくのが通例です。例えばうちのブログだったらドメイン名が「ekulabo.com」なので、「com.ekulabo.<パッケージ名>」のようにcomから入力します。目的は他の人と重複しないようにすること。ドメイン名はユニークであるはずなので、それを逆から入力したものもユニークになるはずです。
そうはいっても今回は試しにビルドしてみるだけなので、「com.<CompanyName>.<ProductName>」の形にしています。<CompanyName>は上で入力したチーム名、<ProductName>も上で入力したアプリ名になるように入力します。
「Minimum API Level」はアプリが動作するAndroidのバージョンを設定する項目で、このAPIレベルよりも大きいAndroidのバージョンで動かすことができます。多くのバージョンをサポートすればダウンロードできる端末も増えますが、その分バージョンごとに動きを確認しなければならずサポートが大変になるので、この辺りはどちらを取るかを選択する必要があります。個人的には比較的新しいバージョンを対象にして手厚くテストする方がおすすめです。あとはバージョンのシェアも確認しておくと良いでしょう。
続いてアーキテクチャの設定を行います。
ここでのアーキテクチャ(基本設計、設計思想)とはCPUアーキテクチャのことを指しています。……「CPUアーキテクチャ とは」とググりたくなる気持ち、分かります。CPUアーキテクチャとは、CPUがどういう設計で作られているかを表すもので、かなりざっくりと説明するなら、「32bitでデータを扱えるCPUを作ろうぜ!」と設計したり、「いやいや時代は64bitのCPUっしょ!」と設計して、それぞれに対応する形でCPUを作成します。ビット数が異なると一度に扱う情報の量にも差が出るので、それに対応した命令セットも必要になりますし、ハードウェアの構成も変わります。
……「命令セット とは」。命令セットとはコンピュータに「これやって」「あれやって」と伝える(命令する)ための言葉のセットのこと。機械に分かるような言葉を使って、CPUで計算してもらったり、メモリ上にデータを置いてもらったりとしているんです(ざっくり) ビット数が異なれば命令する内容も変わります。
ここでUnityに戻ると、スマホごとに使っているアーキテクチャ(ざっくりというならCPU)が異なるので、それぞれ対応した形でアプリをビルドする必要があります。「ARMv7」のアーキテクチャ(32bit)に基づいて作られたCPUが入ったスマホ向けなら「ARMv7」を選択し、ARM社の64bitのアーキテクチャに基づいて作られたCPUが入ったスマホ向けなら「ARM64」を選択します。ここはお使いのスマホに合わせて選択してください。
ちなみにここ最近のスマホならだいたい64bitになっているようなので、「ARM64」を選択することが多くなるかもしれません。Google Playでリリースする際も64bit対応が必要ですからね。
とここで「ARM64」がグレーアウトされていることに気付いたかもしれません。実は「Scripting Backend」の項目が「Mono」になっていると64ビット向けにビルドできないんです。なので、「Scripting Backend」の項目では [IL2CPP] を選択する必要があります。
個人的には、ビルド自体の時間はかかるデメリットはありつつも、パフォーマンスやセキュリティ的にはメリットが大きいので32bit向けであっても「IL2CPP」を使いたいところです。詳細については以下のUnity公式マニュアルもご覧ください。
ビルドしてみよう!
Player Settingsの設定が終わったらBuild Settingsのウィンドウに戻ります。開発用にビルドする場合は [Development Build] にチェックを入れて [Build] ボタンをクリックします。
続いて保存先を決めるダイアログが表示されるので、任意の場所を選択して名前を入力し、 [Save] ボタンをクリックします。
ビルドが完了すると.apkファイルが作成されるので、これをAndroidにインストールしてゲームを実行します。
Androidで確認
apkを作成できたらAndroidにインストールして確認します。
実機で接続する場合はUSBケーブルでPCとAndroid端末を接続し、Android端末の任意の場所にapkファイルを配置します。端末側でファイルマネージャーなどのアプリを利用してapkファイルを実行し、端末にインストールします。
この時、開発者モードを有効にしていないといくつかの操作を行えないことがあるので、以下のページを参考に開発者向けオプションを有効にしてください。
ざっくりと開発者向けオプションを有効にする方法を説明すると、設定のデバイス情報のメニューで [バージョン情報] の部分を7回タップ。これによって開発者向けオプションが有効になります。ゲームの裏技みたいでテンション上がりますね。
また、「提供元不明のアプリ」の警告が出る場合は設定から許可するようにしてください。安全のことを考えると、テストが完了したら設定を戻しておくことをおすすめします。Androidのバージョンによってはアプリごとに設定できるので、その場合は特に操作はいらないかもしれません。
チュートリアルで作成したゲームの場合は、ゲームクリア後はシステムからアプリを終了するようになっていますが、実際にリリースする場合はクリア後にタイトル画面に戻る処理も実装しておく必要があるでしょう。また、場合によって横向きの画面で固定したりといった設定も必要になるので、チュートリアルで得た知識や経験をベースにしつつ、どんどんパワーアップさせていきましょう!
ゲーム開発の攻略チャートを作りました!
-
前の記事
【Unity/C#】デバッグで意図しない動作を拾うには変な操作をしてみよう 2020.12.15
-
次の記事
(2023年追記あり)【Unity】AndroidのテストにはもうAndroid Studioのエミュレータは使えない……かも 2020.12.17
コメントを書く