Linux での Android 開発クイック スタート

Linux で Android 向けのゲームを作成、デプロイ、およびパッケージ化する方法を学びます。

Windows
MacOS
Linux

DeployedAndroidGame_Linux.png
このチュートリアルを終えると、Linux で Unreal Engine 4 (UE4) を使用して Android デバイス向けのゲームを作成、デプロイ、およびパッケージ化できます。

Linux から Android デバイス向けのゲームを作成して配布することを検討しているデベロッパーには、このページが最適です。このガイドでは、Linux 上で UE4 を使用して Android デバイスの構成を行う方法に加え、最終的に Linux から Android 向けのモバイル ゲームをデプロイおよびパッケージ化する方法を説明します。

有能な貢献者が集まったコミュニティのおかげで、UE4 に Linux の Android サポートを無事追加することができました。

2 - 必要な設定

Unreal Engine 4 では、CodeWorks for Android と呼ばれる Android ソフトウェア開発キット (SDK) の特別なバージョンが使用されます。CodeWorks for Android を使用することが、Unreal Engine 4 で Android プロジェクトを開発するのに必要な SDK と Native Development Kit (NDK) をセットアップする最も簡単な方法です。古いバージョン (バージョン 1R5 より前) の Android SDK (または古いバージョンの CodeWorks for Android) がインストールされている場合はそれらをアンインストールし、Unreal Engine 4 と一緒に配布されている CodeWorks for Android インストーラーで CodeWorks for Android をインストールすることを推奨します。

Android SDK が Engine と互換性を持つように、CodeWorks for Android インストーラーは Unreal Engine 4 にバンドルされています。Unreal Engine バージョン 4.16 の時点で、Unreal Engine には CodeWorks for Android 1R6u1 が含まれていることに留意してください。

Linux での Android 開発の開始方法を説明するにあたり、ここでは Unreal Engine バージョン 4.14 で作業し、CodeWorks for Android 1R6u1 を使用します。CodeWorks for Android 1R6u1 をインストールする前に、Engine を閉じる必要があります。また、正しいバージョンの Java Development Kit 8 (JDK 8) がインストールされており環境変数 JAVA_HOME が正しい Java Development Kit (JDK) バージョンに設定されていることを確認してください。JAVA_HOME が適切に設定されていることを確認するには、ターミナルに「echo $JAVA_HOME」と入力します。適切な JDK バージョンが表示されない場合、 JDK 8 をインストール して、Linux コンピュータにインストールし、 JAVA_HOME 環境変数を新しくインストールした JDK に設定します。

