さまざまなグレイン・ワークフロー(Nuke)
- 2023/09/14
実写合成では、コンポジターは撮影された実写プレートに含まれるノイズとうまく付き合う必要があります。コンポジターはこのノイズのことを、よくグレイン(Grain=粒子)と呼んでいます。今回は、Nukeでグレインを扱う伝統的なワークフローから、現在業界の主流になっている手法のひとつであるDasGrain(ダスグレイン)を使ったワークフローまで、いろいろ紹介したいと思います。
なお、厳密に言えば「フィルムグレイン」と「センサーノイズ」は本来別のものを指す言葉ですが、現実にはあまり区別していません。そのためここでもグレインと呼んだりノイズと呼んだりしますが、同じものだと思って、あまり気にしないでください。
ノイズ・グレインを除去することは、デノイズ(Denoise)またはデグレイン(Degrain)と呼びます。
合成作業の中で、デノイズを行うことは重要です。
写真素材やFrameHoldノードで静止画化したフレーム素材(ペイント・クリーンアップ作業などでよくやります)を使うときは基本的にはデノイズすべきです。そうしないと、画面内に止まったグレイン(Static grain, Frozen grain)が存在する合成ミスにつながる可能性が高いです。
クロマキーやルミナンスキーなどのキーイング(キー作成)を行うときも、デノイズした素材を使うと良いです。高品質のキー(マット)をつくることができます。
しかし、なんでもかんでもデノイズしておけば安心、ということでもありません。デノイズは、どうしても素材のディティールを少し損失します。デノイズしない方が良い結果になることもあるため、デノイズする際はそれなりの注意と判断が必要です。
コンポジターにとってグレイン・ノイズは合成作業の邪魔になるやっかいな存在です。にもかかわらず、コンポジターは、グレイン・ノイズは映像の持つディティールのひとつであり、不可欠な重要な要素だと考えて大切に扱います。
Nukeは標準のDenoiseノードでデノイズできます。
しかし、多くのコンポジターはより高品質な "Neat Video" (ニートビデオ=「きれいな動画」)というサードパーティー製プラグインを使っています。つまり、ReduceNoiseノードです。ディティールをしっかりと保持したままノイズだけを除去する非常に優れたアルゴリズムを持つツールで、さまざまな編集・合成ソフトウェア用の製品が販売されています。業界の標準ツールです。
なお、Neat Videoはマイナス値(Negative Value)が苦手です。そもそもマイナスのRGB値を持つ実写プレートは合成作業のさまざまな段階で問題を起こす可能性があるので、作業の最初にGradeノードでわずかにLiftさせてマイナス値がない状態にしてから合成作業を開始するのがおすすめです。
そして最後のレンダリングの直前にGradeノードのコピーを適用し、reverseのチェックを入れ、black clampをオフにすることでマイナス値がある状態に戻せます。
ジラジラと動くノイズを軽減するテクニックとして、FrameBlendノードを使って前後のフレームと混ぜ合わせるというやり方があります。原始的な方法ですが、有効な場合もあるので知っておくべきです。ノイズはフレームごとのRGB値の変化なので、前後フレームとブレンドするとRGB値が平均化されてノイズが軽減されます。しかし、これは基本的に画面内に動くものがない場合に限られる手法です。動くものについては、フレームブレンドによって残像が発生してしまい、使い物になりません。
このテクニックを動くものに対応しようとしたNukeツールとして、ジュリアン・ヴァンホーナッカーが開発したDeflickerVelocityがあります。CGのチラツキを軽減するために開発されたようですが、ベロシティーパスを利用することで残像を多少抑えるようです。
DeflickerVelocity(Nukepedia)
http://www.nukepedia.com/gizmos/time/deflicker-with-velocity-pass
なお、Trixterのコンポジターのトニー・ライオンズがまとめあげて配布している"Nuke Survival Toolkit"というNukeツールのパッケージの中にも、DeflickerVelocityは含まれています。VFX会社で実際に使われている、コンポジターなら道具箱に入れておくべきツールを数百個まとめたそうです。Nuke Survival Toolkitは、Githubからダウンロードできます。
https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/releases/
Nuke Survival Toolkit紹介動画
https://www.youtube.com/watch?v=c8Jw-Iw2u4g
グレインを追加することは、リグレイン(Regrain)と呼ばれています。
CG・デジタルマットペイントなどには、あえてジラジラと動くグレインを追加し、実写プレートとマッチさせ、自然な合成に仕上げます。また、異なるカメラで撮影された複数の実写素材を組み合わせるショット(たとえば背景はAlexaで撮影し、人物はREDカメラでグリーンバック撮影など)では、いずれかのグレインに統一して仕上げることになります。ケースバイケースですが、一般的には背景プレートのグレインを基準にすることが多いと思います。
実写素材のレイヤーでも、ブラー、デフォーカス、エッジブラー、エクステンドエッジなどの処理を行ったなら、ノイズがなくなってしまいます。こういったピクセルのエリアにも、リグレインを行う必要があります。また、FrameHoldノードで静止画化したフレーム素材なども(前述したようにいったんデノイズした上で)動くグレインを追加すべきです。
リグレインを実行するタイミングには注意が必要です。ノイズ・グレインはカメラ内部のセンサー(またはフィルム)上で起きる現象なので、色調補正、トランスフォーム(位置調整・拡大など)、デフォーカス、レンズディストーションといった様々な処理よりも後に適用すべきです。そうしないと、グレインの色が変わったり、ぼやけたり、大きくなったり、歪んだりしてしまいます。それは完全な合成ミスです。
Nukeでアルファチャンネル(透明部分)を持つレイヤーにリグレインを行う場合は、色調補正を行うときと同じようにUnpremultノードとPremultノードで挟む必要があります。
CGに追加したグレインが実写プレートのグレインにマッチしているか、コンポジターは目で判断します。R・G・Bの各チャンネルを白黒映像で再生し、グレインの粒の大きさ、強度、シャープさなどが一致しているか、チェックします。Gチャンネルはグレインが弱く、Bチャンネルは強いなど、チャンネルごとに異なる固有の特性があります。また、白黒映像で再生すれば、「グレインの入れ忘れ」も一目瞭然です。
ILMのコンポジティング スーパーバイザー、デニス・スコランが2015年に公開したD_QCToolを使うと、グレインのクオリティーチェック(QC)が可能です。
グレインの入れ忘れ、ミスマッチ、アーティファクトを発見できます。たとえば、もしグレインを入れ忘れていたら、こんなふうに明らかに画像が浮き出て表示されます。
D_QCTool v2.0(Nukepedia)
http://www.nukepedia.com/gizmos/other/d_qctool
必要のないエリアにもリグレインを行ってしまう、という合成ミスをたまに見かけます。合成前の素材と比較して、合成とは関係ない部分が変化していないか、チェックすべきです。実写合成では、「合成とは関係ない部分は元のままになっていなければならない」という基本的な考えがあります(例外もあると思いますが)。Mergeノードにオリジナルプレートと合成結果を入力し、[operation]を"difference"に変更し、変化したピクセルを確認すると良いと思います。
Nukeでは標準のリグレインツールとしてGrainノードがあります。人工的なグレインを生成します。グレイン・ジェネレーターです。
しかし、このままではいろいろと使いにくいということで、Nukeコンポジターたちは「より使いやすいリグレインツール」を開発してきました。
コンポジターのグザヴィエ・ブルクが "Pixelfudger"(ピクセルファッジャー) として公開しているNukeツール群のパッケージの中に、PxF_Grainというリグレインツールがあります。
内部的には標準のGrainノードを使用していますが、ユーザーが使いやすいようにパラメーター調整の項目が工夫されています。"gang"のチェックでRGBをまとめて調整でき、チェックを外せばRGBを個別に調整できます。[Saturation]の項目があり、彩度の低いグレイン、白黒のグレインを簡単につくれます。maskインプットを使って画像の一部だけグレインを追加できる機能が用意されています。
PxF_Grainのビデオチュートリアル
https://www.youtube.com/watch?v=sy8u_ICy1xo
このツールはPixelfudgerのウェブサイトからダウンロードすることができます。Pixelfudgerは以前からあるツールですが、2023年にバージョン3にアップデートされました。
http://www.pixelfudger.com/
また、Nukepediaにもアップロードされており、そちらからダウンロードすることもできます。
Pixelfudger v3.1(Nukepedia)
https://www.nukepedia.com/gizmos/filter/pixelfudger
VFXスタジオのLuma PicturesがL_Grainというリグレインツールを公開しています。PxF_Grainと同様に内部的には標準のGrainノードを使用していますが、やはりユーザーが使いやすいようにパラメーター調整の項目が工夫されています。
L_Grain(Nukepedia)
https://www.nukepedia.com/gizmos/draw/l_grain
なお、このツールはNuke Survival Toolkitに「LumaGrain」として含まれています。
VFXスタジオのSpin VFXも、GrainAdvancedというリグレインツールを公開しています。こちらは標準のNoiseノードを組み合わせて人工的にノイズを生成する仕組みになっているのですが、明部と暗部のノイズレベルを別々に調整できたり、ノイズの柔らかさ、彩度、縦横比(アナモフィックレンズではグレインも横長になります)を変更できたりと、やはり標準のGrainノードにはない細かな設定が可能になっています。デフォルトではHDサイズのAlexaのプレートにマッチするグレインに設定されており、カスタマイズできます。
spin_nuke_gizmos v2.1(Nukepedia)
https://www.nukepedia.com/gizmos/other/spin_nuke_gizmos-1
なお、このツールもNuke Survival Toolkitに含まれています。
NukeXではFurnaceプラグインのF_ReGrainノードも利用可能です。今まで紹介した単純なノイズジェネレーターとは少し違います。Grainインプットにグレイン分析用のフッテージを入力し、「分析したグレイン」を追加できます。
前述しましたが、実写合成では、「合成とは関係ない部分は元のままになっていなければならない」という基本的な考えがあります。そこで、実写プレートには触らず、CG要素だけにグレインを追加するというのが、従来からの基本的な手法のひとつです。
しかし、CGレイヤーが複数ある複雑なVFXショットでは多くのレイヤーにいちいちリグレインを追加しなければなりません。また、半透明な要素を合成したり、実写とCGが複雑に絡ませながら合成するショットの場合、同じエリアに何度もリグレインを行うなど、合理的とは思えない作業になってしまうこともあります。そこで、「すべてのレイヤーの合成が終わった後、最後に1度だけまとめてリグレインを行う」という発想があります。PxF_Grainにも、L_Grainにも、GrainAdvancedにも、maskインプットがあるのは、合成後にリグレインを行うためです。メインのコンプとは別ラインでCG要素のアルファを結合しておいて、リグレインツールのmaskインプットに入力すれば(実態はただのKeymixノードです)、一度のリグレインで済みます。
合成後のリグレインには、2つのグレインが重なるという問題(ダブルグレイン)に対処しやすいというメリットがあります。ボケたエッジなどの半透明な合成部分では、2種類の異なるグレイン同士が打ち消しあって弱くなる現象が起きます。ちょうど前述の「フレームブレンドによってグレインを軽減する」のと同じ現象が、意図せず起きてしまうわけです。
PxF_GrainやLumaGrainは、maskインプットがあるだけでなく、このマスクのトランジション部分のグレインを強めるためにマスクのアルファを調整するノブまで用意されています。GrainAdvancedにはノブはありませんが、maskインプットに入れる直前にGradeノードを追加し、alphaチャンネルのmultiplyやgammaを上げることで、トランジション部分のグレインを強めることができます。
「グレインが意図せず弱まる」問題は、合成のいたるところで起きる可能性があります。たとえば、グレインのある実写プレートに薄く煙を乗せるだけでも、オリジナルのグレインは弱まります。煙を乗せたエリアに、さらにグレインを追加すべきでしょうか?微妙な問題です。別の種類のグレインが薄く乗るので、グレイン同士が互いに打ち消し合う現象が起きます。突き詰めて考えると、「もういっそのこと全部デノイズしてから合成して、最後に全体にいっぱつリグレインを行うのが正しいのでは?」という発想に行き着きます。画面全体に均一なグレインが乗るので、確実に正しいリグレインになりそうです。
最初に実写プレートを全部デノイズしてから合成して、最後に全体にリグレインを行う。これもグレイン・ワークフローの選択肢のひとつです。
ただし、ひとつだけ大事な注意点があります。高品質なNeat Videoでも、デノイズするときにディティールをわずかに損失します。実写プレートが変わってしまうのは望ましくありません。そのため、昔から多くのコンポジターは「それは良くないやり方だ」と言ってきました。この「実写プレートのディティールを失ってしまうワークフロー」は、実写プレートを大きく改変するようなショット(たとえばプレートを大きく拡大・縮小アニメーションするようなショット)にはむしろ適していますし、あるいは作品によっては「どのみち圧縮されるから気にしなくて良い」のでOKかもしれませんが、特に映画などのVFX制作の現場では一般的には推奨されてきませんでした。
しかし、解決策がありました。浮動小数(float)の合成システムで行う必要がありますが、オリジナルのグレインをリグレインに利用するテクニックです。スティーブ・ライトは、2017年の書籍『Digital Compositing for Film And Video Fourth Edition』の中で"Grain Rescue"(グレインレスキュー)と呼んで紹介しています。これはスティーブ・ライト独自の呼び方で、定まった名称はないのですが、ここでは"グレイン抽出ワークフロー"と呼ぶことにします。なお、スティーブ・ライトはLinkedinラーニング(旧Lynda.com)のチュートリアル動画でもグレイン抽出ワークフローに触れています。
NUKE NUGGETS Weekly 055 Gain without grain(グレインは強めずに輝度を上げる)
https://www.linkedin.com/learning/nuke-nuggets/055-gain-without-grain
NUKE NUGGETS Weekly 101 Smart grain management workflows(スマートにグレインを扱うさまざまなワークフロー)
https://www.linkedin.com/learning/nuke-nuggets/101-smart-grain-management-workflows
グレイン抽出には、NukeのMergeノードの"from"というオペレーションを利用します。fromは、B - A という引き算(減算、Subtract)を実行します。Bインプットにオリジナルの実写プレート、Aインプットにデグレインされたプレートを入力すると、その差分であるグレイン要素のみが抽出できます。
これが抽出グレインです。ただし純粋なグレインのみではなく、デノイズと一緒に損失したディテールもそこには含まれます。なお、このグレイン要素はマイナス値を含んでいます。
そしてデグレインプレートに抽出グレインをMerge(plus)で加算します。そうすると、最初のオリジナルプレートに戻ります。引き算して、足し算すれば元に戻る。これを利用します。
グレイン抽出ワークフローは、デグレインプレートで(グレインなしの状態で)合成作業を行い、最後にデグレインコンプ(グレインなしの合成結果)に抽出されたオリジナルのグレインを加算して戻してやる、というものです。
この抽出グレインには損失したディティールが含まれているため、実写プレートはちゃんと元の状態に戻るというメリットがあります。
しかし、このワークフローには、また別の問題がありました。最後にグレインを戻すときに、CGの部分に好ましくない輝度やディティールなどが重なってしまいます。D_QCToolを使ってクオリティーチェックを行うと、グレインと一緒に不適切なシルエットが乗ってしまったのがよく分かることがあります。コンポジターはこれをゴースト(幽霊)と呼んで問題にしています。
ゴースト問題についてはスティーブ・ライトも指摘していましたが、その解決策は示していません。Image Engineのコンポジティング スーパーバイザー、ベン・マキューアンは2018年にブログ投稿で、フラットな部分のグレインをクロップしてから並べることでこのゴースト問題に対処する方法を紹介しています。しかし、これは自動化されておらず、ショットごとに手間のかかるやり方です。そもそも、グリーンバック撮影のような均一な背景のショットでしか使えないテクニックです。
Re-Graining Your Comp Using Existing Plate Grain – Ben McEwan's Compositing Blog
https://benmcewan.com/blog/2018/05/29/re-graining-your-comp-using-existing-plate-grain/
ブラッドリー・フリードマンは2014年のブログ投稿で、グレイン抽出テクニックに言及し、ゴーストを抑制するために抽出グレインを正規化する(Normalize)ワークフローを紹介しました。
Grain Management 101
https://fie.us/2014/08/30/grain-management-101/
アーカイブ(画像欠損):https://historic-twenties.fie.us/2014/08/30/grain-management-101/
2015年には、このブラッドリー・フリードマンのワークフローをもとに、コンポジターのダニエル・マーク・ミラーがNukepediaにComparativeGrain(比較によるグレイン)というリグレインツールを公開しています。
ComparativeGrain(Nukepedia)
http://www.nukepedia.com/gizmos/filter/comparativegrain
抽出グレインをデグレインプレートで除算することでディティールを抑制し、グレインの正規化を行います。ほとんどのディティールが打ち消され、純粋なグレインのみの状態に近づけることができます。これにデグレインコンプを乗算し、それをデグレインコンプに加算することでリグレインを実行します。より良い結果にはなりますが、ゴースト問題が完全になくなるわけではなく、ブラッドリー・フリードマンも「うまくいかないときは従来のグレインジェネレーターで生成したグレインをパッチして組み合わせる」ことを示唆しています。
つまり、おそらく多くのコンポジターがグレイン抽出ワークフローを知っていました。そして、このワークフローはある程度は実際に使われていました。しかし、ゴースト問題を完全に解決する方法を確立できず、なかなか一般的に使えるワークフローとして普及していかなかったようです。ファビアン・ホルツがDasGrainを生み出すまでは。
現在のところ、Nukeにおけるリグレインのベストプラクティスのひとつは、2018年にファビアン・ホルツが公開した半自動リグレインツール、DasGrain(ダスグレイン)と思われます。"Das"はドイツ語の定冠詞で、英語の"The"にあたるようなので、「ザ・グレイン」みたいな名前なのだと思います。
現在までに2万ダウンロードを超えるメガヒットツールで、業界で広く使われています。改良を重ね、現在は2021年にリリースされたv1.8が最新版です。DasGrainはNuke Survival Toolkitにも含まれています。
DasGrain(Nukepedia)
http://www.nukepedia.com/gizmos/other/dasgrain
DasGrainのユーザーの声は熱狂的です。
・・・などなど、枚挙にいとまがありません。
ファビアン・ホルツによるDasGrainデモビデオ
https://vimeo.com/284820390
デモビデオを見れば使い方は分かりますが、ここに整理して書いておきます。
1.
DasGrainはグレイン抽出ワークフローを使用します。そのため、質の高いデグレインプレートが必要で、通常Neat Videoとセットで使用します。まず、オリジナルプレートをReduceNoiseノードでデノイズし、デグレインプレートを作成してください。そして、デグレインプレートを使って合成作業を行ってください。
2.
グレインがない状態で合成作業を完了させたら、そこにDasGrainノードを追加し、画面全体にまとめてリグレインを実行します。DasGrainのCOMPインプットに「グレインのない合成」を入力し、PLATEインプットにオリジナルプレート、DEGRAINED_PLATEインプットにデグレインプレートを入力します。なお、プレートとデグレインプレートはそれぞれなにも加工(ペイント、デスピル、などなど)されていないようにしてください。
3.
[Analyze] タブの [Analyze] ボタンを押し、グレインを分析します。
ここにはカラースペースのドロップダウンがあります。カメラのネイティブなリニアスペース以外のカラースペースでリグレインを実行すると、好ましくない結果になる場合があるようです。たとえばAlexaプレートをACEScgに変換するとACEScgの色域が狭いため、マイナスのRGB値のピクセルが発生することがあります。この場合、[project] を ACEScg に設定し[camera] を ARRI Linear ALEXA Wide Gamut に設定すると解決するそうです(ただしこの機能はAlexaでしか検証されていないとのこと)。両項目が同じカラースペースに設定されている場合は何も変換は行われません。
4.
分析が終わったら、[Adjust] タブの応答曲線(Renponse Curve)を補正してください。分析後、サンプリングされたグレインの応答曲線がここに表示されます。X軸(横)は画像の明るさ、Y軸(縦)はグレインの強度です。 明るさに応じてグレインが増加するように、曲線の傾きは常に正である必要があります (常に右上に向かう ↗)。なお、この曲線はグレインの正規化に利用され、グレインの強度を調整する目的のものではありません。
カーブの品質はデグレインの品質に依存します。 カーブが間違っているように見える場合 (カーブが上がったり下がったりする場合)、まずデグレインを見直してみてください。 直らない場合は、上向きの傾向に従わないすべてのポイントを削除して曲線を修正します。また、いちばん右端のポイントを選択し、右クリック > Interporation > After > Linear でカーブを延長します。
※複数ポイントをドラッグで選択してキーボードの[F]キーでズーム表示したり、マウスの中央ホイールでズーム/パンできます、ノードグラフでやるときと同じです。
5.
グレインのクオリティーチェックには前述のD_QCToolを使っても良いですが、DasGraiの[output]の中にある"grain QC"を利用することもできると思います。
CG部分にゴーストが乗る問題が発生したときは、スキャッター機能(Scatter=拡散させる)を使って、グレインを新しく画面全体に分布させ、オリジナルのディテールを除去できます。ReplaceタブのScatterの"activate"のチェックをオンにして、ビューア上のサンプルボックスをプレートのディティールのない部分に動かして、グレインをサンプリングします。
そして、「CG部分は新しいグレインが良いが、オリジナルプレートの部分はディティールを含んでいるオリジナルのグレインが良い」です。そこでmaskインプットにCGを接続し、"replace mask"のチェックをオンにします。これでCG部分は新しいグレイン、一方でオリジナルプレートの部分はオリジナルのグレインになります。2種類のグレインの合わせ技にできるわけです。なお、DasGrainは2種類のグレインのトランジション部分でグレインが平均化されてお互いに打ち消しあって弱くならないように、内部でトランジション部分のグレインを少し強める処理がされています。
6.
スキャッター機能はボロノイ図とよばれる幾何学模様を数学的に生成し、グレインパターンを画面全体に拡散させる仕組みです。"overlay cell pattern"のチェックを入れると、ボロノイセルと呼ばれる小さな部屋の集合体であることが分かります。必要であれば [cell size] でボロノイセルの大きさを変更したり、セルのエッジを調整してください。
グレインのクオリティーチェックをしたときにセルのエッジが視認できる場合は、[edge blend size] を大きくして様子を見てください(可能であれば3未満が良い)。また、セルの継ぎ目の「直線」感が気になるなら、[amplitude]で歪みの強度、[frequency]で歪みのサイズを調整して改善できます。
7.
スキャッター機能を使いたくても、ショットによっては実写プレートの中にグレインをサンプリングするのに適したエリアがない場合があります。そんなときの対処法として、External Grain(外部グレイン)機能が利用できます。別にもう1つDasGrainを作成し、別のショットのプレート、デグレインプレートを入力し、グレインを分析し、[output]を"normalised grain"(正規化されたグレイン)に変更します。現在のショットのDasGrainノードに戻り、左端からexternal_grainインプットを引っ張って、別ショットのDasGrainノードにつないでください。"use external grain" のチェックをオンにすれば、別ショットで分析したグレインでリグレインできます。
なお、DasGrainを他のNukeスクリプトからコピー&ペーストしてScatterを使用する場合、再分析してサンプルエリアを再設定してください。
8.
必要であれば、デグレイン量(Degrain amount)を弱めて使うというオプションも用意されています。これは「デグレインプレートはディティールが失われすぎていて作業しにくい!」というペイント・クリーンアップ(バレ消し)部門からの不満に対する機能だそうです。
まず、DegrainHelperノードというDasGrainの補助ノードにオリジナルプレートとデグレインプレートを入力し、[luminance degrain amount]を0~1の範囲で設定し、適度に「輝度のみのグレイン」を戻したデグレインプレートを作成しておきます(※DegrainHelperノードはNukepediaからダウンロードしたDasGrain.nkには含まれていますが、Nuke Survival Toolkitには含まれていないようです)。
この「輝度グレインを保持したデグレインプレート」で作業してからDasGrainを使う場合、DasGrainノードの[luminance degrain amount]にも同じ数値を設定します。また、[degrain amount mask]も適切に設定してください。
なお、DasGrainのノブには3種類のマスク機能があります。[degrain amount mask]、[analysis mask]、[replace mask]です。しかし、ノードには1つのmaskインプットしかありません。ファビアン・ホルツは3つのmaskインプットをつくりたくありませんでした。そのため、rgba.red、rgba.green、rgba.blue、rgba.alphaの4チャンネルを使い分けて入力する考え方になっており、注意が必要です。[replace mask]を使うだけならrgba.alphaに設定されているので気にしなくて大丈夫ですが、他のmaskを使うときはチャンネルをShuffleノードでコントロールして入力したり、rgba.redなどに設定されている点に気をつけると良いと思います。
DasGrainは非常に良いツールですが、状況によっては従来のワークフローの方が手っ取り早いときもあると思います。いろいろとうまく使い分けると良さそうです。
グッドラック。
参考:
Nuke Nuggets #2- Multi-Grain Goodness(VFXforFilmmakers.comチャンネル)
https://www.youtube.com/watch?v=kCjJJJuK6eI
Tool Time in Nuke: Episode 2- DasGrain and DegrainHelper (With Fabian Holtz)(VFXforFilmmakers.comチャンネル)
https://www.youtube.com/watch?v=ijEGoyJL980
なお、厳密に言えば「フィルムグレイン」と「センサーノイズ」は本来別のものを指す言葉ですが、現実にはあまり区別していません。そのためここでもグレインと呼んだりノイズと呼んだりしますが、同じものだと思って、あまり気にしないでください。
デノイズの概要
ノイズ・グレインを除去することは、デノイズ(Denoise)またはデグレイン(Degrain)と呼びます。
合成作業の中で、デノイズを行うことは重要です。
写真素材やFrameHoldノードで静止画化したフレーム素材(ペイント・クリーンアップ作業などでよくやります)を使うときは基本的にはデノイズすべきです。そうしないと、画面内に止まったグレイン(Static grain, Frozen grain)が存在する合成ミスにつながる可能性が高いです。
クロマキーやルミナンスキーなどのキーイング(キー作成)を行うときも、デノイズした素材を使うと良いです。高品質のキー(マット)をつくることができます。
しかし、なんでもかんでもデノイズしておけば安心、ということでもありません。デノイズは、どうしても素材のディティールを少し損失します。デノイズしない方が良い結果になることもあるため、デノイズする際はそれなりの注意と判断が必要です。
コンポジターにとってグレイン・ノイズは合成作業の邪魔になるやっかいな存在です。にもかかわらず、コンポジターは、グレイン・ノイズは映像の持つディティールのひとつであり、不可欠な重要な要素だと考えて大切に扱います。
Nukeのデノイズ ツール
Nukeは標準のDenoiseノードでデノイズできます。
しかし、多くのコンポジターはより高品質な "Neat Video" (ニートビデオ=「きれいな動画」)というサードパーティー製プラグインを使っています。つまり、ReduceNoiseノードです。ディティールをしっかりと保持したままノイズだけを除去する非常に優れたアルゴリズムを持つツールで、さまざまな編集・合成ソフトウェア用の製品が販売されています。業界の標準ツールです。
なお、Neat Videoはマイナス値(Negative Value)が苦手です。そもそもマイナスのRGB値を持つ実写プレートは合成作業のさまざまな段階で問題を起こす可能性があるので、作業の最初にGradeノードでわずかにLiftさせてマイナス値がない状態にしてから合成作業を開始するのがおすすめです。
そして最後のレンダリングの直前にGradeノードのコピーを適用し、reverseのチェックを入れ、black clampをオフにすることでマイナス値がある状態に戻せます。
フレームブレンドによるデノイズ テクニック
ジラジラと動くノイズを軽減するテクニックとして、FrameBlendノードを使って前後のフレームと混ぜ合わせるというやり方があります。原始的な方法ですが、有効な場合もあるので知っておくべきです。ノイズはフレームごとのRGB値の変化なので、前後フレームとブレンドするとRGB値が平均化されてノイズが軽減されます。しかし、これは基本的に画面内に動くものがない場合に限られる手法です。動くものについては、フレームブレンドによって残像が発生してしまい、使い物になりません。
このテクニックを動くものに対応しようとしたNukeツールとして、ジュリアン・ヴァンホーナッカーが開発したDeflickerVelocityがあります。CGのチラツキを軽減するために開発されたようですが、ベロシティーパスを利用することで残像を多少抑えるようです。
DeflickerVelocity(Nukepedia)
http://www.nukepedia.com/gizmos/time/deflicker-with-velocity-pass
なお、Trixterのコンポジターのトニー・ライオンズがまとめあげて配布している"Nuke Survival Toolkit"というNukeツールのパッケージの中にも、DeflickerVelocityは含まれています。VFX会社で実際に使われている、コンポジターなら道具箱に入れておくべきツールを数百個まとめたそうです。Nuke Survival Toolkitは、Githubからダウンロードできます。
https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/releases/
Nuke Survival Toolkit紹介動画
https://www.youtube.com/watch?v=c8Jw-Iw2u4g
リグレインの概要
グレインを追加することは、リグレイン(Regrain)と呼ばれています。
CG・デジタルマットペイントなどには、あえてジラジラと動くグレインを追加し、実写プレートとマッチさせ、自然な合成に仕上げます。また、異なるカメラで撮影された複数の実写素材を組み合わせるショット(たとえば背景はAlexaで撮影し、人物はREDカメラでグリーンバック撮影など)では、いずれかのグレインに統一して仕上げることになります。ケースバイケースですが、一般的には背景プレートのグレインを基準にすることが多いと思います。
実写素材のレイヤーでも、ブラー、デフォーカス、エッジブラー、エクステンドエッジなどの処理を行ったなら、ノイズがなくなってしまいます。こういったピクセルのエリアにも、リグレインを行う必要があります。また、FrameHoldノードで静止画化したフレーム素材なども(前述したようにいったんデノイズした上で)動くグレインを追加すべきです。
リグレインを実行するタイミングには注意が必要です。ノイズ・グレインはカメラ内部のセンサー(またはフィルム)上で起きる現象なので、色調補正、トランスフォーム(位置調整・拡大など)、デフォーカス、レンズディストーションといった様々な処理よりも後に適用すべきです。そうしないと、グレインの色が変わったり、ぼやけたり、大きくなったり、歪んだりしてしまいます。それは完全な合成ミスです。
Nukeでアルファチャンネル(透明部分)を持つレイヤーにリグレインを行う場合は、色調補正を行うときと同じようにUnpremultノードとPremultノードで挟む必要があります。
グレインのチェックのやり方
CGに追加したグレインが実写プレートのグレインにマッチしているか、コンポジターは目で判断します。R・G・Bの各チャンネルを白黒映像で再生し、グレインの粒の大きさ、強度、シャープさなどが一致しているか、チェックします。Gチャンネルはグレインが弱く、Bチャンネルは強いなど、チャンネルごとに異なる固有の特性があります。また、白黒映像で再生すれば、「グレインの入れ忘れ」も一目瞭然です。
ILMのコンポジティング スーパーバイザー、デニス・スコランが2015年に公開したD_QCToolを使うと、グレインのクオリティーチェック(QC)が可能です。
グレインの入れ忘れ、ミスマッチ、アーティファクトを発見できます。たとえば、もしグレインを入れ忘れていたら、こんなふうに明らかに画像が浮き出て表示されます。
D_QCTool v2.0(Nukepedia)
http://www.nukepedia.com/gizmos/other/d_qctool
必要のないエリアにもリグレインを行ってしまう、という合成ミスをたまに見かけます。合成前の素材と比較して、合成とは関係ない部分が変化していないか、チェックすべきです。実写合成では、「合成とは関係ない部分は元のままになっていなければならない」という基本的な考えがあります(例外もあると思いますが)。Mergeノードにオリジナルプレートと合成結果を入力し、[operation]を"difference"に変更し、変化したピクセルを確認すると良いと思います。
Nukeのリグレインツール
Nukeでは標準のリグレインツールとしてGrainノードがあります。人工的なグレインを生成します。グレイン・ジェネレーターです。
しかし、このままではいろいろと使いにくいということで、Nukeコンポジターたちは「より使いやすいリグレインツール」を開発してきました。
PixelfudgerのPxF_Grain
コンポジターのグザヴィエ・ブルクが "Pixelfudger"(ピクセルファッジャー) として公開しているNukeツール群のパッケージの中に、PxF_Grainというリグレインツールがあります。
内部的には標準のGrainノードを使用していますが、ユーザーが使いやすいようにパラメーター調整の項目が工夫されています。"gang"のチェックでRGBをまとめて調整でき、チェックを外せばRGBを個別に調整できます。[Saturation]の項目があり、彩度の低いグレイン、白黒のグレインを簡単につくれます。maskインプットを使って画像の一部だけグレインを追加できる機能が用意されています。
PxF_Grainのビデオチュートリアル
https://www.youtube.com/watch?v=sy8u_ICy1xo
このツールはPixelfudgerのウェブサイトからダウンロードすることができます。Pixelfudgerは以前からあるツールですが、2023年にバージョン3にアップデートされました。
http://www.pixelfudger.com/
また、Nukepediaにもアップロードされており、そちらからダウンロードすることもできます。
Pixelfudger v3.1(Nukepedia)
https://www.nukepedia.com/gizmos/filter/pixelfudger
Luma PicturesのL_Grain(LumaGrain)
VFXスタジオのLuma PicturesがL_Grainというリグレインツールを公開しています。PxF_Grainと同様に内部的には標準のGrainノードを使用していますが、やはりユーザーが使いやすいようにパラメーター調整の項目が工夫されています。
L_Grain(Nukepedia)
https://www.nukepedia.com/gizmos/draw/l_grain
なお、このツールはNuke Survival Toolkitに「LumaGrain」として含まれています。
Spin VFXのGrainAdvanced
VFXスタジオのSpin VFXも、GrainAdvancedというリグレインツールを公開しています。こちらは標準のNoiseノードを組み合わせて人工的にノイズを生成する仕組みになっているのですが、明部と暗部のノイズレベルを別々に調整できたり、ノイズの柔らかさ、彩度、縦横比(アナモフィックレンズではグレインも横長になります)を変更できたりと、やはり標準のGrainノードにはない細かな設定が可能になっています。デフォルトではHDサイズのAlexaのプレートにマッチするグレインに設定されており、カスタマイズできます。
spin_nuke_gizmos v2.1(Nukepedia)
https://www.nukepedia.com/gizmos/other/spin_nuke_gizmos-1
なお、このツールもNuke Survival Toolkitに含まれています。
F_ReGrainノード
NukeXではFurnaceプラグインのF_ReGrainノードも利用可能です。今まで紹介した単純なノイズジェネレーターとは少し違います。Grainインプットにグレイン分析用のフッテージを入力し、「分析したグレイン」を追加できます。
リグレインの従来からのワークフロー
前述しましたが、実写合成では、「合成とは関係ない部分は元のままになっていなければならない」という基本的な考えがあります。そこで、実写プレートには触らず、CG要素だけにグレインを追加するというのが、従来からの基本的な手法のひとつです。
しかし、CGレイヤーが複数ある複雑なVFXショットでは多くのレイヤーにいちいちリグレインを追加しなければなりません。また、半透明な要素を合成したり、実写とCGが複雑に絡ませながら合成するショットの場合、同じエリアに何度もリグレインを行うなど、合理的とは思えない作業になってしまうこともあります。そこで、「すべてのレイヤーの合成が終わった後、最後に1度だけまとめてリグレインを行う」という発想があります。PxF_Grainにも、L_Grainにも、GrainAdvancedにも、maskインプットがあるのは、合成後にリグレインを行うためです。メインのコンプとは別ラインでCG要素のアルファを結合しておいて、リグレインツールのmaskインプットに入力すれば(実態はただのKeymixノードです)、一度のリグレインで済みます。
合成後のリグレインには、2つのグレインが重なるという問題(ダブルグレイン)に対処しやすいというメリットがあります。ボケたエッジなどの半透明な合成部分では、2種類の異なるグレイン同士が打ち消しあって弱くなる現象が起きます。ちょうど前述の「フレームブレンドによってグレインを軽減する」のと同じ現象が、意図せず起きてしまうわけです。
PxF_GrainやLumaGrainは、maskインプットがあるだけでなく、このマスクのトランジション部分のグレインを強めるためにマスクのアルファを調整するノブまで用意されています。GrainAdvancedにはノブはありませんが、maskインプットに入れる直前にGradeノードを追加し、alphaチャンネルのmultiplyやgammaを上げることで、トランジション部分のグレインを強めることができます。
「グレインが意図せず弱まる」問題は、合成のいたるところで起きる可能性があります。たとえば、グレインのある実写プレートに薄く煙を乗せるだけでも、オリジナルのグレインは弱まります。煙を乗せたエリアに、さらにグレインを追加すべきでしょうか?微妙な問題です。別の種類のグレインが薄く乗るので、グレイン同士が互いに打ち消し合う現象が起きます。突き詰めて考えると、「もういっそのこと全部デノイズしてから合成して、最後に全体にいっぱつリグレインを行うのが正しいのでは?」という発想に行き着きます。画面全体に均一なグレインが乗るので、確実に正しいリグレインになりそうです。
グレイン抽出ワークフロー
最初に実写プレートを全部デノイズしてから合成して、最後に全体にリグレインを行う。これもグレイン・ワークフローの選択肢のひとつです。
ただし、ひとつだけ大事な注意点があります。高品質なNeat Videoでも、デノイズするときにディティールをわずかに損失します。実写プレートが変わってしまうのは望ましくありません。そのため、昔から多くのコンポジターは「それは良くないやり方だ」と言ってきました。この「実写プレートのディティールを失ってしまうワークフロー」は、実写プレートを大きく改変するようなショット(たとえばプレートを大きく拡大・縮小アニメーションするようなショット)にはむしろ適していますし、あるいは作品によっては「どのみち圧縮されるから気にしなくて良い」のでOKかもしれませんが、特に映画などのVFX制作の現場では一般的には推奨されてきませんでした。
しかし、解決策がありました。浮動小数(float)の合成システムで行う必要がありますが、オリジナルのグレインをリグレインに利用するテクニックです。スティーブ・ライトは、2017年の書籍『Digital Compositing for Film And Video Fourth Edition』の中で"Grain Rescue"(グレインレスキュー)と呼んで紹介しています。これはスティーブ・ライト独自の呼び方で、定まった名称はないのですが、ここでは"グレイン抽出ワークフロー"と呼ぶことにします。なお、スティーブ・ライトはLinkedinラーニング(旧Lynda.com)のチュートリアル動画でもグレイン抽出ワークフローに触れています。
NUKE NUGGETS Weekly 055 Gain without grain(グレインは強めずに輝度を上げる)
https://www.linkedin.com/learning/nuke-nuggets/055-gain-without-grain
NUKE NUGGETS Weekly 101 Smart grain management workflows(スマートにグレインを扱うさまざまなワークフロー)
https://www.linkedin.com/learning/nuke-nuggets/101-smart-grain-management-workflows
グレイン抽出には、NukeのMergeノードの"from"というオペレーションを利用します。fromは、B - A という引き算(減算、Subtract)を実行します。Bインプットにオリジナルの実写プレート、Aインプットにデグレインされたプレートを入力すると、その差分であるグレイン要素のみが抽出できます。
これが抽出グレインです。ただし純粋なグレインのみではなく、デノイズと一緒に損失したディテールもそこには含まれます。なお、このグレイン要素はマイナス値を含んでいます。
そしてデグレインプレートに抽出グレインをMerge(plus)で加算します。そうすると、最初のオリジナルプレートに戻ります。引き算して、足し算すれば元に戻る。これを利用します。
グレイン抽出ワークフローは、デグレインプレートで(グレインなしの状態で)合成作業を行い、最後にデグレインコンプ(グレインなしの合成結果)に抽出されたオリジナルのグレインを加算して戻してやる、というものです。
この抽出グレインには損失したディティールが含まれているため、実写プレートはちゃんと元の状態に戻るというメリットがあります。
しかし、このワークフローには、また別の問題がありました。最後にグレインを戻すときに、CGの部分に好ましくない輝度やディティールなどが重なってしまいます。D_QCToolを使ってクオリティーチェックを行うと、グレインと一緒に不適切なシルエットが乗ってしまったのがよく分かることがあります。コンポジターはこれをゴースト(幽霊)と呼んで問題にしています。
ゴースト問題についてはスティーブ・ライトも指摘していましたが、その解決策は示していません。Image Engineのコンポジティング スーパーバイザー、ベン・マキューアンは2018年にブログ投稿で、フラットな部分のグレインをクロップしてから並べることでこのゴースト問題に対処する方法を紹介しています。しかし、これは自動化されておらず、ショットごとに手間のかかるやり方です。そもそも、グリーンバック撮影のような均一な背景のショットでしか使えないテクニックです。
Re-Graining Your Comp Using Existing Plate Grain – Ben McEwan's Compositing Blog
https://benmcewan.com/blog/2018/05/29/re-graining-your-comp-using-existing-plate-grain/
ブラッドリー・フリードマンは2014年のブログ投稿で、グレイン抽出テクニックに言及し、ゴーストを抑制するために抽出グレインを正規化する(Normalize)ワークフローを紹介しました。
Grain Management 101
https://fie.us/2014/08/30/grain-management-101/
アーカイブ(画像欠損):https://historic-twenties.fie.us/2014/08/30/grain-management-101/
2015年には、このブラッドリー・フリードマンのワークフローをもとに、コンポジターのダニエル・マーク・ミラーがNukepediaにComparativeGrain(比較によるグレイン)というリグレインツールを公開しています。
ComparativeGrain(Nukepedia)
http://www.nukepedia.com/gizmos/filter/comparativegrain
抽出グレインをデグレインプレートで除算することでディティールを抑制し、グレインの正規化を行います。ほとんどのディティールが打ち消され、純粋なグレインのみの状態に近づけることができます。これにデグレインコンプを乗算し、それをデグレインコンプに加算することでリグレインを実行します。より良い結果にはなりますが、ゴースト問題が完全になくなるわけではなく、ブラッドリー・フリードマンも「うまくいかないときは従来のグレインジェネレーターで生成したグレインをパッチして組み合わせる」ことを示唆しています。
つまり、おそらく多くのコンポジターがグレイン抽出ワークフローを知っていました。そして、このワークフローはある程度は実際に使われていました。しかし、ゴースト問題を完全に解決する方法を確立できず、なかなか一般的に使えるワークフローとして普及していかなかったようです。ファビアン・ホルツがDasGrainを生み出すまでは。
ファビアン・ホルツのDasGrain
現在のところ、Nukeにおけるリグレインのベストプラクティスのひとつは、2018年にファビアン・ホルツが公開した半自動リグレインツール、DasGrain(ダスグレイン)と思われます。"Das"はドイツ語の定冠詞で、英語の"The"にあたるようなので、「ザ・グレイン」みたいな名前なのだと思います。
現在までに2万ダウンロードを超えるメガヒットツールで、業界で広く使われています。改良を重ね、現在は2021年にリリースされたv1.8が最新版です。DasGrainはNuke Survival Toolkitにも含まれています。
DasGrain(Nukepedia)
http://www.nukepedia.com/gizmos/other/dasgrain
DasGrainのユーザーの声は熱狂的です。
「素晴らしい!」
「なんて凄いツールだ!」
「これは史上最高のツールです」
「ここ数年で間違いなく最も重要なギズモ」
「今まで使った中で最高のリグレインノード。 こんなもの見たことない!」
「DasGrainは私の人生を変えた、アメージング」
「なんで未だに使ってない人がいるのか理解できない」
「これを使用していないコンポジターをひとりも知りません」
「グレインを理由に突き返されることがなくなりました!」
「DasGrainなくなったら泣く」
「一生DasGrain」
・・・などなど、枚挙にいとまがありません。
ファビアン・ホルツによるDasGrainデモビデオ
https://vimeo.com/284820390
デモビデオを見れば使い方は分かりますが、ここに整理して書いておきます。
1.
DasGrainはグレイン抽出ワークフローを使用します。そのため、質の高いデグレインプレートが必要で、通常Neat Videoとセットで使用します。まず、オリジナルプレートをReduceNoiseノードでデノイズし、デグレインプレートを作成してください。そして、デグレインプレートを使って合成作業を行ってください。
2.
グレインがない状態で合成作業を完了させたら、そこにDasGrainノードを追加し、画面全体にまとめてリグレインを実行します。DasGrainのCOMPインプットに「グレインのない合成」を入力し、PLATEインプットにオリジナルプレート、DEGRAINED_PLATEインプットにデグレインプレートを入力します。なお、プレートとデグレインプレートはそれぞれなにも加工(ペイント、デスピル、などなど)されていないようにしてください。
3.
[Analyze] タブの [Analyze] ボタンを押し、グレインを分析します。
ここにはカラースペースのドロップダウンがあります。カメラのネイティブなリニアスペース以外のカラースペースでリグレインを実行すると、好ましくない結果になる場合があるようです。たとえばAlexaプレートをACEScgに変換するとACEScgの色域が狭いため、マイナスのRGB値のピクセルが発生することがあります。この場合、[project] を ACEScg に設定し[camera] を ARRI Linear ALEXA Wide Gamut に設定すると解決するそうです(ただしこの機能はAlexaでしか検証されていないとのこと)。両項目が同じカラースペースに設定されている場合は何も変換は行われません。
4.
分析が終わったら、[Adjust] タブの応答曲線(Renponse Curve)を補正してください。分析後、サンプリングされたグレインの応答曲線がここに表示されます。X軸(横)は画像の明るさ、Y軸(縦)はグレインの強度です。 明るさに応じてグレインが増加するように、曲線の傾きは常に正である必要があります (常に右上に向かう ↗)。なお、この曲線はグレインの正規化に利用され、グレインの強度を調整する目的のものではありません。
カーブの品質はデグレインの品質に依存します。 カーブが間違っているように見える場合 (カーブが上がったり下がったりする場合)、まずデグレインを見直してみてください。 直らない場合は、上向きの傾向に従わないすべてのポイントを削除して曲線を修正します。また、いちばん右端のポイントを選択し、右クリック > Interporation > After > Linear でカーブを延長します。
※複数ポイントをドラッグで選択してキーボードの[F]キーでズーム表示したり、マウスの中央ホイールでズーム/パンできます、ノードグラフでやるときと同じです。
5.
グレインのクオリティーチェックには前述のD_QCToolを使っても良いですが、DasGraiの[output]の中にある"grain QC"を利用することもできると思います。
CG部分にゴーストが乗る問題が発生したときは、スキャッター機能(Scatter=拡散させる)を使って、グレインを新しく画面全体に分布させ、オリジナルのディテールを除去できます。ReplaceタブのScatterの"activate"のチェックをオンにして、ビューア上のサンプルボックスをプレートのディティールのない部分に動かして、グレインをサンプリングします。
そして、「CG部分は新しいグレインが良いが、オリジナルプレートの部分はディティールを含んでいるオリジナルのグレインが良い」です。そこでmaskインプットにCGを接続し、"replace mask"のチェックをオンにします。これでCG部分は新しいグレイン、一方でオリジナルプレートの部分はオリジナルのグレインになります。2種類のグレインの合わせ技にできるわけです。なお、DasGrainは2種類のグレインのトランジション部分でグレインが平均化されてお互いに打ち消しあって弱くならないように、内部でトランジション部分のグレインを少し強める処理がされています。
6.
スキャッター機能はボロノイ図とよばれる幾何学模様を数学的に生成し、グレインパターンを画面全体に拡散させる仕組みです。"overlay cell pattern"のチェックを入れると、ボロノイセルと呼ばれる小さな部屋の集合体であることが分かります。必要であれば [cell size] でボロノイセルの大きさを変更したり、セルのエッジを調整してください。
グレインのクオリティーチェックをしたときにセルのエッジが視認できる場合は、[edge blend size] を大きくして様子を見てください(可能であれば3未満が良い)。また、セルの継ぎ目の「直線」感が気になるなら、[amplitude]で歪みの強度、[frequency]で歪みのサイズを調整して改善できます。
7.
スキャッター機能を使いたくても、ショットによっては実写プレートの中にグレインをサンプリングするのに適したエリアがない場合があります。そんなときの対処法として、External Grain(外部グレイン)機能が利用できます。別にもう1つDasGrainを作成し、別のショットのプレート、デグレインプレートを入力し、グレインを分析し、[output]を"normalised grain"(正規化されたグレイン)に変更します。現在のショットのDasGrainノードに戻り、左端からexternal_grainインプットを引っ張って、別ショットのDasGrainノードにつないでください。"use external grain" のチェックをオンにすれば、別ショットで分析したグレインでリグレインできます。
なお、DasGrainを他のNukeスクリプトからコピー&ペーストしてScatterを使用する場合、再分析してサンプルエリアを再設定してください。
8.
必要であれば、デグレイン量(Degrain amount)を弱めて使うというオプションも用意されています。これは「デグレインプレートはディティールが失われすぎていて作業しにくい!」というペイント・クリーンアップ(バレ消し)部門からの不満に対する機能だそうです。
まず、DegrainHelperノードというDasGrainの補助ノードにオリジナルプレートとデグレインプレートを入力し、[luminance degrain amount]を0~1の範囲で設定し、適度に「輝度のみのグレイン」を戻したデグレインプレートを作成しておきます(※DegrainHelperノードはNukepediaからダウンロードしたDasGrain.nkには含まれていますが、Nuke Survival Toolkitには含まれていないようです)。
この「輝度グレインを保持したデグレインプレート」で作業してからDasGrainを使う場合、DasGrainノードの[luminance degrain amount]にも同じ数値を設定します。また、[degrain amount mask]も適切に設定してください。
なお、DasGrainのノブには3種類のマスク機能があります。[degrain amount mask]、[analysis mask]、[replace mask]です。しかし、ノードには1つのmaskインプットしかありません。ファビアン・ホルツは3つのmaskインプットをつくりたくありませんでした。そのため、rgba.red、rgba.green、rgba.blue、rgba.alphaの4チャンネルを使い分けて入力する考え方になっており、注意が必要です。[replace mask]を使うだけならrgba.alphaに設定されているので気にしなくて大丈夫ですが、他のmaskを使うときはチャンネルをShuffleノードでコントロールして入力したり、rgba.redなどに設定されている点に気をつけると良いと思います。
DasGrainは非常に良いツールですが、状況によっては従来のワークフローの方が手っ取り早いときもあると思います。いろいろとうまく使い分けると良さそうです。
グッドラック。
参考:
Nuke Nuggets #2- Multi-Grain Goodness(VFXforFilmmakers.comチャンネル)
https://www.youtube.com/watch?v=kCjJJJuK6eI
Tool Time in Nuke: Episode 2- DasGrain and DegrainHelper (With Fabian Holtz)(VFXforFilmmakers.comチャンネル)
https://www.youtube.com/watch?v=ijEGoyJL980
- 関連記事
-
- 10分で分かるNUKE*4 (ブラー&デフォーカス編) (2024/05/26)
- 10分で分かるNUKE*3 (Rotoノード編) (2023/11/06)
- さまざまなグレイン・ワークフロー(Nuke) (2023/09/14)
- Nukeのノードのクローンは使ってはいけない!(という都市伝説?) (2023/05/11)
- NukeのTCL入門!さまざまな情報を取得して活用する方法 (2023/04/18)
- スクリーンクリーン: Nukeでグリーンバックを均一にするテクニック (2023/04/04)
- 10分で分かるNUKE*2 (2020/12/15)
- 10分で分かるNUKE (2020/12/01)
- NukeにおけるOCIOを使ったACESシーンリニアワークフロー (2019/05/08)
- NUKEのスピードを速くするためのTips集 (2016/12/19)
- Nuke Pythonを使ってノードの設定を一括変更する (2016/12/03)
- NUKEのエクスプレッション(Expression)の便利な使い方 (2016/10/18)
- NUKE初心者におすすめのショートカット (2016/10/11)
- NUKE入門! 画像サイズをマスターする10項目のルール (2016/07/15)
- NUKEのノードツリーを整理してワンランク上の合成作業を目指す (2015/11/17)