Hall

Poserの機能

凹凸の表現

2007.07.15

3Dモデルの仕上げ

形状を記録定義したものが3Dモデルのオブジェクトデータですが、それだけでは表現しきれないものもあります。例えば、洋服生地や絨毯の折り目などの細やかな立体感。建物のモルタルの風合いやヒビ。自動車のタイヤやホイールの汚れ。そういった表現のためにイメージマップが使われます。

Poserの場合、特に入念に作られるのは、顔のイメージマップです。人の顔は化粧で変わりますが、Poserのキャラクターも化粧と同様にイメージマップで変わります。イメージマップは色を決めるために使われますが、その他にも立体感を補うマップがあります。一つがバンプマップで、もう一つがディスプレイスメントマップです。

バンプマップ

物をスケッチするときに、陰影をつけて立体感を演出します。バンプマップは、これに似ています。光学的に立体感を補うように、2Dのイメージマップを使うのです。実際に3次元で表現する訳ではないので、大きな凹凸には向きませんが、凹凸を効果的に見せることが簡単に可能になることから、非常に良く使われます。

手のバンプマップバンプマップは、イメージマップと同じ手法で作成できます。凹凸を表すだけのデータなので、基本的に白黒のイメージになります。実際には凹凸を表すのではなく、凹部分を白で表現します。現実に人間の目に映る凹形状は陰となり黒っぽく見えるのですが、バンプマップは凹形状を白で表現するので、ちょうど実際の形状を白黒反転したようなイメージになります。右のバンプマップは、Poser標準で使われているファイル(Jessi_Body_Bump.jpg)の一部ですが、陰影が反転している様子が見て取れます。

バンプマップが現実の陰影を反転したようなイメージなので、しばしば陰影そのものと勘違いされることがありますが、陰影そのものではくて陰影を表現するためのデータなのです。そのままイメージとして使われる訳ではありません。また白い部分は純白ということではなく、グレーでありグレースケールとして明るさのデータが凹形状の強さ、つまり深さを表しています。

Poser標準のオブジェクトに付属するバンプマップは、テクスチャマップと同じフォルダにまとめられています。Poserのオブジェクトは全てPoserフォルダの中にある「Runtime」フォルダの中にまとめられていますが、このRuntimeフォルダの中の「Textures」フォルダにバンプマップを含む全てのテクスチャマップが収まっています。

ディスプレイスメントマップ

バンプマップが光学的に凹凸を表現するのに対して、ディスプレイスメントマップは3次元データを補完します。レンダリング時にディスプレイスメントマップを基に、3Dオブジェクトデータをさらに細かくします。3Dオブジェクトデータは、小さな三角形の集合体として表現されていますが、その三角形をポリゴンと呼びます。ディスプレイスメントマップによりさらに細分化されたポリゴンをマイクロポリゴンと呼びます。

余談ですが、最近はレンダリング時にマイクロポリゴン化する技術が浸透して、3Dオブジェクトモデルの最小単位が必ずしも三角形のポリゴンではなくなりました。四角形で組まれたオブジェクトや、たとえその四角形が歪んでいても、マイクロポリゴン化することで計算可能な形状にすることができるようになりました。

バンプ対ディスプレイスメント

バンプマップもディスプレイスメントマップも3Dモデルの立体感を補完するものであることに違いは無いことが判ったところで、じゃあ一体どっちを使うべきなんだと悩むことになります。この2つのマップには、それぞれ特徴があって、使い分けでそんなに悩むことはないと思います。

バンプマップは、擬似的に陰影をつけて3Dオブジェクトをより立体的に見せる役割を果たしますが、あくまでも擬似的なので立体感の表現力には限界があります。凹凸形状の差があまり大きな形状の表現はできません。オブジェクトの縁に強いバンプマップを使用すると、縁取りの形状が変わらないこともあり、不自然な影にしか見えないこともあります。

ディスプレイスメントマップは、実際に3Dデータを生成してくれますが、キャラクタオブジェクトに適用することはできません。

カメラ正面から照明を当てるようなときには、ディスプレイスメントマップよりバンプマップの方が表現力があります。ディスプレイスメントマップの場合には3Dモデルと同様、影ができないと立体感に欠けてしまうのですが、カメラ方向から照明を当てると、カメラから影が見えにくい状態になります。問題は、レイトレーシングでレンダリングしないと、実際どのように表現されるかが判らないので、照明の設定がとてもしにくいことです。またあまりに細かいディスプレイメントマップの場合には、やはり影がはっきりと作られないことがあります。例えば、絨毯や生地の折り目などの表現には、ディスプレイスメントマップよりバンプマップが適していると言えます。

