ゲームを作ってみたけど自分のスマホで動くか確認してみたい!
本記事の内容
・スマホで作成したゲームが動くかを確認する方法
・ビルド時の設定 デフォルトから変更すべき点一覧
スマホでゲームを動かしてみる方法 2選
1.UnityRemoteを利用する
スワイプや、ピンチアウトなどのPCで出来ない、操作感を確認しづらい機能を実装するときに、便利です。
ただ、実際に動いている環境自体は、PC側の環境で動いているものをスマホに表示し、スマホからの入力を受け付けて、PC側で処理しているだけなので、最終的には必ず次の2番の方法で実行確認する必要があります。
今後使い方を解説するかもしれませんが、一旦参考になる外部記事の紹介だけ載せておきます。ただ、ストアのレビューを見ていただければ分かるのですが、結構原因不明で動かないことが起きるので、あまり過信しない方がよいです・・・。
2.実機ビルドする
作成したゲームをスマホで実行するには、ビルドが必要です。ビルドした実行ファイルをスマホに転送することでゲームがスマホで実行することが出来ます。
そもそも、ビルドとは何だ?という人は以下の関連記事がオススメです。
今回の記事では、Andoroid端末向けのビルド方法について解説します。
ビルドにあたっての心構え
1点注意事項を挙げておきます。
スマホ向けのビルドは、ビルドエラーに直面することが多々あります。
ゲーム内にいろんなプラグインなどを入れて、複雑なゲームになっていくほど、ビルドエラーが発生していく可能性が高まります。そして、原因がすぐにわからないことが多いです。
エラーログなどにもこれを直せば動くよ!ということが書いていないことが多く、ここまで作ったのに実機で動かない~という悲しみに暮れることもあります。
これから解説する内容を実施しても動かない、なんてこともあると思います。
対処方法として3点あげます。
1.ChatGPTにエラーメッセージを投げて、原因を確認する
2.エラーメッセージをGoogleに投げる(特に日本語よりも英語のサイトに答えがあることが多い)
3.開発者同士のコミュニティで質問する
もちろんこちらのサイトのコメント欄に質問を投げていただいても、分かる範囲で回答したいと思います。
ただ、いずれにしても解決に少し根気がいるケースが多いので、頑張りましょう!!
Android用のビルド設定 前準備
【Unity側の設定】パッケージをインストールする
UnityHubを開いて、Android用のパッケージをインストールしましょう!
筆者は、すでにインストール済みのため灰色になっていますが、未インストールの場合は白色になります。
これだけです!
SDK、JDK、NDKってなに?
インストール欄に出てくるこれらのワードが気になった方向け。基本的にはUnityのエンジンので実装されている内容なので、開発者が意識する機会はあまりないです。
・SDK(Software Development Kit):
Androidアプリケーションを開発するために必要なソフトウェア開発キットのこと。このキットには、Androidプラットフォーム向けのアプリケーションを開発、テスト、デバッグするために必要なツールやライブラリを一式含んでます。ここから必要なツールを取り出してUnity側でAndroid用のビルドがされているといったイメージ。
・NDK(Native Development Kit):
Androidで、CやC++言語を使うことを可能にするツールです。
普段Unityの開発の中で使うスクリプトは、C#ですが、Androidの各端末のCPUで処理を行うにはCやC++に変換する必要があります。CやC++は、ネイティブ言語といって(C#は、C++をさらに進化させたC++++の+部分を集合させてC#という名前になったらしい)より高速に処理することが出来ます。
Android用の処理を実行する際に、NDKを通じてC#からC++などに変換されて実行され、端末のCPUで直に処理を動かすことが出来るようになるらしいです。(間違いあればコメントで指摘ください)
・JDK(Java Development Kit):
Android内のアプリケーションはJava言語を使用しています。Javaで書かれたネイティブプラグインやサードパーティ製のライブラリを組み込み、Unityで実行するには、Java言語をコンパイルするにはJDKが必要です。
【Unity側の設定】ターゲットをAndoroidにする
インストールが出来たら、ビルドしたいプロジェクトを開きます。
ビルド設定から、ターゲットの切り替えを行い、Androidを設定します。
画面上部のファイル > ビルド設定 を選択。
Androidを選択して、「ターゲットの切り替え」ボタンを押します。
この処理には少し時間が掛かります(プロジェクト内のすべてのコードを再コンパイルし、画像の圧縮形式をすべて変換しているため)。
処理が終わればUnity側の前準備は完了です。
【スマホ側の設定】開発者モードにする
次に、開発中のアプリケーションをスマホで実行するには、スマホ側の設定を「開発モード」にする必要があります。この設定は一度行えば問題ありません。
まずは、設定 > システム を選択。
まずは、開発者向けオプション を選択。
まずは、開発者向けオプションの使用 をONにする。
以上です。ビルド番号を8回連続で押すという、謎コマンドでもONに出来るそうです。
ビルド設定を修正
ただ、インストールしたビルド設定をそのまま適用するだけではダメです。(こういうとこが初心者を蹴落とすポイントになってるんですよね・・・)
この設定を直せば、実機で動く・Google Play Storeにアップする際にスムーズに進む、というのをまとめました。
【前提】
・Unity 2022.2.19
ビルド設定は「プレイヤー設定」のボタンから入ります。
企業名、プロダクト名、バージョンを決める
企業名には、個人の場合はご自身の名前などを入れると良いと思います。
プロダクト名は、ゲームのタイトルなどを入れるとよいです。ただ注意点として、日本語や、!、?などの記号は入れない方がよいです。
ここで設定した、企業名とプロダクト名を元に、各アプリを一意に判別するBundleIDというものが発行されますが、BundleIDには、日本語を入れられないからです。
BundleIDは「その他の設定」から確認することが可能です。
バージョンの設定値についてはこちらの記事でまとめていますので、よければご確認ください。
アイコンを設定(任意)
アプリをインストールした時のスマホで表示されるアイコンを設定することが出来ます。なにも設定しないとUnityのロゴが表示されます。
向きを設定
プレイ中、スマホの回転に応じて画面を回転させるケースは少ないと思います。
自分のゲームが縦向きか横向きかに応じて設定するのがよいです。
その他の設定
細かいので以下の表でまとめました。
設定項目 | 設定値 | カンタン解説 |
---|---|---|
最低APIレベル | 新しいAPIを使わないと動かない機能がなければ、一番低いAPI。 | 最低APIが高いと起動出来ないユーザが増えてしまいます。 低い方が望ましいです。 参考記事:https://moduleapps.com/mobile-marketing/android-ver/ |
ターゲットAPIレベル | 2024年9月現在 Level 34以上を設定 | 最新のGoogleからの発表記事を参考に設定しましょう。 https://support.google.com/googleplay/android-developer/answer/11926878?hl=ja |
スクリプティングバックエンド | IL2CPP にチェック | IL2CPPにしないとGooglePlayの要件を満たせない。 処理も高速化するらしいので設定する。 |
ターゲットアーキテクチャ | ARM64 にチェック | ARM64にチェックが入っていないとGooglePlayの要件を満たせない。 |
設定後のスクリーンショットはこちらです。(最低APIレベルが31になっていますが、もっと低くてもOKです)
最後に、ビルド設定から、ビルドに含まれるシーンから、対象のシーンを追加し、「AppBundleをビルド」にチェックを入れます。起動時に表示されるシーンは、「ビルドに含まれるシーン」が一番上のシーンになります。
これで設定は完了です!!
スマホとPCをUSB接続した状態で、「ビルドして実行」を押します。
ビルドにより出力されるフォルダを聞かれるので、「Build」というフォルダを新規に作成し、そこに出力しましょう。
時間が掛かりますが成功した場合は、Consoleに「Build Succeeded」と表示され、スマホ側でアプリが自動で起動されます。
ここまで行うと、スマホでアプリ起動が可能に出来ます。
起動が確認出来たアプリをGoogle Play Storeに申請する場合は、以下の記事を確認ください!
まとめ
以上、ビルド設定内容についてでした。
ビルド関連は非常に開発時に悩ましい問題が生じることが多いのですが、やはり自分の端末で自分の作ったゲームが動くと少し感動しますね!
もし躓いた点などがあれば、コメント欄などでご連絡ください。それでは素敵なゲーム制作ライフを!
コメント
コメント一覧 (1件)
[…] 【Unity】Android用のビルド設定解説!PlayStoreに提出するなら要チェック! ゲームを作ってみたけど自分のスマホで動くか確認してみたい! […]