画力がないなら立体を作ればいい

「何を作る」より「どう作るか」を考えたい人

UE4とZbrushとマテリアルスロットとFBX、ミドルポリの話

(約 4,500文字の記事です。)
UE4とBlenderとの連携のポテンシャルは前回の記事で何となく分かった。今度はUE4とZbrushとをどう使っていくかを検討した日記。個人の日記なので誤解や不正確さなどを含みます。それをご理解できる方のみ閲覧して下さい。無理ならブラウザバック!

私は複数のマテリアルスロットを使いたい

f:id:yamato-tsukasa:20200123061354j:plain

1つのオブジェクトに複数のマテリアルスロットを設定して、UE4側のリロードのみで自動的にマテリアルの再割り当てをさせたい。なのでFBXで複数のマテリアルスロットを「維持」させたい。ところがZbrush経由のFBXはどうやらマテリアルスロットと頂点情報との関係がクリアされるみたい。

検証系記事ではないので詳細は省略。結論だけいうと、マテリアルスロットが1つになってしまうか、あるいは追加変更したポリグループの影響を受けてマテリアルスロットの対応位置が変わる(追加変更の影響を受けて並び順・位置が変わる)のだ。なので残念ながら私の用途には合わない。

詳しく知りたい人は自分でマテリアルスロットとポリグループとFBXと、UE4とBlenderを使って検証して下さい。
これ以上は上手くいかなかったことを力説するエネルギーはない(笑)
これは日記であって検証系の記事ではない。

でもせっかくなので多少調べた情報も残しておきます。

Zbrush to UE4 - How can I setup multiple material slots on my obj for metallic and rough surfaces on one mesh? : unrealengine

マテリアルスロットを維持するためにはBlenderなどが必要

f:id:yamato-tsukasa:20191101023316j:plain

いわゆるDCCツールだな。ここでは無料のBlenderで話を進める。他にもMayaなど色々あると思うけど使ったことがないので分からない。
Blenderを使えばFBXをマルチマテリアルにもできるし、各マテリアルと頂点情報とをリンクさせられる。UV展開と編集もできるし、テクスチャを読み込ませればその見え方もリアルタイムで分かる。そうやって調整した後にFBXを再エクスポートしてUE4でリロードすれば思い通りの仕上がりになる。

なので私の環境・ワークフローでは、残念ながらBlenderなしにUE4とZbrushとを連携させることはかなり難しい。

で、ZbrushではFBX import/exportでもGoBを使った場合でも、どっちでもマテリアルスロットを正しく維持できない。ただ1回きりの一方通行のエクスポートなら可能だが、途中でポリグループ変更などの色々変更をしてBlenderに持っていくと、今度はその並び順が変わったり、あるいはスロット自体があってもそこから頂点情報が消えて真っさらだったりと、どうも正常に往復できない。なので諦めた。

マテリアルスロットを維持するためには、一度ZbrushからBlenderに持っていった後は、Zbrushには戻せない。ワークフロー上の制約が発生した。
今まではGoBがあれば往復可能だと思っていたが、まさかのマテリアルスロット問題。(ちなみにUVは維持されるので問題ない。)

で、ここから導かれる結論をいくつか。

Zbrushはメッシュ造形専門

f:id:yamato-tsukasa:20191112002534p:plain

ま、冷静に考えると当たり前の結論に戻ってきた気もする。とにかくハイポリに異様に強いモデリングツール。なので、ハイポリで仕上げたりそこからノーマルマップなどを作るのに向いている。そこまでたどり着ければいったんは役目を終えたと思う。そこからはミドルポリに落としてメッシュを取り出し、ノーマルマップも取り出していったん終了だろうなぁ。
(ハイポリのままでは3Dプリンタ用データ以外に出力先がない気がする。重すぎる。)

そこからはBlenderに読み込ませてからの調整とUE4との連携でワークフローの1周目は終わる。ループが閉じる形となる。

UE4はゲームエンジンだから、できることとできないことがはっきりしている。そこをBlenderで補う。Zbrushにも得手不得手があるが、そこもBlenderで補えばいいだけの話。不得意分野をそれぞれのツールで補えばやりたいことがやれる。それでいい気がする。

UE4との連携は、多機能なBlenderの方が相性がいい。マテリアルや頂点グループなどを維持しつつ、変形や簡単な修正程度のスカルプトならばできる。なので、今後は主な造形はZbrushで行うものの、仕上がった後の微調整はBlender上で完結させて、UE4との連携能力をキープしたまま微調整をしておしまいにするルーチンを考える必要がある。

どうしてもZbrushにメッシュを渡しての調整となると、それに関わるマテリアルスロットの再割り当てとなり、結構な手間だ。そこまでしてもZbrushのほうが効率的な場合はそうするが、そうでないことの方が多いので、これからはBlenderでメッシュの微調整くらいはできるように知識を身に付けなければならない。