単純に言えば、ゆったりとした起伏や、細かいパターンのような模様や、フィギュアに施すときにはバンプマップ。カチッとした表現や、輪郭に影響を与えるようなときにはディスプレイスメントマップを使うことになります。Poserに慣れてくると、どちらの方が立体感を表現できるか、楽に判断できるようになると思います。

ディスプレイスメントマップの作例

バンプマップの利用は、Poserのフィギュアをはじめ多くの付属したモデルで使われているので、実際どのように使われているのか目にしてもらうことにして、ディスプレイスメントマップの使い道について考えることにします。

船を跨ぐ巨人一般的に使われる方法として、波立つ水面を適当だと思います。 これは最もシンプルで、かつディスプレイスメントマップならでは使い方でしょう。

この作例は、波立つ海面の表現にディスプレイスメントマップを使用しています。バンプマップの表現では平面の陰影としてしか表現されないので、波の輪郭は平面のままになってしまいます。波を表現するためには3Dでなければ無理で、かといって波打つ3Dモデルを作るのは容易ではありません。まさにディスプレイスメントマップ向きのオブジェクトと言えます。

ディスプレイスメントマップの設定例

波打つ水面のアップ左の絵は、作例の一部分をアップで見たものです。水面が波打っている様子が良くわかると思います。バンプマップでは、こうしたうねりは発生しないので、このような波の輪郭はできません。オブジェクトに反射属性を持たせてありますが、水面が他のオブジェクトを波うちながらも映しているのが判るかと思います。こうした反射もバンプマップでは表現できません。

実際にどのような設定を行ったか、見てもらいましょう。

ディスプレイスメントマップ設定この作例ではディスプレイスメントマップにテクスチャを使用していません。うねりを表現した適当なテクスチャを用意するのが面倒だったので、この作成では3Dテクスチャノードの「雲」を使っていました。

Poserのマテリアルルームでは、計算で作り出したり計算を必要とする定義を予め用意していあります。3Dテクスチャノードはフラクタルな模様を計算で得て利用するためのノードです。フラクタル図形とは、大雑把に見ているのか細部を見ているのか区別がつかないような図形を言います。雲もその一つで、幾何学的計算で求めた模様として表現したものが、雲ノードです。

マテリアルルームに入って「床」オブジェクトを選択します。つまり水面は、床を利用して表現したものなのです。床オブジェクトにはルートノードとして「Poserサーフェース」が定義されています。その属性「ディスプレイスメント」の右端にあるアイコンをマウスボタンを押しながらドラッグしますと、にょろにょろと紐上のものが出てきます。適当な場所でマウスボタンを離すと、新規ノードの作成に入ります。表示されたメニューを操作しながら3Dテクスチャーノードの「雲」を探して選択してください。すると雲ノードが、ルートノードのディスプレイスメントマップにリンクされた形でマテリアルルームに現れます。

ノードの作成方法は、Poser7リファレンスマニュアルの第33章ノードの使用に書かれています。詳しくは同マニュアルの396ページを参照すると、他の方法も書かれています。操作しやすい方法でノードを作成してください。

雲ノードを作成した時と同じ要領で、ルートノードの「反射色」にレイトレースノードに含まれる「反射」ノードを追加します。反射ノードはレンダリング方法にレイトレーシングを選択した時のみ有効になります。これで水面に周囲の景色が映し出されるようになります。

作例では雲ノードの「空の色」属性を背景に合わせて色を調整し、ルートノードの「拡散色」属性にもリンクしていますが、別に行わなくてもそれなりに表現されます。ディスプレイスメントマップの強度を変更すると、波の高さを変更できます。作例ではデフォルト(0.08333)のまま使っています。

ディスプレイスメントマップを使いこなせれば、オブジェクトモデルにちょっとしたアイディアを試せるようになります。ピカピカの新車も良いかもしれませんが、車のボディにちょっとしたへこみをつけてリアリティを表現したりなど。オブジェクトを作るのは大変でも、ディスプレイスメントマップなら手軽に表現できると思います。