動的バッチ処理

最終更新: 2026年10月20日

Cubism 5 SDK for Unity R6以降では、パフォーマンス改善のための機能として独自のダイナミックバッチ処理を有効にすることができます。

概要

Cubism 5 SDK for Unity R5では、その描画処理の特性上、Unityの動的バッチ処理やSRP Batcherを利用することができない状態でした。
Cubism 5 SDK for Unity R6以降では、描画時に可能な限りDrawableのMeshの頂点を動的にまとめてから描画を行うバッチ処理を実装しています。
これにより、Drawableのドローコールを減らしてパフォーマンスを向上させることができます。

使用方法

任意のUniversal Render DataアセットにCubismRenderPassFeatureを追加するか、Assets/Live2D/Cubism/Rendering/URP/CubismURPRenderer.assetのインスペクタを確認します。

その後、Enable Batchingを有効にします。

動的バッチ処理が有効な条件

動的バッチ処理が機能するためには条件があります。

オブジェクト個別の条件

  • オブジェクトがDrawableであること
    • オフスクリーン描画は対象外です。
  • マスクが適用されていないこと
  • Cubism 5.3で追加されたブレンドモードを利用していないこと

直前に描画されたDrawableと同一条件である必要があるもの

  • CubismRenderer.DrawMaterial (nullであればCubismRenderer.Material)
  • CubismRenderer.MainTexture
  • CubismRenderer.DisplayedMultiplyColor
  • CubismRenderer.DisplayedScreenColor
  • CubismRenderController.CurrentFrameBuffer
    • オフスクリーン描画の使用の有無に関わらず、実際の描画先が直前のDrawableと同一の描画先である必要があります。
  • CubismRenderController.Opacity

その他の条件

  • 描画割り込み機能が直前のオブジェクトの描画との間で利用されていないこと
  • BatchThresholdで設定された数以上のDrawableがバッチ処理対象であること
  • 複数のモデルに跨る場合、モデル同士が同一のGrouped Sorting Indexであること
この記事はお役に立ちましたか?
はいいいえ
この記事に関するご意見・
ご要望をお聞かせください。