Unityで Cluster のワールドを制作していると、Shader Graph の Lit シェーダーを使用した際にビルド時間が非常に長くなることがありました。特に iOS と Android 向けのビルドでは、Windows に比べて大幅に時間がかかるケースが多く見られます。
本記事では、Android のビルド時間を 14 分短縮(40分→26分)できた実例をもとに、具体的な改善方法を紹介します。
検証環境
- Unity バージョン: Unity 6.2 (6000.2.0f1)
- レンダーパイプライン: Built-in Render Pipeline
- Shader Graph: Lit シェーダー
- マテリアル数: 約10個
発生した問題の概要
- Shader Graph の Lit シェーダーを1つ使用
- ビルド時間:40分
- 特に Android が全体の 50%(約20分)を占めていた
わずか10個程度のマテリアル(Litシェーダーは1つのみ)でも、ビルド時間が実用的な開発サイクルを阻害するレベルになっていました。
原因:不要な Vulkan のコンパイル
Android のビルド時間が長い主な原因は、Auto Graphics API が有効になっていることでした。
この設定が有効だと、Unity は以下の複数の Graphics API 向けにシェーダーをコンパイルします:
- OpenGL ES 3
- Vulkan
しかし、Cluster の Android 版は OpenGL ES 3 のみを使用しています。
使用しているGraphics APIのバージョンは以下のとおりです。
- Direct3D 11 (Windows)
- Metal (iOS / Mac)
- OpenGL ES 3 (Android)
つまり、Vulkan 向けのシェーダーコンパイルは完全に無駄な処理だったのです。
解決方法
手順1: Player Settings を開く
Edit > Project Settingsを開く- 左側のリストから
Playerを選択 - 上部のタブで Android アイコンを選択
Other Settingsセクションを展開
手順2: Auto Graphics API を無効化
Rendering セクション内の Auto Graphics API のチェックを外します。

手順3: Vulkan を削除
チェックを外すと、Graphics APIs のリストが表示されます。

リスト内から Vulkan を削除し、OpenGL ES3 のみを残します。
削除方法:
- Vulkan の項目を選択
- リスト右下の
-ボタンをクリック
最終的に以下のような状態になります:

手順4: ビルドして確認
設定を保存してビルドを実行し、ビルド時間を計測してください。
結果
この設定変更により、ビルド時間が 40分 → 26分 に短縮されました。
14分の短縮(35%削減)という大きな効果が得られました。
よくある質問
Q: Vulkan を削除すると、一部の端末で動かなくなりませんか?
A: 問題ありません。
現代の Android 端末で、Vulkan が使えても OpenGL ES 3 が使えないデバイスはほぼ存在しません。Vulkan 対応端末は、必ず OpenGL ES 3 もサポートしています。
- 古い端末:OpenGL ES 3 のみ
- 新しい端末:OpenGL ES 3 + Vulkan 両方
Cluster が OpenGL ES 3 を指定しているのは、最大限の互換性を確保するためです。
Q: Shader Stripping の設定は変更すべきですか?
A: 基本的に Auto のままで問題ありません。
Project Settings > Graphics > Shader Stripping の設定項目(Lightmap Modes、Fog Modes)は、Auto のままでも Unity がビルド時に必要なバリアントを自動判定してくれるようです。
実際、手動で不要な機能を OFF にしても、Auto と比較してビルド時間はほぼ変わりませんでした。
まとめ
- Android の Auto Graphics API を無効化し、OpenGL ES3 のみに設定
- Cluster の仕様に合わせることで、不要な Vulkan のコンパイルを削除
- ビルド時間を 14分短縮(40分→26分)
特に複雑な設定変更は不要で、Graphics API の設定を見直すだけで大幅な改善が期待できます。
Shader Graph を使った Cluster ワールド制作で、ビルド時間にお悩みの方はぜひお試しください。