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

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

2015年3月・ユニティちゃんボクセル変換は今

2015年03月10日 19時35分00秒 | VREアルゴリズム開発


・・・すみません、昨年末よりブログの更新が滞っておりました。(汗)

年明けからしばらくして、やっとユニティちゃんのボクセル変換プログラムの開発を再開しました。

最近になって、やっと上図のような変換データが作成できましたので、
これを以って今年の初更新とさせて頂きました。

・・・・・

実はもっと早くに更新できると思っていたのです。(汗)

当初はもっと簡単に問題が解決すると思ってましたが、
変換に関係する様々な落とし穴が残っていたため、まずはそれらを解決することからはじめました。

手始めはスカート(?)部分の変換ミスの修正からでした。

最初は図のようにかなり崩壊した形で出ていました。
当初はこれをデータ編集で直して、らしい形にしていたのです。(汗)



左側がプログラム修正前、
右側がプログラム修正後の生成形状です。



何故こんな形になったのかというと、
実はスカート部分は1枚ポリゴンで表現されている部分だからです。

1枚ポリゴンというのはかなり厄介なシロモノで、
「厚み」の情報が無いために3Dプリンターで出力することができないのです。

現在開発中のボクセル変換アルゴリズムでは、
この「厚みのない部分」に対して厚み付けを行う機能を持っています。
しかしそれが狙い通りに働かない場合があり、そのパターンを探しだすのに苦労しました。

次にお見せするのが、ユニティちゃんのリボンの部分です。
Unity Technology Japanの方にすら「リボンは難しかったでしょう」と言われました。
たしかにここは難敵でした。(汗)



最初はこのように、何故か向かって左側のリボンだけボロボロの状態になりました。

この原因を探るため、連日数十万行のダンプデータを出力し、問題箇所でどんな計算の齟齬があったのかを調べつくしました。

原因はX方向とZ方向の補間計算の「方向」にありました。
お互いに厚みを持たせて肉厚のリボンになるように交差計算のお膳立てをしていたのですが、
お互いのボクセル展開方向が離反していると交差しないため、厚みがつかないだけでなく
リボンそのものが消滅するパターンが有ることがわかったのです。

そのためそれを防ぐ厚み付けの設定を追加しました。
結果、何とか改善することが出来ました。




これにより、ユニティちゃんの基本姿勢ポーズにおける変換精度は前回よりも向上しました。





・・・・・

さて、こうなってくるとユニティちゃんの他のポーズでも立体出力を試したくなってきます。

勿論ポーズが変われば、また新たな変換ミスが発生することになります。


しかし、ポーズ変更後のユニティちゃんの変換処理をデバッグする場合、現状のUIでは非常に不便です。

これが上記のデバッグを行なっていた時点での画面UIの状況でした。



ここではポーズモーションの変更は右上の「Next」「Back」ボタンで行ない、
モーションのストップ(動作停止)と再生は右下のボタンで、
その下の「フィギュア化」ボタンはボクセル変換処理の実行を行うためのものです。

このUIではシンプル過ぎて、例えば特定のポーズを固定して毎回呼び出したいと言う時に、
利用できる機能がありませんでした。

そこでユニティちゃんのポーズを「記録」し「復元」出来る機能を実装し、
その機能を用いてUIを刷新しました。(^^)



このように、ボタン類を右上側に集中させ、
新たに「ポーズ記憶」「ポーズ復元」「ポーズ初期化」「カメラ初期化」等のボタンを実装しました。

それに加えて、デバッグ時や部分形状変換時に役立つ「エリアNo」の入力機能をつけました。
現在ユニティちゃんは64(=4×4×4)のブロックエリアに分けられて処理されています。
最初がエリア0で、最終がエリア63です。
この範囲内のエリアNo.を指定すると、処理はそこから始まるという仕組みです。

そしてポーズ記録時、その時のポーズ情報とカメラ設定をVRE_POSE.posと言うファイルに記録するようにしました。
このファイルはプログラム起動時に読み込まれます。

これにより、好みのポーズをファイルに記録して再現できるようになりました。
よってこんな大胆な姿のユニティちゃんもポーズ記録がされており、いつでも再現できるのです。(^^)





・・・・・

そして、上記のユニティちゃんポーズをボクセル変換して3Dプリンターで出力できるようにした最初のデータが、冒頭の画像になります。



やはりポリゴン数は多めで1100万ポリゴン級のデータです。

しかも上半身にデータが集中するという困ったモデルになっています。

次はユニティちゃんのこのポーズを3Dプリンターで出力してフィギュアにしようと考えています。

続報をお持ちください。(^^)