シェーダーグラグでクロマキー合成

f:id:fumobox:20201114170318p:plain

 

Unityのシェーダーで背景を抜く方法は各所で紹介されていますが、シェーダーグラフで実装する方法を知らなかったので自分で作ってみました。

 

github.com

 

以下のような流れで作成します。

  1. ベースのテクスチャのRGBAをCombineノードとColor Maskノードに分岐
  2. CombineノードでRGBを合成
  3. Color MaskノードでMask Colorで指定した色でマスクをかける
  4. Color MaskノードをInvert Colorsノードに接続してRedのみを反転
  5. CombineノードをUnlit MasterノードのColor入力へ接続
  6. Invert ColorsノードをUnlit MasterノードのAlphaに接続

https://github.com/fumobox/ChromakeyTest/raw/master/screenshot.png

 

Color MaskノードのRange、Fuzinessパラメータから、色を抜く領域を調整することができます。Color Maskノードの出力は1チャンネルのみなので、Invert Colorsノードでは、Redチャンネルのみ反転させています。

 

テクスチャをRenderTextureにすれば、動画の背景を抜くこともできます。