続行する前に、Android Vulkan は Linux で現在サポートされていないことにご注意ください。

  1. はじめに、ターミナルを開いて、コンパイルされた Engine を含む「[UE4Root]]」フォルダに移動します (cd コマンドを使用してシェルの作業ディレクトリを変更します)。

    LinuxAndroid_Step0.png

  2. 次の文字列をターミナルに入力して、「[UE4Root]」フォルダから CodeWorks for Android 1R6u1 バイナリ ファイル ( CodeWorksforAndroid-1R6u1-linux-x64.run ) に移動します。cd Engine/Extras/AndroidWorks/Linux

    LinuxAndroid_Step1.png

  3. ここでターミナルに「ls -l」と入力するとディレクトリに含まれるコンテンツが長いリストで表示されます。

    LinuxAndroid_Step2.png

    ファイルのパーミッション設定は、 「CodeWorksforAndroid-1R6u1-linux-x64.run」 を実行する準備ができていないことを示しています。CodeWorks for Android 1R6u1 バイナリを実行可能にするには、ファイルのアクセス権を変更して「実行」権限を与える必要があります。

  4. CodeWorksforAndroid-1R6u1-linux-x64.run」のファイル パーミッション設定を変更して通常の実行可能ファイルのように実行可能にするには、ターミナルに「chmod +x CodeWorksforAndroid-1R6u1-linux-x64.run」と入力します。

    LinuxAndroid_Step3.png

    chmod コマンドの詳細については、ターミナルに「man chmod」と入力して chmod の仕組みを説明したマニュアル ページをご覧ください。

  5. 次に、ターミナルに「ls -l」と入力します。

    LinuxAndroid_Step4.png

    画像で強調表示されたファイルのパーミッション設定は CodeWorks for Android 1R6u1 バイナリ ファイルを実行する準備ができたことを示しています。

  6. CodeWorks for Android バイナリを実行するには、ターミナルに「./CodeWorksforAndroid-1R6u1-linux-x64.run」と入力します。

    LinuxAndroid_Step5.png

    次の手順に進む前にコンピュータのインターネット接続が有効であることを確認してください。

  7. CodeWorks for Android 1R6u1 バイナリが NVIDIA CodeWorks for Android のインストーラーを展開すると [Installer Welcome] ウィンドウが表示され [Next (次へ)] または [Cancel (キャンセル)] のいずれかをクリックするよう求められます。

    LinuxAndroid_Step6.png

  8. 「インストーラーにようこそ」 ウィンドウで [Next (次へ)] ボタンをクリックしてインストール プロセスを開始します。

    LinuxAndroid_Step7.png

  9. ここで 「Android デベロッパーのようこそウィンドウ」 から [Next (次へ)] ボタンをクリックしてインストール プロセスを続行します。

    LinuxAndroid_Step8.png

  10. CodeWorks for Android 1R6u1 をインストールおよびダウンロードするディレクトリを指定します。

    LinuxAndroid_Step9.png

  11. [Next (次へ)>] ボタンをクリックして NVIDIA から CodeWorks for Android 1R6u1 をダウンロードし、最終的にコンピュータに CodeWorks をインストールします。

    LinuxAndroid_Step10.png

  12. CodeWorks for Android 1R6u1 をインストールしていることを確認してから、 [Android Component Manager] ウィンドウで [Next (次へ)] ボタンをクリックします。

    LinuxAndroid_Step11.png

  13. [Terms and Conditions (利用規約)] ウィンドウが表示されたら [Accept All (すべて承認)] チェック ボックスを選択する前に [Terms and Conditions (利用規約)] をすべてご確認ください。

    LinuxAndroid_Step12.png

  14. 次に [Accept (承認)] ボタンをクリックしてインストール プロセスを開始します。

    LinuxAndroid_Step13.png

  15. インストーラーがインストール プロセスを完了したら、先に進み [Next (次へ) >] ボタンをクリックして続行します。

    LinuxAndroid_Step14.png

  16. インストール完了 ウィンドウが開いたら [Finish (完了)] ボタンをクリックしてインストールを完了します。

    LinuxAndroid_Step15.png

  17. 次のステップに進む前に必ずコンピュータを再起動してください。

    LinuxAndroid_Note16.png

    Ubuntu の GUI を使用しない場合は、ターミナルに「sudo reboot」と入力してコンピュータを再起動します。

クリックして拡大

2 - Android デバイスの設定

Linux コンピュータに Android SDK をインストールしたら、Android デバイス向けモバイル ゲームの開発を始める準備はほぼ完了です。しかし、お使いの Android デバイスで Unreal Engine ゲームを実行できるようにするには、Android の開発環境を有効にする必要があります。

次の手順を開始する前に、USB ケーブルを使用できることを確認してください。

Android のデベロッパー オプションを有効化する

  1. USB ケーブルで Android デバイスを Linux コンピュータに接続します。

  2. Android デバイスの [Settings (設定)] アプリケーションを開きます。

    クリックしてフルサイズで表示。

  3. デベロッパー オプション をタップして [Developer Options (開発者オプション)] メニューを開きます。

    クリックしてフルサイズで表示。

    この項目が表示されない場合は、デバイスの [Developer Options (デベロッパー オプション)] を有効化する必要があります。[Developer Options (デベロッパー オプション)] を有効化するには [Settings (設定)] を開いて一番下までスクロールし、[About Phone (端末情報)] を選択します。[About phone] を選択して一番下までスクロールし、[Build number (ビルド番号)] を 7 回タップします。Android デバイスで開発者向けオプションを有効化する方法の詳細は、 Android のユーザー ガイド をご覧ください。

