2012年10月23日 (火)ただ使うだけではダメで・・・・。
こんにちは、まだまだ知らないこともたくさん(?)ある、デザイナーのJ.Sです。
3DCGについて少し興味のある方、もしくはゲームのデータが、どう作られているのか、
多少なりともご存知の方なら、ノーマルマップ(法線マップ)テクスチャをご存じだと思います。
念のため、知らない方のために・・・・。
ゲームグラフィックの世界では、使えるポリゴン数は全く多くありません。
よく見る、ハリウッド映画などの特殊撮影効果や、最新の技術を駆使したキャラクターモデリングや、背景のオブジェ、風景描写に比べると、非常に少ないポリゴン数です。
また、実際にゲームを作っていく過程で、沢山のポリゴン数を費やしたモデルを作る時間もありません。少なくとも、我々AGにおいてはそうです。
(もしかすると、何らかの方法で、それらの制限を緩和できるのかもしれませんが・・・・・・。)
そこで、低いメッシュ解像度のポリゴンモデルデータに、細かいディテール(キャラクターの顔のしわ、岩石のひび割れなど)などを与えてるのがノーマルマップテクスチャの役目です。
ノーマルマップテクスチャというのは、とても乱暴な言い方をしてしまうと、それが張られているポリゴンの面が、「どのように・どれくらい凸凹して見えるか?」といった情報が書き込まれているテクスチャです。
作り方はいろいろあります。
いったん大変高いポリゴン数のモデルを作り、それで詳細な凹凸情報を表現し、それをポリゴン数のモデル用の法線情報として抽出するやり方や、テクスチャデータからディテールを表現するための法線情報を作成するやり方まで様々有ります。
いかにも、誰にとっても有用そうなノーマルマップ・・・。
ところが、ついこの前この手法について、単純だけれども思わぬ事を学び、恥ずかしながら奥の深さを感じました。
どういった事かというと・・・。
ある大きさの1本の円柱があります。その円柱には上面と底面がついていて、すべての面にノーマルマップの適用されたマテリアルが適用されています。
ノーマルマップは画像ベースで、NVIDIANormal Map filter をつかって作りました。
出力には、Freeのゲームエンジンとして知られる、UDK(Unreal Development Kit)を使います。
とりあえず、テストという事もあって、真っ白の画像からノーマルマップに変換し適用します。
あれ、....?所々、線が入ってハードエッジの様にになってしまっています。
モデル書き出しのときに、ここだけハードエッジにしたままだったでしょうか?
○XSI上での見た目
いいえ違います。この時、この現象の原因はノーマルマップテクスチャにありました。
○修正したノーマルマップテクスチャ
○改善されたUDK上での見た目
これが修正したノーマルマップです。以前の紫色の画像とは違い、青一色のものになっています。(R G B / 0 0 255)
UDK上でもきれいにつながって見えます。
そもそも、ノーマルマップが「それが張られているポリゴンの面の凸凹情報」をどのようにして表現しているかといえば、
テクスチャとして保存された R G B チャンネルデータの色の階調がポリゴンメッシュの各部分のローカル座標の x y z に対応して表現しています。
そのため、最初の紫色のテクスチャでは R Gに余計な情報が入っていてうまく円筒形のUVがつながって表現できなかったのではないでしょうか?
つまり原因は、
「何も描いていない真っ白の .psdデータを、ノーマルマップ化 =(イコール) デフォルトの平らな面の(円周を囲むような)ノーマルマップとして使える」
・・・と、勝手な思い込みをしていたことでした。
正直なところ、今回の一件でツールを使って何かを作ってみただけで、(たとえばNVIDIANormal Map filterを使って、ノーマルマップを作る)解ったつもりになっていてた自分に気づかされました。
なぜそのツールがそのような表現で、その使われ方をしているのか、知らなければいけない事はたくさんあるということです。ノーマルマップ以外でも、何か他にも有る、解ったつもりになって、全然解っていない落とし穴・・・・。
背景など、オブジェクトを作る身としては、
「本当に理解して使いこなしているかどうか?」
という点が、描画エラーなどが発生したときのスムーズな対処につながると思います。
私は、たった1本の円柱にそんなことを学びました。
| 固定リンク | コメント (0) | トラックバック (0)
「CGデザイナー」カテゴリの記事
- 心休まるアニマルホリデー(2019.03.14)
- 本格スパイスカレー作りに挑戦!(2019.02.21)
- ジョジョ展に行ってきました(2018.12.27)
- 京のかたな展に行ってきました!(2018.11.15)
- 熱い戦いは続く(2018.11.01)
この記事へのコメントは終了しました。
コメント