以下の操作ガイドでは、Android デバイスへデプロイするための Unreal Engine 4 全体をパッケージ化する方法について説明します。UE で Android プロジェクトを簡単にパッケージ化し、便利なファイルに出力して、スマートフォンでテストするためにプロジェクトをインストール / アンインストールすることができます。
基本設定
開始する前に、以下の要件およびプロジェクト設定を満たしていることが必要です。
- Android Studio をコンピュータに設定する必要があります。「Android SDK と NDK を設定する」を参照してください。
- 使用する Android デバイスの Development Mode と USB Debugging を有効にします。Android デバイスを開発用に設定する を参照してください。
- Android 用に プロジェクト設定 を設定し Android SDK ライセンス契約に同意する必要があります。「Android クイック スタート」を参照してください。
まだプロジェクトを作成していない場合は、Third-Person Template の [Target Hardware] を [Mobile/Tablet]、また品質を [Scalable 3D or 2D] に設定してプロジェクトを作成してください。
1. プロジェクトをパッケージ化する
このセクションでは、プロジェクトを .APK ファイルとしてパッケージ化します。
このゲームは現在テスト中なので [Development] にパッケージ化しますが、ゲームが完成したら [Package Project] メニューの [Build Configurations] オプションにカーソルを当てれば [Shipping] へのパッケージ化が可能になります。
- [File] メニューで [Package Project] > [Android] を選択し、パッケージ化したいテクスチャ フォーマットを選びます。このサンプルでは、すべてのデバイスがサポートしている Android ETC2 を使うことにします。
どのハードウェアで実行するかによって、サポートするテクスチャ フォーマットはデバイスごとに異なります。各種フォーマットの詳細は「Android 開発リファレンス」を参照してください。
形式 | 説明 |
---|---|
ETC2 | すべての OpenGL 3.x クラス デバイスでサポートされ、アルファ テクスチャの圧縮もサポートします。 |
DXT | Nvidia Tegra GPU でサポートされ、アルファ テクスチャの圧縮もサポートします。 |
ASTC | 最新のテクスチャ圧縮フォーマットで、ブロック サイズを指定して細かい品質調整を可能にします。アルファ圧縮をサポートします。現時点では使用できるデバイスは限られています。 |
既存プロジェクトをサポートするために Unreal Engine の古いバージョンを使用している場合は、以下のレガシー テクスチャ形式も利用することができます。
形式 | 説明 |
---|---|
ETC1 | すべての Android ベース デバイスでサポートされますが、アルファ テクスチャの圧縮はできません (圧縮されないまま格納されます)。アルファをうまく圧縮するには、RGB および別々のアルファ テクスチャの使用を推奨します。 |
ETC1a | アルファ値を持たないテクスチャに ETC1、アルファ テクスチャに ETC2 を使用します。デバイスが ETC2 をサポートしていない場合、アルファ テクスチャは実行時に RGBA に展開されます。RGBA は ETC1 と ETC2 の両方で使用できますが、アルファ値を含まないテクスチャに ETC1 を使用した場合、ETC2 の場合ほど高い品質は得られません。 |
ATC | Qualcomm Adreno GPU でサポートされ、アルファ テクスチャの圧縮もサポートします。 |
PVRTC | PowerVR GPU でサポートされ、アルファ テクスチャの圧縮もサポートします。 |
- パッケージ化したゲームの保存場所を聞かれます。保存場所のデフォルトはプロジェクト フォルダです。新規フォルダを作成し、「Android_Builds」と名前を付けます。
-
ゲームのパッケージ化処理中は、処理の進捗状況が右下隅に表示されます。
-
パッケージ化が正常に終了すると、パッケージ化の完了メッセージがエディタの右下隅に表示されます。
-
ステップ 2 で作成したフォルダを開くと、、パッケージ処理中に指定したテクスチャ タイプ用の名前をつけた新規フォルダが入っています。この例では、そのフォルダ名は「Android_ETC2」です。
2. パッケージ化したプロジェクトをデバイスへデプロイする
プロジェクトを .APK にパッケージ化したので、このセクションではビルドをデバイスにデプロイする方法を説明します。
-
Android デバイスを USB ケーブルで PC に接続します。プロンプトが表示されたら、PC にファイル変更を許可します。
-
「Android_ETC2」フォルダを開いて「
Install_[ProjectName]_Development.bat
」バッチ ファイルを ダブル クリック して、Android デバイス上にプロジェクトをインストールします
実行時にデバイスが USB で接続されていないと、.BAT ファイルは何も処理しません。
-
Android デバイスを USB ケーブルで PC に接続します。プロンプトが表示されたら、PC にファイル変更を許可します。
-
「Android_ETC2」フォルダを開いて Install_[ProjectName]_Development_armv7-es3.command ファイルを ダブル クリック して、Android デバイス上にプロジェクトをインストールします。
実行時にデバイスが USB で接続されていないと、.command ファイルは何も処理しません。
-
Android デバイスを USB ケーブルで PC に接続します。プロンプトが表示されたら、PC にファイル変更を許可します。
-
「Android_ETC2」 フォルダを開いて、パッケージ化プロセスで作成したファイルを確認します。
インストール および アンインストール シェル スクリプト (.sh) に加え、ETC1 圧縮スキームをサポートする Android デバイスにプロジェクトをインストールするのに必要なすべてのファイルを含んだ Android アプリケーション パッケージ (.apk) があります。
-
フォルダ内を右クリックし、[Open in Terminal (ターミナルで開く)] を選択して、このフォルダの場所からターミナルを開きます。
-
ターミナルに「
./Install_LinuxAndroidProject_Development-arm64.es2.sh
」と入力して、Android デバイスにプロジェクトをインストールします。
シェル スクリプトの実行で問題が発生した場合は、ターミナルに「adb devices
」と入力して、デバイスがコンピュータに接続しているかどうかを確認します。
- インストール プロセス中、シェル スクリプトによってターミナルに次の出力が表示されます。
シェル スクリプトによるインストール処理が完了すると、「Installation successful」 メッセージが表示されます。
この操作ガイドを終了すると、プロジェクトは Android デバイス上に以下の画像のように表示されます。
さらに、.APK ファイルおよび関連するヘルパをテストするために、他のデバイスへデプロイします。
App Bundles をパッケージ化する
Android App Bundles は .apk をパッケージする別の手段として Google から提供されている配布形式です。さまざまなデバイスのサブセットに対して異なる .apk を作成するかわりに、単一の Android App Bundle build (.aab) を作成し、Google Play Store へアップロードすることができます。その後ストアのダイナミック ディストリビューション システムは、アプリケーションがダウンロードされた時に App Bundle のコンテンツを使ってユーザーの専用デバイスに対して最適化された .apk を生成します。
Google Play Store でのビルドの維持に関わる作業を十分考慮するだけなく、App Bundle builds は apk をこれまの 100 MB から最大 150 MB で配布することができます。この制限は最終的な .apk に適用されます。.apk を生成するための App Bundle には適用されません。
App Bundle Build を作成するには、Project Settings を開き、[Platforms] > [Android] セクションを開きます。[App Bundles] セクションで [Generate Bundle (AAB)] を有効にします。
プロジェクトを Android 用にパッケージ化するには、.aab ファイルを生成して Google Play にアップロードします。テストのためにユニバーサルな .apk を生成することもできます。
Google Play Store の制約により、Android App Bundles は .obb ファイルで配布することはできません。
App Bundle ビルドを設定するための別の設定を使って、プロジェクト用の最終的な apk の生成に App Bundle が使用する感度の微調整ができます。
設定 | 説明 |
---|---|
Generate Universal APK from Bundle (バンドルからユニバーサル APK を生成) | この設定により App Bundle がどのデバイスでも実行可能な、エンドユーザー向けのユニバーサルな .apk ファイルを生成することができます。マシンでテストするために生成したユニバーサルな .apk には影響を与えません。 |
Enable ABI Split (ABI 分割を有効化) | App Bundle はユーザーの CPU で使用される Application Binary Interface に基づいて別の .apk を生成します。例: arm64-v8a, x86, x86_64. |
Enable language split (言語分割を有効化) | App Bundle はユーザーの言語に基づいて別の .apk を生成します。ユーザー用にローカライズされたストリングのみダウンロードされます。 |
Enable density split (密度分割を有効化) | App Bundle は画像解像度と DPI に基づいて別の .apk を生成します。ユーザーのデバイスと互換性のあるアイコンおよびスプラッシュ画面のみダウンロードされます。 |
たとえば、ABI 分割を有効にして言語分割を無効にした場合、.aab は ユーザーのデバイスに互換性のある ABI に基づいてユーザーのデバイスに対して最終的な APK を調整しますが、すべてのユーザーはデバイス設定や言語設定に関係なく全言語のリソースを受け取ります。
デフォルト設定では最終的な .apk が可能最小サイズになり、デフォルト設定を無効にすると .apk は大きくなります。
.apks または .aabs を Google Play Store にアップロードする方法については、「パッケージングと配布」を参照してください。