ZBrushのサブディビジョンレベルは非常にスマートな機能だと思う。サブディビジョンを利用する上で直面する制約と、それらを回避する方法を紹介するとともに、よりZBrushの理解を深めるための読み物としてぜひ読んでみてほしい。

サブディビジョンって何かという話なのだけれど、ZBrushはCatmull–Clark subdivision(いわゆるカトマルクラーク法)というサブディビジョン方式を採用している。

  • そもそもなぜサブディビジョンを行うのか
  • マルチレゾリューション メッシュ エディティングとは
  • ベースメッシュって何?
  • ベースメッシュの作り方
    Zスフィアとダイナメッシュ
  • サブディビジョンレベルを持つモデルの制約
  • 上記制約を回避するためには
  • まとめという流れで紹介を行っていきたい。

そもそもなぜサブディビジョンを行うのか

初めてポリゴンで何かを作ろうした際に、球体や円柱などを作成しようと思った際に、思ったよりも非常に多くの頂点数が求められたことだと思う。

少ない頂点数でもちろん円柱だと言い張ることもできるが、八角柱を”円柱”というのは難しい。(もちろんこれはローポリの話には当てはまらない。)

そこで、多くのポリゴン数を求められる曲面や球体を少ない頂点数で制御を行う方法を模索する上で開発された手法がこのCatmull–Clark subdivisionだ。

さらに、少しマニアックなことを言うと、このカトマルクラーク分割法で生成されるメッシュは、3角ポリゴンに対しても5角のポリゴンに利用しても、出来上がるのは必ず4角のポリゴンであることで、非常に扱いやすい。よりマニアックな話もしたいけど脱線するから、面白い動画見たい人はここを見てくれ。

以下のGIFを見ていただきたい

2cced136a653d2aaa05984ed95aef99c.gif

1.最もシンプルな余計な縦横線の無い立方体を用意する

2.その立方体に対して”CTRL+D”を押してディバイドを行う

3. 2を繰り返す。

 

このようにすると、立方体から球体の生成が行えることがわかる。

上記説明では2の操作を複数繰り返したことで”ディバイド”を複数回行っており、ZBrushはこれを”サブディビジョンレベル”と呼んでいる。

ツール>ジオメトリの項目から”SubDiv”というスライダーを動かしてみよう。

するとこれで、一番上のサブディビジョンレベルと元の立方体までのすべてのレベルを往復することができる。

ed5dce697534959e1131ac87b0af11a1.gif

8頂点の立方体で、サブディビジョンを6回行ったことで発生した6146頂点の”球”をコントロールすることができる。これが”サブディビジョン”のメリットだ。

マルチレゾリューション メッシュ エディティングとは

ZBrushにはさらに”マルチレゾリューションメッシュエディティング(Multi Resolution Mesh Editing)”というデータの扱い方がある。

これは何かというと簡単に言えば、各サブディビジョンレベルごとで、必要に応じた、メッシュの変形を行えるという考え方だ。個人的にはZBrushの根幹だと思うし、これが”スマート”と述べた理由だ。

例えばこの球体の下部を少しつぶして大福のような”大きな変更”を加えたいとしよう。

ZBrushで制作を行う際の重要な考え方として、”大きな変更”を行う際には少ないポリゴン数である”下の階層”で行う方が良い。

39a60f95b1f1cb82cdae9f41d3c77fb4.gif

ご覧のように、下の階層で行った変更内容はもちろん上の階層にも反映される。

逆にせっかく大福を作ったのだから、細かな凹凸を一番上の階層につけてみよう。

細かなディテールを加えるには少し頂点数が足りないのでディバイドを3回加えて、サーフェスのノイズを加えてみた。これで細かい凹凸が付く。

e2cf713d844cb22eaec374ee7d58bdd1.gif

細かな凹凸を付けた後にサブディビジョンレベルを下げてみると、今まで通り立方体は存在し、一番の上の階層に行くと細かな凹凸がある。

このように粗(大まかな形状の変更)と密(ディテール)を「同時に扱うことができる」のが、マルチレゾリューションメッシュエディティングという考え方だ。

これで例えば大福に細かな凹凸を乗せた後に「うーん、もうちょっとつぶれた感じが欲しいな」みたいなことを言われても下の階層に戻って大まかな変更を加えつつディテールを保持することができる。

 

ベースメッシュって何?

ZBrushには”ベースメッシュ”という考え方がある。

“ベースメッシュ”とは、これはその名の通り「土台となるメッシュ(モデル)」のことを差す。つまりベースメッシュという土台にディテールを乗っけるということだ。

先ほどの大福の例で言うと、最後の凹凸の付いた大福が”ディテールモデル”で、”立方体”がベースメッシュという立ち位置に当たる。

家の基礎作りをしないと家が建てられないように、先にベースメッシュを作り、その土台が出来上がったところで、その上にディテールを作っていく。

ベースメッシュの作り方

ベースメッシュを作るには様々な方法があって、最近はこのベースメッシュを作る方法がいっぱい増えたので、代表的な2つを拾ってまとめると

・昔ながらの作り方

“Zスフィア(Zsphere)”

・比較的新しい作り方

“ダイナメッシュ(Dynamesh)”

もちろん他ソフトウエアで作る方法もある。今回は説明の焦点がZBrushであるため割愛。

Zスフィアでベースメッシュを作る方法

球体を配置して、関節などの主要なパーツの位置を大まかに指定することで制作を行うことができる機能。

fd45c1b87ead411a339ad1e7b6be4a6a.gif

