R12絵の質は、照明とマテリアルの質で決まる。1サブポリゴン変位この章では、サブポリゴン変位とXPressoを使ったマテリアルの管理について説明します。「サブポリゴン変位」とは、「変位」チャンネルの中にあるオプションです。サブポリゴン変位を使うと図024-1のような文字のエンボス加工を、モデリングせずに表現できます。図024-1サンプル024aのフレーム0それでは、このエンボスを加工する手順について詳しく説明します。このエンボス加工されたリングは、プリミティブの「円柱」でできています。図024-2次に、このリングには「ブルー」と「メタル」の2種類のマテリアルが重ねて適用されています。メタルの一部をアルファチャンネルで切り抜いて、ブルーのマテリアルの上に重ねているのです。ここで不思議なのは、「メタルが全然メタルに見えない」ということです。これは全く変化のない床がメタル全面に映りこんでいるからです。メタルを「メタルらしく」見せるには、何かしらオブジェクトを映りこませる必要があるのです。図024-3フレーム1、フレーム2オブジェクトマネージャを見ると、1個のオブジェクトに2個のテクスチャタグが付いていることが判ります。ここで、右側のテクスチャタグにリンクされたマテリアルが、左側のマテリアルの上に重ねられます。2アルファ次に、メタルのマテリアルを切り抜くために、図024-5のようなビットマップテクスチャを使いました。これはPhotoshopでテキストを書き、フィルタでボカして作ったものです。4Dの中では画像をうまくボカせないので、この作業はPhotoshopで行った方がいいでしょう。図024-5この画像をメタルのアルファチャンネルに適用すると、図024-6のようにメタルの周囲が切り抜かれ、下にブルーのマテリアルが見えるはずです。オブジェクトに合わせる」を選択します。これで、テクスチャ軸のスケールがオブジェクトの大きさに一致します。次に、テクスチャタグの中の「投影法」を「円柱」に変更し、「サイズU」の値を「50%」に変更して下さい。図024-6フレーム3ただし、この画像はサブポリゴン変位用に作ったもので、アルファチャンネルに使うにはボケ過ぎています。そこで、画像をシャープにします。「カラー変換」シェーダを使うと簡単に画像をシャープにできます。図024-7カラー変換は、グラデーションバーを使って入力された色を変換する機能です。いろいろな目的で使えるのですが、ここではPhotoshopのトーンカーブと同じ使い方をしています。入力が「40%」以下なら「0」、入力が「55%」以上なら「100」を出力するようにグラデーションを指定していて、これによってボケた画像をシャープにしているのです。カラー変換を通してシャープにした画像をアルファチャンネルに入れると、図024-8のようになります。次に、「変位」チャンネルについて説明します。変位チャンネルは、オブジェクトの表面にあるでこぼこを表現します。目的はバンプチャンネルと全く同じですが、「実際にオブジェクトの形状を変形させる」という点でバンプとは異なっています。バンプチャンネルはオブジェクトの形状を変化させないので、「微細なでこぼこ」しか表現できませんが、変位チャンネルを使うと大きなでこぼこでも表現できます。その分ポリゴンを増やす必要があり、広い範囲に適用することはできません。したがって、変位を使うのは本当に必要な部分だけにとどめ、他の部分はバンプを使うようにして下さい。変位チャンネルにビットマップ画像を適用してレンダリングすると図024-9のようになります。図024-9フレーム5確かに変位していることが判りますが、ポリゴンが粗すぎて何が書いてあるのか読めません。この問題を解決するには、ポリゴンを細かく分割する必要があります。エディタで「HyperNURBS」や「細分化」を使ってオブジェクトを細分化してもいいのですが、そうするとエディタでの操作が重くなったり、ファイルサイズが大きくなったりします。そこで、「サブポリゴン変位」という機能が考えられました。サブポリゴン変位は、「ポリゴンを細分化する」という点では、「HyperNURBS」や「細分化」と同じです。違うのは、細分化する場所がエディタの中ではなく「レンダラーの中」だという点です。エディターでオブジェクトを細分化する場合、エディターは細分化したオブジェクトを表示したり、保存したりする必要があります。レンダラーでオブジェクトを細分化する場合、レンダラーはレンダリングする時だけ一時的にオブジェクトを細分化し、レンダリングが終わったらすぐに捨ててしまいます。同じ細分化をする場合でも、レンダラーの中で行った方がエディターの中で行うより数倍楽なのです。それではサブポリゴン変位のオプションをチェックし、分割数の値を変えて結果を比較してみましょう。図024-10左が分割数1(フレーム6)、右は分割数2(フレーム7)。この結果を見ると、スムーズなエンボスを得るには分割数を4にする必要があります。分割数を4にするということは1枚のポリゴンを256分割するということで、非常に重くなります。分割数の値を大きくしすぎないように注意して下さい。必要な分割数は元々のポリゴンの大きさや、ビットマップ画像のシャープさなどによって変わります。その都度調整して下さい。シャープな画像を使うと、分割数を5にしてもエッジのギザギザが目立ちます。図024-12フレーム10これは「ポリゴンの目」が文字のラインとは関係なく並んでいるために発生する現象で、どうしようもありません。このような理由から、サブポリゴン変位ではシャープなエンボスを作れないのです。シャープなエンボスが必要な場合は、諦めてポリゴンモデリングをして下さい。サブポリゴン変位を使う場合は、必ずボケた画像を使うようにして下さい。サブポリゴン変位の調整ができたら、そのチャンネルをコピーし、ステップ2に戻ってメタルの変位チャンネルにペーストします。すると図024-1のようになるはずです。ここで、アルファチャンネルを止めて全面をメタルにすると、図024-13のようになります。図024-13フレーム11映りこむものがあると、確かにメタルらしく見えますね。4XPressoを使う最後に、XPressoを使ってマテリアルを管理する方法について説明します。XPressoとは言っても、「プログラム」とか、「計算」とか「数学」は一切使わないので心配しないで下さい。どんな分野の仕事をしていても、一つのオブジェクトに適用されたマテリアルを差し替えて「色違いバージョン」を作ることがよくあります。このような時、シーンファイル(プロジェクトファイル)を作れないPhotoshopやIllustratorでは、バージョンの数だけファイル(もしくはレイヤ)を作る必要があります。ファイルを分けてしまうと、形状やテキストの直しが入った時に、全てのファイルを同じように修正しなければならず非常に面倒で、ミスも発生しやすくなります。4Dで色違いバージョンを作る一番簡単な方法は、タイムラインにキーを打ってしまうことです。このテキストを書く時に作ったサンプルファイルもタイムラインを使ってバージョン違いを作っています。このようにすると、一つの修正が全てのバージョンに反映されるので、作業が楽でミスも減ります。バージョンを変える目的でタイムラインを使うと、本来の目的でタイムラインを使えなくなります。アニメーションが作れなくなってしまいます。タイムラインは1本しかないので、複数のバージョンを組み合わせることができません。XPressoを使うと、このような問題を全て解決できます。それではサンプル024bを開いて下さい。図024-14この絵の中央にはフレーム付きの円板が表示されています。現在の「円板」は無地の白で、「フレーム」は金色です。この円板とフレームに対してバージョン違いを作ってみましょう。図024-15円板は「無地」、「メタル」、「ガラス」の3種類、フレームは「金」、「銀」の2種類ある。5XPressoを作るそれではまず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。