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

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

3DCG表現の違いを意識して情報収集すべし(シェーダー表現かメッシュ表現か)

(約 1,600文字の記事です。)
f:id:yamato-tsukasa:20191216045109p:plain
3DCGは「目に見える物=シェーダー表現が全て」の場合と「立体形状=メッシュの表現が全て」の二極化が進んでいる気がした。前者はゲーム、静止画、ムービー表現という「表示デバイス上」の話、後者はフィギュア造形・3DCGプリンタ出力など立体造形に関わる。

今の3DCGの情報は両者が入り乱れている

これは、立場・目的の違いなのでしょうがない。前者の意見としては、例えばこうだ。

メッシュは8頂点のサイコロ、見た目はシェーダー上で角丸(ラウンドエッジ)にすればいいんでない?

その通りだ。その方がメッシュ作成コストを削減できる。

では後者の意見はこうだ。

最終的に3Dプリンタに送るためには完成型のメッシュが必要だ。なので、角丸表現をメッシュに適用させた結果のメッシュが欲しい。

そりゃそうだ。シェーダー表現はあくまでもそのプラットフォーム限定の表現だから。表現するソフトウェアが変わったら「要するにメッシュの形は何?」という話になってしまうから(ファイルレベルで)。なので頂点情報の塊としてのメッシュを確定させていないと困るわけだ。


Twitterのタイムラインを眺めていると、両者の立場の違いで、両方の情報が錯綜する。しょうがないことだ。それがSNSだ。

だが、当ブログでは、あくまでもZbrushを基準とし、つまり、「最終的なメッシュ形状」を重視することにする。なので、シェーダー上のフェイク表現には、あまりこだわらない。その表現をメッシュに確定させた結果にのみ、こだわる。なので、シェーダー上でそう見えるならば、それをメッシュに確定させた上で、色々と検討することにする。

フルーエントの見た目はシェーダー表現

Blenderのプラグイン「フルーエント」の使い方記事執筆中 - 画力がないなら立体を作ればいい

今、フルーエントについて学習中。これも最終的にメッシュに確定させなければならない。

これは、Fusion 360の見た目とSTL出力をZbrushにインポートしたときの差にに近い。三角メッシュで手の施しようがないメッシュ。

Fusion 360上ではつるんとして見える。だがZbrush上で編集することは絶望的に無理。このギャップ。

これがフルーエント上(つまりBlender上)でも起こっている。Blenderのシェーダー上ではnゴンが許容されているが、それを他のソフトに持って行くことはできない。三角か四角ポリにする必要がある。これはつまり、CADで設計した形状をSTLにして他のソフトに渡すときに感じる印象と同じだ。

で、問題となるのは、後工程で「あ、やっぱここ、直したい」となったときだ。

Blenderでフルーエントで可逆的に直してZbrushにインポートし直す

これを採用したい。三角ポリだらけの最終メッシュをZbrush上で直すなど正気の沙汰じゃない。私も過去に粘ったが、無理だった。

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

素直に可逆性のあるBlenderのフルーエント上で直して、素直にZbrushにインポートし直せばいい。そもそもブーリアンの結果であるメッシュを直そうとする考え方がおかしい。最終アウトプットをいじるなんて、それ、最終アウトプットじゃないよね?

だったら中間をいじればいい。それだけ。変にこだわるから迷路に入る。直せる工程で直して最終出力をすればいいだけのことです。

各工程において、可能な限り可逆性を担保したいところだけれど、無理な場合もある。では可能なところまでロールバックするしかない。その場合でも被害を最小限に留めるためのワークフローが重要だろう。

まとめ

話題が発散しそうなのでまとめるが、ゲーム・静止画・ムービーなどの「画面上での見た目が全て」の3DCGと、3Dプリンタなどの出力を前提とした「メッシュ形状が全て」の場合とでは、一口に3DCGと言っても全く異なるアプローチであることは、意識しておいた方がいい。それは結局、トポロジとかそういう深い部分でも関連してくる。今回はそこまで深入りしないが、その認識の違いは、かなりの部分で根本的な考え方が変わってくる。

読者の皆様はどちらの側か、でTwitterなどの情報収集の方向性が変わると思う。



偉そうなことを書きましたが、私自身もこの違いを意識して今後も情報収集したいと思います(笑)。



今回の創作活動は約45分(累積 約1,256時間)
(448回目のブログ更新)