URP におけるマスクについて

最終更新: 2026年10月20日

このページにはベータ版に関する記述が含まれます。

Cubism 5 SDK for Unity R5 beta3 以降レンダリングパイプラインが Universal Rendering Pipeline (以下、URP)へ移行したことに伴い、マスク機能の仕組みが変更となりました。

R4_1 からの変更点

Cubism 5 SDK for Unity R6以降では全てのモデルが前処理マスクを利用可能です。
Cubism 5 SDK for Unity R5で利用可能になった高精細マスク方式についても引き続き利用できます。
オフスクリーン描画に適用されているマスクは必ず高精細マスク方式が利用されます。詳しくは、見出し「オフスクリーン描画におけるマスクについて」をご確認ください。
Cubism 5 SDK for Unity R4_1以前及びR4_x系に利用されていたSubdivisions方式を含む前処理マスク方式は廃止され、代わりにfor Nativeやfor WebのOriginal Workflow系SDKで利用されている前処理マスク方式を採用しています。

Cubism 5 SDK for Unity R4_1以前及びR4_x系で利用していた Assets/Live2D/Cubism/Rendering/Masking をはじめとしたマスク用のファイルは利用されなくなり、パフォーマンスの観点から削除されています。
代わりに以下のファイルが追加され、新しいマスク方式で利用されます。

  • Assets/Live2D/Cubism/Rendering/Masking 以下
    • CubismClippingManager.cs
    • CubismMaskTextureController.cs
  • ‎Assets/Live2D/Cubism/Editor/Inspectors 以下
    • CubismMaskTextureControllerInspector.cs

R4_1 からアップデートする場合、削除しない限り使用されなくなったファイルはプロジェクトに残りますが各コンポーネントはモデルからは利用されなくなります。なお、CubismMaskController コンポーネントはMonoBehaviourであるため、処理を止めるにはモデルのプレハブから明示的に削除する必要があります。

削除される使用されなくなったファイルの位置や移行方法については「Built-in Render PipelineからURPへの移行について」をご確認ください。

使い方

マスクを利用するモデルをインポートすると、モデルプレハブへ自動的にCubismMaskTextureControllerがアタッチされます。
デフォルトは前処理マスク方式です。

Use High Precision Mask

高精細マスク方式へ切り替えます。

Size (In Pixels)

マスク用テクスチャのサイズを設定します。
この値は2の累乗である必要があります。デフォルト値は1024で、最小値は256です。

RenderTextureCount

使用するレンダーテクスチャの数を設定します。
最小値は1です。

Render Textures (Read-only)

現在使用されているレンダーテクスチャのプレビューです。

前処理マスク方式

モデル描画処理の最初に一枚のマスクバッファに対してすべてのマスク形状を描画する方式です。

この方式の仕様についての詳細は「マスクの前処理方式(Native)」をご確認ください。

高精細マスク方式

高精細マスク方式は描画オブジェクトを描画する直前に毎回その描画オブジェクトが利用するマスクの描画処理を行う方式です。

パフォーマンスよりも描画のクオリティを重視した方式で、R4_1以前のマスク方式と比べて下記の利点があります。

  • マスク使用数の上限が無制限になる。
  • マスク用のテクスチャは画面解像度の1つのみを利用するため、メモリ使用量が低下する。
  • マスクは分割されず1枚のテクスチャに順番に描画されるため、マスク描画のクオリティが向上する。

ただし、下記のようなデメリットがあります。

  • 同一のアートメッシュをマスクに設定している場合でも個別のタイミングで描画される。
    • この影響で特に同一のアートメッシュを利用している場合のパフォーマンスがR4_1以前のマスク方式と比べて低下します。
  • マスクの描画サイズがカメラのレンダーターゲットのサイズで固定されるため、モデルを映しているレンダーターゲットのサイズによってパフォーマンスへの影響が大きくなることがある。

オフスクリーン描画におけるマスクについて

オフスクリーン描画に適用されるマスクはシェーダーでの計算の都合上、アートメッシュをクリッピング対象とする場合と異なり、マスクとして設定されているアートメッシュが画面上で描画される位置とサイズで描画及び適用されます。
この仕組みの関係で、オフスクリーン描画に適用されるマスクは高精細マスク方式が強制的に使用されます。

Cubism モデルが描画されるカメラの RenderTexture が画面の解像度と同じかつ画面全体に表示されるレンダーターゲットが同一の場合、必要なピクセル数が確保された状態(ドットバイドット)で描画されるため、描画結果が劣化することはありません。

マスク描画処理の効率化

Cubism 5 SDK for Unity R6では、高精細マスク方式でのマスク描画のパフォーマンスを向上させるための機能として、マスクのキャッシュ機能を追加しています。

マスクのキャッシュ機能は、連続して同一のマスクを利用するDrawableが描画される場合に、最初に描画されたマスクの描画結果を繰り返し利用することでマスクの再描画をスキップします。
結果として、マスクの再描画分のパフォーマンスを向上させることが出来ます。

この記事はお役に立ちましたか?
はいいいえ
この記事に関するご意見・
ご要望をお聞かせください。