[PR]看護師の好条件な求人情報満載:今人気の転職サイト♪6分に1人が登録中


3DプログラミングTips トップ

アフィン変換について

・2005年9月22日作成
 

 

YXA Software Development

3D関連の習作はこちらで公開してます。

 




ピ グ ジ ェ ル 牧 場

管理人:いーざ
e-mailはこちら
CQP00202@nifty.ne.jp

アフィン変換:はじめに

物体を移動させる簡単な方法は、物体の座標に移動する分の数を足すことです。
例えば、物体を現在の座標からx座標に2、y座標に3移動したい時は、

x’=x+2
y’=y+3

といった具合になります。
2Dのゲームをプログラミングした経験のある方なら、おなじみの方法ではないでしょうか。
そして、これをマトリックスで書くと、

となります。
すべてがこれで済むのなら、何も悩む必要はないんですけどね。

さて、3D空間を歩き回るようなゲームを制作していて、キャラクタの歩行ルーチンを組む時に問題となるのが、キャラクタの「向き」だと思います。

もし、これが2D(俯瞰)なら、方角が画面上で固定されているので、向きの問題は簡単に解決します。

キャラクタを南に前進させたければ、y座標の値を増やすと共に、下向きに歩くパターンに切り換えればいいだけの話です。
シンプルな条件式でも用いれば、キャラクタを任意の方角へ向き直す(つまり前進させる)のは容易でしょう。

ところが3D空間の場合は、そう簡単にはいきません。
なぜなら、キャラクタの移動前の向きによって、移動する方向を正面に向かせる(つまり前進させる)為に必要な角度が異なってくるからです。

しかも、先程のマトリックスの加算では、物体を平行移動できても回転は不可能(つまり向き直せない)なので、この問題は解決できません!


[PR]最新の着うた全部が無料!:何曲でもポイントなしの取り放題