Visual Compositor オーバービュー
はじめに
Visual Compositorは、画像合成を行うためのノードベースのグラフエディタを提供します。 グラフは、レンダリングソースとフローを構築し、レイヤーを出力します。 また、ブレンドオプションを使用してレイヤーを積み重ね最終的な画像を生成します。
依存するモジュール
Selection Groups
GameObjectをグループ化してそのグループ単位でレンダリングを行うために使用されます。この機能は31個しか使えない layer system より柔軟な対応を可能にしています。詳細は ユーザードキュメント をご確認ください。
Streaming Image Sequence
連番画像を再生し、その連番画像に対してポストプロセスを適用するために使用されます。
Timeline
Visual Compositor ノードのパラメーターをアニメションさせるために使用されます。
対応する Unity バージョン
Unity 2020.3 またはそれ以上のもので Built-in, Universal, そして High Definition render pipelines。 linear (推奨) と gamma のワークフローでお使いいただけます。
High Definition Render Pipeline (HDRP)でVisual Compositorを使用する場合 HDRP アセットで R16G16B16A16 カラーバッファーフォーマットを使用するように設定が必要です。
VisualCompositor パッケージについては installation ページを参照願います。
クイックスタート
この図は、このガイドで使用するシーンを示しています。
Selection Groups ウィンドウと作成された形状、地面、ライトのグループを参照してください。プロジェクトウィンドウを右クリックし、作成 > VisualCompositor > Compositor Graph を選択して、 Compositor Graph アセットを作成します。
これにより、次のステップで構築するグラフを格納するアセットがプロジェクトに作成されます。空の GameObject を作成して Visual Compositor component をアタッチしてください。
手順2で作成したアセットを、手順3で作成したVisual Compositorの Compositor Graph アセットスロットにドラッグします。
Window > Rendering > Visual Compositor を開きます。
このウィンドウは画面領域を広く使用するため、 シーンビューの後ろにドッキングすることをお勧めします。デフォルトでは、Visual Compositorの出力は Display 8 に表示されます。
既存の GameView に Display 8 を表示するように設定するか、エディターで新しいゲームビューを追加してこの出力を表示することができます。 詳しくは後述のcameraの項を参照してください。ステップ 3 で作成した VisualCompositor GameObject を選択すると、 Visual Compositor ウィンドウ がそのコンポーネントのグラフをロードし、新しく作成されたグラフにデフォルトノードを自動的に作成します。
このウィンドウの使用の詳細については、VisualCompositor Window のドキュメントを参照してください。次の図に表示されているよう、グラフが作成されていることを確認します。
Selection Groups ノードと Render ノードを組み合わせることで、 特定のライトで特定のオブジェクトをレンダーできます。
次の図では、3つの Selection Groups ノードがあり、 2つのグループを 1つのグループに結合するために Union ノードが使われます。Render ノードからエッジを抽出するための Drawn Edges ノードと、 最初のレイヤーの上に合成するための Layer ノードを追加します。 ノード設定の詳細については、次の図を参照してください。
- Render ノードの出力を Drawn Edges ノードの該当する入力に接続します。
- Drawn Edges ノードの出力を新しい Layer ノードの入力に接続し、ブレンドモードを multiply に設定します。
今、2つのレイヤーの合成が最終的な画像になりました。
Camera
Visual Compositor は、Cameraの Target Display プロパティを使用して、最終出力のレンダリング場所を定義しています。 この Camera コンポーネントは、GameObject に Visual Compositor を追加すると自動的に追加されますが、オブジェクトのレンダリングに使用する Camera とは異なるものでなければなりません。
以下の Camera プロパティは、Visual Compositorによって自動的に設定されます。 これらのはそのままにしておく必要があります。
プロパティ | 上書き設定する理由 |
---|---|
Clear Flags | Visual Compositorは、Compositor Graphアセットを実行することで最終的なレンダリング出力を行うので、Cameraによるレンダリング処理を必要としません。 |
Culling Mask | Visual Compositorは、Compositor Graphアセットを実行することで最終的なレンダリング出力を行うので、Cameraによるレンダリング処理を必要としません。 |
その他の Camera プロパティは無視されます。