Apple の M1 プロセッサの導入により、2021 年以降の Mac は ARM64 アーキテクチャを使用して製造されています。一方、Intel ベースの前世代型 Mac では x86-64 アーキテクチャが使用されています。
Apple は、Rosetta2 と呼ばれる命令トランスレータを提供してレガシー アプリケーションをサポートしていますが、Apple のストアフロントでは、開発者は両方のアーキテクチャのスライスを備えたゲーム用の単一のユニバーサル バイナリを提供しなければなりません。こうすることで、両方の世代のハードウェアで最善のパフォーマンスと安定性を引き出すことが可能になります。このページでは、Unreal Engine と両方のアーキテクチャとの互換性に関する情報と、ユニバーサル バイナリに対応する方法について説明します。
前提条件
このページでの説明や手順では、macOS で実行する Xcode を使ってプロジェクトをビルドすることを想定しています。先に進む前に、Unreal Automation Tool (UAT) と BuildCookRun コマンドについて十分に理解している必要があります。
macOS アーキテクチャを構成する
ビルドのターゲット アーキテクチャはいくつかの方法で指定できます。
- UAT では、
-specifiedarchitectureまたは-architecture=パラメータでコンパイルに使用するアーキテクチャを設定します。 - Xcode で、IDE の上部にあるドロップダウンからターゲット デバイスを選択します。
- Unreal Editor で、[Platforms (プラットフォーム)] > [macOS] をクリックします。
Apple デバイスの有効なアーキテクチャは次のとおりです。
| アーキテクチャ | 対応デバイス |
|---|---|
x86_64 |
Intel プロセッサを使用する macOS デバイス。 |
arm64 |
M1 および M2 プロセス以降を使用する macOS デバイス。 |
arm64+x86_64 |
すべての macOS デバイス。 |
Unreal Editor のユニバーサル バイナリのサポート
UE 5.2 以降では、Epic Games Launcher とともに配布される Unreal Editor の macOS ビルドが、ユニバーサル バイナリでビルドされます。Unreal Editor は、デバイスのアーキテクチャに適したスライスを自動的に使用します。
Xcode でソースからエディタをビルドすると、自動的に x64 アーキテクチャが使用されますが、代わりにユニバーサル バイナリでエディタをビルドするためにアーキテクチャを arm64+x86_64 に設定できます。
代わりに x86 用のエディタをビルドするには、ターゲット デバイスを [My Mac] から [My Mac (Rosetta)] に変更します。
ARM64 および x86-64 向けのバイナリを作成する
ユニバーサル バイナリを使用してプロジェクトをビルドするには、BuildCookRun のアーキテクチャとして arm64+x86_64 を使用します。
-specifiedarchitecture=arm64+x86_64
これにより、ARM64 アーキテクチャと x86-64 アーキテクチャの両方のスライスを含むプロジェクトがビルドされます。これらのビルドをデバイスに配布すると、そのデバイスのアーキテクチャに適切なバイナリが自動的に使用されます。