「ボクセルポリゴンな日々」 - UnityでMakersとVRをつなぐ挑戦 -

Unityプログラムで3DCGアセットデータをVRや3Dプリンターで利用可能にする最新技術や関連最新情報を紹介します。

【MMDerのOFF会】ゆるふわ忘年会に参加してきました。

2012年12月23日 16時19分43秒 | MMDアバンドール
今日は立体出力計モデル改造の話題から離れて、MikuMikuDanceを使われる方々(MMDerさんと呼びます)の宴会に参加してきた話をさせて頂きます。

昨日、大阪某所にて「ゆるふわ忘年会」というOFF会兼忘年会が開催されました。

そこに集まったMMD関係者のメンツの凄かったことと云ったら。恐らくは現在のMMDをけん引する才能の持ち主が一堂に集まったと言っていい位の濃いOFF会でした。
自分自身MMDを積極的に使い出したのは今年の初めからでまだ1年程度の利用歴ではありますが、昨晩はMMD杯で活躍した方々と色々有意義なお話が出来ました。

そしてその中のお一人でMMDのモデル制作者でもある「えぬやP」さんと会えました。
えぬやPさんは以前名古屋でお会いした時にMMDからフィギュアを製作した私の実例モデルに興味を持たれ、自らのオリジナルキャラクターモデルを同様に立体出力された方です。

そして昨晩、MMDアバンドールが2体そろい踏みしました。(^^)



ということで、えぬやPさんの許可を頂き何枚かモデルを撮影させて頂きました。









このように見事な出来栄えとなっています。

このモデルも私が作成したミクさんと同様、MMDから立体出力向けモデルデータに変換した後ZPrinterによりフルカラー出力した物です。

そして現在作成中のハクさんももうすぐ出力にかけます。


以上、宴会のお話とそこで見せて頂いた「もう一体のMMDアバンドール」のお話でした。(^^)

「立体出力可能な形状モデルに作り変え(その5)」 ハクさんの髪の毛の水漏れを止める!

2012年12月22日 15時54分36秒 | MMDアバンドール


すみません。またしても間が開いてしまいました。(汗)
あにまさ式弱音ハクさん(あにまささんに許可を頂いた上で改造させて頂いてます)の立体出力改造作業シリーズも、いよいよ大きなヤマを登る事になります。

予定ではサクサクっと済ませてしまう所だったんですが、これが予想外に苦戦してしまったので。

何に難儀したのかと云うと、前髪です。

前髪は非常に複雑な形状が入り乱れた部分です。
後ろ髪部分はほぼ頭の形状に沿って作られるのに対し、前髪は複数の髪の房が垂れ下がってキャラクターの個性を演出する重要な形なのです。

ということで作業前のハクさんの正面顔はこんなでした。




作業後はこんな感じになってます。




正面から見ただけではなかなかピンとこないと思いますが、横から見れば違いは歴然です。先ずは作業前。




そして作業後です。




作業前と作業後を見比べてみると、額と前髪の間にあった隙間が消えて、前髪が額に密着する位にボリュームアップしている事が分かります。


なぜこんなことをするのでしょうか?

それは、作業前の状態で立体出力すれば、出来上がった前髪の厚みが紙のように限りなく薄くなってしまい出力品を取りさした直後に崩壊してしまうほどもろくなるからです。

それに前髪の厚さを修正しても、額との間が開いていいると少し前髪に触れただけでペキっと折れてしまう悲劇が起こりかねません。その悲劇を回避するために前髪を顔の一部にくっつけてしまいます。
こうすることで前髪が折れることを回避しています。

さらに、とびきり細そうな前髪の房については太い前髪の房にくっつけることによって一体化させてしまい、極力崩壊や折れたりしないように配慮します。


ところで、前髪はこれまでのモデルデータと同じく盛大に水漏れする構造になっています。前髪を裏から見るとこんな感じでした。




これを修正して水漏れしないようにしたのが以下のモデルデータです。




実際の所表面ポリゴンと裏面ポリゴンが複雑に接する構造が多かったので、厚み付けをするにあたって裏側ではかなりポリゴン配列に手を入れることになりました。

上記の作業を進めるにあたって注意点があります。

