狙って撃つ!を実装する。

SFロボアクションゲーム作ってます。
しかし、3Dシューティングの基本な部分につまずいた!!

画面の中央に照準となるスコープを持っていますが、スコープで狙った場所に弾が当たらないんだ!

どういうことかと言うと、
・カメラから見た真正面、と、
・弾丸発射位置から見た真正面、が
ズレるのが原因と思われる。3Dゲームだから同じ真正面でもベースとする位置が違えば、少しだけ角度が変わる。少しの角度でも長い距離進むと大きく差が出る。と、考えた。

これは原理上の差異だから解消するのは非常に困難と思い、別の手立てを考えた。


カメラ(プレイヤー視点)から見た真正面に敵機がいたら、そいつに向かって弾を発射する!だ。


つまり、
1.普通に弾丸発射位置の真正面に射出すると「A」に向かって弾が飛ぶ。すると、当てたい敵には当たらない。
2.カメラ(プレイヤー視点)の真正面にRayを放ちぶつかった敵機「B」を探す。
3.弾丸発射位置から見つけた敵機「B」に向けて弾を射出する。

これでOK。だと思う。

なにせ、スカっと遊べるアクションゲームを目指す以上、敵に弾が当たらない?とかあり得ない。正しい発射処理ではないのだろうが、コレで良し。

↑この画面ではデバッグ用のRayを表示して、どんな風になっているか肉眼確認中。

後は、敵機「B」を探す際の探し判定の広さ調整の具合いでエエ感じの度合いを探さねば。


コメントを残す

メールアドレスが公開されることはありません。