アディティブキーヤーとは何か?(そしてアダプティブデスピルとは?)
- 2023/04/22
コンポジターたちの間ではアディティブキーヤー(Additive Keyer)と呼ばれるテクニックが知られています。グリーンスクリーン/ブルースクリーンによる合成を、より自然に見せるための手法の1つです。今回の記事では、このアディティブキーヤーについて解説したいと思います。
ただ、少しやっかいなことに、アディティブキーヤーにはさまざまなバリエーションがあり、人によって説明が違ったりします。今回はそのあたりも含め、網羅的に、かつなるべくコンパクトに紹介できればと思います。
なお合成プロセスの説明にはNukeを使用しますが、Nuke特有のツールやアルゴリズムが必要なわけではありません。このテクニックの原理は一般的なツールや四則演算(足し算・引き算・掛け算・割り算)の組み合わせなので、他のソフトウェアでも可能なテクニックです。ただしマイナスのRGB値を扱うため、浮動小数(float)の合成システムで実行する必要があると思います。
アディティブキーヤーはもはや新しいテクニックではありません。おそらく2010年代の前半には海外のVFX業界ですでに普及していた技術ではないかと思います。アディティブキーヤーを紹介した古い文献として、コンポジティングスーパーバイザーのラファル・カニエフスキー氏が2010年7月にウェブサイトNukepediaに投稿した"Additive Keyer"という記事が有名です。
* This is not a keyer, as it does not create a matte that is of use. It is more of a 'relative mixer' or image blending tool. It is very good for separating translucent fine details (such as motion blur, dust or hair) that a keyers with mattes might have difficulties extracting.
* To get it to work requires a lot of prep work on the screen and reference to work with uneven screens.
* It is used in combination with normal keyer that provides the main core of the comp and the additive keyer generates only the subtle soft edges.
・ これはキーヤーではありません。役に立つマットを作成しません。これは「相対ミキサー」または画像ブレンドツールのようなものです。マットを使用したキーヤーでは抽出が困難な半透明の細かいディテール (モーション ブラー、ほこり、髪の毛など) を分離するのに非常に適しています。
・それを機能させるには、スクリーン上で多くの準備作業と、不均一なスクリーンで作業するための基準が必要です(訳注:スクリーンはグリーンバック等の幕を指しています)。
・コンポジットの主要なコアを提供する通常のキーヤーと組み合わせて使用され、アディティブキーヤーは微妙なソフトエッジのみを生成します。引用元:Kaniewski, Rafal. "Additive Keyer".
記事内のリンク先(http://www.vfxwiki.org)が閉鎖されたため、残念ながら現在は画像やツールを確認できず、不完全な状態の記事になっています(2018年5月の時点で画像が消えているとコメントで指摘されています)。
また、2017年に出版されたスティーブ・ライト氏の書籍『Digital Compositing for Film And Video Fourth Edition』の中では、アディティブキーヤーがこのように紹介されています。
The Additive Keyer is grievously misnamed. It's not really a keyer. It is a sophisticated mathematical melding of the foreground and background images like a sophisticated Photoshop blend operation that appears rather like a semi-transparent composite - but there is no key. As a result, there is no loss of fine edge detail such as hair. And that is the point. The Additive Keyer is used to merge the foreground with the background in a way that preserves edge detail, then the keyed foreground is composited over this prepped background, a bit like the soft/hard comp workflow outlined above.
(略)
The Additive Keyer will lay down all of the fine edge detail in the prepped background, which will then show through when the keyed foreground is composited over it.
There are a variety of formulations for an additive keyer and they are all part of the "secret sauce" that visual effects companies develop to give themselves a competitive edge. I suggest you look for an additive keyer for your software and check it out. It can be a real life-saver in some situation. Another arrow in your quiver.
アディティブキーヤーは、ひどく誤った名称です。実際はキーヤーではありません。Photoshopのブレンド処理のようなもので、前景と背景の画像を数学的に高度に融合させるものです。見た目は、半透明合成に似ています。しかし、そこに「キー」は存在しないのです。結果としては、髪の毛のような細かいエッジのディテールが失われることがありません。そこがポイントです。 アディティブキーヤーを使うことでエッジのディテールを維持したまま前景と背景を合成し、この下ごしらえされた背景の上にキーイングされた前景を、前述したソフト/ハードコンプのワークフローのように合成していきます。
(略)
アディティブキーヤーは繊細なエッジのディティールをすべて乗せて下ごしらえされた背景をつくります。キーイングされた前景をその上に乗せて合成すると、それが透けて見えるわけです。
アディティブキーヤーにはさまざまな方式があり、それらはVFX会社が競争力を高めるために開発する「秘伝のタレ」の一部です。あなたの使っているソフトウェア用のアディティブキーヤーを探してチェックすることをおすすめします。状況によっては本当に命の恩人になります。あなたの武器がひとつ増えます。引用元:Wright, Steve. Digital Compositing for Film And Video Fourth Edition
この書籍ではアディティブキーヤーについては概要しか触れていません。しかし、まずは概要をつかみましょう。
1. 前景(=FG)があります。グリーンバック撮影プレートです。ちなみにデノイズ済みです。
2. 合成するための背景(=BG)があります。
3. そして、これがアディティブキーヤーの結果です。半透明合成に似た画像ブレンドです。
アディティブキーヤーはそれ単体では合成が成立しません。つまり、これは従来のキーヤーに取って代わる手法ではなく、従来のキーヤーを補佐する「オマケ」のテクニックです。アディティブキーヤーでBGを下ごしらえしておくというイメージです。
では、アディティブキーヤーの効果のほどを見てみましょう。アディティブキーヤーなし/ありを比較します。
従来のワークフローでは失われてしまうような細かいエッジのディティールも、アディティブキーヤーを使えば残すことができます。さて、概要はつかみました。実践しましょう。
スティーブ・ライト氏は「VFX Keying: Master Course」というビデオ学習コースで、アディティブキーヤーの具体的なプロセスを実演しています。なお「アディティブキーヤーには多くの方式があるが、一般的な手法のひとつ」としています。その手法を参考に、ここではさらに噛み砕いてアディティブキーヤーの原理を解き明かしてみたいと思います。
参照:VFX Keying: Master Course. Adding edge detail with an additive keyer
https://www.linkedin.com/learning/vfx-keying-master-course/adding-edge-detail-with-an-additive-keyer
まず、FGプレート(デノイズ済み)から、それにマッチするグリーン色平面を減算(substract)、つまり「引き算」します。NukeのMerge(minus)ノードのAインプットにグリーンバック撮影プレートを、Bインプットにグリーン色平面を入力すると、A-Bの計算が実行され、引き算の結果を得られます。
なんかカッコイイ画像が出てきました。何が起きたのでしょうか?
・グリーンバック部分は、RGB値が(ほぼ)0になりました。同じRGB値のグリーンで引き算したためです。
・グリーンバックより明るかった物体は、明るいまま残っています。グリーンとの差の分だけ、RGB値が残っています。
・逆にグリーンバックより暗かった物体は、どうなっているでしょうか?画面上では真っ黒に表示されてしまいますが、RGB値は0ではありません。グリーンのRGB値の分だけマイナス方向にオフセットされ、マイナスのRGB値になっています。
つまり、グリーンバックの色をRGB値=0という「基準点」にして、明るい色はプラス、暗い色はマイナスの値を持った画像を得ることができたというわけです。
ではこの画像を、BGに対して加算(add)、つまり「足し算」しましょう。Merge(plus)ノードで、BGに合成します。
BGにFGの画像が乗りました。何が起きたのでしょうか?
・グリーンバック部分は、値が(ほぼ)0なので、0を足し算しても変化なしです。
・グリーンバックより明るかった物体は、RGB値の足し算で明るくなります。
・グリーンバックより暗かった物体は、マイナスの数値を足し算するので、つまりそれは引き算であり、RGB値が小さくなり暗くなります。
単純ですが、この「引き算して、足し算する」、これが典型的なアディティブキーヤーの根幹部分、アディティブキーヤーのエンジンです。"原始的なアディティブキーヤー"と呼んでも良いと思います。ここから発展させます。
まず、色味が大きくマゼンタに転んでしまっている問題があります。全体的にG(緑)を引いたことで相対的にR(赤)とB(青)が強くなったためです。BGと加算する前に、Saturationノードを追加して、0.1にして、かすかに色味を残す程度にしましょう。より良い結果になります。
まだ改善できます。よく観察すると、BGの明るい部分ではアディティブキーヤーの効果が弱まっているように見えます。BGの明るさに負けてしまっていて、効果の乗り方がアンバランスに見えます。
この問題を改善する方法を考えましょう。「BGが明るい部分ほど効果を強めたい」です。あるいは逆に「BGが暗い部分ほど効果を弱めたい」でも良いですね。同じことです。解決策として、「BGの明るさを掛け算することで、効果を増大/減衰できないか?」という発想ができます。
「BGの明るさの白黒画像」をつくりましょう。BGを分岐させ、下にColorSpaceノードを追加し、HSLに変換します。B(青)チャンネルにL(Lightness)が入るため、ShuffleノードでBチャンネルを他のすべてのチャンネルに移し替えます。これで「BGの明るさ情報の白黒画像」ができました。
BGの白黒画像をMerge(multiply)ノードで乗算(multiply)、つまり「掛け算」してから、BGに加算するフローに変更しました。
これによりアディティブキーヤーの効果が「BGが明るい部分ほど強く、BGが暗い部分ほど弱く」なり、よりバランスの良い結果になりました。
では、「全体的に効果を強めたい/弱めたい」というときは、どうしたら良いでしょうか?これも掛け算で解決できます。BGに加算する直前にGradeノードを追加して、[gain]または[multiply]で数値を大きく/小さくします。これらのパラメーターの正体はどちらも「掛け算」です。「2」と入れれば2倍に数値が増大され、「0.5」と入れれば数値が半分に減衰され、アディティブキーヤーの効果を強く/弱くさせます。マイナス値が必要なため、Gradeノードの[black clamp]のチェックは外してください。
まだ、改善の余地があります。効果を増大/減衰する仕組みは出来ましたが、明部と暗部が連動しています。「明るい側だけ効果を強めたい/弱めたい」とか「暗い側だけ効果を強めたい/弱めたい」という状況に対応できる仕組みが欲しい所です。そこで、処理を途中で二手に分岐させ、再び合流する流れにします。
Saturationノードの下で、2つのClampノードへ分岐させます。1つ目のClampノードは明部用で、[minimum]を"0"に設定し黒をクランプしてマイナス値を持たせず、[maximum]は"1000"に設定してハイはクランプしないようにします。もう1つのClampノードは暗部用で、反対です。[minimum]は"-1000"に設定してマイナス値を持たせ、[maximum]は"1"に設定してハイをクランプします。2タイプのClampノードの下流では、先ほどやったように、それぞれBGの白黒画像と乗算し、全体調整用のGradeノードを追加します。Merge(plus)ノードで、再び1つに合流させます。
以上でスティーブ方式のアディティブキーヤーの完成です。いくつかツッコミ所はあります。
・暗い側のClampを「-1000から1」としているが、0を基準にプラス/マイナスなので「-1000から0」にするべきでは?暗い側にも、明るい側が含まれてしまっている。
・マゼンタに転んだ画像に対して、彩度を下げるだけで良かったのか?
・クランプを避けるために「1000」「-1000」と巨大な値を設定しているが、そんなことしなくても、その横にある"enable"のチェックを外せばいいよ…。
まだ改善の余地はありそうな感じがします。他の方式も見てみましょう。
日本語でアディティブキーヤーを解説した貴重な情報源として、2016年のテラオカマサヒロ氏によるCGWORLD.jpの連載「NUKE プラクティカル・ガイド」があります。そこでは、以下のように説明されています。
要約すると、撮影プレートとクリーンプレート(つまり被写体を除いたと想定するグリーンだけのプレート)の差分を求め、その差分のrgbの平均値 (saturationを下げたもの)がプラスの場合は合成されるべく背景と掛け合わせたもの、マイナスの場合はそのままの値を合成されるべく背景に加算する。
こうすることで、モーションブラー等で半透明部分が合成結果時に黒ずむことなく、背景の色を加味したモノで合成される、というコンセプトだ。
ちなみに、マイナス値の部分は、グリーンスクリーンで撮影された被写体が比較的暗いのに、グリーンスクリーンが明るい場合に、その半透明部分に明るいグリーンスクリーンが透けてしまうことで、合成結果としてハロと呼ばれる明るいボーダーラインを得てしまうのを抑えることができる。
要するに、合成されるべく背景を考慮したFGプレートを作成することを目的としている。引用元:テラオカマサヒロ, NUKE プラクティカル・ガイド Vol.11:続・キー合成
テラオカ方式は本質的にはスティーブ方式と似ており、まったくの別物というわけではありませんが、少しずつ違いがあるようです。確認しつつ、アディティブキーヤーをさらに深掘りしていきたいと思います。
まず、この部分を見てみましょう。
撮影プレートとクリーンプレート(つまり被写体を除いたと想定するグリーンだけのプレート)の差分
クリーンプレート(Clean Plate)の話をしましょう。クリーンプレートとは英語圏でのVFX用語で、人物のいない背景のみのフッテージを指します。スティーブ方式ではグリーン色平面で減算しましたが、グリーン色平面では問題が起こります。撮影されたグリーンバックには必ず色ムラがあるため、引き算の結果グリーンバック部分のRGB値を完全な0にできません。色ムラの分だけアディティブキーヤーがBGを不適切に明るく/暗くしてしまいます。アディティブキーヤーの持つこの問題の解決法としては、2種類のアプローチが考えられます。
1つ目のアプローチは、FGに対して事前にスクリーン・クリーン処理を行って、完全に均一なグリーンバックに補正しておくという方法です。これはFGの方を下ごしらえしておくという考え方です。もう1つ、別のアプローチが、グリーン色平面の代わりにクリーンプレートを使用する方法です。引き算するグリーン色平面にもまったく同じ色ムラがあれば、グリーンバック部分のRGB値を完全な0にできる、という発想です。
※スクリーン・クリーン処理、およびクリーンプレートについては別記事: [Nukeでグリーンバックを均一にするテクニック] で説明してありますので、良かったらご一読ください。
次に、この文をよく読んでみましょう。
その差分のrgbの平均値 (saturationを下げたもの)がプラスの場合は合成されるべく背景と掛け合わせたもの、マイナスの場合はそのままの値を合成されるべく背景に加算する
これを読むと、テラオカ方式では、BGの掛け算は明部にしか行わないようです。スティーブ方式では明部にも暗部にもBGを掛け算していました。また、スティーブ方式ではHSLに変換してBG画像を白黒にしましたが、テラオカ方式ではSaturationを0にすることで白黒にしています。細かい違いです。アディティブキーヤーには、いろいろな方式があるのです。
他に違うところはないか、見てみましょう。明部・暗部を二手に分岐させる点では似ています。が、よく見ると手法も結果も少し違います。スティーブ式でClampノードだった部分には、代わりにExpressionノードがあります。
エクスプレッション(計算式)によって明部と暗部を分離しています。明部用のエクスプレッションには「RGB値が0以上なら数値はそのまま、そうでなければ0にする」、暗部用のエクスプレッションには「RGB値が0以下なら数値はそのまま、そうでなければ0にする」という式が入っており、0を基準にプラス/マイナスを完全に分離しています。スティーブ方式では暗部の側にも明るいピクセルが残っていたので、その点、テラオカ方式の方が正しいように思います。
最後に、この一文です。
要するに、合成されるべく背景を考慮したFGプレートを作成することを目的としている。
これは、補足しておきたい部分です。アディティブキーヤーのコンポジットへの組み込み方は、大きく分けて2タイプ考えられます。1つは、前述した「BGの下ごしらえ」という組み方です。もう1つは、「FGの下ごしらえ」という組み方です。アディティブキーヤーの結果を、デスピル処理の一部のような扱いでFGに組み込んでから、FGをBGに合成するというパターンです。
テラオカ方式のアディティブキーヤーは、このFGに組み込むパターンの一種と思われます。とにかくアディティブキーヤーにはいろいろ方式があり、どれが正解ということはありません。また別のアディティブキーヤーを見てみましょう。
コンポジターのトニー・ライオンズ氏がまとめあげて配布している"Nuke Survival Toolkit"というNukeツールのパッケージの中にも、アディティブキーヤーは含まれています。トニー・ライオンズ氏自身が作成した"Additive Keyer Pro"というツールです。
(※画像はNukeSurvivalToolkitドキュメントよりキャプチャ)
素材を入力して簡単なパラメータ操作をするだけで、アディティブキーヤーを実行できるようになっています。
4つのインプットがあります。
・fgインプットにFG(グリーンバック撮影プレート)を入力します。
・cleanインプットにクリーンプレート(人物を消し込んだグリーンバック素材)を入力します。
・bgインプットにBG(合成用背景)を入力します。
・maskインプットはオプションです。Nukeの標準ノードのmaskインプットと同じように、Rotoマスクなどを入力すれば、その範囲にのみツールの効果が限定されます。
マニュアルには以下の説明があります。
Additive Keyer pro does an additive key, which finds the highs and lows from the difference of a cleanplate and the original greenscreen plate and lightens / darkens the BG image.
This process is handy for capturing subtle details in edges, such as hair and motionblur.
There are many additivekeyers, but this one has some unique features:
1.) The light values have a plus and BG mult sliderm, giving you more control over highlights
2.) The dark values uses a divide/multiply technique on the bg, preventing negative values
3.) Option to keep some saturation from the original colors, with a screen color picker to help remove green/blue spill from the edges if you choose to keep saturation.
4.) Options to output the difference to RGB, and difference matte to alpha, to use other comp techniques
Additive Keyer proは、アディティブキーを実行します。クリーンプレートと元素材であるグリーンスクリーンプレートの差分から明部と暗部を抽出し、BG画像を明るく/暗くします。
このプロセスは、髪の毛やモーションブラーなど、微妙なエッジのディテールを取り出すのに便利です。
数多くのアディティブキーヤーが存在しますが、このアディティブキーヤーはいくつかの独特な機能を持っています:
1.) Light(明部)の値には "Plus" と "BG Mult" のスライダーがあり、ハイライトをより細かくコントロールできます。
2.) Dark(暗部)の値はBG上で除算/乗算のテクニックを使用しつつ、マイナス値を防止します。
3.) 元の色からいくらかの彩度を維持するオプション。彩度を維持することにした場合は、ScreenColorのカラーピッカーを使用してエッジからグリーン/ブルーのスピルを除去できます。
4.) 差分をRGBに出力するオプション、差分マットをアルファに出力するオプションがあり、他の合成テクニックに利用できます。
トニーのAdditive Keyer Proでは、今まで説明したものとは異なるテクニックが使われています。まず、FGをクリーンプレート(グリーン色平面)で除算(divide)つまり「割り算」します。グリーンバック部分がRGB値=1の画像を取得できます。
この画像をBGに乗算(multiply)つまり「掛け算」します。グリーンバック部分は「1」を掛け算しているので、変化なしです。他の部分は明るく/暗くなります。
事前に素材の彩度を下げてから、このプロセスを実行すると、非常に良い結果を得られます。
今まで説明してきた「引き算して、足し算する」ものとは異なり、トニーのツールが採用しているアディティブキーヤーでは「割り算して、掛け算する」という計算がベースになっています。アディティブキーヤーにはたくさんの方式があると説明してきましたが、基本のエンジン部分からして、減算/加算方式と除算/乗算方式に流派が分かれるのです。
このトニーのツールも、今まで説明してきたアディティブキーヤーと同様に、明部と暗部の効果を別々に増大/減衰できる仕組みになっています。割り算で得た画像を二手に分け、2つのClampノードに分岐します。1つ目のClampノードは明部用で、[minimum]を"1"に設定して1でクランプし、[maximum]は"enable"のチェックを外してクランプしません。もう1つのClampノードは暗部用で、[minimum]は"enable"のチェックを外してクランプせず、[maximum]は"1"に設定してクランプします。この方式ではグリーンバック部分のRGB値が「1」になっているため、0ではなく1を基準に上と下を分離しています。
分離出来たら掛け算で効果を増幅/減衰させたい所ですが、そのまま掛け算をするとめちゃくちゃな結果になってしまいます。グリーンバック部分のRGB値が「1」になっているためです。そこで、まず全体から「1」を引くことで従来方式のように0基準にプラス・マイナスの値の状態にして、その状態で「2」を掛けたり「0.5」を掛けたりという掛け算をしてRGB値を増幅/減衰させて、最後に全体に「1」を足して元に戻します(※ちなみにトニーは数値を増大・減衰させる際にMultiplyノードを使用していますが、これは名前の通り「掛け算」のノードです。スティーブは[black clamp]をオフにしたGradeノードを使っていました)。
二手に分かれた流れは、この方式ではMerge(multiply)ノードを使い、乗算によって再び1つに合流させます。トニーのツールは多機能のため全体では複雑なノードツリーになっていますが、コアの部分である除算/乗算方式の仕組みはこのようになっています。
暗部側にはマイナス値を防ぐためにClampノードがあります。減算/加算方式にしろ除算/乗算方式にしろ、アディティブキーヤーでは暗部の効果を増大させることで合成結果にマイナス値を発生させるリスクがあり注意が必要ですが、トニーのツールはClampノードで対処しています。
このツールは従来方式も併用しています。明部に関しては、[Light Value Plus]が減算/加算方式として用意されています。ベースとなっている除算/乗算方式とは独立したシステムになっているため、オプション的に利用できます。なお、BGの明るさとの乗算はせず、差分をそのまま加算しています。
このツールでは色味についても精密にコントロールできるようになっています。処理の中でマゼンタに転んでしまう問題も適切に対処されています。[Screen Color]でグリーンスクリーンの色をピックして、[Despill Screen Color from Saturation?]のチェックを入れると、FGとクリーンプレートがそれぞれ最初にデスピル処理されてから一連の処理に使用されるため、マゼンタに転びません(FGとクリーンプレートに同じデスピル処理を行うとより良い結果になることは、実は2010年のラファル・カニエフスキー氏の記述ですでに指摘されていました)。
これにより、元素材の持つ色味を適度に残すというオプションを実現しています。
さらなるオプションとして、[Tint](色合い)という項目で、アディティブキーヤーのカラーバランスを調整、色付けが可能です。
クリーンプレートが用意されないケースも想定されています。[Use Screen Color as CleanPlate]のチェックを入れると、クリーンプレートは入力する必要がなくなり、代わりに[Screen Color]で指定したRGB値の単一色のグリーン色平面を使用することになります。FGがスクリーン・クリーン処理済みのケースで利用できます。
なお、"Nuke Survival Toolkit"の中には、トニー・ライオンズ氏が制作したキーイング作業のテンプレートのノードツリーが含まれています。
この中にもAdditive Keyer Proは含まれています。コンポジットへの組み込み方はFGのラインとは別で、「BGを下ごしらえ」のパターンになっています。
"Nuke Survival Toolkit"は、Githubからダウンロードできます。トニー・ライオンズ氏によると、VFX会社で実際に使われている、コンポジターなら道具箱に入れておくべきツールを数百個まとめたそうです。
https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/releases/
Nuke Survival Toolkit紹介動画
https://www.youtube.com/watch?v=c8Jw-Iw2u4g
さて、アディティブキーヤーの説明は以上で終わりですが、ここで、"スティーブ・ライトのアダプティブデスピル"(Adaptive Despill)という別の合成テクニックについても、ついでに説明したいと思います。このテクニックは四則演算を使ってFGとBGを融合し、エッジを従来より自然に合成するという点で、アディティブキーヤーに少し似ています。しかし、合成結果はかなり異なるため、やはり別のテクニックと考えた方が良さそうです。
なお、"Adaptive Despill"はスティーブ・ライト氏が勝手にそう命名しただけで、それほど広く通用している名前ではないと思います。類似する手法が、別の名前で呼ばれていたりします。
スティーブ・ライト氏は前述のビデオ学習コース「VFX Keying: Master Course」内の、"Steve Wright's adaptive despill"(スティーブ・ライトのアダプティブデスピル)という動画で、この手法を紹介しています。わざわざテクニックの前に自分の名前を付けるということを彼はこのとき以外にやっていないことから、これは彼独自のテクニックと分かります。動画内でも述べています。
So far, we've seen that no matter how you adjust the despill, there'll be some region of the comp where it just doesn't look right.
So I sat down with a stack of green screen and blue screen plates, and developed a more sophisticated approach to despill that actually adapts to the background image rather than producing a single color or illuminants.
I call it Adaptive Despill and I think you're really going to like this.
今までのところ、デスピルをどのように調整しても、コンポジットの一部の領域が正しく見えないことがわかりました。
そこで私は大量のグリーンスクリーンとブルースクリーンのプレートと共に腰を下ろし、単一の色や光源を生成するのではなく、背景画像に実際に順応する、より洗練されたデスピルのアプローチを開発しました。
私はこれをアダプティブデスピル(順応するデスピル)と呼んでいますが、きっと気に入っていただけると思います。
参照:VFX Keying: Master Course. Steve Wright's adaptive despill
https://www.linkedin.com/learning/vfx-keying-master-course/steve-wright-s-adaptive-despill
「スティーブ・ライトのアダプティブデスピル」のプロセスを簡単に整理します。
① FG(デノイズ済み)を何らかのツールでデスピルします。以後これを「デスピルプレート」と呼びます。
② FGからデスピルプレートを減算(substruct)し、差分を取得します。
これを白黒にします。これを「スピルマップ」と呼びます。
スピルマップの内側の穴を黒く埋めたり、ホワイトポイントを調整してグレーになっているグリーンバック部分のRGB値を(ほぼ)「1」にします。コントラストの高いスピルマップ=「ハイコンスピルマップ」ができます。
③ ハイコンスピルマップとBGを乗算(multiply)します。
④ これをデスピルプレートと加算(add)します。
一見うまく合成できたようにも見えますが、オリジナルのBGと比較すると、BG部分が明るくなってしまっている問題があります。デスピルプレートのグリーンバック部分のRGB値が加算されているからです。
⑤ ということで、③④をやり直すことにしましょう。このRGB値の分だけ、BG側をマイナスし、事前に暗くすることで解決させます。マイナス値が発生する場合があるので、暗部が0でクランプされないように気をつけます。
ハイコンスピルマップと暗くしたBGを乗算し、
デスピルプレートと加算すればBGが正しい明るさで合成されます。
完成です。
ソフトなエッジを持つ「スピルマップ」を利用してBGを乗算、そして加算というプロセスのため、従来のキー合成では不可能なレベルでエッジが自然に融合します。
名前の通り、このテクニックはあくまでデスピルの進化系という扱いで、テラオカ方式のときに出てきたFGに組み込むという使い方が説明されています。しかし、もちろんこれをBGとして使うことも可能だと思います。今まで見てきたように、正解はひとつではなく、たくさんのやり方があると思います。注意点ですが、このテクニックもグリーンバックの色ムラが問題を起こします。FGに対して、事前にスクリーン・クリーン処理を行うのが手っ取り早い解決法だと思います。
「スティーブ・ライトのアダプティブデスピル」に似たテクニックは、かなり以前から開発されていたようです。2013年3月、トルステン・ノイエンドルフ氏はvimeoに投稿した動画「how to despill a greenscreen shot - same approach in smoke and nuke」(グリーンスクリーンショットのデスピル方法 -SmokeとNukeで同じアプローチ)で、類似点の見られるプロセスを実演しています。
https://vimeo.com/62523139
Nukeでの処理を見ると、デスピルのルミナンスバックを加算する前にBGを乗算する、というプロセスのようにも見えます。ルミナンスバックについては、テラオカ氏の連載の中でも説明されていますが、デスピル処理によって画像が暗くなる問題への対処テクニックです。
HueCorrectでもKeyLightでもいずれにしても、ディスピル時にはオリジナルの輝度と比べて、必要に応じて明るさを戻してやる必要がある。代表的な手法としては、ディスピル後の結果とオリジナルプレートの差分の彩度を落として、ディスピル後の結果に加算で戻すといったやり方だ。グリーンスクリーンであれば、前述の差分は抜き取ったグリーン成分となり、この分だけの輝度が落ちているはずなので、この分だけを足し算で戻してやれば良い。ただし、グリーンのまま戻すと結果元に戻ってしまうので、彩度を落とした上で戻している次第だ。
引用元:テラオカマサヒロ, NUKE プラクティカル・ガイド Vol.10:キー合成
デスピルにはいろいろなアルゴリズムがありますが、代表的な計算式は「G(緑)の数値がR(赤)とB(青)の平均値よりも高ければその平均値まで下げる、そうでなければそのまま」といったものです。いずれにせよ、Gは下げられ、緑っぽさが無くなります。問題は、R・G・Bの中で、Gは明るさの成分の70%程度を占める点です(カラコレする際にRやBを多少上げ/下げしても画像の明るさは大きく変わりませんが、Gでは劇的に変わります)。つまりグリーンバックでのデスピルは画像を暗くし、場合によっては被写体のライティング感や立体感が損なわれます(ブルーバックでは問題になりません)。
そこで「デスピルによって失われた輝度」を戻すのが、ルミナンスバックです。デスピル前のFGから、デスピルプレートを減算し、「差分」を得ます(これはデスピルによって失われた成分です)。
取り出した「差分」の彩度を下げ、デスピルプレートと加算することで、輝度を戻します。
ひょっとすると「スティーブ・ライトのアダプティブデスピル」やその類型テクニックは、「ルミナンスバックを加算して戻すときにBGと乗算してから戻したらどうか?」という着想からスタートしたのかもしれません。
ちなみに、多くのコンポジットのテクニックがそうであるように、ルミナンスバックも単にやれば良いというものではありません。ルミナンスバックで戻す輝度は「グリーンバックからの反射の光」なので、例えば非常に暗い環境に合成する場合などはルミナンスバックを行わない方が自然な合成に見えると思います。
トニー・ライオンズ氏のキーイング作業のテンプレートにも、「スティーブ・ライトのアダプティブデスピル」に類似するテクニックが含まれています。トニーは"BG despill edge blending"(BGデスピルエッジブレンディング)と呼んでいます。また、スティーブが「スピルマップ」と呼んだものをトニーは「デスピルマット」と呼んだり、細かい違いはありますが、本質的にはかなり似たプロセスを行っています。
"BG despill edge blending"の部分については、こちらの動画の35分20秒~37分20秒あたりでトニー・ライオンズ氏が説明しています。
https://www.youtube.com/watch?v=BKcKpPFVmCk
また、こちらの動画でも37分47秒あたりからトニー・ライオンズ氏が説明しています。
https://www.youtube.com/watch?v=C8GX5gZ3dtQ
一部のFlameアーティストは、「スティーブ・ライトのアダプティブデスピル」に類似するテクニックを指して"アディティブキーヤー"と呼ぶことがあるようです。なぜそうなってしまったのか、少し調べてみました。
おそらく、多分ですが、Smoke/Flameアーティストのジョエル・オーシス氏が2016年1月、Youtubeの動画で"THE ADDITIVE KEYER HACK"(アディティブキーヤーハック)と呼んで実演してみせたことが発端だと思います。ここでは「スティーブ・ライトのアダプティブデスピル」に似たテクニックが紹介されています。
https://www.youtube.com/watch?v=Jzx_XeJCaPM
ジョエル自身は、「これは普通の、みんなが知っているアディティブキーヤーではない」という前提で紹介しており、それでわざわざ "HACK"(ハック) と呼んでいるのだと思います。動画内でも、これは「普通のアディティブキーヤーではない」ことを示唆する発言が何度もあると思います。
(1分49秒あたり)
... different from a normal additive keyer is...
…普通のアディティブキーヤーと違って…
(3分23秒あたり)
...set that to add, this is all normal what you're used to with the additive keyer...
…"Add"に設定します、これはいつものアディティブキーヤーでやっているのと同じです…
(10分15秒あたり)
...I'm using the traditional additive keyer and...
…従来のアディティブキーヤーを使って…
このことから、個人的には、このテクニックを単に"アディティブキーヤー"と呼ぶべきではないと思っています。このテクニックはあくまで"ジョエル方式のアディティブキーヤーハック"であり、一般的なコンポジットのテクニックのアディティブキーヤーとは区別するのが適切ではないでしょうか。
また、Flameアーティストのリチャード・ベッツ氏はYoutubeの動画でFlame上でのアディティブキーヤーを紹介していますが、こちらは「一般的なアディティブキーヤー」に見えます。1時間5分10秒~6分15秒のあたりで説明しています。
https://www.youtube.com/watch?v=LxNhRL9wcmE
以上、少し長くなってしまったかもしれませんが、最後までお読みいただき、ありがとうございました!
(^_-)-☆
【Credit/クレジット】
Original footage of "Tears of Steel"(2012) by Blender Foundation is licensed under CC BY 3.0
この記事内では、2012年にBlenderの普及のために制作された短編映画「Tears of Steel」のフッテージを使用しました。
Blender Foundationにより、CC-BY ライセンスの下で公開されています。
Tears of Steel. 4 TB original 4k footage available as CC-by
https://mango.blender.org/production/4-tb-original-4k-footage-available-as-cc-by/
Index of /tearsofsteel/tearsofsteel-footage-exr
https://media.xiph.org/tearsofsteel/tearsofsteel-footage-exr/
【References/参考文献】
Kaniewski, Rafal. "Additive Keyer". Nukepedia. 2010-07-31. https://www.nukepedia.com/written-tutorials/additive-keyer (参照 2023-04-21).
Wright, Steve. "5.5.3 Dark Edges". Digital Compositing for Film And Video Fourth Edition. Focal Press, 2017. p.136.
Wright, Steve. "6.4.4 The Additive Keyer". Digital Compositing for Film And Video Fourth Edition. Focal Press, 2017. p.164.
Wright, Steve. "Adding edge detail with an additive keyer". Linkedin. 2016-10-03. https://www.linkedin.com/learning/vfx-keying-master-course/adding-edge-detail-with-an-additive-keyer (参照 2023-04-21).
Wright, Steve. "Steve Wright's adaptive despill". Linkedin. 2016-10-03. https://www.linkedin.com/learning/vfx-keying-master-course/steve-wright-s-adaptive-despill (参照 2023-04-21).
テラオカマサヒロ. "NUKE プラクティカル・ガイド Vol.10:キー合成". CGWORLD.jp. 2015-11-11. https://cgworld.jp/regular/nuke010.html (参照 2023-04-21).
テラオカマサヒロ. "NUKE プラクティカル・ガイド Vol.11:続・キー合成 ※サンプルデータあります!". CGWORLD.jp. 2016-03-02. https://cgworld.jp/regular/nuke011.html (参照 2023-04-21).
Lyons, Tony. "NukeSurvivalToolkit_Documentation_v2.0.0" https://docs.google.com/document/d/1eyh2JIecaphItZeq0uuGxlqoASuXNQy1leJGqFI-EeU/ (参照 2023-04-21).
Neuendorf, Torsten. "how to despill a greenscreen shot - same approach in smoke and nuke". vimeo. 2013-03-23. https://vimeo.com/62523139 (参照 2023-04-21).
Lyons, Tony (CompositingMentor). "Advanced Keying Breakdown: 4.1 - Template". Youtube. 2015-12-19. https://www.youtube.com/watch?v=BKcKpPFVmCk (参照 2023-04-21).
VFXforFilmmakers.com. "Spit Ballin' Episode 1: Keying in Nuke (Tony Lyons)". Youtube. 2021-02-22. https://www.youtube.com/watch?v=C8GX5gZ3dtQ (参照 2023-04-21).
Osis, Joel. "THE ADDITIVE KEYER HACK". joelosis.com. 2016. https://www.joelosis.com/2016/01/the-additive-keyer-hack.html (参照 2023-04-21).
Osis, Joel. "THE ADDITIVE KEYER HACK". Youtube. 2016-01-08. https://www.youtube.com/watch?v=Jzx_XeJCaPM (参照 2023-04-21).
Betts, Richard (Logik Live). "Logik Live Episode #51: The Keying Show!". Youtube. 2021-04-27. https://www.youtube.com/watch?v=LxNhRL9wcmE (参照 2023-04-21).
shiz. "[Nuke] キーイングTips2: rgb編". Shizlog. 2017-05-18. http://shizukalog.blogspot.com/2017/05/nuke-tips2-rgb.html (参照 2023-04-21).
"Keying: Hair details and manual additive Keyer.". Reddit. 2020-09-18. https://www.reddit.com/r/NukeVFX/comments/iv3guj/keying_hair_details_and_manual_additive_keyer/ (参照 2023-04-21).
"Shader: crok_additive_key". https://logik-matchbook.org/shader/crok_additive_key (参照 2023-04-21).
- 関連記事
-
- 「バンディング」って何?「マッハバンド」は誤用?調べてみました! (2024/06/30)
- エッジに残る色を解決するテクニック・10選 (2024/03/24)
- VFXと色収差 (2023/10/04)
- アディティブキーヤーとは何か?(そしてアダプティブデスピルとは?) (2023/04/22)
- 「ライトラップ」という合成テクニック (2019/01/09)
- VFX用・合成用の映像素材集まとめ (2018/07/05)
- 動画合成でマスクを切るときのコツ (2018/06/20)
- 実写合成のチェックリスト (2018/03/06)
- 合成のなじみを良くする「エッジブレンディング」のテクニック (2017/04/11)
- グローは最後に合成すべし (2016/08/20)
- VFX制作のコンポジット作業で注意すべき10項目 (2016/07/01)
- 影を合成するテクニック (2015/12/13)
- 画面の見映えを良くする配色のテクニック (2015/08/22)
- グロー表現のクオリティーを高める3つのポイント (2015/07/25)
- 分かる!リニアワークフローのコンポジット (2015/06/13)