さり気なくPostProcessing(今回はVignette)を行ったところ、
複数あるすべてのSceneに影響を及ぼす「PostProcess_Profile」の解除ができなかった問題が起こりました。
解決法:「Volume Profile」のデフォルト設定を「DefaultVolumeProfile」にする。
デフォルトで「SampleSceneProfile」が設定されているため、
各Sceneで「None」にしようが、新規のProfileにしようが、すべてを上書きしてくる凶悪挙動を行ってきます。
干渉問題
発生した問題
ノベルSceneのVignetteがタイトルSceneにも適用されており、
「Local/Global」の切り替えや「Profile」の変更をしても解消されなかった。
何を設定しても、設定を消しても、2つのSceneに影響がでていました。
「Profile」を「None」にしても設定が消えることはなく、適応され続けました。
原因
URPのRenderPipelineAsset(PC_RPAsset)の「VolumeProfile」に
「SampleSceneProfile」が設定されており、そこでVignetteをオンにしていた。
これはURPの新規プロジェクト作成時のデフォルト状態であり、
PipelineAsset側の「Profile」はSceneのVolumeオブジェクトの設定を上書きして常に効き続けます。
URPのVolume 3層構造(重要)
① Pipeline Asset の Volume Profile
→ 全Scene・全カメラに常時適用されるデフォルト
→ ここが最優先で効き続ける
② Scene内のVolumeオブジェクト
→ Scene単位で上書き・追加できる
→ GlobalはScene全体、LocalはCollider範囲内に適用
③ CameraのPostProcessing
→ カメラ単位でオン/オフ
上位層が効き続けるため、②をいくら変更しても①が残っていれば干渉する。
解決手順
「Edit」>「Project Settings」>「Graphics」
Default Render Pipeline の URPアセット(PC_RPAsset)を開きます。

PC_RPAssetのインスペクター内
「Volumes」>「Volume Profile」が「SampleSceneProfile」になっていることを確認します。

「SampleSceneProfile」を「DefaultVolumeProfile」に変更します。
「DefaultVolumeProfile」にすることにより、最優先常時適用の呪縛は解かれますが、
各Sceneでの各適用を確実にするために、各Sceneに新規Profileを作成して、それを選択しておきます。

各Sceneの「PostProces」のVolumeに設定されている「SampleSceneProfile」を
「New」で作成したProfileに設定しなおしておきます。
現在の構成
| 層 | 設定 | 内容 |
|---|---|---|
| Pipeline Asset | DefaultVolumeProfile | エフェクトなし |
| タイトルScene | タイトル用Profile | 独自設定 |
| ノベルScene | ノベル用Profile | 独自設定(Vignette等) |
今回判明したその他の仕様
- Unity 6000系 + URP 17系では Universal Additional Camera Data の項目がCameraコンポーネントのRendering セクションに統合されており、独立した項目として表示されない。
これは仕様であり異常ではない。
- VolumeをLocalモードにする場合はColliderが必須。
ただし今回の干渉問題とは無関係だった。
- 新規URPプロジェクトのPipeline AssetはSampleSceneProfileがデフォルトで設定されている。
開発開始前にDefaultVolumeProfileへの差し替えが推奨される。

コメント