Apple の M1 プロセッサが登場したことで、2021 年以降の Mac には iOS デバイスと同じ ARM64 アーキテクチャが使用されています。また、Intel ベースの前世代型 Mac では x86-64 アーキテクチャが使用されています。
Apple では、「Rosetta2」と呼ばれるインストラクション トランスレータを提供してレガシー アプリケーションをサポートしていますが、Apple Arcade では、デベロッパーに対して、両方のアーキテクチャに対する明確なサポートを含む、ゲーム向けの単一のユニバーサル バイナリを提供することを必須としています。こうすることで、両方の世代のハードウェアで最善のパフォーマンスと安定性を引き出すことが可能になります。
このページでは、このレベルのサポートを含む Unreal Engine (UE) プロジェクトをビルドするための以下の情報を提供します。
- 両アーキテクチャとの Unreal Engine の互換性に関する情報。
- 両アーキテクチャを別々にサポートする方法。
- 両アーキテクチャをサポートするユニバーサル バイナリをビルドする方法。
前提条件
このページでの説明や手順では、MacOS で実行する Xcode を使ってプロジェクトをビルドすることを想定しています。先に進む前に、Unreal Automation Tool (UAT) と BuildCookRun コマンドについて十分に理解している必要があります。
互換性に関するメモ
UE 5.1 では、Apple Silicon デバイス上の Xcode でプロジェクトをビルドすると、エディタ とスタンドアロン ビルドの両方で、Apple Silicon のネイティブ サポートでコンパイルするよう自動的に設定されます。ただし、Unreal Marketplace のプラグインやサードパーティのライブラリの中には、まだ ARM64 をサポートしていないものがあるため、Unreal Editor の ARM64 サポートは実験的なものとなっています。x86用のエディタをビルドするには、ターゲットデバイスを My Mac から My Mac (Rosetta) に変更します。

Unreal Engine は、ターゲット アーキテクチャを arm64
に設定することで ARM64 のサポートを含むプロジェクトのパッケージ ビルドを出力できます。詳細は以下のセクションを参照してください。
ARM64 および x86-64 向けのバイナリを作成する
異なるバイナリを作成する
それぞれのアーキテクチャ向けにバイナリをビルドするには、Unreal Automation Tool の BuildCookRun コマンドを使ってビルドを開始し、ターゲット アーキテクチャを設定する必要があります。
まず、コマンド ラインで Unreal Engine のインストール ディレクトリに移動します。
cd /Users/Current.User/Epic\Games/UE5.1
次に、BuildCookRun
引数を含む「RunUAT.sh
」 を実行してビルドを開始します。
Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -project=MyProject -platform=Mac -architecture=arm64 -build -cook -stage -deploy
-architecture=
コマンドを BuildCookRun
に加えることで、どちらのアーキテクチャ向けにビルドするかを指定します。
たとえば、次のコマンドでは ARM64 向けのビルドを作成します。
-architecture=arm64
次のコマンドでは x86 向けのビルドを作成します。
-architecture=x86_64
それぞれのアーキテクチャ向けにプロジェクトを初めてビルドする際は、通常より時間がかかります。その後、クック済みのデータが UAT によってキャッシュされ、それ以降はより短い時間でビルドされます。
x86-64 と ARM64 のバイナリを別々にコンパイルすることで、両方のアーキテクチャをサポートするプロジェクトをビルドできます。その後、ビルドをこれらのバイナリとともにそれぞれ適切なマシンに配布します。ただし、Apple Arcade 向けにはマージされたユニバーサル バイナリを作成する必要があります。また、配布の面ではユニバーサル バイナリのほうがより便利です。
UAT を使用してユニバーサル バイナリを作成する
ユニバーサル バイナリを含むプロジェクトをビルドするには、BuildCookRun
で次をアーキテクチャとして使用します。
-specifiedarchitecture=arm64+x86_64
こうすることで、ARM64 と x86-64 の両方のアーキテクチャをサポートするプロジェクトがビルドされます。これらのビルドをデバイスに配布すると、そのデバイスのアーキテクチャに適切なバイナリが自動的に使用されます。