概要
Unreal Engine は、モバイル デバイス向けゲームの開発時に、デベロッパーがハイエンドのレンダリング、高度なツール、スケーラブルなワークフローを利用できるようにしています。 モバイル ハードウェアで高い忠実度を実現するには、開発全体にわたって慎重に検討したプランニングと一貫性のあるパフォーマンス最適化が必要になります。
このページは、「">Unreal Engine でマルチプラットフォーム プロジェクトをビルドする<block-relative-link application-id="3581142" document-id="3948109" is-deleted="false" use-document-title="true」ページで紹介されている概念に基づいており、モバイル プラットフォームでのプロジェクトの開発、最適化、デプロイに重点を置いています。
Unreal Engine で Apple および Android のビルド サポートをインストールする
Unreal Engine をコンピュータにインストールする際に、[Options (オプション)] ボタンをクリックしてさまざまなインストール オプションを選択することができます。 [Options] メニューでは、[Target Platforms (ターゲットプラットフォーム)] リストを使用して、各モバイル プラットフォームで必要とされるバイナリを Unreal Engine とともにインストールできます。
バイナリは、ターゲット プラットフォーム用のプロジェクトを開発するために必要とされるものを提供します。 ソフトウェア開発キット (SDK) とネイティブ開発キット (NDK) (このページの「パッケージ化」セクションで説明している) は、プロジェクトをターゲット プラットフォームにパッケージ化するために必要とされるものを提供します。
開発対象とするターゲット プラットフォームを有効にすると、このページの「パッケージ化」セクションでの説明に従って、ゲームをパッケージ化するために必要な SDK と NDK を利用することができます。
任意指定のターゲット プラットフォームを Unreal Engine とともにインストールする方法の詳細については、「Unreal Engine をインストールする」ページを参照してください。
パッケージング
Unreal Engine でのビルド操作の一環として、モバイル デバイス用のパッケージ化には、一定の要件が伴います。 各モバイル プラットフォームには、ゲームのパッケージ化およびターゲット デバイスでのゲームのデプロイに必要とされる特有の前提条件およびコンポーネントがあります。 前提条件がインストールされていると、ビルド操作は同様の方法で動作します。
リンゴ
Apple デバイス (iOS、tvOS、iPadOS) 用のパッケージ化には、署名付きビルドをパッケージ化するために Xcode がインストールされている Mac が必要であり、デベロッパーは Apple Developer ページでの証明書の署名およびプロビジョニング プロセスを行う必要があります。 その詳細については、「iOS プロジェクトのパッケージ化」ページを参照してください。
Windows ユーザーは、Mac にリモート接続して、ビルドのデプロイおよびコンテンツのクック処理を行うための特別なワークフローを利用することができます。 「リモート Mac ビルド」ページで、Windows 上で Apple デバイス用のリモート ビルド パイプラインをセットアップするために必要とされる手順の概要を示しています。 Apple の Metal API 用にシェーダーをコンパイルする方法については、「Windows Metal シェーダー コンパイラ」ページを参照してください。
Android
Android デバイス用のパッケージ化には、特定の Android NDK および SDK の要件を満たしている Android Studio が必要です。
Unreal Engine のユーザーは、Turnkey を使用してセットアップ プロセスを自動化することができます。 Android SDK および NDK のセットアップの詳細については、「Turnkey のセットアップ」ページを参照してください。
お使いのシステムで Android Studio または Android SDK がすでにインストールされている場合やインストールが競合する場合は、手動セットアップ プロセスに従う必要があります。
Android デバイスでは GPU ファミリごとに異なり、 一部のファミリでは Android Vulkan レンダリング レベルがサポートされており、それ以外では OpenGL ES 3.2 にフォールバックします。
Android のストアページもそれぞれ異なっています。 ターゲットのストアページのガイドラインおよび要件を確認して、ターゲットとしているアプリケーションが許容できるサイズになるようにします。 Google Play ストアを利用している場合は、Android App Bundles を使用することができます。
レンダリング機能
ほとんどのモバイル デバイスには、デスクトップやゲーム コンソールのハードウェアと比べてより多くのハードウェア制限があるため、Unreal Engine には、デバイスのハードウェア仕様や機能のサポートに応じて、モバイル デバイス向けの複数のレンダリング パスが付属しています。 それらのレンダリング パスでは、Unreal Engine のレンダリング機能 (ライティングやテクスチャなど) の多くでパフォーマンス指向のモデルが使用され、サポートされていないポストプロセスは除去されています。
Unreal Engine では、モバイル デバイスでの使用にカスタマイズされたフォワード シェーディングとディファード シェーディングの両方のモデルが提供されており、デスクトップ レンダーもサポートされています。 シェーディング モデルの詳細、およびそれらの利用方法の詳細については、「レンダリング モードとシェーディング モード」ページを参照してください。
ほとんどのモバイル デバイスではディファード シェーディングがサポートされており、ライティングが強化され、マテリアル命令数が減らされているために効率が向上することもよくあります。特に、動的ライティング、リアルタイムのグローバル イルミネーション、ディスタンス フィールド ベースのエフェクト (動的シャドウなど) を使用するプロジェクトでは効率が向上します。
モバイル デバイス向けのディファード シェーディングの詳細については、「レンダリング モードとシェーディング モード」ページの「モバイル ディファード シェーディング」セクションを参照してください。 フォワード シェーディングは、事前計算されたライティングを使用するプロジェクトでメリットがあります。
モバイル デバイス向けのレンダリング機能全体の詳細については、「モバイル レンダリング機能」ページを参照してください。
最適化
最適化はどのようなプロジェクトでも重要であり、モバイル プラットフォームは通常、ハードウェアの制限によって PC やコンソール デバイスと比べて能力が低いため、モバイル プラットフォーム向けの開発では特に重要です。 そのため、開発プロセスの一環として最適化を早期に始めて頻繁に行うことが重要です。
デバイス プロファイルとスケーラビリティ設定を使用して、レンダリング設定をハードウェアごとにカスタマイズすることができます。
スケーラビリティ設定を使用して、機能 (シャドウ、フォリッジ、メッシュ ディテールなど) ごとに品質レベルを定義することができます。 そして、デバイス プロファイルで、適合するデバイスにそれらの設定をマッピングします。 デバイス プロファイルの詳細、およびその設定方法の詳細については、「デバイス プロファイルの設定」ページを参照してください。 スケーラビリティ設定のさまざまなオプションの詳細については、「スケーラビリティ」ページを参照してください。
詳細については、「Android のデバイス プロファイルとスケーラビリティをカスタマイズする」を参照してください。
Unreal Engine の多数の機能の開発はプラグインを通じて処理されています。 これらのプラグインの多数は有効になっており、[Plugins (プラグイン)] ウィンドウ ([Edit (編集)] > [Plugins (プラグイン)]) で確認できます。 モバイル プロジェクトでは、モバイル開発に影響を及ぼさない多数のプラグインを無効にすることができます。 一般的なモバイル最適化手順の詳細については、「モバイル最適化ガイド」ページを参照してください。
アプリケーションのサイズ
アプリケーションのサイズは、ゲームをデプロイする上で重要な要素です。 ストアページでは多くの場合、無線通信で配信できるものが制限されています。 いくつかの主要な最適化で、アプリケーションのサイズを制限することができます。
1 つのプロジェクトを複数の .pak ファイルに分割するには、チャンク化を使用します。これは、コンテンツを効率的に整理および配信するのに役立ちます。
iOS プロジェクトで iOS ビルドを最適化する方法については、「パッケージ化した iOS 向けゲームのサイズ」ページを参照してください。 Android プロジェクトで Android ビルドを最適化する方法については、「Android バイナリ サイズを削減する」ページを参照してください。
オンデマンド コンテンツ配信は、必須ではないアセットを分離し、必要になったときにそれらのアセットだけを配信できるようにするシステムです。
ChunkDownloader は、ランタイム時にリモート サーバーからコンテンツをダウンロードおよびマウントできるようにする、Unreal Engine でのパッチ適用ソリューションです。 ChunkDownloader を使用してコンテンツをオンデマンドで配信することができるため、すべてのアセットをプロジェクトと一緒にパッケージ化する必要がなくなり、アプリケーションのファイル サイズが削減されます。 詳細については、「パッチのための ChunkDownloader の使用」ページを参照してください。
Google Play Asset Delivery(GooglePAD) は、アプリの初期パッケージにすべてのコンテンツをバンドルするのではなく、Android アプリをインストールした後に、モデル、テクスチャ、サウンドなどの大きいアセット ファイルを Android アプリに配信するためのソリューションです。 そうすることで、アプリケーションのファイル サイズが削減されます。
デバッグ
モバイル デバイスでのデバッグでは、一連のツールとワークフローを使用する必要があり、そのいくつかは各プラットフォームに特有です。 これらのツールを使用して、ゲームでの問題を特定し、モバイル デバイス上でスムーズに実行されるようにすることができます。
リンゴ
Apple デバイス上でプロジェクトをデバッグするには、Apple の統合開発環境である Xcode を使用する必要があります。 Xcode は、iOS、iPadOS、tvOS のデバイスでの問題を特定および修正するのに必要なツールを提供しています。 サポートされているワークフローの全般的な詳細については、「最新の Xcode ワークフロー」ページを参照してください。
「Xcode を使用して iOS プロジェクトをデバッグする」ページでは、Apple デバイス上でプロジェクトをデバッグするための手順について詳しく説明しています。 また、「Xcode iOS シミュレーターを使用する」ページでは、物理デバイスを必要としない、各種 iOS デバイス上でのプロジェクトのテストについて詳しく説明しています。
Android
Android デバイス上でプロジェクトをデバッグするには、Android Studio または Visual Studio を使用します。 どちらのツールでも、Android デバイスで実行しているゲームでの問題を特定および解決するために必要な機能が提供されています。
「Android プロジェクトのデバッグ作業」ページでは、デバッグを開始するための手順について詳しく説明しています。 Android Studio は、物理デバイスを必要とせずに各種 Android デバイス上でプロジェクトをテストするための Android Emulator を提供しています。
Visual Studio では Android Game Development Extension (AGDE) を使用してデバッグすることができます。
ADGE に関する Google のライセンス条件の最新情報については、「AGDE について」ページを参照してください。
Android Debug Bridge (ADB) を使用して Android デバイス上のアプリケーションとやり取りするか、Unreal Engine アプリケーションと特別に連携することに特化した Unreal Android File Tool (UAFT) を使用することができます。
モバイル プレビューア
モバイル プレビューアは、さまざまなモバイル デバイスおよび異なるモバイル レンダリング パスでレベルがどのように見えるかを、レベル ビューポートで直接プレビューするのに役立ちます。 プロジェクトがどのように見えるかの基準を得ることに適していますが、デバイス自体でのテストほど完全に表現するものではない場合があります。
Unity デベロッパーは、Unity の Device Simulator に慣れているかもしれません。 Unreal のモバイル プレビューアは Device Simulator に相当するものであり、選択したデバイスに近いエミュレートされたレンダリング環境でのゲームのプレビューなどの機能が追加されています。
異なるプレビュー レンダリング レベルを有効にすると、シーン内のマテリアルが再コンパイルされて、選択したレンダラ プレビューの外観と機能セットがエミュレートされます。 モバイル プレビューアを使用して、エディタを起動し直さなくても、レンダリング レベルをシームレスに切り替えることができます。
特定のデバイスでのレンダリングの使用およびテストの詳細については、「モバイル プレビューア」を参照してください。