・三角柱な断面を持つ形状は五角柱以上の断面に変更しておかなければならない。

これは立体出力時の配慮でもあり、後述するCutmull Clark曲面の生成時にも重要になる注意点です。
三角柱の構造では出力後も力がかかったら折れやすいのです。また、自由曲面適用時には確実に三角柱断面の半分以下の断面積になり痩せます。

ということで、現状のデータを使って髪の毛を自由曲面化してみたのが以下の図です。





本当はすでにリボンまで修正完了しているのですが、リボンは次回ご紹介させて頂きます。(^^;)

「立体出力可能な形状モデルに作り変え(その4)」 ハクさんの上半身の水漏れを止める!

2012年12月19日 20時55分10秒 | MMDアバンドール


今回は矢継ぎ早の更新です。

昨日までにあにまさ式弱音ハクさん(あにまささんに許可を頂いた上で改造させて頂いてます)の上服の水漏れ対策が出来たので、今回はいよいよ上半身の改造を行ないます。


※ 今回ハクさんの上半身モデルがメインになりますが、上半身は服なしの状態で表示されますので肌色成分が多めです。
  但しワイヤフレーム表示をしているのでR指定はしませんが上半身裸でなおかつ髪の毛も無い状態での画像提示となります事をご了承ください。

  もし「そんな可哀想なハクさんは見たくない!!」という人は、今のうちにブラウザの戻るボタンで脱出をお願いします。






















もういいかな?

それでは本文を始めます。

Metasequoiaで肌色マテリアルが設定されたポリゴンを選択すると、以下のポリゴン形状が選択できます。今回はこのデータがメインになります。



裸んぼうで髪の毛も無く、目も無い状態なので、早くなんとかしてあげないといけません。


まずは目です。

目は白目・瞳そしてまつ毛の各パーツを組み合わせて出来ています。
しかし、これもMetasequoia上でマテリアルから選択してみると、こんな形状をしています。



これは元々MMDがアニメーション制作を前提に作られたモデルデータなので不要なポリゴンがレンダリング時に隠れるようなモデリングになっているのです。
しかし、これだけ余分なポリゴンがあってそれぞれがつながっていないと、水はここのポリゴンの隙間からも漏れだしてしまいます。

そこで不要なポリゴンをざっくりカットします。



これを直ちに頭部分に装着させます。

その際ちょっと口が寂しかったので笑顔になるように口を開けてみました。元のハクさんモデルデータには広い口内空間と舌がありましたが、立体出力時はそんな空間をくりぬくことが出来ないためにざっくりカットし、必要最小限の口内空間を作り込みました。

そうして修正が出来たハクさんヘッドがこれです。





次はまつ毛と瞳をつけましょう。

これらもMetasequoia上でマテリアルから選択して切り出します。まつ毛は上記の眼窩部分のパーツや目の上下に入る黒い線のパーツと分離します。

切りだして見てわかるのですが、まつ毛も瞳も下図のように厚みを持ちません。これでは立体出力に向かない状態です。



そこでこの2つのパーツに厚みを持たせて水も漏らさぬ形状とします。





これができたら上記のパーツをハクさんの目の部分に食い込ませます






最後にハクさんの腕や胴体部分の断面に注目します。
ここにはポリゴンが張られていません。すなわち激しく水漏れする状態です。

これを改善するために断面部でポリゴンが張られていない部分は徹底的にポリゴンを貼り付けます。

ここまで改造を行なうと、以下のようなモデルデータになります。



この状態で一応立体出力は可能ですが、かわいそう過ぎるのでやりません。この後直ちに腕部分やパンツ部分を追加し髪の毛を乗せてハクさん完成体にしていきます。




ということで現状ではここまで改造が進んでいます。



これで上服と上半身がようやく揃いました。

・・・と思ったら眉毛の厚み付けを忘れておりました。(^^;)


ところで、「あれ?体が少し変だぞ。」と思ったあなた、鋭いです。
暫定的に体だけ昨晩説明した自由曲面設定をかけています。

今後他のパーツにもどんどん自由曲面設定をかけて行こうと考えております。(^^)



「立体出力可能な形状モデルに作り変え(その3)」 ハクさんの上服のCatmull-Clark曲面化

