「ゲームプログラミング/3Dグラフィック」の版間の差分

削除された内容 追加された内容
編集の要約なし
→‎プログラム例: 上面図がデバッグに必要
874 行
 
 
==== 回転させよう上面図がデバッグに必要 ====
デバッグのために、上面図が必要です。上空から見下ろした視点でのカメラ位置と、カメラ向きと、被写体の位置とを図示した、上面図が必要です。
 
今度の私たちの自作3Dゲームプログラミングでこのあと回転機能などが加わり、動かし方が複雑になってきたりすると、上面図などの補助図の無い状態でデバッグを確認するのが、だんだん困難になってきます(あるいは、事実上は不可能か)。
 
 
上下方向をy成分とすれば、
つまり、(x,z)成分を表示すればいいわけです。
 
 
別に3Dダンジョンを作る必要は無く、私たちの作る必要のある機能は単に、
:カメラ現在位置の(x,z)成分の表示
:カメラの向きの(x,z)成分図示
:被写体の位置の(x,z)成分の図示
 
これらを、作成するアプリのウィンドウの空いてる場所にも表示すればイイだけです。
 
 
鳥のように上空から見下ろした視点を描いた図なので、鳥瞰図(ちょうかんず)とも言います。
 
 
これらのプログラムの作成は簡単で、まずプログラムで矢印の作図プログラムでも書いておき、その矢印を、カメラ現在位置の変更にともなって矢印を移動させたり、カメラの向き変更にともなって、矢印の向きも同じ向きの同じ角度だけ回転させるプログラムを作ればいいだけです。
 
 
「上面図」や「鳥瞰図」とも言いますが、日本のゲーム業界的には和製英語で「マッパー」と言ったほうが、通じやすいかもしれません。なお、「マッパー」とは元々はRPGゲーム『女神転生』シリーズの魔法の名称で、3Dダンジョンの探検中に、プレイヤーに鳥瞰図でダンジョンの地図(マップ)と、現在地とを見せる画像を表示する機能のことです(もともと、そういうマップ補助を使える魔法の名前だった)。
 
どうせ私たちの自作ゲーム完成後にも、地図(マップ)の機能での現在地表示など流用するだろうから、とりあえず「マッパー」と呼んでおきましょう。
 
 
なお、もしもフライトシミュレート的なゲームを作るなら、きっと上面図に加えて、さらに側面図の表示機能なども必要になるかもしれません。
 
 
==== 回転させよう ====
回転をさせるには、カメラを右方向にある角度だけ回転させた場合、視界内での被写体は逆方向である左方向に回転することになるので、つまり視界内のすべての被写体のすべての点はすべてカメラを中心に逆方向である左方向に公転することになる。