アウトドアとかゲーム開発とか

ロードバイクやキャンプなどアウトドアとUnityでの開発とか

【Unity】放物線を描く射撃をする①

ターゲットに対して放物線を描いた弾を発射できるようにしたい。

2018年1月時点で開発中のロボゲーでは、『まっすぐに進む』もしくは『ホーミング』の2種類が飛び道具の主な行動パターン。

プレイヤーからの攻撃および敵からの攻撃に放物線攻撃を追加したい。

f:id:vrcycling:20180111231118p:plain

富士総合火力演習がとても良かったので再現したい!

・弾の基本的な挙動

一定距離(時間)まではまっすぐ飛び、以降は重力により放物線を描き落下する。
最初のまっすぐ飛ぶ距離を『通常射程距離』と仮称する。

f:id:vrcycling:20180111233032p:plain

ここまでは特に問題なく実装はできる。
ちなみに自作ロボゲーではUnityの重力は使っていないのでちょっとずつ落下速度を終端速度まで上げる。

・エイミング

ターゲットが射程距離内の場合はまっすぐターゲットをエイムする。

f:id:vrcycling:20180111233236p:plain
射程距離外の場合は落下開始から地面に到達するまでの飛距離を加味してマズルを上に向ける。

f:id:vrcycling:20180111233440p:plain

やりたいのはここ。

尚、自由落下中でも到達しない距離の場合は最大距離の角度で発射する、もしくはそもそも撃たない(ロックオンしない)。

・参考情報

とりあえず参考になりそうな情報を探す。

Flashゲーム講座&ASサンプル集【狙撃の計算方法について】

矢を放物線状に飛ばしたい(2D 重力無視) - Roba Memo - 素人のUnity覚書と奮闘記

【Unity】落下地点の座標から、放物線の方程式を求める - おもちゃラボ

【Unity勇者の奮闘記】Unityで物理の勉強3(弾道予測線を作成する) - Unity勇者の冒険の書

 

実装は次回