USB デバッグを有効化

  1. [Developer Options (開発者向けオプション)] メニューで [USB debugging (USB デバッグ)] を有効化します。

    クリックしてフルサイズで表示。

  2. USB デバッグを有効化する選択を確認するウィンドウが表示されます。USB デバッグを有効化する選択を確認するウィンドウが表示されます。プロンプトを読んで次に進み、 [OK] ボタンをタップします。

    クリックしてフルサイズで表示。

    USB デバッグが有効になりました。
    LinuxAndroid_Step20Note.png

  3. 次に Android デバイスを USB ケーブルから外し、数秒後に接続し直します。Android 4.2.2 以降を実行するデバイスを接続した場合、Linux コンピュータを介したデバッグを許可する RSA キーを受け入れるかどうか尋ねる次のダイアログが表示されます。[Always allow from this computer (このコンピューターを常に許可する)] の横にあるチェック ボックスをオンにして [OK] ボタンをタップします。

    クリックしてフルサイズで表示。

このセクションの結果

この時点で、デバイスを Linux コンピュータでデバッグできることを確かめる準備ができました。デバイスが適切に設定されたことを確認するには、ターミナルを開いて「adb devices」と入力します。

LinuxAndroid_Step22.png

Linux コンピュータに接続されているデバイスのリストが表示されます。表示された Android デバイスは Unreal Engine ゲームを実行できます。

ターミナルに「adb devices」と入力してもデバイスが表示されない場合は、Linux コンピュータで adb の設定が必要な可能性があります。adb の詳細とこのプログラムをコンピュータで設定する方法については、 Android Debug Bridge ユーザー ガイド を参照してください。コンピュータで adb のインストールと構成が完了していることが確かな場合は、次のトラブルシューティング手法を試します。

  • コンピュータから Android デバイスを取り外し、再び接続します。

  • [Always allow from this computer (このコンピューターを常に許可する)] の横にあるチェックボックスをオンにしていない場合、オンにします。

  • デバイスが未承認として表示されている場合は、Android デバイスで USB デバッグのために Linux コンピュータを承認します。

  • 正しく構成されていても、デバイスがメディア転送プロトコル (MTP) を使用してメディア デバイスとして接続されている場合は、デバイスが認識されないことがあります。

  • また、正しく構成されていても、デバイスが画像転送プロトコル (PTP) を使用してカメラ デバイスとして接続されている場合は、デバイスが認識されないことがあります。

3 - プロジェクトの作成

これまでに、Android SDK のインストールと構成、Android 開発環境の設定を行い、Android Debug Bridge が Linux コンピュータに接続されたすべてのデバイスをリスト表示できるようにしました。これで、UE4 で新しいモバイル プロジェクトの作成する準備が整いました。

モバイル プロジェクトを作成する

  1. Unreal Project ブラウザ を開き、次のオプションを使用して新しいブループリント プロジェクトを作成します。

    • [Third Person (サードパーソン)] テンプレートを選択

    • [Target Hardware (ターゲット ハードウェア)] を [Mobile/Tablet (モバイル/タブレット)] に設定

    • [Graphics Level (グラフィック レベル)] を [Scalable 3D or 2D (スケーラブルな 3D・2D)] に設定

    • [No Starter Content (スターターコンテンツ無し)] を選択

    クリックしてフルサイズで表示。

  2. プロジェクトに名前を付け、プロジェクトの フォルダ の場所を設定します。このチュートリアルでは、プロジェクトに「 LinuxAndroidProject 」という名前を付けます。

    クリックしてフルサイズで表示。

  3. プロジェクトの設定が完了したら、 [Create Project (プロジェクトを作成)] ボタンをクリックします。

    クリックしてフルサイズで表示。

このセクションの結果

クリックしてフルサイズで表示。

お疲れさまでした。モバイル デバイスで使用することのできる新しい UE4 プロジェクトを作成できました。

4 - レベルのデプロイ

レベルのデプロイとは、UE4 から Android デバイスにレベルを クック して 起動 することを意味します。モバイル アプリケーションを Android デバイスにデプロイするので、Linux コンピュータのコンパイル環境、Android デバイスの命令セット、デバイスのレンダリング機能など、さまざまな考慮事項があります。そのため、ThirdPersonExampleMap レベルを Android デバイスにデプロイする前に、最も一般的なデプロイ前の考慮事項をいくつか確認します。