2012年12月18日 18時05分21秒 | MMDアバンドール
昨日はあにまさ式弱音ハクさん(あにまささんに許可を頂いた上で改造させて頂いてます)の上着を水も漏らさぬ立体出力レディ状態に持っていきました。

昨日作った上着だけ別ファイルにして3Dプリンターにかけると一応出力できる仕様にはなっていますが、
出力サイズ等の関係で出力不可能と判定されたり出力出来ても出来上がった時点で壊れたりしてしまう可能性があります。
何よりも、昨日のブログの最後で紹介した「カクカクな形状のまま出力される」ため、見た目には凄い違和感があると思います。

それで、昨日の最後では上服に自由曲面設定を行なって下の図のような丸々とした服の形に変えました。



これは何をやったのかと云うと、Metasequoiaで「Cutmull-Clar曲面」という設定を行なってカクカクだった服の形に自由曲面を適用したのです。


さて、初めての人ははじめましての用語が出ました。

「自由曲面って何じゃい?」これは確かに誰しもこう思うと想像できます。

自由曲面とは数学的な用語です。今回のハクさんモデルのように少ないポリゴン数で構成されたモデルデータを、曲面計算式を通すことでそれぞれのポリゴンの間をスムーズにつなぐ微小ポリゴンを作ってつなぎ合わせて、最終的にカクカクな表面を滑らかにつないでしまうという計算技法です。

とりわけ今回使用する自由曲面の方程式を書いたのはCutmull(キャットマルともキャトマルともカトマルとも呼ばれます)さんとClarkさんと云うお二方で、共同執筆された論文で紹介されたものだったりします。
ちなみにCutmullさんは現在3DCGアニメ映画製作会社「Pixar(ピクサー)」の創業者として今も活躍されておられます。(^^)

このCutmull-Clark曲面設定は、Metasequoiaのオブジェクトパネル上でオブジェクト名を選択してマウス右ボタンをクリックするとポップアップするメニュー内で設定できます。メニューは「2」「4」「8」などの数字が書かれたサブメニューがあり、これは1つのポリゴンを幾つ×幾つで分割するかを指定します。例えば「2」なら2×2で4面、4なら4×4で16面に分割されます。分割数が多ければ多いほど形状表面はスムーズになっていきますが、分割数が多くなっても問題が発生する事があります。
但しこのメニューで曲面および分割数を設定するだけならば他の自由曲面計算方式に変更する事も出来ますし自由曲面なしの状態に戻すこともできます。ここでうっかりメインメニューの「オブジェクト」項目の中の「曲面・ミラーのフリーズ」を選択してしまうと再び分割数の変更を変更できず元に戻せなくなる場合があります。


しかし上の自由曲面分割を見て思うのは、「とがって欲しい所がとがらない」という残念さです。

これは何とかならないのか?実は回避できる方法があります。

とがって欲しい角の付近のポリゴンを細かく分割してやるのです。するとその分の曲面計算も分割に従って鋭い形状を残してくれます。
本日はその再分割を試してみました。結果は以下の通りです。



このように昨日のモデルよりは角が目立つようになりました。しかしまだまだ調整の余地はあります。



・・・・・・・・・・

そうこうしているうちにハクさん本体も少しずつ調整が進行しています。
現在は顔部分、特に目のあたりのポリゴンの水漏れ防止策を進めています。まだまつ毛の厚み付けが終わっていませんが、目のくぼみのあたりはかなり手が入ってきました。

明日はハクさんの体本体にもどんどん手を入れていきます。お楽しみに。(^^)

※ 以下のハクさんモデルは髪の毛を自由曲面設定しています。これもまだ問題があるので修正していきます。



「立体出力可能な形状モデルに作り変え(その2)」 ハクさんの上服を水も漏らさぬようにする。

2012年12月17日 16時18分55秒 | MMDアバンドール
連載のつもりが少し間が開いてしまいました。(汗)というのも、元データの修正に結構手間取ってしまったのです。(^^;)

それではいよいよ本題に入ります。
前々々回の「PMDファイルをメタセコイア上に読み込む。」で弱音ハクさん(あにまささん作・了解を頂いて立体出力向け改造を行なっています)のMMDモデルデータをMetasequoiaに読み込ませるまでを行ないました。

