Unreal Engine のクックには時間がかかります。特に初めて新しいバージョンの Editor を起動する場合はシェーダーコンパイルに時間がかかり、スプラッシュ画面のまましばらく待つことになります。
複数台 PC を持っている場合はそれぞれの PC 毎に同じビルドが走るのですが、Shared DDC を使うとこの起動待ち時間を大幅に短縮することができます。
UE5 5.5 からは共有フォルダを使わずに Zen Storage Server を使った Shared DDC が使えるようになりました。直接ファイルシステムを使うよりも効率が良く高速化されています。
普段使ってる PC でも Shared DDC が使えるように、できるだけ簡単な手順で Zen Server をセットアップしてみます。
公式のドキュメントはこちらです
・UNREAL ENGINE : Zenserver as Shared DDC
セットアップ手順
OS は Windows 11 Home / Pro どちらでも構いません。以下の手順は Home を元に解説しています。
(1) インストールするフォルダの準備
今回は仮に C:\zen 以下に作成するものとして説明します。パスは必要に応じて置き換えてください。C:\zen 以下に ZenInstall と ZenData フォルダを作成します。
C:\zen\ZenInstall
C:\zen\ZenData
(2) バイナリファイルのコピー
エンジンフォルダ Engine\Binaries\Win64 の中にある zen.exe と zenserver.exe を C:\zen\ZenInstall ににコピーします。
Epic Launcher 版エンジンを使用している場合は以下のようなパスになるかと思います。もちろん GitHub 版(ソースコード版)でも構いません。その場合はコピー元のバスを置き換えてください。
C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\Win64\zenserver.exe
C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\Win64\zen.exe
を
C:\zen\ZenInstall\zenserver.exe
C:\zen\ZenInstall\zen.exe
にコピーする。
(3) zen_config.lua ファイルを用意します
以下の内容で zen_config.lua ファイルを作成し、C:\zen\ZenInstall\zen_config.lua に置きます。
-- Zen Store Lua config
server = {
dedicated = true,
datadir = "C:\\zen\\ZenData",
abslog = "C:\\zen\\ZenData\\local.log",
debug = false,
sentry = {
disable = true,
allowpersonalinfo = false,
}
}
network = {
httpserverclass = "httpsys", -- httpsys|asio
port = 18558,
}
gc = {
intervalseconds = 28800, -- every 8 hour
lightweightintervalseconds = 3600, -- every hour
cache = {
maxdurationseconds = 864000, -- 10 days
}
}
cache = {
enable = true,
accesslog = false,
upstream = {
upstreamthreadcount = 4,
policy = "disabled", -- readwrite|readonly|writeonly|disabled
},
memlayer = {
targetfootprint = 1073741824, -- 1 GB
triminterval = 120, -- max every 2 minutes
maxage = 172800, -- 2 days
}
}
datadir, abslog のパスは必要に応じて書き換えてください。
ポート番号はデフォルトで 8558 ですが、これはローカルの ZenServer でも使用します。同じ PC 上で Unreal Editor も走らせる可能性がある場合はポート番号を変更します。今回の例では 18558 に置き換えました。
(4) netsh コマンドの実行
スタートボタン右クリックから「ターミナル(管理者)」を実行します。その後ターミナル内の PowerShell で以下のコマンドを実行します。
netsh http add urlacl url=http://*:18558/ user=$Env:USERNAME
設定結果の確認は「netsh http show urlacl」でできます。間違えた場合は「netsh http delete urlacl url=http://*:18558/ 」で削除してからやり直すことができます。
(5) firewall の設定
- スタートメニューで検索欄に「fire」を入力して「Windows Defender ファイアウォール」を起動します。(または 設定画面の検索から「ファイア」→「Windows Defender ファイアウォール」)
- 左側の「詳細設定」をクリックしてファイアウォールのダイアログを開きます
- 左上の「受信の規則」を選択して、右側の “操作” の中から「新しい規則…」をクリックします
- 規則の種類で「ポート」を選択して「次へ」
- 特定のローカルポートに「18558」を入れて「次へ」
- 「接続を許可する」が選択されていることを確認して「次へ」
- 選択しているネットワークの種類に応じて変更します。もしよくわからない場合はデフォルトの全部選択されてるまま「次へ」
- 名前を入力できるので「Zen DDC Server」を入れて「完了」
他のファイアウォールソフトウエアを使用している場合は、そちらの設定も行っておいてください。
(6)バッチファイルによる起動
これで完了です。あとは以下のようなバッチファイルを用意して実行するだけです。インストールフォルダが異なる場合は、パスを正しいものに書き換えてください。
@echo off
C:\zen\ZenInstall\zenserver.exe --config=C:\zen\ZenInstall\zen_config.lua
pause
もしこの状態で自動起動させたい場合はショートカットをスタートアップに入れておきます。
C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
個人で使う分にはこれで十分だと思いますが、サービスとして起動することもできます。とりあえず先に動作確認してからサービスで起動する方法を解説します。
動作確認
- サーバーを起動した PC のブラウザで以下のページを開くことができるか確認します。
- http://localhost:18558/dashboard
- 次に、他の PC からも開けるか確認します。
- http://<インストールしたPCのIPアドレス>:18558/dashboard
- 例えば Zen Server を起動した PC が 192.168.0.4 なら 「 http://192.168.0.4:18558/dashboard 」です。
ここでなにか設定できるわけではないので、それぞれページが表示されたら OK です。
UE5 の設定と確認
(1) Shared DDC の設定
プロジェクト側で設定する場合は Config/DefaultEngine.ini に、エンジン側で設定する場合は Engine/Config/BaseEngine.ini の最後に以下の行を追加してください。
[StorageServers]
Shared=(Host="192.168.0.4:18558", Namespace="ue.ddc", EnvHostOverride=UE-ZenSharedDataCacheHost, CommandLineHostOverride=ZenSharedDataCacheHost, DeactivateAt=60)
Host= の IP アドレスの部分は、Zen Storage Server を起動した PC の IP アドレスに置き換えてください。上の例で “192.168.0.4” となっている部分を置き換えます。
(2) Editor の起動と確認
- 何らかのプロジェクトで Editor を起動します。
- エディタの右下にある「派生データ」から「キャッシュ統計情報を表示」を選択します
- ダイアログが開くので、表示の中に「Zen リモート」が含まれていれば OK です