Linux におけるデプロイ前の考慮事項

このリストは、ゲームをデバイスにデプロイする際に発生する可能性のある一般的な問題の回避に役立てていただけるように作成しました。アプリケーションをデプロイする前に、このリストを参照してください。

  • わかりきった考慮事項ですが、Android デバイスがコンピュータに適切に接続されていることを確認します。

  • 確認がまだの場合は、接続したデバイスが Android Debug Bridge (adb) によってリスト表示されていることを確認します。adb の詳細を知るには、ターミナルに「adb --help」と入力します。adb の詳細とこのプログラムをコンピュータで設定する方法については、 Android Debug Bridge ユーザー ガイド も参照してください。

  • 適切にゲームをビルド、クック、パッケージ化して Android にデプロイするには、JDK 8 をインストールして JAVA_HOME 環境変数が適切な JDK バージョンに設定されている必要があります。JAVA_HOME が適切に設定されていることを確認するには、ターミナルに「echo $JAVA_HOME」と入力します。正しい JDK バージョンが表示されない場合、 JDK 8 をダウンロード して Linux コンピュータにインストールし、JAVA_HOME 環境変数を新しくインストールした JDK に 設定します。Android SDK プロジェクト設定JAVA_HOME 環境変数を設定できます。

  • 適切な ARM アーキテクチャを対象にビルドしていることを確認します。不適切な場合、プロジェクトが正常にデプロイされません。デバイスで機能する命令セットを確認したら、エディタ内から該当する ARM アーキテクチャ サポートを選択します。それには、[Edit (編集)] > [Project Settings... (プロジェクト設定...)] > [Android] > [Build (ビルド)] の順に移動して、[Support arm7 (arm7 のサポート)] または [Support arm64 (arm64 のサポート)] を選択します。

  • 現在、Linux の UE4 には Vulkan レンダリング サポートが提供されていません。

  • サポートされているテクスチャ形式は Android デバイスごとに異なります。お使いの Android デバイスでサポートされているテクスチャ形式がわからない場合は、ターゲット テクスチャを Ericsson Texture Compression 1 (ETC 1) 圧縮スキームに設定します (ETC 1 はほとんどの Android デバイスでサポートされています)。複数のテクスチャのサポートについての詳細は、 各種 GL テクスチャ用の APK を複数作成する方法 に関する Android のドキュメントを参照してください。

利用可能なテクスチャ形式を確認する

現在サポートされているテクスチャに関して詳しく知りたい場合は、次の表に Android デバイスで一般的にサポートされているテクスチャを簡単にまとめているので参考にしてください。

フォーマット

説明

ETC1

すべての Android ベース デバイスでサポートされますが、アルファ テクスチャの圧縮はできません (圧縮されないまま格納されます)。アルファをうまく圧縮するには、RGB および別々のアルファ テクスチャの使用を推奨します。

ETC2

すべての OpenGL 3.x クラス デバイスでサポートされ、アルファ テクスチャの圧縮もサポートします。

ATC

Qualcomm Adreno GPU でサポートされ、アルファ テクスチャの圧縮もサポートします。

DXT

Nvidia Tegra GPU でサポートされ、アルファ テクスチャの圧縮もサポートします。

PVRTC

PowerVR GPU でサポートされ、アルファ テクスチャの圧縮もサポートします。

ASTC

最新のテクスチャ圧縮フォーマットで、ブロック サイズを指定して細かい品質調整を可能にします。アルファ圧縮をサポートします。現時点では使用できるデバイスは限られていますが、Vulkan Level 1 では必要になります。

レベルをデプロイする

