【Unity】2Dシューティングを作ってみる話 #7

記事をご覧いただき、誠にありがとうございます。
投稿主の無能です。

前回は、アセットを使用してバーチャルスティックでPlayerを動かせるようになりました。

今回は、これまでの作成が問題無いか動作確認のために.exeファイルとAndroidデバイス向けのビルドをしてみたいと思います。

製作中のビルドはとても大事

ゲーム製作中のビルドというのはとても大事なことで、様々なプラットフォームに向けたアプリケーションの開発となると、各種デバイスでの確認作業が必須です。

Windowsでは、.exeファイルとWebGL、そしてAndroidの3種類のプラットフォーム向けのビルドが可能になっています。

.exeファイルとWebGLに関しては、PCでの操作になりますが、Androidに関しては実際の端末に依存する部分がとても大きいものになるので、機能を追加したりしたら、なるべく早めにAndroid向けのビルドをしてテストするようにしましょう。

後からデバイス依存の問題などが出てきて、機能の大幅な修正が必要になったとなれば目も当てられません。

ある程度の確認作業はGameビューで吸収してくれますが、やはり実機で動作確認するのが一番確実な方法でしょう。

という事で、ここまでの作成物を確認するため、ビルドしていきます。

.exeのビルド

まずはWindows向けに.exeファイルでのビルドをします。

このビルドはRoll a Ballでやったので、あまり抵抗は無いですね。

File > Build Settings からビルド設定画面を開きます。

File > Build Settings からビルド設定画面を開く

ビルド設定画面

このまま最低限の設定でのビルドでも良いのですが、ある程度設定しておきましょう。

左下のPlayer Settingsを押して設定画面を開きます。

設定画面を開いたら、PlayerのOther Settingsを開いて、ConfigurationのActive Input HandlingをBothにします。

Input Manager(Old)のままだと旧式のInput Sysytemなので、新旧両方を使えるように設定します。

PlayerのOther Settingsを開いて、ConfigurationのActive Input HandlingをBothにする

設定を変更すると、Unity Editorの再起動になりますので、Applyで再起動します。

変更が残っている場合は保存するか聞いてくれますが、一応この作業前に保存しておきましょう。

Applyで再起動

再起動が終わると、Active Input HandlingがBothに変更されています。


この設定はEdit > Project Settings の設定画面と同じなので、予めProject Settingsで設定していれば、この作業は不要です。

次はウィンドウの設定です。

PlayerのResolution and PresentationのResolutionの中にあるFullscreen Mode
をWindowedにします。

Player > Resolution and PresentationのResolutionの中にあるFullscreen Mode
をWindowedにする

するとウィンドウサイズの縦幅と横幅を設定する項目が出てくるので、任意のサイズを指定してください。

今回はデフォルトで表示された1920×1080のままにします。

ウィンドウサイズの縦幅と横幅を設定する項目が出てくるので任意のサイズを指定

次にStandalone Player Optionsの項目のResizable Windowにチェックします。

Standalone Player Optionsの項目のResizable Windowにチェック

ここまで設定したら、最低限のビルド設定が終わったのでビルドしても構いません。

ですが、一応正式版と同じようにCompany Name・Product Name・Versionは設定しておきましょう。

正式版と同様ににCompany Name・Product Name・Versionは設定しておく

無能はこんな設定です。


では設定できたので、設定画面を閉じてビルド設定画面に戻ります。

ビルド設定画面の右下にあるBuildボタンを押下してビルドします。

右下にあるBuildボタンを押下してビルド

Buildボタンの右側のBuild and Runボタンだと、エラーが出ずにビルドが完了するとそのままビルドで出力された.exeファイルを実行してくれるので、お好きな方でビルドしてください。

Buildボタンを押すと、一連のファイルの出力先を聞かれるます。
この出力先は任意です。

無能は新しくBuildフォルダを作成し、出力先に指定しています。


出力先を指定するとビルドが開始されるので、コーヒーや紅茶なんかを飲みながら気長に待ちます。

ビルドが正常に完了すると、出力先に指定したフォルダの中に、.exeファイルとその他の関連ファイルが作成されています。

今後は古いバージョンは不要なので、このフォルダ内でビルドしていき、古いバージョンは上書きしていきます。

もしバージョン毎に分けておきたい場合は、フォルダを分けて管理すると良いかも知れません。

.exeファイルのビルドが完了

では実行して確認してみます。

確認内容はGameビューでの操作と同じく、キーボード操作とバーチャルスティックの動作、背景が流れるかになります。

キーボード操作と背景OK

バーチャルスティックの動作OK

Gameビューで確認していたので、勿論OKですね。

では次にAndroid向けにビルドしてみましょう。

Android向けの.apkビルド

AndroidはAndroid Application Packageという.apkの形式でアプリケーションが提供されます。

このファイル自体は.exeと似たようなもので、Android上で動く.exeファイルと考えれば大丈夫です。

