非リニア合成時の加算合成について

April 25, 2013
「After Effectsでのリニア合成のお話番外編」として「非リニア合成時の加算合成について」書きますが、この内容は非リニア(ビデオやsRGBスペース)での合成時の話でAfter Effectsに限定しません。「After Effectsでのリニア合成(4)」では白(色)を飽和させないという意図であればリニア合成でなくてもスクリーンでもいいんじゃないかといった趣旨の文章を書いていますが、実際にはこの2つは違う計算式で結果も異なります。ただ白を飽和させないというメリットだけを享受したいのであれば、無理してリニアにするよりスクリーンを使って合成時の調整でもいいんじゃないか?ということです。

個人や数人のプロジェクトであれば「ガンマ値1.0でカラーをブレンド」でもなんでも使えばいいと思うのですが、ある程度規模が大きくなりスタッフの出入りの激しかったり外部の協力会社に発注するようなプロジェクトでは、After Effectsで非リニア合成をが指定されることがほとんどだと思います。

そういう意味で、今回はビデオスペース(あるいはsRGBスペース)での加算合成(とスクリーン合成)について書いてみます。

加算とスクリーン
以下の2つの画像、フレアのエフェクトを実写のフッテージの上に合成するとします。

addandscreenbase.jpg
まず加算合成。2つのレイヤーのピクセル値を文字通り加算しているので、白を超えた部分はすべて白飛びしつぶれ気味になります。また背景の上に焼き付いたようになるため、光源自体の存在感がなくなりフレアなどとして使用したい場合に不自然に見えたりします。

addandscreen1add.jpg 次にスクリーン合成。After Effectsのスクリーン合成は各レイヤーのチャンネルを反転してから乗算しそれをさらに反転します(詳しくは後述)。加算合成での白飛びを抑制する方法として普及しました。弱点としてはやや不透明で白っぽくなりますが、加算合成のような白飛びや背景に焼き付いたような感じはなくなります。

スクリーンとリニアの加算合成を比較してみます。

addandscreen1addlin.jpg

スクリーンとリニアの加算合成は明確に異なる合成モードなので結果にも差異が生じますし、リニア合成時でも両者は明確に使い分けられるのですが、よく似た結果が得られます。

スクリーン合成とは
上で「After Effectsのスクリーン合成は各レイヤーのチャンネルを反転してから乗算しそれをさらに反転します」と書いていますが、そのプロセスをちょっと説明。

合成前のレイヤー。
addandscreenbase.jpg
レイヤーのチャンネルを反転します。
addandscreeninvert.jpg
反転したレイヤーを乗算します。
addandscreeninvertmult.jpg
で、乗算した結果のチャンネルをさらに反転するとスクリーン合成になります。
addandscreeninvertmultinvert.jpg
スクリーン合成を参考にして加算合成をコントロールする
前の記事で「スクリーンでいいんじゃない?」などと書いていますが、今回はスクリーン合成を元にして加算合成をコントロールする手法を書いてみます。うまく説明できるか自信ないですけど...

加算合成は透明度での調整がしずらく、特に白が飽和しているような状態では白い部分に不自然な半透明になってしまいがちです。よくある手法としてはグローのボケ足の部分と高輝度の部分にわけて、ぼけ足の方をスクリーンにし高輝度部分のみを加算にするという手法。マスクを光らせるような場合にはうまく行きますが、実写素材同士の合成だとコントロールが難しかったりします。ボケ足の方にある程度色味を残したい場合などはカラコレして彩度を調整したり複数のレイヤーを重ねたりオーバーレイを併用したり...やりすぎるとぼやけてしまったり...このあたりはある程度個人の裁量による調整がなされていたりするのでここでは詳しく説明しませんが。

ここで紹介するのは先に説明したスクリーン合成の数式を展開したような状態をコンポジションで作成することです。「ガンマ値1.0でカラーをブレンド」「作業スペースをリニア化」は当然ながら両方ともオフです。

具体的には、加算でフレアのレイヤーを合成し、その下に同じフレアのフッテージをコピーしてチャンネルを反転して乗算しています。

addandscreen1addmultiAtimeline.jpg スクリーンとほぼ同じ結果が得られます。

addandscreen1addmultiA.jpg
この合成方法では乗算レイヤーの不透明度をコントロールすることで加算とスクリーンの合成の中間の状態をコントロール可能になります。「乗算 0%」が加算のみということです。

addandscreen1addmultiA_multpc.jpg
次はもう少しグローのぼけ足の彩度が欲しい場合の例。先の例ではRGBの各チャンネルそのまま反転して乗算していましたが、この例ではフレアのルミナンスのみを使用して乗算しています。リニア合成の加算に似た彩度を保った状態にすることができます。

addandscreen1addmultBfx.jpg
これも乗算の不透明度での調整ができますが、トーンカーブを使用するとShakeやNukeのAddMixに似た感覚の調整ができます(AddMixの代わりにはなりません)。

addandscreen1addmultBB.jpg

以上私が非リニア合成で使用する加算のアプローチです。Shake時代によく使ってました。Nukeになってからはあまり使う機会もなくなったのですが、After Effectsで合成作業する際には上の2つをベースにレイヤーを重ねていくことが多いです。この他にもいくつかのアプローチもあるのですが、長くなるのでまた機会があれば紹介したいと思います。

この記事は「非リニア合成時の加算合成について(2)」に続きます。




[関連記事]
AfterEffectsでのリニア合成のお話(1)
AfterEffectsでのリニア合成のお話(2)
AfterEffectsでのリニア合成のお話(3)
AfterEffectsでのリニア合成のお話(3)の追記
AfterEffectsでのリニア合成のお話(4)