オブジェクトに色や質感を追加するマテリアルは基本的に一つのオブジェクトにつき、一つのマテリアルを適用させることがほとんどだと思いますが、場合によってはベースのマテリアルは同じであるものの、色のみ変更したいというプロジェクトがあるかもしれません。
例えばクローナーで作成したオブジェクトにマテリアルを適用させる場合、一度クローナーを編集可能にした後で色違いのマテリアルをそれぞれ反映させることも出来るものの、オブジェクトの数やマテリアルの色が多くなってしまうと作業時間もかかってしまうので、可能であればスピードアップさせたいものです。
でも実はRedshiftにはそれを可能にさせる「Color User Data」というノードが用意されており、これを活用することで一つのマテリアルに複数の色を作成する事ができます。
オブジェクトにマテリアルを追加する
今回のチュートリアルで使用するオブジェクトはMoGraphのクローナーを適用した立方体です。このオブジェクトにRedshiftのデフォルトマテリアルを適用させています。
通常であればクローナーオブジェクトを編集可能にし、それぞれの色を指定したマテリアルを作成するところですが、今回は一つのマテリアルで完結したいので、RSマテリアルをダブルクリックしてシェーダーグラフを表示させましょう。
ノードの追加
検索窓から「color」と検索し、「User Data」の中にある「Color User Data」のノードを追加します。
次に検索窓から「ramp」と入力し、「Textures」の中にある「Ramp」ノードを追加しましょう。
「Color User Data」の「Out」を「Ramp」の「Input」に、そして「Ramp」の「Out Color」を「RS Material」の「Diffuse Color」のポートにそれぞれ接続します。
この状態でRedshift IPRでレンダリングを行うと上のように全てのオブジェクトが黒くなっているので、設定の反映と色の指定を行う必要があります。
「Color User Data」を選択し、右側の設定画面の中にある「Attribute name」の三角アイコンをクリックして「Objects」の「Geometry ID Color」を選択します。こうすることで下のように色がランダム化されました。
このままだとまだ白黒なので、「RS Ramp」ノードを選択して、「Ramp」の項目から反映させたい色を追加するか、「プリセットを読み込み」からプリセットを読み込んで色を変更すると良いでしょう。
上の例では「Scheme 3」のプリセットを適用しました。レンダリングを行うと一つのマテリアルに複数の色が反映されているのがわかります。
色のバリエーションの変更と透過オブジェクトへの反映
基本的に前の項目で紹介した方法で一つのマテリアルに複数の色を反映することができましたが、色のバリエーションを変更する場合は「Mul」ノードを「User Color Data」と「Ramp」の間に配置すると良いでしょう。
Color User Dataの「Out」をRS Mulの「Input 1」ポートに接続し、Mulノードの「Out」をRampの「Input」へと接続します。
Mulノードを追加してRedshift IPRでレンダリングを行うと上の画像のように色が一つになってしまうものの、「Input 2」の数値を「1」から「2」の間に調整することで色のバリエーションを変更することができます。
上の例ではマテリアルの色である「Diffuse Color」に接続されていますが、ガラスなどの透過オブジェクトへの反映を行う場合は「RS Material」の「Preset」を「Glass」または「Tinted Glass」にしてそれぞれのポートに接続すると良いでしょう。
Glassの場合は「Refraction Color」に、Tinted Glassの場合は「Refraction Transmittance」に接続します。
このノードを利用する際の注意点
このColor User Dataノードはランダムの色を反映させるには便利ですが、Redshift IPRとCinema 4Dの画像ビューアでのレンダリングの際に配色が異なってしまうの可能性があるので、注意が必要です。
この現象はバグによるものなのかもしれませんが、オブジェクトごとに特定の色を反映させる場合は個別にマテリアルと適用させるのが良いかもしれません。特に指定は無くランダムに色を適用させたいというのであれば、このColor User Dataを活用してみると良いかもしれません。
(MIKIO)