この記事の3行まとめ
- Unity 6.3の機能「Shader Build Settings」によるシェーダーバリアントの最適化手法、サイバーエージェント「コアテク」がブログで解説
- シェーダーキーワードのタイプをコンパイル時のみ変更することで、ソースコードを編集せずにバリアント数を制御できる
- 機能の設定手順や、サンプルコードを踏まえた使用例などを解説している
サイバーエージェント ゲーム・エンターテイメント事業部 コア技術本部(以下、コアテク)は2026年1月14日(水)、『【Unity 6.3新機能】ShaderBuildSettingsでソースコードを変更せずにShaderバリアントを最適化する』と題した記事を公開しました。
(画像はブログ記事より引用)
Unityでは、シェーダーの派生コード(バリアント)をあらかじめコンパイルしておき、実行時に切り替える静的分岐の仕組み「シェーダーバリアント」を使用できます。
シェーダーバリアントは描画負荷の軽減に役立つ一方、ビルド時間やアプリ容量が肥大化するデメリットなども抱えています。
「ShaderBuildSettings」はUnity 6.3より実装された機能で、シェーダーキーワードのタイプをコンパイル時のみ変更することで、ソースコードを書き変えずにバリアント数を制御できます。
3種類のキーワードタイプ「multi_compile」(全パターンのバリアントをコンパイル)、「shader_feature」(マテリアルで使われているバリアントのみコンパイル)、「dynamic_branch」(バリアントを生成せず動的分岐させる)を相互に変更可能。
これによりビルド時間を削減したり、不要なバリアントを消去したりと、各キーワードタイプの長所を活かしながら開発を進められます。
「ShaderBuildSettings」設定画面(画像はブログ記事より引用)
記事では「ShaderBuildSettings」で各キーワードタイプの変換先を設定する手順や、サンプルコードを踏まえた具体的な活用例などを解説。
そのほか注意事項として、本機能はBuild Profiles単位でしか使用できず、マテリアルごとにキーワードタイプを変更できないことや、Unity 6でタイプの変更先を「Default」に指定した際に不具合が生じることなどを補足しています。
詳細はブログ記事本文をご確認ください。
【Unity 6.3新機能】ShaderBuildSettingsでソースコードを変更せずにShaderバリアントを最適化する | サイバーエージェント SGEコア技術本部 技術ブログ