徒然なるままに #3 [AfterEffects: nukeのLog2Linを実装してみる](プラグインのおまけつき)
2015/1/19
Tag: AfterEffects,nuke,plugin
こんにちはー。開発室のひらく[@horonig]です。
今回は、AfterEffects(以下AE)のCineon(log)変換プラグインを実装した時の流れを紹介してみます。
最後におまけも付けておきましたので、是非ご一読をw
概要(コンポジット室からの依頼)
以前、コンポジット室より以下の様な相談を受けました。
AfterEffectsのCineonConverterを使うと、32bitモードだとしても Negative Value(マイナス値)が死んでしまう(clampされてしまう)のだが、なんとかならないか? |
とある実写映画の案件で、コンポジット室は以下のような流れを想定していました。
- 編集所から来たdpx(Cineon)をlinearに変換
- linearでコンポジット
- 逆変換を掛けたdpx(Cineon)を編集所へ納品
ところが、[1.]の変換でAEのCineonConverterを使ってしまうとあるべきマイナス値がなくなってしまい、[3.]の逆変換を掛けた時に絵が完全には戻らない事案が発生したと言うのです。つまり、dpxの情報が欠損してしまうわけです。
本当かなー?と思って試してみたところ、本当でした(笑)(AE CCの32bitモードで検証)
nukeのLog2Linというノードではそんな事はなく、問題なく元に戻せました。(さすがnuke)
じゃあnukeだけ使ってコンプすれば良いじゃんという話ではあるのですが、ライセンス数や慣れの問題もあり、簡単な事ではありません。DFではまだAEでのコンポジットも現役であり、対応しなければならないのです。
nukeのCineon計算式
ではまず、nuke上でのCineonカーブがどのような計算式(定義)になってるのか確認してみましょう。
nukeを立ち上げ、Node Graph上で “s” キーを押すと、Project Settingsが出てきます。
そこのLUTタブのCineonをクリックすると、以下の様なカーブが表示されます。
これがnukeで定義されているCineonカーブです。
では次に、このCineonカーブの中身をみてみましょう。
実はnukeでは、このようなカーブ計算式が簡単に見れるようになっています。
カーブ上にマウスカーソルを置き、 [右クリック] – [Edit] – [Edit Expression] を実行します。
すると、以下の様な計算式が表示されます。
素敵だ・・素敵過ぎるぜnuke・・。
これはやはりAEをオミットしてnukeに(ry
..失礼しました。
さて、今度はnukeのLog2Linノードを作ってみましょう。
nukeのNode Graph上でtabを押し、”Log2Lin”と打ちこむと以下の様なノードが作られます。
black, white, gammaなどのパラメータがあるので、先程の式とどう違ってくるのかを検証します。
dpxを「①Cineon(ReadノードのcolorspaceでCineonを選択)で読んだもの」と、「②linear(Readノードのcolorspaceでlinearを選択)で読んでLog2Linをデフォルトで掛けたもの」を比較します。すると①と②の結果が完全に一致したため、先程の計算式はこのLog2Linのパラメータデフォルトと同一である事が分かりました。
コンポジット室に確認したところ、このデフォルト設定が当てられて元に戻せればそれで良いという事だったので、この計算式をAEに移植する事にします。上記三つのパラメータくらいは実装しようかと思ったのですが、blackの計算式へのあてはめ方がすぐには分からなかったので今回は諦めました。(その後解明出来たのですが面倒なので実装してません 笑)
AfterEffectsへの実装
実はAEでは、このような計算式を簡単に当てられるエクスプレッション等を書く事は出来ません。
PixelBenderなら簡単に出来たんじゃないかなぁとか思いつつも、既にAdobeにオミットされてしまったのでその手も使えません。
と言う事はつまり、プラグインとして実装するしかないんですね。(AE敷居たけーw)
とはいえ、このくらいの計算を行うプラグインであれば、そこまで大変ではありません。
まずおさらいですが、Log2Linの計算式は以下になります。
(pow(10, (1023*x - 685) / 300) - 0.0108) / (1 - 0.0108)
そして、逆変換の計算式も出しておきます。
(log10((1 - 0.0108)*x + 0.0108) * 300 + 685) / 1023
さーここまできたら後は実装するだけです!
…
…
実装しました↓
簡単ですね!(ぁ
諸々はしょっちゃって申し訳ないんですが、今回はプラグインもシェアさせて頂きますので許して下さい(笑)
もし興味があれば使ってやって下さい。
Downloadはコチラ
但し、追加要望やバグ報告があっても基本的には対応致しませんw
あくまで自己責任でご使用下さいネ。
これにて無事に、AEの「0(ゼロ)clampされないCineon変換プラグイン」が出来ました。
はー良かった良かった。
Special Thanks to Yasshi !
※免責事項※
本記事内で公開している全ての手法・コードの有用性、安全性について、当方は一切の保証を与えるものではありません。
これらのコードを使用したことによって引き起こる直接的、間接的な損害に対し、当方は一切責任を負うものではありません。
自己責任でご使用ください。
コンポジター募集中!!
コンポジット室室長に頼まれたのでついでに広告しときますw
≪コンポジター募集中!!≫
只今デジタル フロンティアでは専業のコンポジターを募集しています。
現在も実写やフルCG限らず様々なプロジェクトが目白押しの中、
本年末にかけても大型プロジェクトが複数控えており一緒にフィニッシュワークを
担当していただける仲間を大募集中です!
経験者の方は勿論ですが初心者の方でもコンポジットワーク、画像処理、
カラーマネジメント等に興味のある方なら大歓迎です。
募集要項はこちらになります。よろしくお願いします!!
【-コンポジット室- コンポジター】募集要項
■甘味紹介 #3 [レイズンウィッチ at 小川軒]
今回は 小川軒 の レイズンウィッチ をご紹介。
(DF甘味部で撮影した写真なので別の甘味も入っちゃってますがご勘弁をw)
手土産として評価の高いレイズンウィッチですが、実はDFのすぐ近くに店舗が存在します。
僕が初めて食べたのは、新橋にある「巴里 小川軒」のレイズン・ウィッチでした。
でも今は渋谷勤務だしもう行くこともないかなーと思っていた矢先、Tokyu Food Showに小川軒が・・!(臨時出店してました)
すかさず購入し、その際に「これって新橋にあるお店ですよね?」と聞いたところ「いえいえそうではありません」とのご返答。なんでかなーと思ったら、小川軒って幾つかに分かれて存在してるんですね。
小川軒レーズンウイッチの解剖
なんか色々あるんですなー。
人生って難しい。
でもたまに食べたくなる。
それがレイズンウィッチ。
さー今日も一日頑張ろう。
コメント
コメントフォーム