2

オブジェクトに直接使用している Transform を前に進めたいと思います。特定の軸 (z など) で前方に移動するだけでなく、Transform が向いている方向に移動する方法はありますか? たとえば、デフォルトでは Z 軸を完全に下りますが、変換を Y 軸で回転させて「前方」に移動したい場合は、Z を直接下るのではなく、回転した方向に少し下ります。それ。

前方ベクトルを計算する必要があると思いますが、それが私が見つけることができるすべてです。それが正しいかどうか、またはその方法については何も見つかりません。4x4 マトリックス (行優先) を使用しながら、変換を「順方向」に移動するにはどうすればよいですか。

これはゲーム カメラ用ではなく、ゲーム オブジェクト用です。そのため、回転行列、スケール行列、および位置から構築された変換行列しかありません。

4

1 に答える 1

1

行列から 3 番目の列 (または乗算の順序に応じて行) を抽出することができ、それが前方 (または「下」の方向に応じて後方) になります。これにより、z 軸の宛先ベクトルが得られます。

new Vector4(0,0,1,0)同様に、ベクトル(またはnew Vector4(0,0,-1,0)) に行列 (またはベクトルに行列) を掛けることもできます。4 番目の座標は 1 ではなく 0 であることに注意してください。これは、変換が必要ないためです。これにより、z 軸が変換される方向が得られます。

これは、3x3 回転行列だけでも機能します。この場合、上のベクトルから最後の座標を削除するだけです。

結果は、「前方」を指すベクトルになります。これを位置または平行移動行列/ベクトルに追加できます。

于 2012-07-05T21:26:01.450 に答える