サービスとして起動する
起動バッチファイルを使わずに、サービスとして自動的に走らせておくことができます。もしサービス化する場合は、先にバッチファイルで起動した Zen Server をクローズし、スタートアップフォルダに作ったショートカットも削除しておいてください。
(1) サービスの登録
スタートボタン右クリックから「ターミナル(管理者)」を開いて、以下のコマンドを実行します。C:\zen\ZenInstall のパス部分は必要に応じて置き換えてください。
sc.exe create "Zen Store" start=auto binpath="C:\zen\ZenInstall\zenserver.exe --config=C:\zen\ZenInstall\zen_config.lua"
続けて以下のコマンドも実行します。
sc.exe failure "Zen Store" reset=60 actions=restart/60000
(2) サービスの設定
- スタートボタン右クリックから「コンピューターの管理」を開きます
- 「サービスとアプリケーション」の中にある「サービス」を選択します
- サービス一覧の中から「Zen Store」を探してダブルクリックします
- 「ログオン」のタブを選択し、下側の「アカウント」を選択します
- アカウント欄右側の「参照」を開いて、入力欄に自分のユーザー名を入れて「名前の確認」をクリックします
- 名前が展開されたら「OK」をクリックします
- ログインパスワードを入れて「適用」をクリックします
- ここで「アカウント ~ にサービスとしてログオンする権利が与えられました。」とダイアログ表示が出れば成功です
- 「全般」タブに切り替えて「開始」します
これでサービスとして自動的に起動するようになりました。
もし「サービスとしてログオンする権利が与えられました。」が表示されない場合
Windows 11 Pro の場合は以下のようにします
- スタートメニューを表示し、検索欄に「ローカル」を入力して「ローカルセキュリティポリシー」を起動します
- 「セキュリティの設定」 → 「ローカルポリシー」 → 「ユーザー権利の割り当て」 → 「サービスとしてログオン」をダブルクリックします
- 「ユーザーまたはグループの追加」をクリックします
- 自分のユーザー名を入力して「名前の確認」を押します
- 名前が展開されたら「OK」→「OK」をクリックして閉じます
Windows 11 Home の場合は上の設定ができません。サービスとして起動したい場合は公式のドキュメントに従い、別のローカルユーザーを作成してみてください。もしくは個人で使う場合はサービス化しなくても、バッチファイルによる起動のままでも十分だと思います。
設定の調整など
週末しか使用しないなど、Unreal Engine の利用頻度が低い場合は zen_config.lua 内の期限設定を長めに変更した方が良いかもしれません。