正確な3次元投影を設定します
d3d_set_projection_ext(xfrom, yfrom, zfrom, xto, yto, zto, xup, yup, zup, angle, aspect, znear, zfar)
この関数は、カメラを含めた投影行列の世界が2Dスクリーンに投影される方法を制御します。ここで、(基本的に)ビュー行列がコントロール初期投影行列と同様に、3Dゲームのためのビュー行列を設定します。あなただけの周りのビュー(カメラ)を移動したい場合は、関数d3d_set_projection()を使用する必要があります。
視点は(xfrom, yfrom, zfrom)で指定します。ターゲットは(xto, yto, zto)で指定します。アップベクトルは(xup, yup, zup)で指定します。
"angle"にはカメラのレンズ(視野角)を設定します。通常は40〜45度の値となります。"aspect"には水平方向と垂直方向とのアスペクト比を指定します。通常はルームのサイズ比に合わせます。640x480であれば、640/480=1.333を指定します。最後(near/far)はクリッピングプレーンを指定します。この範囲より小さいものもしくは大きいオブジェクトは描画されません。デフォルトはnear=1 / far=32000 となっています。なおnearは0より大きくなければなりません
with (obj_camera) { var xx, yy, r; xx = x + cos(direction * pi / 180); yy = y - sin(direction * pi / 180); r = view_wview[0] / view_hview[0]; d3d_set_projection_ext(x, y, 10, xx, yy, 10, 0, 0, 1, 60, r, 1, 16000); }
上記コードは一般的なFPSで、現在のカメラオブジェクトの方向を使用して回転させ、60度の視野角と低めのfarクリッピングの設定となっています