2007年11月16日
ゲームカレッジ・・・ゲームプログラム
ゲームカレッジ・・・ゲームプログラム
ゲームカレッジの授業「ゲームプログラム」では、ゲームプログラム専攻の2年生が、リアルタイム3DCGの要素技術を学んでいます。今回のテーマは「スキンメッシュ(Skin Mesh)」。3Dモデリングソフトが出力するアニメーション付きのデータの表示について学びました。
![]() | ![]() |
| 変形前 | 変形後 |
原理は簡単
キャラクターが形を変える原理は単純で、一つの3DCGモデルに対して複数の移動・回転を適用します。どの移動・回転を適用するかを、3DCGモデルの部分毎に切り替える事で変形させています。
上の曲がったモデルの例では、上半分を時計回りに、下半分を反時計回りに回転させて、中央でまがった状態を実現しています。
![]() | ![]() |
| アニメーションを含んだモデル | ボーン |
ボーンによるアニメーション
アニメーションを含んだモデルは、体のパーツ毎に、回転や移動ができるよう、ボーン(Bone)と呼ばれる構造が仕込まれています。モデルに含まれたアニメーションは、このボーンを動かす事でキャラクターを動かそうとします。 そうする事でボーンのつなぎ目が関節となる多関節アニメーションが実装されます。
| ![]() |
| ボーンのアニメーション | モデルに適用・・・あれれ? |
失敗は成功のもと
ボーンを動かす事ができれば、始めに棒を曲げた要領で、キャラクターを動かすことができるはずです。やってみると・・・・うまくゆきません。これは、体のパーツ毎にあるボーンのそれぞれが独立して座標の基準を持っているので、全体として一つのCGを表示させようとすると破綻してしまうからなのだそうです。 これを避けるためには、座標の基準を統一させる必要があります。下図のように3DCGの関節にあたる部分を全部一点に集めてしまってからボーンを適用します。
![]() |
| 関節部を一点に集中( Bone offset matrix を適用) |
![]() |
| 完成図 |
最後はうまくゆきました
いろいろ勉強しながら取り組んで、最後はうまく動きました。一歩一歩プロに近づいてゆけるよう頑張って勉強しています。だんだん卒業が近づいてきますが、最後まで気を抜かず皆で頑張っています。





















