Category Archives: 左の回廊

ZBrush

ZBrush猫(4) Dynamesh+ZRemesherはモデリング革命である

「数日おき」と書いた端から2週間…(==;;
予感はあったんですよね、こうなりそうな。多分7月半ばくらいまではこんなペースになってしまうかも…。

気を取り直して本題へ。
私のブログは不親切で、ZBrushの基本解説みたいな話題はろくすっぽスッ飛ばして書きたいことだけ書いてるんですが、今回はちと説明的な話から入ります。

Dynameshというのは、(たぶん)ボクセル・ベースでオブジェクトの構成ポリゴンを自動的に再構築(Re-Topology=リトポ)する機能です。

たとえばこんな形状。
dynamesh_before
ZBrushのブラシによる変形は、対象形状のトポロジーを一切変更しません。
※ZBrushの普及と共に「トポロジー」という単語が独り歩きしてローカル語法的な使われ方してるみたいですが、ポリゴンメッシュを構成する頂点構造が変化しない以上どんなにグチャグチャな形になっても、トポロジーは変化してません。ZBrushのブラシによって対象オブジェクトのトポロジーが”破壊される”という表現は、言葉の定義からすると誤用と言えるでしょうね。小姑みたいに五月蝿いコト言ってスミマセンけれども。

なので球体オブジェクトの表面をこんなふうにウニョ~ッと引っ張り上げると、引っ張られた部分のポリゴンはご覧のとおり極端に間延びしてしまいます。
この間延びした触手部分はこのままだとポリゴン分布が荒過ぎて、もうこれ以上細部を作り込むのは不可能です。
オブジェクト全体をSubdivideしてやれば触手部分の密度は上がりますけど、球本体の方も一緒に分割されて不必要に過密化してしまいますしね。

そんなお困りのアナタにDynamesh。
dynamesh_afterオブジェクト全体のポリゴン密度が均等になるように、トポロジーが再配分されます。
この図では説明の為に荒目にしてますが、私の実際の作業ではもっとずっと細かくリメッシュすることが多いです。

スカルプト中は当然アッチ引っ張ったりコッチ押し込んだりとオブジェクトをこねくり回しますが、そうするとだんだん部分部分のポリゴン分布に粗密の差が広がり、遂には「これ以上造形不能」な領域も出てきます。
バーチャル・フィギュアの髪の毛パーツなんかが典型。
そうした時に、対象パーツをDynameshに変換してリメッシュしてやると、粗くなってた部分の密度が復活するので、引き続きどんどんスカルプト続行可能になる(゚д゚)ウマー 、という手筈です。

(ただしDynameshオブジェクトはZBrushの元々のお家芸であるSubdivide階層を保持出来ません。Dynameshを取るかMulti Resolusion Subdivide機能を保持するか、の二者択一にはなります。)


ZBrushをデジタル彫刻ツールとして使い、動きのないオブジェクトをゴリゴリと仕上げていくだけなら、もうなんもかんもDynamesh一本やりでもエエんやないか、と踊り出したくなるくらい便利な機能なんですが。
しかしDynameshで作り込んだ形状を他アプリに持っていってキャラクタ・アニメーション、などということになると、ちょっと困ったことになります。

まず前述したようにSubdivisionを持てないDynameshオブジェクトは、やたらにポリゴン数が多い。100万200万はアタリマエ。
100万単位のポリゴン数持ったオブジェクトのボーン変形なんて全く現実的じゃありません。スキニング(ボーン変形のセッティング)やったことある人なら分かるでしょうけど、メタクソ重い上に関節の潰れの修正作業なんてもうほとんど悪夢ですよね。

またスキニング変形を綺麗に仕上げるには、モデルを形成するポリゴンも実物の筋肉の流れをなぞるようにトポロジー構築してることが望ましいわけですが、Dynameshはご覧の通りメカニカルに頂点を再配分しますから、筋肉の流れなんか無視です。


で、こういう高密度のオブジェクトを、再度表面をなぞるようにメッシュを張り直し、低ポリゴンのオブジェクトに置き換え再構成してやろう、というのがRe-topology、いわゆる“リトポ”です。

基本、リトポと言えば使うツールがZBrushであれ他の3Dアプリであれ、ベースになる形状の表面にマウスポインタを拘束(constraint)した状態で、チクチク頂点を縫い上げてポリゴンメッシュを張り直す手作業を意味します。
でも、大きい声では言えませんが私このリトポ作業が嫌いです。一旦造形が完了したベース・オブジェクトの上にペタペタ障子紙でも貼り付けていくかのような、あの家内手工業的アナクロ感!
ですが上述したように筋肉の流れやなんかを意識してリトポしようとすると、手作業でやるしかないんだろうな、と渋々あきらめてたのです。

それがかなりの部分まで自動で出来てしまう。
そう、ZRemesherならね。
ZRemesh000
QRemesh001ZRemesh002

上はZBrush付属のDemoHeadさんをDynamesh化したもの。これをZBrush4R5までのQRemesherと4R6のZRemesherで、TargetPolygon数1.5万で(あとはデフォルト設定のまま)リトポした結果が下2枚。
ご覧のとおりZRemesherはQRemesherに比べると、すごく賢く形状の“流れ”を読み取りながらリトポしてくれます。
目や口元に沿ったエッジの流れ、何より耳を見比べて下さい。品質の差は一目瞭然! 一体どんなアルゴリズム使えばこんなに首尾よくメッシュの流れを再構築出来るんでしょうね…恐るべしテクノロジーの進歩。

ZRemesherの詳しい使い方は私がここでうだうだ書くよりも、BlestarさんがYouTubeで非常に丁寧に解説して下さっているので、そちらをご覧下さい。(リンク先YouTube、いきなり音が出ますのでご注意)

ZRemesh003
実際に幾つかの形状で試してみると、さすがに何でもかんでもZRemesher使えば全自動で理想的なトポロジーに変換出来るってわけではないんですが、必要な箇所には左図のようにZRemesherGuidesブラシを使ってガイド線を引いておけばそのラインに沿ってトポロジーの流れを誘導出来ますから、納得いくまでガイド線を加えながらリトポ計算をやり直せばいいんです。
それでも1から全部手作業でリトポ・オブジェクトを編んでいく手間に比べたら、限られた重点箇所だけガイドしてやれば充分なクオリティでリトポしてくれるZRemesher様々です。

多少大袈裟に言えば、DynameshとZRemesherの組み合わせは、一部の形状のモデリング手法を革命したんじゃないか、とすら思うのです。

今までのモデリングでは、スタート時点から完成時のトポロジーを予測して、メッシュの流れをコントロールしながらの作業が必要でした。
私が外部アプリでかっちりトポロジーをまとめたベースメッシュを組んでから、それをZBrushに読み込んでスカルプト始めたがるのもこのためです。

ですがDynameshではトポロジーを一旦意識の外へ放り出して造形に集中し、完成してからトポロジー構築をZRemesherに担当させる、つまり造形作業とトポロジー構築を別工程に分離して作業できるわけです。

モデリングに対するこの意義ってものすごく大きいと思うんですけど、どですかね?>その筋の各々方


…今回は随分と御託が多くなりました。ようやく最後に来て肝心なワークフローの話を駆け足で。

  1. Dynamesh_to_ZRemesher01まず、形状をDynameshに変換してから、スカルプト作業を行って造形を完成レベルまで仕上げていきます。
    このぬこで頂点数ポリゴン数とも150万くらいです。

  2. Dynamesh_to_ZRemesher02続いてZRemesherでリトポします。まずはガイド線など引かずにZRemesherお任せで計算してみます。
    右図はデフォルト設定のままZRemesherかけたもので、頂点数は一気に8000強まで削減。一見これでも充分そうですが、、、

  3. Dynamesh_to_ZRemesher03手足の指のあたりを眺めるとさすがにちょっと減らし過ぎたかなと。
  4. Dynamesh_to_ZRemesher05なのでリトポ自動計算時に顔や手足の部分を選択的に密度を上げるよう、ColorDensityで調整します。
  5. Dynamesh_to_ZRemesher04さらに指の股の間などにZRemesherGuidesブラシでガイドを付け加えて、納得できるまでZRemesher計算のやり直し、というルーチンの繰り返しです。
  6. リトポの目的はポージング等の変形を効率よく精度よくやることにありますから、リトポ後の形状はクオリティを保ちつつも可能な限りローポリゴンで軽く仕上げたいものです。
    今回は最終的に2万ポリゴンくらいになりました。
    Dynamesh_to_ZRemesher06

さて、、、どんなに綺麗にリトポしても、ポリゴン数を減らす限り元形状にあった細部のディテールが失われてしまうのはどうしようもありません。この細部ディテールはリトポして出来た形状を何度かSubdivideして、Projection機能を使って元形状のディテールを転写していくんですが、、、
このProjectionがまたちょっとした鬼門で、単純にProject Allボタンをポチッとするだけだと、細部のディテールがうまく転写できずに崩れてしまう部分が割合頻繁に生じます。
このProject作業のコツみたいな話は回を改めて書きます。

こうして仕上がったモデルは最終的にSubdivideレベルの低い状態でmax等のフィギュア・コントロール用外部アプリに出力し、細部ディテールはDisplacement mapやNormal mapとして差分を取り出して外部アプリに渡すのですが。
これも1ネタありますので、そのうち別の回にて。
(こんなペースでいつ書けるかなぁ…(((;^^))


ZBrush

ZBrush猫(3) プロポーションこそがモデリングのキモ~GoZでmaxと行ったり来たり~

猫のモデリングをしていて痛感したのは「いかに自分が猫を知らないか」という事でありました。

知ってるつもりでいても、いざ描こうとすると手が止まって動けない。知らない分かってないってことが露呈するわけです。
で、とにかくまずは猫を知らなければ、ということで、ググったり本を読んだりして資料を集めました。
(ホントは現物に触れるのが一番なんでしょうが…つくづくウチのヤツが生きてる間にもっとモデルになって貰っとけば良かったなぁ…と思っても後悔先に立たず…(ノ_;)

Googleの画像検索は言うに及ばず、色んなサイトから情報を頂きました。とりわけお世話になったのはこの2か所。

また書籍については、以前から所蔵してたものや新たに入手したもの、図書館で借りたものなど。
動物の描き方動物画の描き方―生き生きと描く秘訣美術のためのシートン動物解剖図An Atlas of Animal Anatomy for Artists (Dover Anatomy for Artists)Atlas of Topographical Anatomy of the Cat (Atlas of Topographical Anatomy of Domestic Animals)カラーアトラス獣医解剖学〈上巻〉カラーアトラス獣医解剖学〈下巻〉新イヌとネコの臨床解剖カラーアトラスAnimal Anatomy for Artists: The Elements of Form

ぶっちゃけ美術解剖学的な部分については、同じ哺乳類だし人体解剖学の応用で何とかなるじゃろ、と高を括っていたところがあったのですが、同じ哺乳類であればこそ人体との違いがドコにあるのかが分かってないと、猫にありえざる特徴を持ったヒトモドキ猫なんてものを描きかねないわけで、色々と勉強にはなりました。


しかしながら、いくら資料集めて注意深く細部を描き込んでも、どうしてもしっくり来ません。
この段になってようやく気付いたのは、結局見た目にそれらしく仕上げるために重要なのは、細部よりも全体のフォルムやプロポーションが対象の特徴をきちんと捉えているかの方だということ。

たとえば、今モデリング中のブツの輪郭だけ取り出してシルエットとして塗り潰した時、一目でそれが猫だと分かるか?…とやってみたら、何だかよく分からない四足動物が浮かび上がってきました。
00silhouette
なるほどワシはぬこ様の全体像すら掴んでないまま、微細な部分部分ばかりをセコセコといじくり回していたのだなぁ…と痛感。
(私がZSphereからのモデリングを苦手にしてるのも、このあたりのことと関係してるかもしれません。
ZSphereでベースメッシュ作るとどうしてもプロポーションがおざなりのところからのスタートになります。
モデリングしながらグイグイとプロポーションも修正してけば済む話なんですが、どうもそうした全体の造形を俯瞰するマクロ視点と、細部へ向かってフォルムを付け足したり削ったりするミクロ作業とを切り替えながらバランス取るのが下手クソらしいです私。)

そこからプロポーションの作り直しが延々と始まりました。
cat_proportion
当初はZBrush内で、Subdivision Levelを一番下まで下げてから、直径を広げたMoveブラシを使って各パーツを引っ張ったり詰めたりしながら調整してたのですが、これが結構やりづらい。

もっと全体を方眼みたいに区切った上で、各マス目をグイグイ動かすようなやり方でフォルム全体をダイナミックに調整したい…と、そこで思い付きました。
maxのラティス変形機能=FFD(Free Form Deformation)モディファイヤってそのものズバリやん。」
cat_model_FFD

ZBrushには、メジャーどころの3Dアプリ(現ver.4R6時点で対応アプリはMaya, max, Cinema4D, Modo, Photoshop, Poser, Sculptris)との作業連携を図るため、GoZというプラグイン機能が(現在はデフォルトで)組み込まれています。このGoZが優れモノで、

  1. 対象形状のSubToolを選んでおいてTool>GoZボタンをポチると、たちまち連携先のアプリに対象SubTool(の一番低いSubdivisionレベル)がポリゴンメッシュ・オブジェクトとして転送される
  2. 転送先のアプリであんなコトこんなコトした後に…
  3. 今度はZBrushに向けて再度GoZすると、変形結果が取り込まれて元のSubToolが更新される

…という段取り。
GoZは対象オブジェクトのUVマップ情報も授受出来ますから、ZBrushで塗ったPolypaintをベイクしてテクスチャをmaxに持ってくことも出来ますし、再度ZBrushに戻った後もテクスチャはそのまま使えます。
実にシンプルな操作で、他アプリを事実上ZBrushのプラグインみたいに使役することが可能です。

斯くして我が猫モデル殿は好き放題にプロポーション変更の実験に晒されたのですが、色々とやってる間に気付いたのは、どうも私の頭の中にある猫のイメージよりも実際の猫は胴長短足みたいですね。
頭部の体全体に対するバランスも(後々ファーを生やした時ボリュームが膨らむ分を差し引いて小さめに作っておかなければならない、という理由もあるのですが)思ってた以上に小さいです。


このGoZを一度使ったら私はもう病み付きになりまして、ZBrushではやりにくい操作が必要になったらすかさずGoZでスコーンとmaxに移動して、あんなコトやこんなコトが終わったらスコーンとZBrushに戻って何事も無かったかのようにスカルプティング作業を続ける、というようなワークフローが今ではすっかり身に沁み込んでおります。

ZBrushは潔くスカルプティングに特化した変態アプリですから、通常の3Dモデラーみたいなポリゴンの切った貼ったやトポロジーを部分的に変更するような操作は極めてやりにくいです。
そうした操作が必要な際には別にGoZでなくImport&Exportでも何でもやらかして、maxだろうと何だろうとご自分の手慣れた外部アプリと連携させるのが宜しいんじゃないでしょうか。
hidamari
うぅむ後頭部のファーが毛羽立ち過ぎて輪郭を崩してるな…


ZBrush

ZBrush→3ds max猫(2)~突如として完成編~

ハチワレ君(改)

え~…(^^;;

前回初回から長らく間を置いて、突如として完成画像を載っけてしまいます。

初回のトップに置いたZBrushでのモデリング開始時の猫らしきものが、我ながらあまりに酷い出来だったのに感動しまして(^^;
「次アップするときは、ちゃんと見れる形にしてからにしょう」などと思ったのが運の尽き。
まぁどんだけ頑張っても納得できるものにならんことならんこと…。

実のところまだコレも全く得心いってないのですが、これ以上引っ張っても今度はそのコダワリが返って逃げ口実になりそうなので、ひとまずこのあたりでエイヤッと公開してみます。

もっと、こう、フォトリアルぅ~、な存在感のある仕上がりにしたいんですが、どうしてもフェイク感が拭えないのですよ。
何が悪いんかなぁ…Hair and Furの設定パラメータによろしくないところがあるんかなぁ、そもそも毛のStrandの生え方がいかんのだろうか、レンダリング設定が下手くそなんか…
Hair and Furに詳しい方がおられましたらご指導ご鞭撻賜りますればm(_ _)m


…とは言いながらも、ここまで来るまでには

  • ZBrushでの
    1. Dynamesh
    2. ZRemesher
    3. UV Master
    4. FiberMesh
    5. goZによるmaxへの受け渡し
  • 3ds maxでの
    1. Hair and Fur モディファイヤ
    2. CAT
    3. スキニング設定

…とまぁ、かなりの経験値を稼ぐことが出来たという思いはあります。

なので、今回はオープニングとエンディングを先にアップしちゃってから、最初のアレがこうしてこうなって、最後のコレになったんだよ、という謎解き的段取りでシリーズ構成してみようかな、と考えました。
(ていうか、せっかく積んだ経験なので忘れん内に自分自身のためのリファレンスとして記録を残しておきたいってのが一番の本音だったりします。)
仕事やら何やらの都合にもよりますが、出来れば数日おきに上記の工程に沿った記事を都合10回くらいのボリュームで連載アップしていこうかと考えております。

作品の出来はともかくとして、一応実際にコチコチと手を動かした者でないと書けないような細々しくも生々しいTips的なネタも満載するつもりでおりますので、その筋の方々におかれましてはご期待の程を。


2014.05.17
トップ画像、多少マシなFur設定とライティング設定のやり方を発見したので、レンダリングやり直して差し替えました。以前のトップ画像はコチラ