>   >  NUKE プラクティカル・ガイド:Vol.2:続・AEユーザーのためのNuke的思考
Vol.2:続・AEユーザーのためのNuke的思考

Vol.2:続・AEユーザーのためのNuke的思考

マルチチャンネルを活用する

Nukeの魅力のひとつに、マルチチャンネルのOpenEXRファイルフォーマットが扱えることが挙げられる。これは、「AOVs/Arbitary Output Variables」と言われる方式を用いることにより、ユーザーが任意に定義して1枚の画像に格納できるマルチチャンネルファイルの様式である。NukeはこのOpenEXRの扱いに長けている。筆者が、Nukeを用いる理由も、このファイルを扱えることが大きかったりするのだが、そして、このことがNuke設計思想の根幹にもなっているのだ。

では、実際にこのOpenEXRファイルを扱ってみよう。例えば今回準備したファイルは、デフォルトのRGBAを含め9つのチャンネルを内包している。これらチャンネルを確認するのには、大きく3つの方法がある。1つ目は、ビューワーペーンの左上にある現在の表示チャンネルを指定するプルダウンだ。次に、同じくビューワーペーンの左下にある、現在そのビューワーペーンに表示されているノード・オペレータの所有チャンネルの羅列。さらに、[LayerContactSheet]というノード・オペレータを用いれば、それにコネクトされた全てのチャンネルを画像として一覧で表示することができる。

チャンネルの確認

様々な方法でチャンネルを確認できるが、通常はビューワーペーンの左上にあるプルダウンで各チャンネルを確認しながら作業を行う

ビューワーペーン左下のセッティング表示

また、見落としがちではあるビューワーペーンの左下に出ている情報は非常に有益だ
 

実際に、ビューティ・パスのようなRGBチャンネルに、GI効果を強調するべく、例えばアンビエント・オクルージョン(AO/Ambient Occlusion)を用いてみよう。AEであれば、「EXtractoR」というプラグインを用いて、各チャンネルを"バラす"必要があり、扱うのは常にRGBAチャンネルとなる。

AEプラグイン「EXtractoR」 AEのタイムライン

AEでもプラグインを用いることで、各チャンネルを取り出すことができる。ただし、その場合は常にRGBAとして扱われるが、取り出してしまえば、後は普通にレイヤー合成などが可能だ
 

それに対して、Nukeは"常にマルチチャンネル"ということが根底にある。表示されているチャンネル、例えばRGBAが全てではなく、それは、マルチチャンネルの"流れ"から取り出して来ているに過ぎない。
そう聞くと、万能かつフレキシブルで何やら夢が広がるような感じがしてしまうのだが、常に複数のチャンネル、言い換えれば不必要なチャンネルまでも内包していることになるため、自ずとデータサイズが大きくなってしまい処理に時間がかかることもしばしばだ。

したがい、NukeでOpenEXRファイルを扱う際には現在"流れている"チャンネルを常に把握しておく必要があるわけだ。もちろん、ユーザーが不要だと判断すれば、チャンネルごとに削除することもできる。

さて、具体的にAEで行う要領でAOのチャンネルを乗算する場合は、[Merge]を用いて、[A]、[B]共にOpenEXRをソースとする[Read]をコネクトし、バックグランドであるB チャンネルに「rgba」を指定し、Aチャンネルに「AO」を指定。その上で[operation]の項で乗算合成を行う[multiply]を選択するというのが、Nuke式だ。

ノードとプロパティ

マルチチャンネルなのでソースは同じ画像ではあるので、[Merge]でAチャンネルとBチャンネルに同じ画像をコネクトし、プロパティで[A channels]に「AO」を指定。そして、[operation]で[multiply]を選択する

NukeのUI

AOチャンネルを乗算した例
 

もちろん、AEのように各チャンネルをバラして、合成することも可能だ。チャンネルを任意に相互変換するには[Shuffle]というノード・オペレータを用いる。これは各チャンネルの最大4つの要素をバラバラに再構成させるノード・オペレータだ。後は、[Merge]にてBチャンネルにオリジナルの[Read]をコネクトし、Aチャンネルにこの[Shuffle]をコネクト。さらにこの[Merge]のプロパティでA channelsとB channels共に「rgba」を指定し、先ほどと同じく[operation]にて[multiply]を指定すれば、同様の結果が得られる。

Shuffleのパラメータ

この場合、アンビエント・オクルージョンである「AO」でいったん[Shuffle]で、「rgba」に変換する。こうしておいた方が[Merge]にコネクトしているのは、デフォルトのrgbaではなく、変換後の画像であると把握しやすい

Mergeのパラメータ

なお[Merge]では、チャンネルを特に指定する必要はなく、デフォルトのrgbaのままで問題ない
 

このように、Nukeでは「どのチャンネルをどのように扱うか」がとても重要になる。さらに、どのチャンネルが"表(おもて)"に出てきているかなどが判り辛い。したがい、共同作業を行う際には、[StickyNote]や[Backdrop]をなどを用いて適宜注釈などを加えるといった具合に、理解しやくしておくことをお勧めする。また、[PostageStamp]を用いれば、そのノードの表に出てきている画(rgbaチャンネル)をノードグラフ上で表示することができるので、これも積極的に利用しよう。

ノード構成を判りやすくする補助ツール

Nukeは複数の情報を同時に保持していたり、相互交換していたりするので、データの流れを補助的ツールを用いて伝えた方が判りやすいし、共同作業する上で効率的だ。こうしたツールも標準で準備されている

その他の連載