お世話になっております。
<br/>
Projectを起動し、ZenServerへキャッシュを作成。
その後、ProjectのEngineを切り替え(ディレクトリ階層が別のEngineへ切り替え)
再度Projectを起動すると、起動時にファイルの読み込みに失敗する症状が発生しています。(添付
<br/>
対応として、ZenServerのキャッシュをdropすると、問題無く起動出来たので
ProjectのEngineを切り替える前後両方が、同様のZenServerのキャッシュを使用していて
EngineDirが違う事によるローカルパスの問題でエラーが発生しているように見受けられました。
<br/>
上記について何か情報は有りますでしょうか。
以上、よろしくお願いします。
<br/>
<br/>
■再現方法
1. EpicGameLauncherでUE5.8.2を落とす
2. プロジェクトを作成(テスト時はTPS(BP)
3. Editorを起動し、プロジェクトランチャーで「起動」
4. .uprojectを右クリックして「Switch Unreal Engine Version」でEngineを切り替え
(D:\AAA\Engine → D:¥AAA¥BBB¥Engine
5. Editorを起動し、プロジェクトランチャーで「起動」
エラーが発生
LogProjectManager: Error: Failed to read file ../../../TPSBP_582EL/TPSBP_582EL.uproject: The document is empty., Line 1:
<br/>
■情報
・該当プロジェクトのZenServerのキャッシュをdropすることにより正常に起動します。
<br/>
[Attachment Removed]
Ken.Kuwano
(Ken.Kuwano)
September 30, 2026, 1:58am
2
お世話になっております。
ご認識の通り、Engine を切り替えても同じ Zen のキャッシュが使われます。ローカル Zen の保存先は Engine ごとではなく、マシン共通(%LOCALAPPDATA%\UnrealEngine\Common\Zen\Data)です。プロジェクトの識別も .uproject のパスのみで、Engine の場所は含まれません。
初回起動時に、Engine の親ディレクトリ(D:\AAA\Engine なら D:\AAA)が Zen 側に記録されます。ファイルの中身は持たず、この親からの相対パスでディスクを読みます。Engine を D:\AAA\BBB\Engine に切り替えてもこの記録は更新されないため、パスが別の場所を指し、.uproject が空として読まれます。ログの The document is empty. はこの状態です。キャッシュの drop で直るのは、この記録が消えて、次の起動で新しい Engine の場所が書き直されるためです。回避策としては、Engine 切り替え後に該当プロジェクトの Zen キャッシュを drop してから起動してください。
以上、よろしくお願いいたします。
[Attachment Removed]
お世話になっております。
EngineDirをZenのプロジェクトIDに含める機能は無いため、同じ.uprojectのままではキャッシュは分かれません。分けるには、EngineごとにZenのDataディレクトリを変える必要があります。ご提示のbatと環境変数が、Cook 結果を残したまま分ける方法です。
起動前に次を設定してからUnrealEditor.exeを起動してください。
set UE-ZenDataPath=D:\AAA\Engine\Saved\ZenData
start "" "D:\AAA\Engine\Binaries\Win64\UnrealEditor.exe" %*
もう一方の Engine では UE-ZenDataPath をその Engine 配下の別ディレクトリにします。この変数で指定した場所は既定パス扱いにならないため、切り替えても相手側のキャッシュは削除されません。Cook やプロジェクトランチャーの起動はエディタの環境変数を継承します。以下は補足事項です。
.uproject のダブルクリックや「Switch Unreal Engine Version」は bat を通らないため、テスト時の起動は bat に統一する必要があります。
レジストリの Zen\DataPath はマシン共通なので、Engine の分離には使えません。
各 Engine の BaseEngine.ini の DataPath を変える方法は起動経路を問わず有効ですが、既定パスの変更とみなされ、前回の Data ディレクトリが削除されます。往復時の Cook を残す目的には合いません。
[Attachment Removed]
返答ありがとうございます。
現状の動作が仕様という事で了解しました。
>回避策としては、Engine 切り替え後に該当プロジェクトの Zen キャッシュを drop してから起動してください。
あまり頻度は高くないのですが、ProjectのEngineを切り替えてテストを行う事があり
・Zenキャッシュの切り替えの手順増加によるヒューマンエラー
・起動失敗時にZenキャッシュが原因だと気付くまでの時間
・Zenのキャッシュをdropすることによる、次回Cookの本来不要である時間の増加
などが懸念点としてあります。
そこで此方としては「同ProjectのZenキャッシュをEngineDirで自動的に分ける」
というのが最適なのですが、なにか良い手法は有りますでしょうか。
候補としては下記があります。
・batなどを挟んで、環境変数によるZenキャッシュ場所の切り替え
[Attachment Removed]