
Windows 11でUE5をソースビルド中「ShaderCompileWorker.exeを起動できない」原因と直し方(CARLAのCMake buildも含む)
UE5をソースからビルドしてCARLAを起動しようとした際、cmake --build Build --target launch の段階で ShaderCompileWorker.exe が起動できず失敗することがあります。GitHubのCARLA側でも、Windows 11環境で同様の症状が報告され、Visual Studioから該当ターゲット(ShaderCompileWorker)を直接ビルドすると通る、という回避例が出ています。GitHub
この記事では、なぜその現象が起きやすいのかを分解し、再発しにくい形で直すための確認ポイントを、UE5/Windows 11の定番ハマりどころに絞って整理します。
- Windows 11でUE5をソースビルド中「ShaderCompileWorker.exeを起動できない」原因と直し方(CARLAのCMake buildも含む)
ShaderCompileWorker.exeとは:失敗すると何が起きる?
ShaderCompileWorkerは、UEがシェーダーを並列コンパイルするための別プロセスです。エディタやゲーム起動時に裏で呼ばれ、これが起動できないとシェーダー生成が進まず、起動・Cook・初回ロードが止まるタイプのエラーになります。特にソースビルド直後や環境移行直後に発生しやすいのが特徴です。
まず確認すべき「発生パターン」:CMakeのlaunchだけ落ちる理由
今回の文面だと、CMakeから --target launch を叩いたときに失敗し、Visual Studioで直接ビルドすると解消した、とあります。GitHub
この挙動はだいたい次のどれかです。
-
CMakeが参照している構成(Debug/Development)と、VSでビルドした構成がズレている
-
CMake側の実行ユーザー権限・作業ディレクトリ・PATHがVS起動時と違う
-
生成物(ShaderCompileWorker.exe)が存在しても、依存DLL不足やブロックで実行できない
-
セキュリティ機能(Defender/Controlled Folder Access等)が実行や生成を止めている
要するに「ビルドが壊れている」というより、“その起動のさせ方”だけがコケているケースが多いです。
解決の近道:上から順に潰すチェックリスト
ここからは、効果が出やすい順に並べます。1つずつ実施すれば、原因の切り分けにもなります。
1) ShaderCompileWorker.exeが“その構成”で生成されているか
UEは構成ごとに出力先が変わります。まずは該当パスに 実ファイルがあるか を確認します。
-
例:
Engine\Binaries\Win64\ShaderCompileWorker.exe(環境により差あり)
ファイルが無いなら、そもそもその構成でコンパイルされていません。Visual Studio側で通ったのが「Development Editor」など別構成だった可能性が高いので、CMake/VSの構成を一致させます。
2) Visual Studioの「MSVC / Windows SDK」不足・不一致
UE5のソースビルドは、VSのコンポーネントが少しでも欠けると、ビルドは通っても実行時に落ちることがあります。最低でも以下を揃えます。
-
Desktop development with C++
-
Windows 10/11 SDK(複数入っているならUEが拾っている版を意識)
-
MSVC v143(VS2022)
※この系統の不足は、UE/プロジェクトの挙動が急に不安定になったり、環境再構築後に出たりします。類似症状の報告も複数あります。Epic Developer Community Forums+1
3) 依存DLL不足(VC++ Runtime)で“起動だけ”失敗している
ShaderCompileWorker.exe自体は生成されているのに起動できない場合、VC++再頒布可能パッケージ不足が典型です。UEのソースビルド直後は特に見落としがちで、コマンドライン起動時(CMakeのlaunch)だけ失敗することがあります。
対策:Microsoft Visual C++ 2015-2022 再頒布可能パッケージ(x64)を入れ直す(修復インストールでも可)。
4) Windows Defender(特に“フォルダ制御”)が実行や生成を止める
Windows 11のDefender設定によっては、生成されたexeの起動や書き込みがブロックされ、UE系ツールが「起動できない」になります。
-
Controlled Folder Access(フォルダーアクセスの制御)がON
-
セキュリティ履歴にブロックログが出ている
対策:UEのソースツリーとビルド出力先を例外に入れる/一時的に機能をOFFにして再現性を確認する。
5) パス長・空白・非ASCII文字の罠(CMakeで起きやすい)
CMakeの作業ディレクトリが深い階層だと、Windowsのパス制限やツール側の扱いで失敗することがあります。VSからは動くのにCMakeだけ落ちる場合の定番です。
対策:
-
リポジトリを浅い場所へ(例:
C:\dev\carla\) -
ビルド出力も浅く(例:
C:\dev\carla\Build\) -
パスに日本語・特殊文字が混ざらないようにする
6) 「CMakeのジェネレータ」とVSの実体がズレている
CMakeが別バージョンのMSBuild/VSを掴むと、成果物が“あるのに動かない”が起きます。
対策として、CMake生成時にジェネレータを明示し、使うVSを固定します。
-
例:Visual Studio 17 2022 / x64 を明示
-
Ninjaを使う場合もツールチェーンを固定
どうしても急ぐ場合の現実的な回避策
今回の報告のように、ShaderCompileWorkerをVSで明示的にビルドしてからCMakeのlaunchに戻るのは、実務的にかなり有効な回避策です。GitHub
ただし恒久対応としては、上のチェックリストで「CMakeのlaunch時だけ環境が違う」原因を潰しておくのが再発防止になります。
まとめ:直すべき核心は「ビルド」より「起動環境の差」
Windows 11 + UE5ソースビルドでShaderCompileWorkerが起動できない問題は、壊れたビルドというよりも、
-
構成の不一致
-
依存DLL不足(VC++ Runtime)
-
Defender等のブロック
-
パス/権限/ツールチェーン差(CMakeとVSの差)
このあたりが原因の中心です。GitHubで報告されているようにVSビルドで通るなら、なおさら「起動させ方・参照させ方」を揃えるのが解決の近道になります。GitHub