Visual Compositor オーバービュー
はじめに
Visual Compositorは、画像合成を行うためのノードベースのグラフエディタを提供します。 グラフは、レンダリングソースとフローを構築し、レイヤーを出力します。 また、ブレンドオプションを使用してレイヤーを積み重ね最終的な画像を生成します。
依存するモジュール
Selection Groups
GameObjectをグループ化してそのグループ単位でレンダリングを行うために使用されます。この機能は31個しか使えない layer system より柔軟な対応を可能にしています。詳細は ユーザードキュメント をご確認ください。
Streaming Image Sequence
連番画像を再生し、その連番画像に対してポストプロセスを適用するために使用されます。
Timeline
Visual Compositor ノードのパラメーターをアニメションさせるために使用されます。
対応する Unity バージョン
Visual Compositor supports:
- Unity
2020.3.45
or higher. - Unity
2021.3.19
or higher. - Unity
2022.2.8
or higher.
Built-in, Universal, そして High Definition render pipelines で linear 推奨です。 gamma workflowでも動作します。
High Definition Render Pipeline (HDRP)でVisual Compositorを使用する場合 HDRP アセットで R16G16B16A16 カラーバッファーフォーマットを使用するように設定が必要です。
VisualCompositor パッケージについては installation ページを参照願います。
クイックスタート
この図は、このガイドで使用するシーンを示しています。
Selection Groups ウィンドウと作成された形状、地面、ライトのグループを参照してください。空のGameObjectを作成し、Visual Compositor コンポーネントを追加します。
Visual Compositor コンポーネントの下までスクロールし、「New」ボタンをクリックします。 をクリックすると、自動的に Compositor Graph アセットが作成され、設定されます。 このアセットには、次のステップで構築するグラフが保存されます。
Window > Rendering > Visual Compositorを開きます。
このウィンドウは多くの画面領域を使用するため、このウィンドウをシーンビューの後ろにドッキングさせることをお勧めします。デフォルトでは、Visual Compositor の出力はDisplay 8に表示されます。
既存のGame viewをDisplay 8に設定するか、エディターに新しいGame viewを追加して出力を表示することができます。 詳しくは後述のカメラの項をご覧ください。手順3で作成した VisualCompositor GameObjectを選択すると、Visual Compositor ウィンドウがそのコンポーネント内のグラフをロードし、新規作成したグラフのデフォルトノードを自動で作成します。 このウィンドウの使い方の詳細は、Visual Compositorウィンドウ のドキュメントを参照してください。
下図のようにグラフが構築されていることを確認します。
Selection Group nodesとレンダーノードを併用すると レンダリングノードを併用すると、特定のオブジェクトを特定のライトでレンダリングすることができます。
次の図では、3つのSelection Groupノードがあります。 2 つのグループを 1 つにまとめるには、Union ノードが使用されます。Render ノードからエッジを抽出するための Drawn Edges node と、最初のレイヤーの上に合成するための Layer node を追加します。
ノードの設定の詳細については、次図を参照してください。- 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 プロパティは無視されます。