2007年11月16日

ゲームカレッジ・・・ゲームプログラム

ゲームカレッジ・・・ゲームプログラム

ゲームカレッジの授業「ゲームプログラム」では、ゲームプログラム専攻の2年生が、リアルタイム3DCGの要素技術を学んでいます。今回のテーマは「スキンメッシュ(Skin Mesh)」。3Dモデリングソフトが出力するアニメーション付きのデータの表示について学びました。

border=0border=0
変形前 変形後

原理は簡単

キャラクターが形を変える原理は単純で、一つの3DCGモデルに対して複数の移動・回転を適用します。どの移動・回転を適用するかを、3DCGモデルの部分毎に切り替える事で変形させています。

上の曲がったモデルの例では、上半分を時計回りに、下半分を反時計回りに回転させて、中央でまがった状態を実現しています。

border=0border=0
アニメーションを含んだモデル ボーン

ボーンによるアニメーション

アニメーションを含んだモデルは、体のパーツ毎に、回転や移動ができるよう、ボーン(Bone)と呼ばれる構造が仕込まれています。モデルに含まれたアニメーションは、このボーンを動かす事でキャラクターを動かそうとします。 そうする事でボーンのつなぎ目が関節となる多関節アニメーションが実装されます。

border=0 border=0
ボーンのアニメーション モデルに適用・・・あれれ?

失敗は成功のもと

ボーンを動かす事ができれば、始めに棒を曲げた要領で、キャラクターを動かすことができるはずです。やってみると・・・・うまくゆきません。これは、体のパーツ毎にあるボーンのそれぞれが独立して座標の基準を持っているので、全体として一つのCGを表示させようとすると破綻してしまうからなのだそうです。 これを避けるためには、座標の基準を統一させる必要があります。下図のように3DCGの関節にあたる部分を全部一点に集めてしまってからボーンを適用します。

border=0
関節部を一点に集中( Bone offset matrix を適用)

border=0
完成図

最後はうまくゆきました

いろいろ勉強しながら取り組んで、最後はうまく動きました。一歩一歩プロに近づいてゆけるよう頑張って勉強しています。だんだん卒業が近づいてきますが、最後まで気を抜かず皆で頑張っています。



ad131210 at 18:18│ Comments(0)TrackBack(0)