あー消耗した、わはは。
Zbrushでスカルプトまではスムーズにいったんだけれども、彫っておしまいというわけじゃなくて、ゲームキャラクターとして使える程度にまで外部ソフトと連携したり、最適化させたりしないといけない。
こいつがまた大変でした。
まず、Zbrushのサブツールをマージするときの謎仕様に苦しんだ。
これ、MergeDownでサブツールをマージする際、同じsDiv階層を持ってたらSDiv階層を保持したままマージしてくれる、というかそうしてもらわないとダメなんだけれども、そこに謎仕様があった。
必ず同じ階層が保持されるとは限らないのだ。
たとえば、マージする両者のサブツールが同じ5段階のSDivを持っているとしよう。
普通はマージした後も5段階持っている。
でも、たまに4段階になることがあって、これがその後の計画を全てパーにしてくれた。
まず、SDivのレベルが保持されなくなる理由というかケースというか、仕様がわからない。
あるサブツールは問題なくマージできるのに、あるサブツールはマージするとレベルが一段階なくなる。
また、最上位のレベルがなくなるっていうんなら、まだ何とかなりそうな気がしなくもないけど、最下位のレベルがなくなるからお手上げだ。
さらに問題はそれだけじゃない。
レベルが上手く維持されたとしても、場合によって最低レベルのメッシュが変形してしまうことがあるのだ。
クリースが外れてしまってたり、ちょっと動作がよく分からないのも厄介だ。
ちょうど、先日、細分割するとメッシュが縮む問題を取上げたけれども、似たような現象がサブツールのマージでも起こる。
おそらく、現在選択されているレベルでマージしたあと、下位のレベルをトップダウンで再構築しているのではないか、と。
そのさいに、下位のレベルの構築に失敗しているのではないかと予想。
この問題が解決できないと、ゲームキャラクターの制作フローにZbrushを取り入れるのも躊躇してしまうくらい厄介な問題だ。
冒頭の画像は、なんとかUnityまで持っていってレンダリングさせたものだけれども、十分な単位でサブツールのマージができなかったので、無駄にマテリアルが分かれてしまっている。
メッシュが分かれるだけなら、Blenderでメッシュを統合させてしまえば済む話だ。
けれども、サブツールが分かれているとUVも分かれてしまうことになって、このUVを統合するすべを俺は知らない。
Zbrushでサブツールをマージする方法以外でUVを統合する方法があれば、手間と引き換えに何とか対処は出来る。
もしくは、Blender側でUVをマージできるのでもよい。
ちょっとその方向で調べてみようと思う。
あと、Zburshから出力されるノーマルももうひとつ品質がよくないのは、設定がなにかミスっているからだろうか。