プレイ日記
ΖΕΧ ZEX256
拡大縮小回転のサンプルプログラム ROTATE.BAS【9K38QJ4S】 勉強したい方向け(処理速度は当然遅いです)
23そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
この1軸回転(Z軸回転)の仕組みをちゃんと理解できれば2軸回転も行うことができますね。 GSPOITで読み出す座標を「もう1軸分の回転」を加えた座標にすれば良いだけです。 カメラの向きを読み出し画像に対して平行(言い換えれば地面に対して平行)の向きで固定すれば「もう1軸分の回転」はただの反比例計算で済むので簡単です。 「もう1軸分の回転」を固定ではなく自由に行いたいならば三角関数を使って計算すれば良いだけです。
1そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
2軸回転の難しいところは速度を上げることとカメラの設定位置だと思います。 表示するドット数が増えれば増えるほど演算量が増えるため400x240ドットの画面では96000頂点(≒32000ポリゴン)の3D処理と同じくらいの演算量になってしまいます。 ループ内では可能な限り演算量を減らすことが求められます。 あと3D空間におけるカメラの位置は自由に設定できますが、カメラ中心の一人称視点ではなく三人称視点(画面上でのプレイヤーキャラを中心に回転させる場合)の場合には「カメラの向きが地面に対して平行」という最も簡単な状態であっても三角関数を使ってカメラ位置を計算しなくてはならないためです。(その点、一人称視点ならば簡単) つまり、2軸回転を作るならばカメラの向きは地面と平行で固定、カメラ中心の回転(一人称視点)にするのが最も簡単です。
1そうだね
プレイ済み