【初心者OK】Unity 6の新API「GraphicsStateCollection」でスタッター対策、サイバーエージェントが実装例を解説

ゲーム開発関連ニュース

※本記事にはアフィリエイトリンクが含まれています。

スマホ向けゲームを作っていると、ゲーム中に突然カクッと画面が止まる「スタッター」に悩まされたことがある人も多いのではないでしょうか。今回はその原因の一つである「シェーダーコンパイル」を、Unity 6の新機能でどう防ぐかというニュースを初心者向けに解説します。

スタッターとは、負荷の高い処理が一瞬発生してフレームレートが落ち、画面が「カクッ」となる現象のこと。中でも、新しい見た目(シェーダレ)を初めて描画する瞬間に発画するものは「シェーダレコンパイルスタッター」と呼ばれ、モバイル向けゲームは特に目立ちやすい問題です。

サイバーエージェントのゲーム・エンターテイメント事業部 コア技術本部(コアテク)は2026年7月7日、Unity 6で新たに導入されたAPI「GraphicsStateCollection(GSC)」を使ってこのスタッターを防ぐ手法を、技術ブログ「CORETECH ENGINEER BLOG」で公開しました。サンプルコード付きで実装方法を紹介しているほか、導入後も解消しなかった不具合の事例と対処法にも触れています。詳細はゲームメーカーズの記事で確認できます。

ブログで紹介されている主なポイントは次の通りです。

  • GSCは、シェーダーバリアントとグラフィックス設定の組み合わせをまとめて記録し、「Pipeline State Object(PSO)」を一括画成できるAPI。Unity 6で実験的機能として搭載され、従来の「ShaderVariantCollection」の後継として位置づけられている
  • スタッターの原因は、新しいシェーダーを初めて描画する際に発生する2段階のコンパイル処理(変換処理とPSO生成)。特にMetalやVulkanではPSO生成の負荷が大きく、数ms〜数十msの遅延につながることもある
  • GSCを使えば、このPSO画成をゲーム起動直後など好きなタイミングで前もって済ませる「Warmup」が可能になる
  • 実装は「必要な情報を集める」「集めた情報をもとにWarmupを実行する」の2段階に分かれ、サンプルコードとともに解説されている
  • GSC導入後もスタッターが残った4つの実例(設定ファイルの不一致による警告、iOS環境特有の不具合など)とその解決策も紹介

💡 シェーダーコンパイルスタッター
ゲーム中、新しい見た目(シェーダー)を初めて画面に描画する瞬間に発生する処理落ち。裏側でシェーダーの変換とGPU向けの最終調整が行われるため、負荷が一時的に跳ね上がることが原因。

💡 Pipeline State Object(PSO)
GPUが描画処理を行う際に必要な設定をまとめたデータ。画成にはコストがかかるため、あらかじめ用意しておく「Warmup」が効果的とされる。

このニュースから考えられることをまとめます。

✅ メリット

  • プレイ中の「カクつき」を減らせれば、体感の完成度が大きく向上する
  • 公式のサンプルコード付き解説なので、モバイル向けにUnity 6を使っている開発者はそのまま参考にしやすい

⚠️ 課題

  • まだ実験的機能のため、環境によっては記事内で紹介されているような不具合に遭遇する可能性がある
  • 導入には既存のレンダリング周りの実装をある程度理解している必要があり、初心者にはやや難度が高い

学ぶならこの講座

※本リンクはアフィリエイトリンクです。

👉 Unity講座で基礎から学ぶ

まとめ

  • Unity 6の新API「GraphicsStateCollection」を使うと、シェーダーコンパイルによるスタッターを事前のWarmupで軽減できる
  • サイバーエージェントのコアテクが、実装方法と導入後に起きた不具合の対処法をブログで公開
  • モバイル向けにUnity 6で開発している人は、パフォーマンス改善の選択肢として要チェック

ソース: ゲームメーカーズ

コメント

タイトルとURLをコピーしました