前々回の「立体出力可能な形状モデルに作り変え(その1)」 水も漏らさぬ良いモデルデータとは?では実際の作業にあたっての注意点を図解で説明していきました。今回はそれを元にハクさんの上着を立体出力化改造していきます。

Metasequoia上で改造する前に弱音ハクさんモデルから上服だけモデルデータを抽出しておきます。その結果以下のポリゴンモデルデータが取り出せました。



これに厚み付けを行ない前々回で説明した「水も漏れない」ポリゴンデータにするのですが、上服はなかなか手ごわいです。襟が折り返しになっていて見えにくい所で水漏れしやすくなっているからです。
そこで、このデータを三枚に下ろす、もとい「上服」「襟裏」「襟表」の3つに分解しそれぞれ別レイヤーに配置します。



上の例では後の作業のしやすさを考慮して3つのパーツの間をそれぞれZ距離で+10間隔に配置しています。

この時、各パーツを統合化した後でポリゴン選択がやりやすくなるように、3パーツとも同じ質感「服色」の参照から、「上服色」「襟裏色」「襟表色」の3つに分け、それぞれのパーツにそれぞれの質感を割り当てておきます。


その上で上服本体(襟を除いた部分)での作業を行ないます。この部分は別途裏地を作って厚みを作らなければなりません。
そこで抽出した上服本体をコピーして縮小をかけ、ポリゴン面方向の反転処理を行なって裏地にしてしまいます。その結果以下のようになります。



この裏地部分も別レイヤーに配置しパーツ分けしておきます。勿論新質感「上服裏色」を設定し裏地部分のポリゴンに適用しておきます。

上記の作業が出来れば袖部分(腕が通る所)を上服とくっつけます。
この際注意すべきは袖部分との接続ポリゴンは「上服」レイヤー側に作成し、質感も「上服色」とすることです。

これは後で裏地のみを選択して厚みを自由に調整できるようにするための布石です。


上服+上服裏が揃えば、それぞれを襟表及び襟裏と接続する作業を行ないます。
服の構造から行くと襟も服の延長線上にあります。従って表面の循環に従って「上服」→「袖裏」→「袖表」→「上服裏」の順に接続します。

その結果、最初の上服モデルデータは以下のように変貌します。



襟表が上服裏と接続する事により服全体の厚みが増してぼってりとしてしまいますが、この厚みが立体出力のために重要な要素となります。
厚みがないと立体出力は出来ません。厚みがあっても厚さが薄ければ、立体出力出来てもそこで崩壊する可能性があります。
立体出力した場合、ここの断面は厚さ何ミリになるかを想像して厚みを調整する必要があります。

一番厄介なのが服の襟先です。
MMDモデルデータの時と同じ厚さで出力してしまうと薄すぎて折れることは間違いありません。ここは元モデルの雰囲気を壊さずに厚みを付けて強度を確保します。


・・・・・・・・・・

ここまではMMDモデルデータの修正を行なってきましたが、現状のモデルデータのままではポリゴン数が少なすぎて立体出力時に物足りなさと言うかコレジャナイ感が発生します。

それは「ローポリゴンデータを立体出力するとカクカクの状態で作成されてしまう」ということです。

以下の画像は最初のMMDアバンドール(そむにうむ式初音ミク)の拡大撮影写真ですが、良く見ると髪の毛や腕にポリゴン面の名残が観察できます。このようにローポリゴンで出力するとポリゴンの不連続面が一目でわかる結果になります。今回のハクさんはできるだけ出力前のポリゴンを細分割して曲面は曲面らしく見せることを目標にしています。



そこで今回の上服作例モデルデータを統合化してMetasequoiaの曲面生成機能である「Cutmall-Crark曲面」を使って再分割度数4で分割したらこうなりました。



なんとなく丸く、なんとなく角がダルいです。このように自由曲面生成機能に頼り切ったままだと元のモデルのシャープさを損ないます。

この辺は今後の研究課題として、次はハクさん本体の改造に入ります。(^^)



追伸:

・「感覚」を「間隔」に修正。
・「職掌」を「縮小」に修正。(汗)