間が空いてしまいましたが、「AfterEffectsでのリニア合成のお話」の第3回です。「AEでリニア合成」の続きはどうなってんですか?という催促いただきまして、いや記事は書きかけてたんですけど、後半の説明が上手く書けなくかったりスクリーンショット撮るの面倒だったりで、前半だけ書いて放置してたんです(最終保存日が8月だった...笑)。最近本当に忙しくて、このままだと放置のまま年越してしまいそうなので諦めて前半だけで公開します。
今回は「作業スペースのリニア化」について。
今回は「作業スペースのリニア化」について。
AfterEffectsのプロジェクト設定にある「作業スペースをリニア化」というオプションですが、これを有効にするとどう変わるのでしょう?フッテージを読み込んだままだと変わらないことが多いです。これは第1回でも書きましたが、そもそも画像ファイルにガンマの情報を記録しているものが少ないからです。
「ガンマ値1.0でカラーをブレンド」オプションを有効にしていれば、プロジェクト内での合成作業ではリニアで行なわれている筈なのですが、「作業スペースをリニア化」することで、レイヤー内の計算もリニアで行なわれるようになります。これだけでは意味がよくわかりませんね...
AfterEffectsはUIがノードベースではないので、レイヤー内にノードベースであれば別の計算ノードになるはずのものが内包されてしまってます。分かり易い例ではトランスフォームがそれです。こうすることでノードベースであればある程度手間のかかる部分をレイヤーというセットの中に予め備えることができるというメリットもあるのですが、データの計算に関してユーザーにとっては階層がひとつ深くなっているように見えます。
「作業スペースをリニア化」することでレイヤー間の計算だけでなく、このようなレイヤー内の計算までリニア化するということなのです(レイヤー内での計算とレイヤー間の計算方法が異なるのは、あまり良いことのように思えませんが)。ノードベースであれば同じリニアで行なわれる計算なので、「作業スペースをリニア化」することでそれらと同じ結果を期待できるようになります...が、AfterEffectsの従来の計算結果とは決定的に異なるものになってしまいます。
画像を読み込んで、サイズぴったりのコンポジションに配置した状態だと「作業スペースをリニア化」しても変化は現れませんが、レイヤーの位置を移動したりレイヤーを拡大してみると、ピクセル補間の計算が行なわれるので違いがでます。
以下のサンプル画像は32bpc「ガンマ値1.0でカラーをブレンド」のプロジェクト内にJPEG画像を読み込んでコンポジションに配置し拡大した場合の表示です。
もう少し分かり易い例としては、エフェクトによる描画があります。グラデーションを作成した場合には結果が大きく異なります。
描画系のエフェクトなどでは、これまでの結果と同じものが得られなくなってしまいます。「作業スペースをリニア化」しているときに、これらエフェクトの描画を従来の非リニアの状態に合わせたい場合には、これにsRGBのカーブ(作業スペースがsRGBの場合)をアサインしてやれば元に戻る筈です...戻ってくれないと困ります。正確にsRGBを再現できませんが、「HDRコンパンダ」を用いてガンマ2.2を適用したのが下の比較図です。繰り返しますが、正確に再現したい場合にはsRGBカーブを使ってください。
ちなみに書籍「Adobe After Effects CS5 Visual Effects and Compositing Studio Techniques」と「After Effects CS4 スタジオテクニック(日本語版)」(関連記事)では、低ビットのフッテージでは「作業スペースをリニア化」せずに「ガンマ値1.0でカラーをブレンド」のみでリニアブレンドの恩恵を受けるが推奨されてました...私としてはちょっと?な気もしますが、私など比較するのもおこがましい位AfterEffectsを使い込んでる著者なので、それがAfterEffects的にはいいのかもしれません。
...と、ここまでしか書いてません。スクリーンショットだけ追加して公開してしまいましたが、続きはまた次回。「作業スペースをリニア化」した場合に読み込んだだけで色が変わるフォーマット(まぁCineonなんですけど)とか書いてみようかと。あるいは上に挙げた「After Effects CS4 スタジオテクニック(日本語版)」のHDRの章を読み解く読書会風記事とか...といいつつ次回はいつになるかわかりませんが、とりあえず2月末までは忙しいので、ボチボチと。質問などあればメールかFacebookで。(追記があります)
[関連記事]
AfterEffectsでのリニア合成のお話(4)
AfterEffectsでのリニア合成のお話(1)
AfterEffectsでのリニア合成のお話(2)
AfterEffectsでのリニア合成のお話(3)の追記
AfterEffectsでOpenEXR
The HDRI Handbook 2.0