※使用しているNUKEのバージョン:NUKEX 10.0v5
この記事では、NUKEでコンポジットを行う際にチャンネルを操作する方法と、使用例について紹介致します。この機能は、マルチチャンネルコンポジットを使用する場合や、matteチャンネルを使用した合成等に使用することができます。
▼Channelノード
Channelノードでは、コンポジット内のチャンネルとレイヤーを操作することができます。
チャンネルにはRGBAの項目があり、そのそれぞれに、グレースケールの情報が入っています。基本的な画像・シーケンスは、その情報を処理することで、カラーと透明度を持った画像を表現しています。
レイヤーは、RGBAのチャンネルのセットのことを指します。このレイヤーを、OpenEXRの画像は追加で複数持つことができますが、それぞれのレイヤーのRGBAのチャンネルに入っているのは、通常の画像と変わらず、グレースケールの情報です。
以下は、チャンネルとレイヤーとグレースケール情報の図です。各レイヤーの中にRGBAチャンネルのセットがあり、必要な場所に、グレースケール情報が入力されているという形で認識されます。
NUKEは、このようなレイヤーのチャンネルに入っているグレースケールの情報を、Channelノードを使用することで、置き換えたり、追加したりすることが自由に行えます。
▼NUKEでチャンネル操作を行うノードの種類
NUKEのChannelノードには、以下の6つのノードがあります。それぞれ操作方法や、使用用途は異なります。
・Shuffle
Shuffleノードは、インプットが一つのみのChannelノードです。1つの画像のチャンネルを入れ替えたり、調整することができます。
使用例1:Shuffleでチャンネルをrgbaに抜き出す
1つのEXR画像に含まれている情報を使用して、レンダーパスの再合成を行う場合、Diffuse、Specular等のレイヤーが持っている情報を、メインのRGBAに移し、Mergeで合成するということを行います。
Shuffleノードは、その際によく使用されます。以下の画像は、lightingpassというレイヤーから、rgbaにデータを移動させたときの結果の画像です。
ノードのプロパティは、特殊な形になっています。上のプルダウンメニューでメインのRGBAに出力したいレイヤーを選び、レイヤー内の各チャンネルに含まれている情報を、RGBAのどれに出力したいかをチェックボックスの部分で指定します。上から入力された情報が、チェックボックスの付いたところで曲がって出力されるというようなイメージです。
使用例2:アルファチャンネルを削除する
Shuffle系のノードには、その画像の情報とは別に、0と1のインプットがあります。これは、すべてのピクセルが0の情報と、すべてのピクセルが1の情報にそれぞれ置き換えることができます。これにより、不要なアルファチャンネルが含まれているものを削除することができます。
・ShuffleCopy
ShuffleCopyノードは、プロパティとその操作方法はShuffleと同じで、インプットが2つあるChannelノードです。これにより、ある素材に、他の素材のレイヤー情報を移動させたり、同じ素材の別のレイヤー同士を合成したりすることができます。
使用例:他の画像のチャンネルの情報をアルファチャンネルにする
ShuffleCopyノードは、以下の画像の通り、上部分の入力が、Shuffleノードに比べて1チャンネル分増えています。
こちらを利用することで、1インプットで入力したチャンネル情報を、2インプットで入力した情報と置き換えることができます。以下の画像は、Colorbarに対して、Checkerboradが持っているR情報をアルファチャンネルとしてコピーし、適用した画像です。Matteチャンネルの情報をアルファチャンネルとして使う場合も、こちらと同様に操作します。
・Copy
Copyノードは、インプットが二つあり、Bインプットに接続した画像に、Aインプットに接続した画像の情報をコピーすることができるChannelノードです。ShuffleCopyとはプロパティが異なり、左側のプルダウンメニューで必要なAチャンネル側の情報を選び、右側でBインプットのその情報で上書きしたいチャンネルを選びます。
使用例:アルファチャンネルを別の画像からコピーする
Copyのデフォルトの設定が、Aインプットにつないだ画像のアルファチャンネルでBインプットの画像のアルファチャンネルを上書きするようになっているため、単純にノードを接続するだけでこの操作は行えます。
これにより、他の画像が持っているアルファチャンネルで、別の画像を切り取ることができます。同様の操作はShuffleCopyでも行えますが、単純な操作であれば、Copyの方がどのような操作を行っているかわかりやすいです。
・ChannelMerge
上記の3つのノードは、情報を置き換える(上書きする)効果を持っていますが、ChannelMergeノードはその2つのインプットに入力された画像の中で、選択されたチャンネル同士を合成し、指定したチャンネルへ出力することができます。選択されていないチャンネルは、Bインプットの画像がコピーされます。
使用例:アルファチャンネルの合成
デフォルトでは、AとBのアルファチャンネルを合成し、アルファチャンネルに出力するという設定になっています。通常のMergeノードと同様、operationの項目で、選択したチャンネルをどのように合成するか選択することができます。以下の画像は、チェック柄のアルファチャンネルと、CG画像のアルファチャンネルをMultiplyで合成した結果画像です。
上記の設定で合成したアルファチャンネルを使用すると、以下のような結果になります。
以下のノードは、限定的な効果を持つChannelノードです。
・Add(AddChannels)
AddChannelsノードは、新しいレイヤーを追加し、そのチャンネルに対して、他のチャンネルの情報、または任意のカラーを設定できるノードです。
※新しいレイヤーを追加することは、ShuffleやShuffleCopy、Copyでも可能です。
以下の画像では、新しく画像に対してmotionチャンネルを追加しています。
・Remove
Removeノードは、チャンネルの除去を行うChannelノードです。大量のチャンネルが含まれており、不要なチャンネルがある場合等に使用することができます。削除するレイヤーをプルダウンメニューで選択し、右に表示されるチェックボックスで、どのチャンネルを削除するかを選択します。