3D-coatで外部からのハイポリモデルとローポリモデルをインポートし、法線マップを起こす。(追記あり) (Pixiv Fanbox)
Content
3D-coatは強力なリトポリツールが備わっていますが、
それでリトポリしたのち、さらに別のソフトでメッシュを編集したいという場合があると思います。
そして、その上でまた3D-coatに戻し、ペイント等をしたい…という場合です。
特に、法線マップベイクをやりなおしたい場合、どうすればいいのでしょうか。
Zbrush(造形)→3D-coat(リトポリ)→blender(編集)→3D-coat(法線マップベイク+ペイント)
という場合です。
VRchatなどのゲームに持っていくモデルのような、
なんらかのシステムやボーンを仕込んだりするモデルの場合、
リトポリしてる段階では、その調整が出来ないためです。
ではその機能は3D-coatに無いのかというと一応あります。
この記事はとりあえず外部で編集したモデルを、
ボクセルルームにインポートする方法と、
リトポリルームにインポートする方法を書き、
そして、法線マップベイクして確定する方法を書きます。
さて、まずモデルを用意します。
今回はテストという事で、簡単にblenderのスザンヌを用意してみました。


今回はただテストなので、ローポリ版はディフォルトそのまま、
ハイポリ版は細分化モディファイヤーをかけてます。
3D-coatで読み込める形式で保存します。今回はFBXにしました。
これを、3D-coatで読み込みます。
3D-coatを立ち上げ、
まず、ボクセルルームにハイポリ版を読み込みます。

まず、ファイル→インポート→頂点ペイントのインポートを選択します。
そして、細分化した方のハイポリなスザンヌを選択

こんな感じで読み込まれます。
頂点ペイントのインポートでモデルをインポートすると、元のモデルそのままのメッシュでボクセルルームに
ボクセルメッシュとしてインポートされます。
次に、リトポリルームにリトポリ用モデルをインポートします。

ファイル→インポート→リトポメッシュをインポート
を選びます。その後、ローポリなスザンヌを選択します。

するとこんな画像になります。
この状態では、まだリトポリモデルとして決定されていません。

このウィンドウの「適用」を押さないとリトポリメッシュにはなりません。
そして、このボタンを押してみると…

このウィンドウが出て来ます。この際、適当な気分で「はい」を押してはいけません。
ここで「はい」を選択すると、読み込んだモデルを3D-coatが適当に加工して、出来る限りハイポリモデルのメッシュ表面に沿うようにメッシュが変形されます。
それでは読み込んだ元のモデルの形にならないので、ここは「いいえ」を選びます。

こんな感じで読み込まれました。
読み込まれた際に、ある程度は適当にUV分けされるようです。
ここでポイントなのですが、この状態は、リトポリ作業中という状態です。
メッシュが確定した訳でも無く、UVが確定した訳でもありません。
メッシュはこのまま使いたいので、まぁこのままいじらないとしても、
問題となるのはUVです。
この段階でUVを綺麗に展開しないと、当然上手く綺麗に法線マップベイクもされない訳で、
ワークフローとして、ここでUVを展開する、という事を考えておかねばならないと思われます。
ただ、3D-coatには、強力なUVマッピング機能が付いているため、ある程度ローポリゴンであるなら、さほど困る事無く簡単にUVする事は可能です。
ただ、このページではUV展開には詳しく触れません。
(追記)UV展開については別のやり方を発見しました。
詳しくは最後の追記その2を観て下さい。

今回はただのテストなので、「Auto map」を実行し、自動でUV展開をしました。
しかし、実際にモデルを作る際はこれはオススメしません。
Auto mapで展開すると、凄くUVのつなぎ目、シームが多くなるのですが、やはりシームが多いほど、不都合が出やすいからです。
造形的に適切で、テクスチャーも書きやすいUVを自分で展開すべきでしょう。
さて、このリトポリ状態のモデルを、ノーマルマップベイクして、確定させます。

bake→法線マップと共に焼き込む
を選びます。

画像右上のようなウィンドウが開きます。この際、
「オブジェクト外側のスキャン深度」を調整し、ローポリモデルにすっぽりとハイポリモデルがかくれるように調整します。
ここら辺の意味は詳しいサイトに譲ります…

OKを押すと、さらにこのウインドウが開きます。
ポイントは一番下のUVセットに関する所であると思うのですが、
UVセットを複数に分けた場合、それぞれに法線マップベイクする必要があります。
オブジェクトが細かくパーツ分けされており、
使いたいテクスチャーを1枚以上にする場合、
ここら辺のUVセットを分けるワークフローも考えなくてはなりません。
今回はとりあえず何も考えず、ディフォルトのままやります。
このままOKを押します。


ペイントルームで、ボクセルメッシュを非表示にするとこんな感じになります。
ローポリゴン状態でこんなルックです。
グレーの所は上手く法線マップ出来なかった所なのですが、
そもそも今回ちゃんとしたリトポリモデルを用意した訳では無いので、
結果としてはこんなものだと思います。
ちゃんとリトポリモデルを読み込んで上記の作業をすれば、美しいノーマルマップベイクが可能であると思います。
それでも最後の細部は、自分で調整せねばならないと思いますが…
以上です。
ここから好きなようにペイントルームでテクスチャ描いて出力したら良いと思います。
出力されたモデルに、ボーンを適応し、すでにウェイトペイントされたモデルがあるのなら、ウェイト転送すればよいと思います。
今回この記事を書くために色々実験をしましたが、
やはりワークフローをどうすべきかよく考えなければならないな…というのを感じました。
追記)
その1
twitter post: 1120209596096733184
jeneさんから教えて頂いた情報ですが、現状のテストモデルでも、上手くベイクする方法がある様子です。
とても参考になります。jeneさんありがとう。
その2
ペイントルームに読み込んだモデルも、いつでもリトポルームでリトポリモデルとして読み込みなおす事が可能です。その際、UVマップ情報は引き継がれます。
そして、法線マップベイク自体はハイポリモデルとローポリモデルを用意さえしておけば、何時でも何度でも行う事は可能です。
これを利用すれば、外部でUV展開した状態でリトポリルームにモデルを入れる事が可能です。
ペイントルームのモデルをリトポリルームに読み込むやり方は
リトポルームで、「リトポ→ペイントの低解像度メッシュを使用」です。