R16 マテリアル基礎

レベル/ 対象者:基礎/CINEMA 4Dを少し使える人。
対象ソフトウエア、プラグイン:CINEMA 4D R12

絵の質は、照明とマテリアルの質で決まる。

冨士 俊雄/ gtofuji@gmail.com
章番号 題名 内容、及び関連する章 作成日/注記
024 4_変位とXPresso サブポリゴン変位、アルファ、カラー変換、変位、XPresso、自動化、ユーザデータ、条件分岐、HUD 2011.6.8
Previous Top Next

 

Step 1

サブポリゴン変位

 この章では、サブポリゴン変位とXPressoを使ったマテリアルの管理について説明します。

 
 「サブポリゴン変位」とは、「変位」チャンネルの中にあるオプションです。サブポリゴン変位を使うと図024-1のような文字のエンボス加工を、モデリングせずに表現できます。

図024-1
サンプル024aのフレーム0

 

 それでは、このエンボスを加工する手順について詳しく説明します。まず、このエンボス加工されたリングは、プリミティブの「円柱」でできています。

図024-2

 

 次に、このリングには「ブルー」と「メタル」の2種類のマテリアルが重ねて適用されています。そして、メタルの一部をアルファチャンネルで切り抜いて、ブルーのマテリアルの上に重ねているのです。

 ここで不思議なのは、「メタルが全然メタルに見えない」ということです。これは全く変化のない床がメタル全面に映りこんでいるからです。つまり、メタルを「メタルらしく」見せるには、何かしらオブジェクトを映りこませる必要があるのです。

図024-3
フレーム1、フレーム2

オブジェクトマネージャを見ると、1個のオブジェクトに2個のテクスチャタグが付いていることが判ります。ここで、右側のテクスチャタグにリンクされたマテリアルが、左側のマテリアルの上に重ねられます。

図024-4

 

 

Step 2

アルファ

 次に、メタルのマテリアルを切り抜くために、図024-5のようなビットマップテクスチャを使いました。これはPhotoshopでテキストを書き、フィルタでボカして作ったものです。サブポリゴン変位を使うには、ボケた画像が必要なのですが、CINEMA 4Dの中では画像をうまくボカせないので、この作業はPhotoshopで行った方がいいでしょう。

図024-5

 この画像をメタルのアルファチャンネルに適用すると、図024-6のようにメタルの周囲が切り抜かれ、下にブルーのマテリアルが見えるはずです。

 ここで、ビットマップ画像を円柱に正しく貼るには、まずテクスチャタグを選択し、オブジェクトマネージャのメニューから「タグ -> オブジェクトに合わせる」を選択します。これで、テクスチャ軸のスケールがオブジェクトの大きさに一致します。

 次に、テクスチャタグの中の「投影法」を「円柱」に変更し、「サイズU」の値を「50%」に変更して下さい。

図024-6
フレーム3

 ただし、この画像はサブポリゴン変位用に作ったもので、アルファチャンネルに使うにはボケ過ぎています。そこで、画像をシャープにします。「カラー変換」シェーダを使うと簡単に画像をシャープにできます。

図024-7

 カラー変換は、グラデーションバーを使って入力された色を変換する機能です。いろいろな目的で使えるのですが、ここではPhotoshopのトーンカーブと同じ使い方をしています。つまり、入力が「40%」以下なら「0」、入力が「55%」以上なら「100」を出力するようにグラデーションを指定していて、これによってボケた画像をシャープにしているのです。

 カラー変換を通してシャープにした画像をアルファチャンネルに入れると、図024-8のようになります。

図024-8
フレーム4

 

 

Step 3

変位

 次に、「変位」チャンネルについて説明します。変位チャンネルは、オブジェクトの表面にあるでこぼこを表現します。目的はバンプチャンネルと全く同じですが、「実際にオブジェクトの形状を変形させる」という点でバンプとは異なっています。

 バンプチャンネルはオブジェクトの形状を変化させないので、「微細なでこぼこ」しか表現できませんが、変位チャンネルを使うと大きなでこぼこでも表現できます。ただし、その分ポリゴンを増やす必要があり、広い範囲に適用することはできません。したがって、変位を使うのは本当に必要な部分だけにとどめ、他の部分はバンプを使うようにして下さい。

 まず、変位チャンネルにビットマップ画像を適用してレンダリングすると図024-9のようになります。

図024-9
フレーム5

 確かに変位していることが判りますが、ポリゴンが粗すぎて何が書いてあるのか読めません。この問題を解決するには、ポリゴンを細かく分割する必要があります。もちろん、エディタで「HyperNURBS」や「細分化」を使ってオブジェクトを細分化してもいいのですが、そうするとエディタでの操作が重くなったり、ファイルサイズが大きくなったりします。

 そこで、「サブポリゴン変位」という機能が考えられました。サブポリゴン変位は、「ポリゴンを細分化する」という点では、「HyperNURBS」や「細分化」と同じです。違うのは、細分化する場所がエディタの中ではなく「レンダラーの中」だという点です。

 エディターでオブジェクトを細分化する場合、エディターは細分化したオブジェクトを表示したり、保存したりする必要があります。しかし、レンダラーでオブジェクトを細分化する場合、レンダラーはレンダリングする時だけ一時的にオブジェクトを細分化し、レンダリングが終わったらすぐに捨ててしまいます。つまり同じ細分化をする場合でも、レンダラーの中で行った方がエディターの中で行うより数倍楽なのです。


 それではサブポリゴン変位のオプションをチェックし、分割数の値を変えて結果を比較してみましょう。