1.Zスフィアで大まかな骨格の作成を行う

2.アダプティブスキンから、メッシュ化を行う

3.ディバイドなどでポリゴン数を調整してスカルプトを行う

ダイナメッシュでベースメッシュを作る方法

4R2よりダイナメッシュ(Dynamesh)、4R6より”Zリメッシャーの”メッシュの張り直し行う機能が追加され、ダイナメッシュで大まかな形状の作成を行い、Zリメッシャーでリトポロジーを行う二つの機能を組み合わせたワークフローが生まれた。

projection.gif

1.ダイナメッシュで大まかな形状を作る

2.ポリゴンが伸び始めたなと思ったらキャンバスの何もないところで、CTRL+左ドラッグでメッシュの密度を更新。

3.そろそろディテールを乗せる準備が出来上がったと思ったら、サブツールの複製を行う

4.Zリメッシャーをかけてポリゴン数を削減する(これがのちにベースメッシュとして利用できる)

5.元のメッシュと重ね合わせてすべて投影を押す

6.これで元のディテールを持ったベースメッシュと、ディテールを保持しているメッシュが同時に作成できる

 

サブディビジョンレベルを持つモデルの制約

サブディビジョンレベルを持つメッシュは先の説明にもあったように、ベースメッシュの上に階層を乗せることでディテールと土台の形状の両方を両立している。そこで、一つ問題となってくるのが、この階層構造が乱れるような操作を行うことだ。

トポロジー

トポロジーとは一般的に3DCGでは、メッシュを構成するポリゴンや頂点、エッジなどの構造そのもののことを差す。そのため、「トポロジーを変える」という表現が行われるときには、例えば、メッシュの一部の削除を行ったり、メッシュに押し出しを加えることで、面を追加するなどを差す。

サブディビジョンレベルは階層構造であるため、上の階層のポリゴンを削除しようと思うと、下の階層も含めて削除を行う必要があり、データ構造上問題が発生することとなる。そのため、サブディビジョンレベルを持つモデルで行える操作に制約がかかる。

数学的な”トポロジー”という単語もあるが、3DCGで言う”トポロジー”とは少々意味合いが異なる。

制約内容の例

ミラーと結合が行えない(メッシュの構造が変わってしまうため)

Zリメッシャー/ダイナメッシュを行うと警告が表示される(ポリゴンを張り直してしまうため)

分割を行う際に警告が表示される(一応最下層に行けば行えるが非推奨)

IMMブラシなどでメッシュを追加できない(トポロジーが変わってしまうため)

デフォーマーが利用できない

等が挙げられる

 

上記制約を回避するためには

大きく分けて2つあり、”サブディビジョンのフリーズ”と先に行った”すべて投影”による復元方法だ

サブディビジョンのフリーズ

サブディビジョンのフリーズをクリックすると何を行っているかというと、まず、ZBrushに最上位のメッシュと最下層のメッシュとの階層構造のリンクを切るように伝える。次に、ユーザーが最下層のメッシュの構造を変更する。それでフリーズの解除を行うと、先ほど切るように命じた最上位のメッシュ情報を現在のメッシュに投影を行うようにしている。そして新しい最下層と、最上位層の階層構造を疑似的に再現するという方法をとっている。

だが、正直これは初心者にはあまりおすすめしていない。原理的に何を行っているかを理解してから利用することをお勧めする。

サブディビジョンレベルの削除→Zリメッシャー→すべて投影

1.サブディビジョンのレベルをまず手動で削除しよう。
2.次に、制約があったため、行えなかった作業を行う。
3.作業を終えたら、サブツールの複製を行う。
4.片方にZリメッシャーをかけ、元のメッシュとあらかた同じ頂点数になるようにディバイドする。元のメッシュとZリメッシャーをかけたメッシュを表示上重ね合わせる。
5.ツール>投影>すべて投影にてディテールの投影を行い直す。

もしアーティファクトが残ってしまう場合にはこちらの動画内容を見てほしい。

”粗”と”密”の往復を覚えることでよりきれいな造形を

ポリゴン数が多い状態で、スムーズを行うとなかなかスムーズが利きにくい。これはなぜかというと、頂点数がお互い”詰まって”いて、各頂点数の可動範囲が制限されるからだ。

滑らかな形状を求めるには、下の階層でスムーズを行い、細かな凹凸を消すために上の階層に戻ってスムーズを行うという手法が求められる。

これがよく言う泥粘土っぽい造形を回避するための方法だ。このようにサブディビジョンレベルを理解して、階層構造の維持を行うことにより、造形のコントロールが行いやすく、きれいな形状が追い求められることが理解できたのではないでしょうか。

しかもちなみに、サブディビジョンレベルの階層構造のあるデータのほうが、”生”のポリゴンデータに比べたらデータ容量は軽いので、ぜひともサブディビジョンレベルを活用していってほしい。

 

より詳しい話を見たい人向けの参考資料

無料で様々なことを学ぶことができるKhanアカデミーとPixarとのコラボ企画のページ

https://www.khanacademy.org/partner-content/pixar

アニメーターが2Dにおけるサブディビジョンの基礎の解説を行い、実際にサブディビジョンが適用されたモデルを操作することができるサンプルと、次レッスンから実際のウェイトをどう計算しているかなどの解説が行われている。

https://www.khanacademy.org/partner-content/pixar/modeling-character/modeling-subdivision/v/cm-start

CEDEC2015年にて解説が行われた、CADなどで使われているサブディビジョン手法や、カトマルクラーク法を解説した登壇のスライド資料。