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

3DCGでワンシーンメイキング(オリジナル小説の挿絵作り)

Fusion 360からZbrushへオブジェクトを持っていくワークフローが難しい理由(STLが上手くリトポできない理由)

(約 5,600文字の記事です。)

ここ2,3日これを試していたのだが、どうにも相性が悪い。色々試行錯誤しながら辿り着いた結論。Fusion 360とZbrushとのモデリング連携は「極めて難しく、ワークフローとしてはオススメできない」。そんな日記です。

追記

2019/08/28 追記
ZRemesherでは苦手な形状でも、サードパーティー製のリトポツールなら上手くいく「かも」知れない。

https://exoside.com/quadremesher/

今はまだBlender版は準備中らしいが、登場したらご自身で試してみるのもいいかもしれない。個人的にはZRemesher1本で何とかするつもりなので比較する記事を執筆する予定はありません(笑)なのであくまでもそのご紹介のみ、参考程度の情報です。

追記終わり



結論を先に言うと

  1. CADから出力されるメッシュは、CAD内で作られた独自の立体造形物をCADソフトが立体スキャンしてメッシュ化(STL化)したものと考えるとしっくりくる
  2. できたSTLは立体造形を最もよく表したメッシュであり、ブーリアン結合された形状をリトポすると必ずどこかの形が大きく破綻する(ブーリアン減算による凹みがあるとほぼどこかが破綻)
  3. STLは三角ポリゴンであるためスカルプトに不向きでありディバイドしても滑らかにできない部分が発生する
  4. つまりCADで作ったメッシュをポリゴンモデリングで後から加工することが難しい

Fusion 360が出力するオブジェクトの考え方が間違っていた

STLファイルで取り出すが、恐らくファイル形式は何だっていい。重要なのは次の考え方だ。

CADから出力されるメッシュは、CAD内で作られた立体物をCADソフトが立体スキャンしてメッシュ化したもの

この考えに辿り着いたとき、色々と分かった。

STLファイルはメッシュというよりも立体スキャンデータと考えるべき

CADソフトは「CAD内であたかもアナログ的に作られた造形物を、立体スキャンしてメッシュ化したものをSTLとして出力する」という考え方に至った。

立体スキャンデータなので、その物体の形を再現するための必要最小限のメッシュになっているわけだ。だからリメッシュすると必ず形に破綻が生まれる。そしてCAD上で形を作る際にはメッシュなどは考慮していないため、STL化する際に初めてメッシュが生成される。だからメッシュそのものは「形を再現するために粗密が決まる」わけであって、後工程のことを全く考慮していない。だから四角ポリゴン化が難しい状態となっているわけだ。

形状そのものがブーリアン結合の結果である

Zbrush上でもそうだが、一度ブーリアン結合したものをZRemesherしても上手くいかない。メッシュがあまりにも複雑な形であるため、島全体で綺麗にリメッシュすることは数学的にも難しいはずだ。だからどこかで破綻している。同様に、ブーリアン結合の結果となっているSTLファイルもまた、ZRemesherで上手くまとまらない。これが真実だ。

特にブーリアンで減算して凹みを作ったメッシュは、ZRemesherでも上手くリトポできない。360度眺め回すと意外なところが破綻していたりする。一方でブーリアン加算だけなら割と上手くいく(ただしその保証はない)。リトポではどうやら凸よりも凹の存在がカギになるっぽい。

当初、STLがかなりのローポリだからZRemesherではある程度以下のローポリでは上手く対応できないと思っていた。確かにその側面もある。だが本当の原因としては、STLの形状そのものがブーリアン演算の結果であるという複雑すぎる形状が原因だと分かった。

どうしてもFusion 360からZbrushへ持っていって完成させたい場合

シンプルである。Fusion 360上でブーリアン結合されたメッシュにするのではなく、それぞれの島を個別にZbrushに持っていってリメッシュし、Zbrush上でライブブーリアンすればいい。これならば個々のメッシュはシンプルな形状なので綺麗にZRemesherが効くだろう。ただ、そうなってくるとFusion 360で作れる部分がかなり限られる。ZRemesherが上手く効きそうな造形でしかFusion 360上で進められないから、創作の自由度が激減する。ブーリアン減算ができないと色々不便だろう。(Fusion 360にライブブーリアン相当の機能があったかは忘れましたw)