ただ.exeファイルを出力するのと同様に、簡単な設定でビルド可能かと言われればちょっと違っていて、癖があります。

iOSやその他のプラットフォームはどうなのかは分からないのですが、ビルド設定の要点を理解しておかないと、実機に.apkファイルを移動したのにインストール出来なかったり、動くけど何かおかしい…なんてことになってしまうので、要点を押さえながらビルドしていきましょう。

ビルドするプラットフォームを切り替える

ビルド設定画面で、ビルドするプラットフォームを切り替えます。

Unityマークが付いているのが現在選択されているプラットフォームになります。

Androidを選択して、右下のSwitch Platformを押下します。

プラットフォームでAndroidを選択して右下のSwitch Platformを押す

そもそもAndroidが非アクティブになっていて選択できないという場合は、追加モジュールがインストールされていません。

現バージョンのUnity EdtiorにAndroid向けビルド用の追加モジュールをインストールするには、Unity Hubを起動します。

Unity Hubの左側の項目InstallsにあるEditorの該当バージョンの右側の歯車アイコンをクリックします。

その項目の中にあるAdd Modulesを選択します。

すると追加モジュールのインストール選択画面が表示されます。

追加モジュールのインストール選択画面

基本的にはAndroid Build Supportをクリックし、付随してインストールされるOpenJDKとAndroid SDK & NDK Toolsの3つをインストールします。

専門的な知識がある方は、付随のOpenJDKとAndroid SDK関連はチェックを外しても大丈夫です。

インストールが終わってから再度ビルド設定画面を見ると、Androidの項目が選択可能になっているはずです。
そしたら手順を追ってSwitch Platformを押したところまで実行します。

話を戻して、Switch Platformを押した後からの設定項目を見ていきます。

Android向けビルドの設定

ではAndroid向けのビルド設定をしていきます。

Switch Platformでビルドするプラットフォームを切り替えたあと、UnityアイコンがAndroidの項目に移っていると思います。

その状態で左下のPlayer Settingsを押して設定画面を開きます。

Android向けのビルドの状態で左下のPlayer Settingsを押して設定画面を開く

でも設定の基準が無いと分かり辛いと思うので、GoogleのPlayストアに出せるような設定を条件に、設定していきたいと思います。

画面の向きを設定する

まずは画面の向きを設定します。

Player > Resolution and Presentation > OrientationのDefault Orientationで起動時の画面の向きが設定できます。

今回のゲームは横スクロールのシューティングなので、横向き(Landscape)にします。
縦型のシューティングを開発している方は、縦向き(Portrait)にしてください。

LandscapeにもLeftとRightがありますが、そのまま左回り・右回りの意味です。
回転方向は好みです。
無能は充電口が右側になって欲しいので左回りにします。

Player > Resolution and Presentation > OrientationのDefault OrientationでLandscape Leftにする

パッケージ名を設定する

次にパッケージ名を設定します。

Player > Other Settings > IdentificationのPackage Nameがパッケージ名の項目です。

パッケージ名って何?となりますが、これはアプリを識別するための固有の名前となります。
iOSで言うところのバンドルIDと言うものです。

一応パッケージ名の書き方は決まっていて、Package Nameの直下に警告の形で書き方はこうしてね!みたいなものが記載されています。

Player > Other Settings > IdentificationのPackage Nameがパッケージ名の項目で、設定の仕方が記載されている

パッケージ名の書き方を真似てみると
com.自分の所属している会社名(またはサークルなどの団体名).このゲームのプロジェクト名
と言った感じでしょうか。

個人の場合は会社名の部分は個人名か個人を識別できるようなハンドルネーム的な何かになると思います。

しかし編集できなくなっているので、Override Default Package Nameにチェックを入れて編集可能な状態にします。

チェックを入れると、.exe向けにビルドした時のCompany NameとProduct Nameが自動的に該当箇所に入って、パッケージ名の書き方になります。

しかしこのプロジェクト名は2DShootingSampleとなっていて、先頭の文字が数字になっています。

数字が先頭になっていると受け付けてくれないので、2をTwoに直します。

すると無事受け付けてくれました。

プロジェクト名の先頭を2からTwoに変更して受け付けるようになった

ここは意外と見落としがちな部分なので、覚えておくと良いかも知れません。

ビルド設定をIL2CPPにする

Player > Other Settings > ConfigurationのScripting BackendをIL2CPPに設定します。

このIL2CPPというのは、Unityの独自技術らしいです。

これは64bit版アプリケーションのリリースでは決まっていことらしく、IL2CPPでビルドされたものでないと、Playストアではリリース出来ないようです。

  • 2021年8月以降、64bit版に対応していないアプリの公開はできません(新規・既存アプリ双方)

IL2CPPでのビルドでは、どうやらアプリケーションのセキュリティの向上、高速化と最適化がなされるようです。