Android デバイスにゲームをデプロイするための重要な考慮事項を確認したら、デプロイ プロセスを開始できます。

  1. まず、 ThirdPersonExampleMap が開いていることを確認します。

    クリックしてフルサイズで表示。

  2. [Devices (デバイス)] メニューを開くには、 メイン ツールバー[Launch (起動)] アイコンの横にある矢印をクリックします。

    クリックしてフルサイズで表示。

  3. [Devices (デバイス)] メニューを開いた状態で、Android デバイスを選択します。

    クリックしてフルサイズで表示。

  4. この時点で、Unreal Engine によって Android デバイスにレベルがデプロイされます。

    ビデオを見るとわかるように、UE4 ではアプリケーションのデプロイ プロセスの進捗状況がエディタの右下隅に表示されます。

  5. UE4 でプロジェクトのクックと起動が終了したら、レベルがデバイスで動作します。また、Unreal Engine アイコンも表示されています。このアイコンには、Android のアプリケーション ドロワーからアクセスできます。

    LinuxAndroid_Step29.png

サポートされているテクスチャ形式を判断する

お使いの Android デバイスでサポートされているテクスチャ形式がまだ疑問の場合は、次の手順を試してください。

  1. デバイスでゲームの実行中に、4 本の指で画面をタップします。

    LinuxAndroid_Step30.png

    お使いの Android デバイスでサポートされているテクスチャ フォーマットを示すダイアログが表示されます。

このセクションの結果

お疲れさまでした。Android デバイスで ThirdPersonExampleMap を実行することができました。

5 - ゲームのパッケージ化

チュートリアルではこれまでに、モバイル ゲーム プロジェクトを作成して Android デバイスにデプロイしました。しかし、ゲームを配布できるようにするには、プロジェクトをパッケージ化する必要があります。Android プラットフォームに配布できるようにプロジェクトをパッケージ化する手順は、次の通りです。開始する前に、留意点として重要なのは、プロジェクトのパッケージ化を [Development (開発)] モードで行うことです。テスト目的で、必ず最初に [Development (開発)] モードでゲームをパッケージ化することをお勧めします。満足できるゲームができたら、[Shipping (出荷)] モードでプロジェクトをパッケージ化できます。このモードでは、コンソール コマンド、統計情報、プロファイリング ツールを除外してパッケージ化します。

UE4 で利用できる各種ビルド コンフィギュレーションの違いの詳細については、 ビルド コンフィギュレーションのリファレンス ページを参照してください。

プロジェクトをパッケージ化する

  1. [File (ファイル)] メニューを開いて [Package Project (プロジェクトをパッケージ化)] までスクロールし、 [Android] にマウス カーソルを合わせて [Android (ETC1)] を選択します。

    クリックしてフルサイズで表示。

  2. [Open Directory (ディレクトリを開く)] メニューが表示されたら 、[New Folder (新規フォルダ)] ボタンを使用して Android_Builds という名前のフォルダを作成します。

    クリックしてフルサイズで表示。

  3. [Open (開く)] ボタンをクリックしてパッケージ化プロセスを開始します。

    クリックしてフルサイズで表示。

  4. UE4 でプロジェクトのパッケージ化が行われている間、右下隅に進捗状況インジケーターが表示されます。

    クリックしてフルサイズで表示。

  5. パッケージ化プロセス終了時には、パッケージ化プロセスが完了したことを示すメッセージが表示されます。

    クリックしてフルサイズで表示。

  6. 「Android_Builds」 フォルダに移動します。このフォルダの中に、 「Android_ETC1」 フォルダがあります。

    LinuxAndroid_Step36.png

  7. 「Android_ETC1」 フォルダを開いて、パッケージ化プロセスで作成したファイルを確認します。

    LinuxAndroid_Step37.png

    インストール および アンインストール シェル スクリプト (/.sh) に加え、ETC1 圧縮スキームをサポートする Android デバイスにプロジェクトをインストールするのに必要なすべてのファイルを含んだ Android アプリケーション パッケージ (/.apk) があります。

  8. フォルダ内を右クリックし、[Open in Terminal (ターミナルで開く)] を選択して、このフォルダの場所からターミナルを開きます。

    LinuxAndroid_Step38.png

  9. ターミナルに「./Install_LinuxAndroidProject_Development-arm64.es2.sh」と入力して、Android デバイスにプロジェクトをインストールします。

    クリックしてフルサイズで表示。

    シェル スクリプトの実行で問題が発生した場合は、ターミナルに「adb devices」と入力して、デバイスが本当にコンピュータに接続しているかどうかを確認します。

  10. インストール プロセス中、シェル スクリプトによってターミナルに次の出力が表示されます。

    クリックしてフルサイズで表示。

    シェル スクリプトによるインストール処理が完了すると、「Installation successful」 メッセージが表示されます。

