Arma3で航空機を誘導したりするマーシャラー用スクリプト(精密誘導へのフローチャート編)
前回までのあらすじ
2020/09/22:追記
そもそもヘリパッドへの誘導にヘリパッドとの角度差で誘導するのはあまり良い手段でないことに今更気がつく
よって新たな誘導方法を考えてみた
根本的な考え方は初期と同じ
ヘリが左右に逸れたらそれを中央に誘導するのは変わらない
違うのは画像の黄色い範囲が増えたこと
ヘリが黄色の帯に入るように誘導するだけ
またマーシャラーの誘導が見える距離で降下誘導を開始するようにする
近づきすぎると計器が邪魔でマーシャラーが見えなくなる
以下:旧記事
今回は精密誘導のスクリプトのフローチャート的なものを書いていく
考え方編ではマーシャラーとカタパルト、戦闘機を使っていたが、前回のフローチャートでヘリを使っていたので今回もヘリを使っていく
マーシャラー、ヘリパッド間の角度a、マーシャラー、ヘリ間の角度bとし
角度bから角度a引いた差を角度cとする
角度の求め方参考サイト
マーシャラーとヘリパッドの角度aを基準にマーシャラーとヘリの角度bの角度の差をみた角度cを条件に従って分ける
大事なのはなるべく細かく条件を分けていくこと
例えば角度c>0なら左に誘導、0>角度cなら右に誘導という条件で処理していくと不都合が出てくる
角度Cが大きければ大きいほど角度がcが0に近づくまで緩やかだが、角度Cが0に近づくほど少しの操作で角度cの絶対値が頻繁に変化しマーシャラーのアニメーションが追いつかなくなるはずなのだ
そこである程度角度cが0に近づいたらまっすぐ誘導するように仕向ける中間を持たせるようにする
その角度を角度d、角度d’とし、それぞれ角度d>0、0>角度d’とする
誘導スクリプト処理開始
↓
プレイヤーがトリガーに入る
↓
左右誘導ループ開始
↓
マーシャラー、ヘリパッド間の角度aを求める
マーシャラー、ヘリ間の角度bを求める
角度bから角度a引いてその差を角度cとする
↓
角度c>角度dなら右に誘導
角度d’>角度cなら左に誘導
角度d>角度C、角度c>角度d’のならまっすぐ誘導
の処理をする
↓
ある程度距離が近くなったら降下する誘導処理に切り替える
左右誘導ループ終了
↓
着陸後、エンジンOFFの処理をする
↓
処理終了
概ね簡単だがこの処理にする
なお距離が遠くなるとまた左右誘導のループにはいるようにしたい