結局、ホンネはZbrushのみでモデリングを完結させたいものの、利便性の都合からBlenderでも簡単なスカルプトはできるようになる必要があるってことが分かった。(ポリゴンモデリングについては既にBlenderが使いやすいことはよく分かっているので。簡易なエッジ追加とかポリ割り、リメッシュ、リトポについてはアドオンの力が非常に大きいし、便利なので。)

Zbrush上でのミドルポリの扱いやすさの重要性

ハイポリに強いZbrushとは言えBlenderと連携する以上はハイポリのままだと扱いにくい。なので一時的にハイポリで扱ったとしても最終的にどこかに出力する前には多少はポリゴン数を落としてミドルポリ寄りにして渡す必要がある。そうなると、実はZbrushで最も重要なのはミドルポリなのではないか。

ミドルポリとはローポリとハイポリの間の、そこそこなポリゴンメッシュ。私の造語です。感覚的な表現です。

左から順に、ローポリ、ミドルポリ、ハイポリ。メッシュ密度と経験値からくる感覚的なメッシュ密度です。ミドルポリは荒すぎず細かすぎずなメッシュ密度という具合。ディビジョンレベル1段階でどっちにもなれるようなポリゴン密度というか。

f:id:yamato-tsukasa:20200123072211j:plain



ローポリだとZRemesherで扱いにくいしZModelerよりもBlenderの方が作業が効率的なこともある。ハイポリだとZbrushの独壇場だが常に面荒れがついて回るし、PCスペックによっては動作が重くなり得る。データはもちろん大きい。そしてそのままでは他のソフトに持って行きにくい。なのでミドルポリとハイポリの往復可能なワークフロー、あるいはワークフローを見直して一方通行で済むような方法がZbrushの効率的な運用になるかも知れない。

かくして私の中ではZbrush至上主義・ハイポリ至上主義が終了し、ある工程までで活躍してもらったらそこからはBlenderに活躍してもらおう、という役割分担がはっきりしたのです。。。

とはいっても、Zbrushで思い通りの形を早く正確に作れるに越したことはないし、スカルプトはそもそも時間とエネルギーを消費しやすいから、ここの効率化は押さえたいところ。
そう考えるとプラグイン開発も含めて壮大な準備期間だったなぁと思います(笑)

ようやく作品作りが動き出したような気がするようなしないような。
まだまだツールの使いこなしの学習が沢山ある。が、それ無しには何かを作ってみようという気が起こらない。卵が先か鶏が先か。だが親子丼を作るためにはどっちも必要なので、どっちが先でもいいや、と思います。やれるほうから着手するだけ。

余談 何でリグ入れキャラにしない?

f:id:yamato-tsukasa:20191003204910j:plain

もちろんBlender上でポーズ付けには簡単にリグ入れしたキャラでポージングしますよ。その方が効率的だから。でリグ入れしたことがある人は分かると思うけれど、どんなポーズでも破綻しないようなリグ入れはかなり高度。私には無理。

f:id:yamato-tsukasa:20191007015015j:plain

なので関節の開度の高いポーズの時には、大体できたら後はメッシュレベルで調整した方が早い。

f:id:yamato-tsukasa:20191007015040j:plain

別にアニメやゲームを作るわけではないのでキャラの可動性は無視できる。ポージングのためのリグであるからポーズが付いたら用済み。そうなると、いつでもトポロジ変更ができてもテクスチャが破綻しないように調整できることが重要になる。都度UVの微調整など。それを考えるとゲームキャラみたいなテクスチャ化は足かせとなる(と思っている、今のところ)。またそれ用のテクスチャを作れる技術もない(笑)


なのでしばらくはMegascansなどの普遍的な四角いテクスチャを上手く使う方法にこだわって色々模索したいのです。その間にシームの入れ方を研究しようかと。で、それができるようになったらSubstanceペインターなどに行く予定。とにかく既存のものを如何に効率よく使えるかの方法の模索が私にとっては重要。



なんだかんだでダラダラと長文になってしまいました。。。


(過去作など)

f:id:yamato-tsukasa:20191007201115j:plain

f:id:yamato-tsukasa:20191007201131j:plain

f:id:yamato-tsukasa:20191007201123j:plain

これらはTwinmotionで作成。ざっと作るにはいいソフト。ただ使い込むと上限が意外と低いのもよく分かる。私がUE4に行こうと思った理由もそれ。細かいあと一歩の表現にこだわろうとすると難しい。例えばグロー発光の制御とか。

f:id:yamato-tsukasa:20191026191535j:plain

(あ、これはBlenderですが。。。)



今回の創作活動は約2時間30分(累積 約1,373時間)
(492回目のブログ更新)