詳細はドキュメントを参照してください。

IL2CPPの概要 - Unity Documentation

64ビット版をターゲットにする

前述のビルド設定をIL2CPPに設定すると、すぐ下のTarget Architecturesに注意書きが表示されます。

IL2CPPに設定すると、すぐ下に注意書きが表示された

これはターゲットとなるアーキテクチャが64ビット版ではないですよ、ARM64を選んでね!と教えてくれています。

ではUnityの教えの通り、ARM64にチェックして、ARM64以外のチェックを外します。

ARM64にのみチェック

すると注意書きが消えました。

インターネットアクセスを常時要求(許可)にする

次はすぐ下のInternet AccessをRequireにします。

この設定は、ビルドしたアプリケーションをAndroidで起動した時に、アプリケーションが起動している間はインターネットアクセスが出来なくなる可能性があるためになります。

ですので常時要求(許可)という設定にします。

Internet AccessをRequireにする

必要に応じてStrip Engine Codeのチェックを外す

必要に応じてPlayer > Optimization > Strip Engine Codeのチェックを外します。

このチェックを外しておかないと、アセットバンドルが消されてしまって、アセットバンドルを使用している場合は動かなくなってしまうそうです。

アセットバンドルって何?と言う方は、公式のドキュメントを参照してください。
無能もあまり理解出来ていませんが、ドキュメントを参照して、何となく色々な外部ファイルをまとめた感じかな?と思いました。

アセットバンドル - Unity Documentation

今回はアセットバンドルは使用していないので、チェックを入れたままにします。

Android向けアプリをビルドする

ようやくアプリをビルドするところまで出来たと思います。

最後に一つ、今回のシューティングゲームを作成されている方は対象外となります。

Playストアにリリースするための正式なバージョンをビルドする場合は、ビルド設定画面でBuild App Bundle(Google Play)にチェックを入れてビルドしてください。

これはaabという形式でビルドするためのチェックで、Android App Bundleという形式の公開のみを目的にしたものだそうです。


今回のシューティングゲームでは.apkファイルでのビルドがしたいので、この操作は不要ですが、後学の為に記載しておきます。

開発中のビルドにはDevelopment Buildをチェックしてビルド

最後に忘れがちになるのですが、開発中のビルドにはビルド設定画面のDevelopment Buildにチェックを入れてビルドしましょう。

ビルド設定画面のDevelopment Buildにチェックを入れてビルド

色々と設定が多かったですね。

ではビルドしてみましょう。

.apkファイルをビルドする

ではいよいよ.apkファイルのビルドをしていきます。

右下のBuildボタンを押してビルドします。
.exeファイルのビルドより長くかかりますので、ゆっくり待ちましょう。

保存先は「AndroidBuild」という新しいフォルダを作成し、.exeのビルド先とは分けました。

Buildボタンを押してビルドする

「AndroidBuild」という新しいフォルダを作成し、.exeのビルド先とは分けるようにした

ビルドがエラーも無く完了し、.apkファイルが出来上がりました。

あとはこの.apkファイルを確認するAndroidデバイスに移して、インストールしてあげれば動作確認ができます。

無能は充電しているUSBケーブルがデータ通信ケーブルになっているので、そのままプラグをPCに差し替えるだけでデータ転送ができます。

たまにケーブルが充電専用のケーブルで、データ転送が出来ないで慌ててしまう場合がありますので、ケーブルの種類には注意しましょう。

あと、AndroidデバイスをPCと繋げた時に、充電なのかデータ通信かをAndroidデバイスから聞かれるので、こちらも注意してください。

その他のAndroid側の説明は、デバイスやOSによって異なるので、説明は割愛します。
詳細はデバイスのメーカーの説明書等を参照してください。

では起動して確認してみましょう。

Androidデバイスでの動作

ちゃんと動いています。

バーチャルスティックも大丈夫のようですね。

取り敢えず、ここまではAndroidデバイスでも動くことが確認できました。

まとめ

今回は
  • .exeファイルへのビルドをした
  • Android向けの.apkファイルのビルドをした
という事をやりました。

次回は、そろそろプレイヤーが三角形のままだと何だか寂しいので、弾もあわせてスプライトを適用していきたいと思います。

追記

まあこれをやる人はあまり居ないと思いますが、無能はUnity Editorのバージョンアップがあったので、早速新しいバージョンをインストールして、今回のプロジェクトを新しいバージョンに切り替えました。

すると、この記事を作成する前は難なく通っていたビルドが通らなくなってしまい、軽微とは言えこのプロジェクト自体を作り直す羽目になりました…。

無いとは思いますが、プロジェクトが完成するまではそのプロジェクトが正常に動いているバージョンのまま完成させておくのがいいです。

下手をすれば、プロジェクト自体がおじゃんになってしまう事も考えられるので、今あるものが完成してから新しいものに触れるようにしましょう。

では、また次回!

コメント