モデリング方法論

週末を遊び時間にだけ充てるのはちょっと生産的じゃないので、以前からちょっとづつ進めていた"2D"モデラの開発を先に進める。skyやmiraiDSPのアプリケーションとして予定*1
どこまでを自動化するかは微妙な線だけど、mdiappの3D背景オブジェクトのような補助線用途から始めようということで。もちろん最終的には単体で作品を作れるレベルにしたい。
この段階で『塗り』まで配慮に入れる必要がある。形状として表現される塗りアルゴリズムのため。

  • 顔の各パーツ

顔のパーツは非常に難しい。とりあえず、プログラムによって生成することを考える。
たとえば、物理的に正確な光を付けるといわゆる"死んだ目"になりがち。
http://game.watch.impress.co.jp/docs/20081204/3dmg4.htm

人間キャラクタの「生きている」感を左右する眼球表現については、黒目部分の水晶体の膨らみを法線マップで表現するという細かいこだわりを入れている。さらに、ライティング時には「死んだ目」にならないように、常にカメラに相対して瞳にハイライトが出るような特別なシェーダーを仕込んでいる。

  • 体(本体)

体にはあまり複雑なパーツは必要ない。多くの場合、ジオメトリ正確*2で構わない。
ZBrushのZSphereあたりをパクれば良いように思える。
http://video.google.com/videoplay?docid=-5318915524107468632&hl=ja

  • 髪、布や服

未検討。

線の生成

線にノイズ(太さ、座標)を加えることは"出力の人間っぽさ"のために重要に思える。
http://chihara.aist-nara.ac.jp/gakkai/VIR/PDF/A-15.pdf

検討項目

重要な検討項目は様々な画風の再現を可能にする点。つまり、色の選び方からストロークの様式までモデリングに含める汎用性が必要になる。(もちろん当初は自分の画風の再現にだけ集中する)
そこで、新しい視点として"レイアウトアルゴリズム"を提案する。metaposeはジオメトリ不正確オブジェクトを許し、適切にモデリングできるように設計しなければならない。3Dな座標演算によって生成されるのはあくまで"補助線"であり、それから2Dレイアウトルールに従ってレイアウトされる。
ジオメトリ不正確オブジェクトは、要するに視点によってレイアウトルールの変わるオブジェクトで、目の位置といった各パーツの配置において顕著に表れる。(言い換えれば、左右反転に対して耐性を持たない - http://d.hatena.ne.jp/ryocotan/20080109/p2 )
ジオメトリ不正確性がもっとわかりやすく現れる例として、文字フォントが挙げられる。文字フォントは太さ(ウエイト)に応じて各パーツの配置が異なる。単純に太くするだけではバランスが悪く感じられる。
http://mplus-fonts.sourceforge.jp/cgi-bin/blosxom.cgi/2008/03/17#mplus_fonts-080314
例えば『各』の下の口は内側にむかって太くなっている。

*1:要するにVorbisのデコードには結構演算能力が要ることが解ったので方針を変更した。。

*2:metapose用語。通常の3Dモデラのように視点により変形/レイアウト変化しないオブジェクト