backyard

元工学系デザイナーが3DCGで奮闘するブログ

ZBrushCoreでノーマルマップを作成する

ZBrushCore、買ったけど触り方がさっぱりわからなかったのですが教えていただきました(ありがとうございます!)。ちなみにCore買っちゃったけど学校のLANをつないでいる間は無印版ZBrushが無償で使えるそうです‥‥すごい‥‥先生に聞くとインストールの仕方を教えてくださいます。

 

今回はMAYAで作った剣のモデルを書き出してZBrushCoreで読み込み、ディティールを描いたものからxNormalを介してノーマルマップを書き出し、MAYAに読み込んで凹凸感をつけます。

 

xNormalのインストーラはこちら→https://xnormal.net/からダウンロードします。インストール作業はひたすら次へ次へ次へでOKです。

 

MAYAでのOBJファイルの書き出し

MAYAで作った剣です。ZBrushCoreに持っていくにはOBJファイル(.obj)でデータを出力する必要があります。

まずは何個もあるオブジェクトを結合して一つにしておきます。結合するには全てのオブジェクトを選択してからモデリングメニューセットの「メッシュ」→「結合」

f:id:pick_puckn13:20190621160917p:plain

「ファイル」→「選択項目の書き出し□」

f:id:pick_puckn13:20190621235215p:plain


ファイルタイプを「OBJexport」にして「選択項目の書き出し」、保存場所とファイル名を指定して書き出します。

f:id:pick_puckn13:20190621235309p:plain


ここで「OBJexport」が見当たらない場合はプラグインマネージャで「objExport.mll」のロードにチェックを入れてください。チェックを入れたら「リフレッシュ」を押します。

f:id:pick_puckn13:20190621164137p:plain

f:id:pick_puckn13:20190621164253p:plain

 

 

ZBrushCoreでの編集

OBJファイルの読み込み

ZBrushCoreを開いたら「インポート」を押して先ほど書き出した剣のOBJファイルを読み込みます。

f:id:pick_puckn13:20190621165617p:plain

剣のオブジェクトがインポートされました。

剣にディティールを描き込む

インポートしてそのままだとポリゴンの数が少ないので、ディティールを描くなどの細かい変形ができません。

f:id:pick_puckn13:20190622131810p:plain

ポリゴンの数を増やすには「ディバイド」または「ダイナメッシュ」を適用します。

f:id:pick_puckn13:20190622145152p:plain


ダイナメッシュとディバイドの違いは↓のサイトがわかりやすかったです。

 

「ダイナメッシュとディバイドはどう違う? - ZBrush Lab.」

http://zbrush.illst.com/archives/28

 

「ディバイド」は1つのポリゴンを単純に4つ(=2の2乗)に分割する操作、「ダイナメッシュ」は解像度の要領でモデルに対してポリゴンを均一に割り当てなおす操作のようです。

ダイナメッシュを適用させたとき、解像度が低いと元のモデルの溝がなくなってしまいました。持ってきたモデルが小さかったからかな‥‥?(よくわかってません)

f:id:pick_puckn13:20190622145320p:plain

f:id:pick_puckn13:20190622145431p:plain

 ダイナメッシュがわかりづらかったので↓の記事を参考にさせていただきました。

 

「【ZBrush】基本のキホン - ダイナメッシュって? きしプロ】

http://basane.hatenablog.com/entry/2017/12/03/165427

「ダイナメッシュ - Pixologic Japan」

https://pixologic.jp/project/dynamesh/
「ダイナメッシュをかけると、溝が埋まってしまう|ZBrushCentral Japan」

http://zbrushcentral.jp/topic/692/%E3%83%80%E3%82%A4%E3%83%8A%E3%83%A1%E3%83%83%E3%82%B7%E3%83%A5%E3%82%92%E3%81%8B%E3%81%91%E3%82%8B%E3%81%A8-%E6%BA%9D%E3%81%8C%E5%9F%8B%E3%81%BE%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86

 

 モデルを大きく変形させる段階では高解像度のダイナメッシュはかけない方がいい様です。ひとまず今回はディバイドディバイドディバイドでポリゴンを分割してしまいます。どうせノーマルマップ作るだけなので7回くらい押しちゃいました。

f:id:pick_puckn13:20190622221412p:plain

テキトーにディティールを描き込みます。ハイポリモデルが完成しました。

f:id:pick_puckn13:20190622222007p:plain

 

ZBrushからのOBJファイルの書き出し

xNormalでノーマルマップを作成するために、できたモデルのデータをOBJファイルで書き出します。

f:id:pick_puckn13:20190622222546p:plain

 

xNormalでのノーマルマップの作成

xNormalを起動し、

  1. 「High definition」タブを選択
  2. MAYAで書き出した元のOBJファイルをドラッグ&ドロップ
  3. 持ってきたファイルの「Visible」にチェック

f:id:pick_puckn13:20190622223125p:plain

次に、

  1. 「Low definition meshs」タブを選択
  2. ZBrushで書き出したOBJファイルをドラッグ&ドロップ
  3. 持ってきたファイルの「Visible」にチェック

f:id:pick_puckn13:20190622223506p:plain

最後に、

  1. 「Baking options」タブを選択
  2. 「Maps to render」の「Nomal map」にチェック
  3. 「Output File」で出力先とファイル名を設定
  4. 「Generate Maps」を押す

f:id:pick_puckn13:20190622224321p:plain

プレビュー画面が出ます。これでノーマルマップが出力されました。

f:id:pick_puckn13:20190622224530p:plain

 

MAYAのモデルへのノーマルマップの割り当て

MAYAで元の剣のファイルを開き、ハイパーシェードを開きます。

「Bump/Normal Mapping」にノードを追加、テクスチャを割り当てるときと同様に「ファイル」を選択します。 

f:id:pick_puckn13:20190622225645p:plain

次に、

  1. 「Use as」を「接線空間法線」にする
  2. 「Bump Value」の矢印マークみたいなのを押す

f:id:pick_puckn13:20190622230326p:plain

「イメージの名前」にノーマルマップのファイルを設定し、「Color Type」を「Raw」にしておく。

f:id:pick_puckn13:20190622230619p:plain


ビューポートを見ると、剣に不完全ではありますがディティールが追加されています。ノーマルマップを見たときから上手くいってないな~とは思っていましたが、とりあえず一部ついてるのでこれでよしとします。()

f:id:pick_puckn13:20190622230758p:plain

 

ノーマルマップ適用前

f:id:pick_puckn13:20190622231331j:plain

 

ノーマルマップ適用後 

f:id:pick_puckn13:20190622231351p:plain