というわけで、どうやら、Fusion 360からZbrushへ、というワークフローは無理だね。結果的に使い物にならない。Fusion 360で完結させるか、最初からZbrushで作るか。
これはつまり、CADで作ったメッシュをポリゴンモデリングで加工することは極めて難しい、という事だ。Fusion 360とZbrushはそういう意味では相性が悪すぎた。

アレ?ってことはさ、Fusion 360側で四角メッシュでメッシュ出力できてくれれば一気に解決なんだね?もっともそんな実装がされていないのにはきっと深い理由があるのだろう。でもまぁ、四角ポリゴンのSTLとか聞いたことないしなぁ。


Fusion 360が得意なメッシュとZbrushが得意なメッシュとで、造形物によってソフトを使い分けて、最終的にUE4やBlenderやTwinmotionなどにそれぞれ持っていって活用するのはありだが、モデリングレベルで両者は相互乗り入れは不可能だ。どっちかで完成させるしかない。

そうそう、逆にZbrushで作ってFusion 360に持っていく手もある気がするが、造形の自由度を考えると敢えてそれを選ぶことは私はしないのでこれ以上の深入りは無しです。

さて、結論が出てしまったところで、ちょっと脱線。CADとZbrushの相反する特徴をおさらいしてみよう。

CADソフトの得意分野

とにかく数学的な正確さ。角を丸めるにもRがいくつで、とか、正方形、正円などをきちんと作れる。角を丸めるラウンドエッジが得意なのも特徴。基本的に平面内にベジェ曲線でお絵描きして押し出すというのが基本概念。

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

カラーコーンなどは瞬殺だ。Zbrushでは正確なRを作ることがかなり難しい。(ダイナミックサブディブやZModelerのBridgeなどで見た目で丸くはできるが4分の1の円弧ではないベジェ曲線。なので不正確なRとなる)

Zbrushの得意分野

人体モデリングやハイポリでのスカルプトなのは当たり前すぎて割愛。今回は、一見ローポリでCADが得意なようで、実はポリゴンモデリングの方が早く仕上がる例で。

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

日本刀の先端みたいな形(刀マニアではないので不正確なことはお許しください。)を作る。先端は有機的なカーブと、シャープな平面とが微妙に交差する形。対してCADはポリゴンモデリングと違って頂点単位の制御が苦手。だからそういう部分をちょっと直して完成、というわけにはいかない。実際、上の画像は下の画像をちょっと修正して完成させたのだが、Fusion 360だと両者は全くの別物として作ることになるだろう。

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

このモデルは数学的な正確さよりも、滑らかで、シャープで、エッジが立っていればいいという、どちらかというと美術的な形に意味がある。なので、実はポリゴンモデリングの方が早くて応用も利くメッシュにできる。一方でCADはCAD内の造形を「立体スキャンしてメッシュを生成」して最終的にSTL化するので、その後の変更をメッシュ上では行えない。CADの元の造形を修正する必要がある。

なので、CADソフトは「CAD内であたかもアナログ的に作られた造形物を、立体スキャンしてメッシュ化したものをSTLとして出力する」という考えが理解できると、STLをポリゴンモデリングで修正することの難しさが理解できると思う。

相容れないので使い分けるかどっちかに振るか

私の場合は、どうやらFusion 360の出番がかなり減りそうだ。確かにカラーコーンのように、正確なR、正方形、四隅とも規則的な形状などはZbrushだと大変だ。左右対称は楽だが、四隅全部となると意外と難しい。だが、Zbrushで作る物体で、そこまで数学的に正確なものが求められることはない。アートなので、美術なので、見た目で正方形なら、数学的に0.001Zbrushユニットずれているから何なの?って事になる。なので透明表示のキューブと重なるかどうかの見た目合わせで正方形を作っても、誰も気付かないだろう。Zbrushのみをモデリングソフトに据える以上は、Zbrushのそういうアバウトさを許容しないと行き詰まる。それが嫌ならCADを使ってメッシュを作るしかない。だがそうすると以後の作業でそのメッシュを編集できない。

角丸表現には意外なほどハイポリが必要