図024-10


左が分割数1(フレーム6)、右は分割数2(フレーム7)。

図024-11
左が分割数3(フレーム8)、右は分割数4 (フレーム9)。

 この結果を見ると、スムーズなエンボスを得るには分割数を4にする必要があります。ただし、分割数を4にするということは1枚のポリゴンを256分割するということで、非常に重くなります。分割数の値を大きくしすぎないように注意して下さい。

 また、必要な分割数は元々のポリゴンの大きさや、ビットマップ画像のシャープさなどによって変わります。その都度調整して下さい。

 例えばシャープな画像を使うと、分割数を5にしてもエッジのギザギザが目立ちます。

図024-12
フレーム10

 これは「ポリゴンの目」が文字のラインとは関係なく並んでいるために発生する現象で、どうしようもありません。このような理由から、サブポリゴン変位ではシャープなエンボスを作れないのです。シャープなエンボスが必要な場合は、諦めてポリゴンモデリングをして下さい。また、サブポリゴン変位を使う場合は、必ずボケた画像を使うようにして下さい。

 

 サブポリゴン変位の調整ができたら、そのチャンネルをコピーし、ステップ2に戻ってメタルの変位チャンネルにペーストします。すると図024-1のようになるはずです。

 ここで、アルファチャンネルを止めて全面をメタルにすると、図024-13のようになります。

図024-13
フレーム11

 映りこむものがあると、確かにメタルらしく見えますね。

 

 

Step 4

XPressoを使う


 最後に、XPressoを使ってマテリアルを管理する方法について説明します。XPressoとは言っても、「プログラム」とか、「計算」とか「数学」は一切使わないので心配しないで下さい。

 

 どんな分野の仕事をしていても、一つのオブジェクトに適用されたマテリアルを差し替えて「色違いバージョン」を作ることがよくあります。
 
 このような時、シーンファイル(プロジェクトファイル)を作れないPhotoshopやIllustratorでは、バージョンの数だけファイル(もしくはレイヤ)を作る必要があります。しかし、ファイルを分けてしまうと、形状やテキストの直しが入った時に、全てのファイルを同じように修正しなければならず非常に面倒で、ミスも発生しやすくなります。


 これに対して、CINEMA 4Dで色違いバージョンを作る一番簡単な方法は、タイムラインにキーを打ってしまうことです。例えば、このテキストを書く時に作ったサンプルファイルもタイムラインを使ってバージョン違いを作っています。このようにすると、一つの修正が全てのバージョンに反映されるので、作業が楽でミスも減ります。

 しかし、バージョンを変える目的でタイムラインを使うと、本来の目的でタイムラインを使えなくなります。つまり、アニメーションが作れなくなってしまいます。また、タイムラインは1本しかないので、複数のバージョンを組み合わせることができません。

 XPressoを使うと、このような問題を全て解決できます。


 それではサンプル024bを開いて下さい。

図024-14

 この絵の中央にはフレーム付きの円板が表示されています。そして、現在の「円板」は無地の白で、「フレーム」は金色です。この円板とフレームに対してバージョン違いを作ってみましょう。

図024-15
円板は「無地」、「メタル」、「ガラス」の3種類、フレームは「金」、「銀」の2種類ある。

 

 

Step 5

XPressoを作る

 それではまずXPressoタグを作ります。

図024-16
図をクリックするとムービーが開きます。

 XPressoは判りやすいオブジェクトに付けます。ここでは「Objects」がいいでしょう。

 次にXPressoタグをダブルクリックすると、XPresso編集ウインドウが出てきます。ここに円板とフレームに適用されたテクスチャタグと、マテリアルを全てドラッグアンドドロップします。これらのリンクをXPressoの機能を使って切り替えるわけです。

 

 次に、もう一つ大事な部品を作ります。それは「切り替えスイッチ」です。切り替えスイッチはいろいろな方法で作れますが、ここでは「ユーザデータ」で作りましょう。ユーザデータというのは、ユーザが自由にオブジェクトに追加できるパラメータです。

図024-17
図をクリックするとムービーが開きます。

 ユーザデータにはいろいろなタイプがありますが、ここでは整数をスライダで変えることにします。例えば、「disk_switch」の値が「1」だったら「無地」マテリアルに切り替わる、「2」だったら「メタル」マテリアルに切り替わる、といった感じです。


 次に、もう一度XPresso編集に戻って、「objects」をXPresso編集にドラッグアンドドロップします。ここからユーザデータが取り出せます。

 さらに、XPresso編集内部で「条件分岐」ノードを作って、他のノードをつないでいきます。

図024-18
図をクリックするとムービーが開きます。

 条件分岐ノードは、スイッチの値に応じて出力を切り替える働きを持っています。例えば、もしスイッチの値が「0」であれば、一番上の入力にリンクされたマテリアルがテクスチャタグに出力されます。また、もしスイッチの値が「1」であれば、2番目の入力にリンクされたマテリアルが出力されます。ただそれだけのことです。


 これでXPressoが完成しました。ユーザデータを動かして、XPressoが働いているかどうか確認してみましょう。

図024-19
図をクリックするとムービーが開きます。

 ユーザデータは、基本的に属性マネージャで作成し、編集しますが、エディタの上に持ってくることもできます。この機能を「HUD(ヘッドアップディスプレイ)」と呼びます。頻繁に切り替えるスイッチはエディタに持ってきておくと便利です。

 XPressoを完成させたサンプル024c

 

Previous Top Next