オブジェクトに質感を与えるテクスチャリングは3DCG制作において重要な工程の一つで、同時にモデリングなどと同じくらい時間のかかる作業です。
テクスチャリングは基本的にCinema 4Dなどの3DCGソフトウェアが提供しているマテリアルエディタを使ってマテリアルを作成するのが一般的です。
しかし、イメージテクスチャを変更する時や他のマテリアルにも同じパラメータを適用する際などの作業を行う場合、マテリアルエディタだと項目を行ったり来たりするので、とても面倒です。そんな時に役立つのがノードエディタ(Node Editor)というもの。
ノード(Node)は3DCGソフトウェアやレンダラーのほか映像編集に使用するソフトウェアなどに組み込まれているシステムの一つで、各ノードにある効果やパラメータを調整し、ノード同士を繋げることで簡単に効果を出力したり、別のノードに適用するなど簡単に出来るようになります。
3DCG制作においては物理演算やプロシージャルモデリングなどで使われるほか、マテリアルの作成でも多く使われています。CPUベースのレンダラー、Corona Rendererでもマテリアル作成に役立つノードマテリアルエディタ(Node material editor)が用意されています。
Node material editor
Redshiftなどのレンダラーはマテリアルを作成する際にノードの編集画面であるシェーダーノードが現れますが、Corona Rendererの場合は作成したマテリアルをNode material editor(ノードマテリアルエディタ)に追加する必要があります。
まず、マテリアルマネージャで「Corona」から「New Material」を選択してCoronaマテリアルを作成します。
次に上部メニューの「Corona」から「Node material editor」をクリックしてシェーダーノードを表示させます。
作成したCoronaマテリアルを「Node material editor」にドラッグ・アンド・ドロップしてノードで編集ができる状態にします。
ノードマテリアルエディタからマテリアルを新規作成したい場合は、ノードマテリアルエディタの上部にある「Create」、「New Material」の「New Material」をクリックするとノードマテリアルエディタとマテリアルマネージャの中に追加されるようになります。
Node material editorの基本操作
Corona Rendererの場合、シェーダーノードの画面に全てのマテリアルがデフォルトで追加されます。Redshiftのようにマテリアルごとの画面は表示されないので注意しましょう。
また、マテリアルの最終的な出力先は「Corona Material」になるので、Corona Multi Shaderなど複数のマテリアルを合成しない場合は基本的にCorona Materialにノードを紐付ける形で完了します。
要素の追加
Node material editorにCoronaマテリアルを追加すると、Diffuseのポート(接続先)しか表示されません。反射(Reflection)や変位(Displacement)のノードを追加したい場合は、右側に表示されている項目の「基本」から追加したい要素を選択すればマテリアルのノードにポートが追加されるようになります。
ノード内の移動、拡大
ノードエディタの中を移動したり、拡大するには上部メニューのアイコンをクリックしながらマウスを上下左右に動かせば良いです。右側の4方向の矢印は移動、上下の矢印はズームイン・ズームアウトとなります。
ノード接続と解除
ノードの左右にあるオレンジ色の点であるポートをクリックしながらドラッグすると白線が現れるので、接続したいポートにドラッグすることでノードを繋げることが出来ます。
ノードの接続を解除(削除)したい場合はノード同士がつながっている白線をドラッグすることで解除されます。
イメージテクスチャを追加してマテリアルを作成する
「イメージテクスチャを使って、よりリアルなマテリアルを作ってみよう!マップの種類と適用方法とは?」の記事で使用しているビットマップ画像のテクスチャをカラーやディスプレイスメントなどのマップを使ってマテリアルを作成していきます。
マテリアルマネージャから「Corona」、「New Material」でCoronaマテリアルを作成し、Node material editorへと追加します。名称はわかりやすく「Brick」にしました。
Cinema 4Dでのマテリアル作成では全てのマップを使用しましたが、Corona Rendererではアンビエントオクルージョンのマップは特に必要ないので、今回はdiffuse、displacement、normals、roughの4つのマップを使ってマテリアルを作ります。
4つのマップをnode material editorへとドラッグ・アンド・ドロップして、ノードを追加します。
「Brick」のマテリアルをクリックして右側のオプションにある「基本」から「Diffuse」、「Reflection」、「Bump」、「Displacement」にチェックを入れてノードにポートを追加します。
ビットマップと表示されているイメージテクスチャのノードをマテリアルのポートへと接続します。特に追加のノードが必要のない「Diffuse」、「Displacement」そ接続し、「Roughness」のテクスチャは「Reflection」の「Texture」のポートにリンクします。
ノーマルテクスチャは追加でNormal Mapシェーダーを追加する必要があります。右クリックまたは上部メニューの「Create」にある「New Shader」から「Corona」の「Normal」をクリックしてノードを追加します。
追加されたNormal Mapシェーダーにノーマルマップのノードを「Texture」ポートに接続し、Normal MapシェーダーをBrickマテリアルの「Bump」へと接続すれば完了です。
最終的に完成したマテリアルのノードはこのような感じに。このマテリアルのプレビューサイズを変更してオブジェクトに適用してみた結果がこちらです。
上のレンダリングでは効果がわかりやすくなるように、Displacementの高さである「Max level」を「20cm」にしています。
Corona RendererのNode material editorではレイヤーなどCinema 4Dのシェーダーと組み合わせることが出来るほか、他のレンダラーにもある様々なシェーダーが用意されているので、より複雑なマテリアルを作成可能です。
今回は基本操作とイメージテクスチャを反映させる簡単なノードの作成方法を紹介しましたが、様々なテクスチャを加えてユニークなマテリアルを作っていてくださいね!
(MIKIO)