Zbrushで作った女性のモデルに簡単に色を塗ってみた(ポリペイント)が、これも滅茶苦茶楽しい。実物のフィギュアに色を塗るような感じでさくさく塗れるし、実物より遥かに簡単。本当に凄いソフトである。

で、Zbrushで作ったデータを3dsmaxで塗った色とノーマルマップ(低ポリゴンで法線バンプで擬似的に高ポリゴン状態に見せるマップ)データを再現してレンダリングするにはどうすれば良いかというと、OBJ形式でZbrushから出力、3dsmaxでUVマップを作成して、再びZbrushで読み込んで着色や形状の修正をするという段取りになる。
この際、UVマップデータはsdiv1のデータで作成するのが最も簡単である。
と、最初からこれがわかっていれば上の女性のモデルもスカルプトする前にUVマップを貼り付けておいたのにと悔やむがあとの祭りだ。orz
maxで読めるのはこのデータの髪や目を除いた本体だけでもsdiv5くらいで、sdiv6になるとメモリ不足のエラーが出たりする。
今の状態でも高sdivでの再度の修正と色を塗りなおすのを前提にsdiv5で吐き出せばやってやれないことはないが、結局↑のモデルデータは今後の応用が利かないので、ここまでとし、新たにsdiv1から作り直すことにした。
ちなみにprojectブラシやprojectAllで新規にUV設定した形状に現在のモデルを投影コピーする方法もあるのだが、形状が違う場合は結構難しく、一見綺麗にコピーできているような場所でも、ところどころポイントの座標が飛んでいて、棘状の無駄なポリゴンが発生する。一部を隠して裏を見ると結構悲惨なことになっている場合が多いようだ。これはスムースブラシで修正できるのだが、綺麗なデータにしようとすると意外に大変な作業で、一からスカルプトしたほうが早そうな気もする。
とりあえず、まずは実験ということで、適当に宇宙人っぽいモデルをタブレットペンの趣くままに作り、マスクでディテールを刻み色を塗ってmaxに渡してみた。

今回はsdiv1のもととなる形状の状態で一度maxにインポートし、UV座標データを付加してZbrushに読み戻し、スカルプト(モデリング)作業を始めた。
あとは普通にスカルプトし、色を塗るだけだ。

着色が終わったら、ZbrushのメインメニューのTextureで縦横のサイズを指定(今回は2048x2048)してnewボタンを押し、Toolの Texture にある col>txr ボタンを押すと色のマップ(拡散反射光マップ)が出来るので、これをメニューのほうのTextureダイアログ上で上下反転ボタンを押してからexportする。
次にノーマルマップを作るため、画面左上のZMapperボタンを押す。この時、モデルの分割レベルは最高でなければ何でも良いようだが、sdiv6くらいにすると警告のようなものが出た。
分割レベルは低いほうがマップ作成時間が早くて良いのだが、高sdivでの出っ張りが多いと、作成されるノーマルマップの高さを突き抜けてしまい、その箇所が平坦になってしまう。これを防ぐにはZMapperを起動する前にある程度分割レベルを上げておくと良いみたいだが、トレードオフでマップ作成時間が長くかかるようになる。(他の方法がありそうな気もするが・・・)
あとはOpenConfigrationボタンを押して3DS Max7_TangentSpace_BestQuality.zmpを読み込んで、右下のCreate NormalMapボタンを押すだけ。プレビューにバンプが施されたのを確認してExit等で抜け、メニューのTextureから適当なフォーマットでexportする。(こちらのマップは上下を反転する必要はない)
次にモデルデータを目的の分割レベルでエクスポートし、3dsmaxで読み込む。縁起物なので、編集可能ポリゴンに変換。この形状を選択した状態でモディファイアでUVWアンラップを付加。
マテリアルエディタで拡散反射光カラーとバンプにそれぞれ、着色データのマップとノーマルマップを読み込む。(ノーマルマップはビットマップではなく、法線マップとして読み込む点に注意)
このマテリアルを、読み込んだオブジェクトに割り当てる。
さらに好みでポリゴンでのスムーズをかけたり、ターボスムーズをかけたりする。(メッシュスムーズだと重いので)
あとはレンダリングするだけ。思った以上に簡単である。
以下は3dsmax上でレンダリングしたもの。

↑ポリゴンでスムーズをかけた状態。左からsdiv3,sdiv4,sdiv5のデータ。さすがにsdiv3では、形状のディテールの喪失が目立ち丸っこくなっている。なんとなくレーザーブラストという昔のSF映画にでてくる宇宙人に似ている。

↑ターボスムーズをかけた状態。当然ポリゴンデータは倍増する。sdiv4がぱっと見sdiv5に近くなるので、オブジェクトを増やしたり、max上で形状編集やポージング、アニメーションなどを施す場合はsdiv4で読み込んでターボスムーズをかけたほうが、sdiv5で読んでそのまま使うより効率が良さそうだ。

↑sdiv5のデータをインスタンスでもう一匹作って並べてレンダリングしてみた。マテリアルはSSS Fast Skinに今回作成したマップを貼り付けただけ。やっつけで作ったデータでも、それなりのディテールが出ているのにはちょっと感動。
Recent Comments