UE5 の UnrealBuildAccelerator で C++ とシェーダーのコンパイルを高速化する

Unreal Build Accelerator (UBA) を使うと、複数台の PC を使って UnrealEngine 5 のビルド時間を短縮することができます。UBA は UE5 5.4 で Beta 機能として搭載され、5.5 以降正式版になりました。以下そのインストール方法や設定方法についてまとめます。以前 5.4 で解説を行いましたがそのアップデートとなります。

1. サーバーのインストール (Windows)

どれか一台の PC をサーバーとしてセットアップします。

(1) Horde Server のインストール

  1. UnrealHordeServer.msi をインストールします
    • ソースコード版エンジンの Engine/Extras/Horde/UnrealHordeServer.msi
    • または GitHub の Release ページから直接ダウンロードできます
  2. 途中で出てくる「Horde Server Configuration」はデフォルトのままで OK です
    • Port は 13340
  3. 完了したら自動的にブラウザが開きます
    • 「UNREAL ENGINE HORDE」のページが表示されていれば完了です。HordeServer のドキュメントをここから読むことができます。
    • もし自動的に開かない場合は「 http://localhost:13340 」を開いてください

(2) Windows Firewall の設定

Port 13340 で受信できるように許可します

  1. スタートメニューで “fire” を検索して「Windows Defender ファイアウォール」を開きます
  2. 左側の「詳細設定」をクリックして、「セキュリティが強化された Windows Defener ファイアウォール」を立ち上げます
  3. 「ローカル コンピューター のセキュリティ」の中の「受信の規則」をクリック
  4. 一番右の「操作」の中にある「受信の規則」にある「新しい規則…」をクリック
  5. 「新規の受信の規則ウィザード」が開くの以下の順番に入力します
    1. 「ステップ: 規則の種類」で「ポート」を選択して「次へ」
    2. 「ステップ: プロトコルおよびポート」で TCP(T) のまま、「特定のローカルポート」に「13340,13342」を入力して「次へ」
    3. 「ステップ: 操作」で「接続を許可する(A)」のまま「次へ」
    4. 「ステップ: プロファイル」は「パブリック」からチェックを外して「次へ」
    5. 「ステップ: 名前」に “Horde Server 13340,13342” と入力して「完了」

2. Horde Agent のインストール (Windows)

分散ビルドをさせたい PC で Horde Agent をインストールします。Agent は何台でも構いません。Horde Server を入れた PC にもインストールできます。

(1) Unreal Toolbox のインストール

  1. ブラウザで Horde Server をインストールした PC の Port 13340 を開きます
    • 「 http://<HordeサーバーのIPアドレス>:13340 」
    • 例えば IP アドレスが 192.168.0.100 なら「 http://192.168.0.100:13340 」
  2. 開いたページ上部メニューの「TOOLS」から「Downloads」を選択します
  3. 一番下の「Unreal Toolbox (Windows Installer)」をダウンロードします
  4. ダウンロードした UnrealToolbox.msi をインストールします
  5. 「Horde Server URL:」の入力欄が出たらサーバーの URL を入力します
    • 例えば IP アドレスが 192.168.0.100 なら「 http://192.168.0.100:13340 」
  6. インストールが完了すると Unreal Toolbox の設定画面が開くので次に進みます

(2) Unreal Horde Agent のインストール

  1. Toolbox のインストールが完了すると Unreal Toolbox の設定画面が自動的に開きます
    • もし開かない場合はスタートメニューから Unreal Toolbox を直接開いてください
  2. Toolbox 上で「Horde Agent (Windows Installer)」をインストールします
    • General → Tools の中にある「Horde Agent」の右の「Add」をクリック
  3. Horde Agent のインストーラーが立ち上がるのでそのままインストールします
  4. 途中の「Horde Server URL:」は先程 Toolbox インストール時に入れたものと同じです
    • 最初から URL が入ってるので変更不要です
    • もし手動で入力するなら「 http://<HordeサーバーのIPアドレス>:13340 」
  5. 「Sandbox directory:」もデフォルトのままで OK です
    • 別の場所に設定しても構いません
  6. 最後の画面で「Enroll agent with Horde server」にチェックを入れたまま「Finish」
    • ブラウザが開いて自動的に Agent Enrollment 画面になるので次に進みます

(3) Agent PC の登録

  1. ブラウザページに「Enroll Agent ~」とダイアログが表示されていたら青い「Register」ボタンをクリックします
  2. その後 PC のブラウザで「 http://<HordeサーバーのIPアドレス>:13340/agents 」を開いて、登録した PC が一覧に含まれていれば登録完了です

もし自動的にブラウザが開かなかったり、Agent 一覧に PC が表示されていない場合は以下の手順で登録を行います。

  1. Windows のタスクトレイにある Unreal の “u” アイコン右クリックから「Enroll with Server…」
  2. ブラウザが開いて “Agent Enrollment” のページが開くので、「Enroll Agent~」のダイアログで「Register」をクリック
  3. もし自動的にダイアログが出ていない場合は、自分の PC 名にチェックを入れて右上の「Enroll Agents」をクリック
    • すでに登録済みの場合はこの画面が出ないことがあります。agents のページで確認してみてください

    (4) Windows Firewall の設定

    サーバーと同じように Port 7000-7010 で通信できるように設定しておきます。

    1. スタートメニューで “fire” を検索して「Windows Defender ファイアウォール」を開きます
    2. 左側の「詳細設定」をクリックして、「セキュリティが強化された Windows Defener ファイアウォール」を立ち上げる
    3. 「ローカル コンピューター のセキュリティ」の中の「受信の規則」をクリック
    4. 一番右の「操作」の中にある「受信の規則」にある「新しい規則…」をクリック
    5. 「新規の受信の規則ウィザード」が開くの以下の順番に入力
      1. 「ステップ: 規則の種類」で「ポート」を選択して「次へ」
      2. 「ステップ: プロトコルおよびポート」で TCP(T) のまま、「特定のローカルポート」に「7000-7010」を入力して「次へ」
      3. 「ステップ: 操作」で「接続を許可する(A)」のまま「次へ」
      4. 「ステップ: プロファイル」は「パブリック」からチェックを外して「次へ」
      5. 「ステップ: 名前」に “Horde Agent 7000-7010” と入力して「完了」

    3. Unreal Engine 側の設定

    UE5 5.7 以降

    ~Engine.ini に以下の設定を追加します。同じエンジンを使うプロジェクト全部で同じ設定を使う場合は Engine 側の Engine/Config/BaseEngine.ini に記述します。プロジェクト側の Config/DefaultEngine.ini や UserEngine.ini で定義しても構いません。

    [Uba.Provider.Horde.UE5]
    Enabled=true
    ServerUrl="http://<HordeサーバーのIPアドレス>:13340/"
    MaxCores=500
     
    [UbaController]
    +Providers=Uba.Provider.Horde.UE5

    例えば Horde Server をインストールした PC の IP アドレスが 192.168.0.100 の場合は次のようになります。

    [Uba.Provider.Horde.UE5]
    Enabled=true
    ServerUrl="http://192.168.0.100:13340/"
    MaxCores=500
     
    [UbaController]
    +Providers=Uba.Provider.Horde.UE5

    これで C++ やシェーダーのビルドが複数の PC に分散されるようになります。

    UE5 5.6 以前

    UE5 もしくは HordeServer のバージョンによって設定方法に違いがあります。UE5 5.6 以前など古いバージョンを使用している場合は以下のページも参照してください。

    C++ のビルド分散ビルドには DefaultEngine.ini だけでなく BuildConfiguration.xml の設定も必要なので注意してください。

    関連ページ