「ねむれ思い子 空のしとねに」

ねむれ思い子 空のしとねに [DVD]

友人の栗栖直也さんが、6年(!)の歳月をかけてほぼ一人で作り上げたオリジナルCGアニメーションが遂にリリース! 早速拝見致しました。(作品サイト

まず冒頭の景観の美しさにグッと惹き込まれてしまいました。

ワタシの口癖ですが、CGにとって一番しんどいのは自然や日常の何気ない風景の再現です。車窓から見える町に雲の切れ間から降り注ぐ陽光や、溢れかえる商品に充溢したコンビニの店内、こういったものを一つ一つ作り上げていく大変さを知ってるCG屋としては、何はさておきそういう背景描写の美しさに真っ先に惹かれてしまうんです。一般的な鑑賞者目線からはズレてるかもしれませんが、こうした丁寧な景観描写があればこそ物語の世界観にも感情移入していけようというもの。
(物語作品を観賞する際、CGかセルかなどは言うに及ばず、アニメか実写か小説かマンガか舞台か、なんてことも本質的に二の次でイイ話だと思っちゃいるんですが、CGアニメだけはどうしても「作る側」CG屋としての仕事目線で見に行ってしまうんですよね…)

やがてお話の舞台は地球の衛星軌道上に浮かぶ宇宙ステーションへ移っていきます。
しかしまぁ、このステーション内の作り込み描写がまたハンパない! 先ほど「CGは自然や日常の景観こそ大変」と書きましたが、じゃあその分宇宙ステーションで楽してるかというと全ッ然! 擬似窓にわざわざ春夏秋冬自然味溢れる地上の景観をプロジェクションしたり、無重力ブース一杯に蔓草がはびこってたり、床一面紫陽花の咲き誇る栽培室?があったり。本作は脚本も制作も栗栖さんご本人ですが、もし私が制作サイドでしたら、この脚本見せられたらまずライターの首を5分ほど締め上げた後2階の窓から両足持って室外に吊るすでしょうね~w

さてこうした背景に立つ(時には浮かぶ)キャラクター達はというと、『文使』以来の“栗栖ワールド”を担う独特のシェーディング技法によって描かれた個性的なスタイル。セル・シェーディングとは異なり適度な濃淡が乗っかった肌合いと、萌え系とは一線を画すリアル寄りなキャラクターデザインがマッチして世界観を構成しています。
主人公の織音ちゃんにしても、決して「絵に描いたような美人」じゃありません(^^; ごくごく一般的な市井の人、弱さダメさを抱えて人生踏み外しかけてるような、「僕らのこっち側」にいる女の子です。
(じゃあSF的な意匠の「あっち側」に居るのは、、、まぁそれは本編ご覧になって下さい。)

以前『文使』について栗栖さんとお話しした時、忘れられないやりとりがありました。
「悲劇的な悲恋モノにしなかったのは何故?(その方がグッと来るのに~、というワタシのドSな人非人根性が言外に含まれてたのは間違いありません(^^;)」とお尋ねしましたら、「そんな可哀そうなこと出来ませんよ」といったお答えが返ってきまして、他人の悲劇を窃視したがるこちらの下衆さに甚く恥じ入ったものです。
ただ正直に言うと私は今でも、作家が自らの登場人物に感情移入して彼らに情けをかけてしまうことには功罪両面があるだろうな、と思っていて、そしておそらく自分が何らかのフィクションを描く立場に立ったら、栗栖さんとは対極的な、ひどく残酷なことでもやっちまうだろうな~、という恐怖感があったりします。

そのことを裏返せば、「あの栗栖さんが作られてるからには、決して織音や母里美に対しても惨たらしい仕打ちはしないだろう」という安心感を持って観賞していたのですが、今回はなかなかにハードな描写も多かったですね。

しかしながらこうした前売りの先入観をもって作品鑑賞することが好ましいやり方なのかどうかは自分でも悩ましいところです。多少極端な言い方すると、私は作品を通して作家が世界をどの角度からどのように見てるか、ていうことにしか本質的に興味持ってないようなので、出来れば個々の作品には頭ん中真っ白にした状態で向き合いたいんですが、歳食えば食うほどだんだんそれが難しくなってくるのがジレンマですねぇ。

とはいえ私とはある意味正反対な視座から世界を切り取る栗栖さんの作品世界には、いつも何かしら感じ入るところがあります。
本作に関していえば、人の親でもある栗栖さんと、次世代を遺す可能性最早≒0な私の“差分”の在処について、色々と思い思わされたり致しましたとさ。。。

うーん…それにしても、6年かぁ!
それにこれだけのものを創るには安からぬお金だって掛かってるでしょう。モノづくりをする者、時間やら予算やらの言い訳は通用しないのだなぁ。よーしワシもまだまだ頑張ろう!という勇気半分、これほどの熱意と意志力がワシにあるだろうかと思うと慄き桃の木ビビリ半分(^^;;

あと、何もお手伝いしておりませんのにわざわざエンドロールに名前載せていただき恐縮至極、ありがとうございました!m(_ _)m

ねむれ思い子 空のしとねに DVD
33.face
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
うぅむ後頭部のファーが毛羽立ち過ぎて輪郭を崩してるな…