このセクションの結果

インストール スクリプトにより Android デバイスへのゲームのインストールが完了し、プロジェクトがデバイスのアプリケーション ドロワーで表示されました。

クリックしてフルサイズで表示。

お疲れさまでした。ここでは、以下を学習しました。

✓ Linux 上で UE4 を使用してモバイル ゲーム開発を行うために Android SDK をインストールして設定する方法。
✓ Android の開発環境を有効にする方法。
✓ UE4 で Android モバイル ゲーム プロジェクトを作成する方法。
✓ UE4 から Android デバイスにレベルをデプロイする方法。
✓ 配布 (リリース) 用にモバイル ゲームをパッケージ化する方法。

次のセクションでは、新しく獲得したスキルを応用する方法をいくつか提案しています。

6 - 応用編

モバイル ゲームの開発には、相当な注意力を要します。デバイス互換性、モバイルのパフォーマンス、スペース制限については特にそうです。モバイル ゲームの開発中にベスト プラクティスを実施すると、モバイル ゲーム開発スキルを効率的にアップすることができます。習得したベスト プラクティスを使ってモバイル コンテンツを作成したら、別のデプロイ メソッドでモバイル ゲームをプレビューおよびデプロイする方法を学びましょう。このページの最後にある実践問題で、習得したモバイル開発の新しいスキルの腕試しができます。

ベスト プラクティス

ここまでのステップで、Andoird デバイス用のテンプレート モバイル UE4 プロジェクトの作成、パッケージ化、およびデプロイ方法を学習しました。次は、Linux でUE4 を使用したモバイル ゲームの作成に大きな影響を与えるデバイスの互換性、モバイル パフォーマンス、APK ベスト プラクティスについて考えてみましょう。

Android デバイスの互換性

モバイル パフォーマンス

APK パッケージ サイズの縮小

ターゲット ハードウェア / ソフトウェア プラットフォームの制約のため、モバイル ゲーム サイズの制限が必要な場合があります。モバイル ゲーム サイズを縮小するために、モバイル アプリケーションのパッケージ化に Android OS が使用するカスタム仕様ファイル形式である Android Application Package (APK) のサイズ縮小が必要な場合があります。パッケージ化したゲームのサイズを小さくする方法については、 APK パッケージ サイズを小さくする方法に関するリファレンス ページ を参照してください。

モバイル コンテンツを設計する

Linux で UE4 を使ってモバイル ゲームを開発する方法を学びました。実践として、デバイス使えるレンダリング機能を使ってゲーム コンテンツを作成すると良いと思います。以下のリファレンスを参照してください。

モバイル ゲームをプレビューする

モバイル ゲームを Android デバイスにデプロイする前に、エディタ内でゲームのプレビューが必要な場合があります。エディタ内でモバイル ゲームをプレビューする方法については、 モバイル サービス 概要ページを参照してください。

ワイヤレス ネットワークでデプロイする

これまでに、モバイル ゲーム コンテンツ設計のベスト プラクティスを学習し、エディタでモバイル ゲームのプレビューを行いました。これで、ワイヤレス ネットワークを通じて Android デバイスにゲームをデプロイする準備が整いました。ワイヤレス ネットワークを通じて Android デバイスに UE4 プロジェクトをデプロイする方法の詳細については、 Gear VR のデバッグ方法に関するリファレンス ページ を参照してください。

演習に挑戦

引き続きモバイル ゲームの開発スキルを試したい場合は、自力でいくつかの演習に挑戦してみてください。

  • サードパーソン テンプレート以外を使用して新しいモバイル プロジェクトを作成します。その後、新しく作成したプロジェクトを Android デバイスで実行してみます。

  • さまざまな Android テクスチャ形式を使用してプロジェクトをパッケージ化します。特定のデバイスでどのテクスチャ形式が機能するかを文書化します。

タグ
Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信