スマホ(タブレット)とPCでクロスプレイを実行する。
UnityはPCで作成するゲームエンジンですが、
ビルドできるプラットフォームが豊富でスマホ版のゲームも作ることができます。
本記事は、Androidのプラットフォームでビルドして、
Android端末にゲームをインストールする方法を紹介します。
その後、PC版のゲームと連携するクロスプレイについて紹介します。
- Unityでマルチプレイゲームを作りたい。
- Androidのゲームを実機インストールしたい。
- PCと通信対戦できるようにしたい。
Android端末にゲームをインストール
Unityを扱う人の多くは、ビルドするプラットフォームはPCあるいはWebGLが多いかと思います。
しかし、プラットフォームが異なるファイルをスマホにコピーしても起動できません。
PC、Android、iOS(iPhoneやiPadなど)、Webゲームをそれぞれのプラットフォームでビルドするには、対応したモジュールをインストールしなければいけません。
ただし、iOS版はWindowsでは作ることができません。
正確にいうと、iOS版ゲームはMacからアップロードしないと配信できません。
appStoreでゲームを出したい人はMacBookを検討してください。
これらモジュールは、各々1.8GB~2.0GB程度必要になります。
したがって、Unityを開発するストレージは十分に余裕を作るか、SSD・HDDを増設してください。
本記事では、Android開発で説明を進めていきますが、
iOS版でも同じように同じ手順で進めてください。
- Step1Unity HubでInstallsを選択
- Step2プラットフォームを変更
- Step3各種項目を変更
- Step4プロジェクトをビルド
モジュールのインストール
- Step1Unity Hubを開く
- Step2Installsを選択し、モジュールを追加に進む
- Step3Android Build Supportを選択し、インストール
Build SettingでプラットフォームをAndroidに変えようとしても、変えることができません。
No Android module loadedーとあるように、専用のモジュールをインストールしていないためです。
画面の「Install with Unity Hub」でハブを開く。
あるいは、直接ハブのウィンドウまで遷移してください。
Projectsの直後にあるInstallsに進んで、Unity LTSの歯車マークを押してください。
Add modulesのPLATFORMSからAndroid Build Supportにチェックを入れてください。
Continueに進んで、インストールを開始してください。
インストールの時間は相当かかります。気長に待ってください。
チェックマークとInstalledが表示されると、正常にインストールが完了しました。
インストール完了後、Build SettingでAndroidの項目が選択できるようになります。
スマホ・タブレット用の画面を作成
- Step1PC用のシーンをコピー
- Step2ビルドセッティングを開く
- Step3プラットフォームをアンドロイドに変更
- Step4コピーしたシーンをメインカメラを移動
PC版とスマホ版の通信対戦ークロスプレイをするには、
PC用に作成したゲームをスマホの画面に対応させなければいけません。
しかし、PCとスマホでプロジェクトを別々に立ち上げると労力がかかります。
また、座標を揃える必要があるマルチプレイでは課題になります。
本記事では、シーン遷移を利用して、
特定のシーンだけでビルドする方法でクロスプレイを実現します。
使用しているプレハブ(ゲームオブジェクト)は、Blenderで作成しています。
ProjectウィンドウでSceneフォルダーを選択して下さい。
フォルダー内には、デフォルトでSampleSceneという現在作成しているシーンが保管されています。
このシーンをコピーして貼り付けをください。
複製されたシーンに移ってください。(PC1→Androidに変更しています)
セーブしていない場合は、メッセージウィンドウが出てくるので、セーブして進んでください。
画面の比率を変える前に、Build SettingでAndroidへSwitch platformで変更してください。
変更後、GameウィンドウのFree aspectを選択すると、多くの画面サイズが出てきます。
基本的にサイズは対応することになります。ここでは、「1280×720 Portrait」で進めていきます。
変更すると、ゲームビューが見切れてしまうので、
HierarchyウィンドウでMainCameraの座標を変えてください。
前述したようにこのとき、プレハブの移動は座標がずれるので、動かしてはいけません。
プラットフォーム・設定を変更
ビルドするAndroidアプリを正常に動かしてGoogle Play Storeに出品するには、PlayerSettingsで各種設定を変更しなければいけません。
- Step1アプリケーション名
- Step2パッケージ名
- Step3ビルド設定
- Step4ターゲットアーキテクチャ
- Step5インターネット接続
- Step6ストリップエンジンコード
アプリケーション名
初めに、作成したゲームの名前を変更する方法です。
こちらは、変更しなくてもゲームの挙動が不安定になることはありません。
しかし、出品を考えている人や色々なゲームを作っている人は名前を変えることをおすすめします。
PlayerSettingsからProduct Nameを変更してください。
ここでは、Online-Androidとします。
パッケージ名
Other Settings 内の IdentificationでPackage Nameを変更します。
こちらは、デフォルトのままだとビルドエラーになるので、変更は必須です。
名前の決め方は、ドメインネームとアプリ名が一般的です。
パッケージの命名 – Unity マニュアル
- com.<company-name> で始めます。例えば、正式な Unity パッケージの 1 つは “com.unity.timeline” という名前です。
- UI に表示したい場合は 50 文字以下にしてください。UI にパッケージ名を表示する必要がない場合は 214 文字以下に制限してください。
- 小文字、数字、ハイフン (-)、アンダースコア (_)、ピリオド (.) のみを使用してください。
- ネストされた名前空間を示すために、名前空間に追加のピリオドのサフィックスを加えてください。例えば、 “com.unity.2d.animation” や “com.unity.2d.ik” など。
ビルド設定
同じく、Other Settings内のConfigurationでScripting BackendをIL2CPPに変更します。
アプリゲームでもチート行為というものがあります。
チート行為は、ゲームのセキュリティ問題に関わることなので、改造されないようにIL2CPPに変えてください。
※変更例は、以下のインターネット接続にて表示しています。
IL2CPP を使用すると、Unity プロジェクトのパフォーマンス、セキュリティ、プラットフォームの互換性を向上させることができます。
IL2CPP – Unity マニュアル
ターゲットアーキテクチャ
アプリのビットを決めるものです。
Other Settings 内のConfigurationでTarget Architecturesを決定できます。
64bit版としてリリースするには、ARM64にチェックマークが必要です。
※変更例は、以下のインターネット接続にて表示しています。
インターネット接続
Androidデバイスをネットワーク接続をします。
この設定をしないとインターネット接続、要するにマルチプレイができません。
Other Settings 内のConfigurationでInternet AccessをAutoからRequireへ変更します。
ストリップエンジンコード
IL2CPPでビルドするとき、不要だと判断したコードを破棄してアプリケーションの容量を軽量化します。
一般的には、推奨されていますが、アセットバンドルは利用関係なく削除されます。
Other Settings 内のOptimizationでStrip Engine Codeのチェックを外してください。
If this is enabled, unused modules and classes of the Unity Engine codebase will be removed in IL2CPP builds. This will result in smaller binary size. It is recommended to use this setting, however, you may want to disable it if you suspect this causes issues with your project.
PlayerSettings.stripEngineCode – Scripting API
プロジェクトをビルド
プラットフォーム・設定を変更したので、プロジェクトをビルドします。
JDKがないと警告文のウィンドウが表示されてビルドができない場合があります。
それは、「OpenJDK」と「Android SDK & NDK Tool」のモジュール2つをインストールしていないからです。
これらをインストールすると、問題なくビルドできるようになります。
出力ファイルはPCとは異なりapkファイルとフォルダーの2つのみです。
自分が分かりやすいところに保存しましょう。
UdemyでUnityを学習
Udemyは、オンデマンド式の学習講座です。
趣味から実務まで使えるおすすめの講座を紹介します。
- 【Unity C# ゲーム開発超入門】7つのミニゲームを作っておぼえる!UnityとC#講座
Unityで頻出の機能を実際のゲーム作りで学習。
何か作りたい、今後の開発で役立てたい初心者におすすめ
- 【Unity C# ゲーム開発初心者レベルアップ】7つのトランプゲームを作っておぼえる!UnityとC#講座
トランプやボードゲーム作りに特化している講座。
テーブルゲームを作りたい人におすすめ。
- 【全行程を網羅!最初に学びたい総合学習】Unityワールド制作講座
Unityワールド制作の全工程を学習できる講座。
RPGを作りたい人におすすめ。
- Unity ゲーム開発:インディーゲームクリエイターが教える C#の基礎からゲームリリースまで【スタジオしまづ】
C#の文法やApp StoreとGoogle Playへゲームをリリース方法を解説。
ゲームを出品したい人におすすめ。
Android端末の操作
ビルドしたapkファイルをAndroidデバイスにインストールして実機テストします。
- Step1PCと端末をUSB接続
- Step2apkファイルをコピー
- Step3Androidデバイスを操作してapkをタップ
- Step4インストールの確認に従う
パソコンと端末をUSBケーブルで接続してください。
認識されない場合は、端末でファイル転送の許可を下していない可能性があります。
PCでデータ転送が認識しましたら、apkファイルをデバイスにドラッグ&ドロップでコピーしてください。
保存先は、端末のストレージ・挿入しているSDカードどちらでも良いです。
ここまでがPCの操作で、以降はAndroidデバイスの操作になります。
ファイルマネージャーを開いて、項目のアプリに進んでください。
アプリのインストールファイルに先ほどコピーしたプロジェクトが表示されるので、選択してください。
コピーしたアプリをタップすると、インストールの確認できます。
指示に従ってインストールしてください。
apkファイルのインストールをしようとすると、安全ではないアプリとしてブロックされます。
したがって、インストールの許可を出してください。
これは、Google Play Store以外からアプリを入れるとトロイの木馬の疑いがあるため表示されます。
ここまでの手順によって、実機でゲームを開くことができました。
タブレット(スマホ)の魅力は、特徴に合わせて縦型、横型でゲームができることです。
ステージが見切れてしまいますが、横にするとすべて入ります。
- 縦
- 横
PC版とスマホ版のクロスプレイ
Androidデバイスでゲームをインストールができました。
ここからは、PC版とのクロスプレイをできるようにします。
方法は単純で、PUN2を使うことでクロスプレイはできます。
PUN2の使い方は、非常に簡単でPhotonアカウントを作成して、アプリケーションを立ち上げて、アセットをインストールします。
サーバーの管理や設置など難しい設定は一切不要です。
マルチプレイゲームを作りたいならば、インストールをおすすめします。
Photonを追加したPC版とスマホ版のゲームをビルドしてください。
ビルド後、双方でゲームを起動すると、クロスプレイができます。
このように、Photonを使えば、特別な操作は必要ありません。
Unity学習ができる教本
タイトル | 対象 | 特徴 |
Unityの教科書 2023完全対応版 | 入門・初心者 | プログラミング未経験でも、ゲーム制作したい人 |
マンガでわかる Unityゲーム開発入門 | 入門・初心者 | Unityを挫折したけど、もう一度挑戦したい人 2Dゲームの作成をマンガで丁寧に解説 |
作って学べる Unity本格入門 | 中級者~ | RPG、特に3Dゲームを作りながら学習したい人 |
Unity ソーシャルゲーム開発ガイド | 中・上級者 | ガチャ・ログインボーナスなどのソシャゲの機能を開発したい人 |
まとめ
スマホ版・PC版でクロスプレイするには、Photonを使うことが最も簡単でおすすめです。
Photonを使えば、面倒なサーバー構築・管理などが不要で、特別な設定をしなくてよいです。
UnityでAndroidやiOSのゲームを作成する場合、モジュールをインストールする必要があります。
UnityHubでインストールすると、ビルドできるようになります。
PC版として作ったゲームのシーンをコピーして、それをデバイスに対応したアスペクト比に変えることでスマホ版ゲームを作成します。
このとき、プレハブが画面から切れる場合は、MainCameraで視点を動かしてください。