角丸についても、見た目で滑らかな丸になっていればそれでいい、を許容しないとZbrushのみでの完結はかなり難しい。だがそれを許容するならばダイナミックサブディビジョンを活用すれば角丸は作れるし、エッジの位置を変えればRの大小の変化をいつでも付けられる。数学的なRの正しさにこだわらなければ、それができる。要は角がテーパーではなく丸っこくなっていればそれでOKとできるかどうか。こだわりと見た目のせめぎ合いを「見た目でOK」に持っていけるかどうか、満足できるかどうか、だ。

ちなみに角丸のサイコロは、ダイナミックサブディブでも正確なRでも、ポリゴンのざらつきが目立たないようにするためにはかなりのハイポリになる。ディビジョンレベルで言うと5くらいまで上げる必要がある。なので四角ポリゴンでもハイポリ化は避けられない。当然STLでも角の部分には沢山の三角ポリゴンが割り当てられている。そうしないとざらつきが目立つのだ。
どんな表現でも滑らかな球面にはハイポリが必要だ。それなしで見た目に表現できているのが、ダイナミックサブディブであったりCAD内のレンダリング機能の結果であって、メッシュにするならばどっちみちハイポリになる。だから見えている形とメッシュとの違いを意識した方がいい。CADだとそれを忘れがち。だからメッシュ化されたSTLで悩むのだ。扱い方が違いすぎるので。

Zbrush内で完結させるならばダイナミックサブディブが使えるので、objやFBXの直前までメッシュ化しなくて済む。だがSTLをインポートするのであればいきなりハイメッシュで扱いに苦しむ。しかもZbrush上でメッシュの編集ができないというおまけ付きだから。(三角ポリゴンはディバイドしても三角のままなので、三角えくぼ現象を解消できない。スムーズがかかり切らないあの現象ね。)

Zbrushのみのモデリングなら幾何学的に正確な表現を捨てるしかない

上述したとおり、Zbrushでは幾何学的に正確なRで面取りがほぼ不可能だ。力業でやってみたものの、手間がかかりすぎるのと、創作の自由度の大幅な制限があるのと、のダブルパンチで事実上ほとんど役に立たない。だがダイナミックサブディブを使えばどんなローポリモデルでも角丸化はできる。エッジの挿入とスライドでRの動的な制御もできる。これは逆にCADだと難しいだろう。その代わりに逆にピシッと同一のRを維持することはZbrushでは難しい。Zbrushは有機的な美術的な造形は作れるが、どこまでも一定のRを保つような幾何学的な造形は難しい。

けど、必要なのは「全体的に丸いRの複雑な構造物」であって、エンジンなどのような精度が必要な造形物の工作でなく、見た目上でそうなっていればいいのであれば、Zbrushはかなり自由に造形できる。美術目的ならばZbrushでかなり作れるはずだ。

あとは作り手がどこまでこだわるか、だろう。美術目的であれば、それを見た人が「これは正方形かな?長方形かな?」と思うほどの違いが出ないのであれば、正方形っぽく作ったものが「正方形」であって、Zbrushのプロジェクトファイル内の寸法がどうであろうが関係ないことになる。だからそういう拘りを捨ててZbrushのいいところを使いたいのであれば、Zbrushは便利だと思う。

見た目の成果物にだけこだわるか、内部データの正確性にこだわるか。後者ならばZbrushでは絶対に対応できない壁が多い。かといって前者にこだわるならばFusion 360で絶対にできない壁もある。どっちを選ぶかは、ユーザー次第だ。

確かにFusion 360のラウンドエッジはハード系を作る際には魅力的だが、問題は、私の実力ではその元となる形を自由にFusion 360では作れない点。なのでハードエッジの形が思い通りに作れないので辛い。Zbrushならば色々駆使して思い通りの形になるので、そこからダイナミックサブディブやハイポリ+スムーズブラシの力業でラウンドエッジを実現することになる。便利ではないができなくもない。現状、できるかどうかの二択である以上、出来る方を選ぶしかない、という点でも私はZbrushでその効率化を探ろうと思う。


つまり私はZbrushを選びました(笑)それだけの日記。なげ~よ。


今回の創作活動は約1時間(累積 約939時間)
(327回目のブログ更新)

(翌日追記、一部の記事の表現を加筆修正)
今回の創作活動は約30分(累積 約939時間)