チュートリアル:XSIでZbrushのモデルを再現する

ZBrushでスカルプトしたモデルをXSI上でDisplacementを使って再現するチュートリアルです。
ZBrushで作成したモデルを他のアプリケーションで再現しようとすると、意外と面倒な事が有ります。
特にDisplacementを使って再現しようとすると、どのくらいの強さでDisplacementをかければ良いか分からずに見た目で決めがちです。
このページでは出来るだけZBrushでのモデルを再現するための方法を提示しています。
馬鹿馬鹿しいぐらい単純な方法なのでXSI以外のアプリでも使えると思います。

左の画像はXSIでの完成イメージです。
ZBrushでスカルプトします。
ZBrushでSdivを下げて元となるローポリをエクスポートします。(ココではファイル名をraku080618_low.objとしました。)
Tool->Export
画像のポリゴン数は約2000です。

その後DisplacementMapを作成します。
Tool->Displacement->CreateDispMap
解像度(DPRes)は2048にしました。

Alphaから作成されたDisplacementMapを選択してDisplacementExporterではき出します。
Alpha->DExporter(左の画像はDE Optionsの設定)
ZBrushで何となく形が分かる位までSdivを上げてエクスポートします。(ココではファイル名をraku080618_mid.objとしました。)
Tool->Export
画像はSdiv3でポリゴン数は約30000です。
(ついでに眼球もエクスポートしておきました)

ココまででZBrushの作業は終わりです。

XSIで2つのモデル(と眼球)をインポートします。
すると左の図のような状態。
ポリゴン法線が反転しているので
ポリゴンメッシュ->ポリゴンの反転
で元に戻してやります。

そうするとこんな感じになります。
2つのモデルが重なってなんだか分かんない状態ですね。

raku080618_midを選択してVisivilityのビューの表示のチェックを外します。
するとローポリだけ表示されるようになります。
さらにraku080618_midのマテリアルを変更しておきます。
コンスタントに黒をセット

ココまで下準備です。

raku080618_lowのマテリアルを変更してdisplacementをセットしていきます。
自分はいつもとりあえずこんな感じで組みます。
Displacement用のイメージの間にChange_rangeとScalar_Math_Basic挟んどきます。
Change_Rangeは新規範囲の開始、終了をそれぞれ
-0.5と0.5に変更
Scalar_Math_Basicはオペレーションを乗算に変更します。
入力2を0にします。
raku080618_lowのGeometryApproximationを変更してdisplacementの準備をします。
GeometryApproximationのポリゴンメッシュタブでOGLレベル、レンダレベル共に2に変更します。
ディスプレイスメントタブでファインを選択。
長さを1にして、ビュー依存のチェックを入れておきます。

コレでディスプレイスメントの準備が整いました。
レンダーリージョンでレンダリングしてみます。
こんな感じになりました。
黒い所はコンスタントマテリアルを設定したraku080618_midが見えています。
つまり黒いところはへこみ過ぎで他の部分は出っ張りすぎているってこと。
先ほど設定したScalar_Math_Basicの入力2の値を変更しながら調整していきます。
Scalar_Math_Basicの入力2の値を0.5にしてみました。
まだ足りないようです。
今度はScalar_Math_Basicの入力2の値を2してみました。
やり過ぎですね。

こんな風にしてちょうど良い値を探していきます。
このモデルは1.2位がまあ良い感じの値のようです。
図でメッシュ状になっているところは重なっているところです。
どうもこれ以上は一致しないようです。
(一致しない原因は色々考えられますが、ZBrushとXSIのサブディビジョンの差が大きな原因じゃないかと考えています。
コレは又別の機会に調べてみます。)
raku080618_midはもういらないので消してしまいました。
左のような感じでレンダリング出来ました。
どうでしょうか?かなり再現性が高いように見えます。
せっかくXSIに持ってきたので簡単にスケルトンを入れて見ました。
胴体->首->頭の3本
ライティングを調整するためにリージョンレンダリングの設定でディスプレイスメントをオフにしました。
簡単にライトを2つおきました。
完成!かと思ったのですが、よく見てみると左右反転してます
いつも左右対称のモノばかり作っているので気がつきませんでした。

一度エンベロープをミュートして
モデルにXスケール-1をかけてスケールをフリーズしました。
完成!

皆さんも試してみて下さい。