CustomScript

2014年12月18日木曜日

Unityのキャラモデル構造の勉強

  • Unity4.6
3Dキャラモデル構造についての理解がイマイチなので調べてみました。



まずは、キャラモデルを構成する要素の復習です。

● ポリゴン

最小の3D表示単位として三角形ポリゴンがあります。
全ての3Dグラフィックはこの集まりと思っていてよいでしょう。

● メッシュ

三角形ポリゴンのまとまりをメッシュといいます。
これにより様々な立体を表現します。

● マテリアル

色や模様といった情報です。
ポリゴンは形だけですが、マテリアルを追加することで多彩な色表現が可能になります。
関連:カラー、テクスチャ、シェーダ

● メッシュとマテリアル

基本的には1メッシュにつき1マテリアルになります。
GPUの動作として、まずマテリアルを設定し、その設定でメッシュを描写します。この1描写が1DrawCallに相当します。

● ボーン

座標系を親子関係で構成した情報です。
これにより関節の動きを表します。
この座標系1つ1つをボーンと呼びます。

● ボーンモデル(?)

各ボーンの座標系にそれぞれメッシュを描写します
これにより関節の動きに沿った描写が可能になります。
ボーンモデルではボーンとメッシュは1対1です。

● スキニングモデル

1つのメッシュに対して複数のボーンを適用したものです。
メッシュの各頂点がどのボーンに所属するかを定義することにより繋ぎ目のない関節が描写できます。
昨今のモデルはほとんどこの形式です。



だいたいこんなものでしょうか。
では実際にUnityのモデルがどのような構造になっているか見てみましょう。



よくデモで見かけるモデルです。
青枠がメッシュ、赤枠がボーンです。
ボーン階層は折りたたんでいますが、広げれば指先まで設定されています。
メッシュ1に骨格1という、シンプルなスキニングモデル構造になっています。
DrawCallは1です。



これはMecanimのサンプルに付属のモデルです。
メッシュが6つあり、左右の眼球のメッシュがボーン構造内にあります。上4つはスキンメッシュですが、眼球は単なるメッシュになっており、ここだけボーンモデル構造になっています。
DrawCallは6です。

ちなみにUnityChanは超リッチに作られており、DrawCallは40でした。参考まで。

0 件のコメント:

コメントを投稿