AI巡航高度の調節がうまくいかねぇぇぇぇぇ

Engine MODの改善に引き続き取り組んでますが。
重量級機体のAI巡航高度がFMBでwaypointに指定した高度よりずっと高く1000~2000mも上になる場合があるバグの修正がうまくいかない。

特に顕著なのがTu-95なので、Tu-95を使って 
 ・離陸して高度を500~1000~1500mと順次上げてそこで固定する
 ・トラック状に横長に伸ばしたwaypointを半周ほどたどらせる
 ・高度を~1200m~1100mと下げてきて着陸させる
というミッションを作ってAI機に飛んでもらうのですが。
勝手に2500mぐらいまで上がられて、最後着陸できないままになる。
うぅぅぅぅん。

よく分からないのが、しばらくはいいんですよ。
離陸して、しばらく高度500mを維持してから次に1000mに高度を上げるあたりまでは、waypoint指定の+100m~-50mの範囲をちゃんと維持して水平飛行してくれるので、おっ、よくなったかな、と安心してしまうのですが。
1000mから1500mに高度を上げつつ進路もターンするあたりからおかしくなる。1500mを超えてもエレベータを戻さないまま2500mぐらいまで一気に駆け上がってしまう。そのあたりで上げ止まってはくれるんですが……

例によって、判定を行う計算式に使ってる各種フライトパラメータやその途中の演算過程などをエラーログに書き出させて、それをあとから検証して、ここの数式がよくないなというようなところを発見して修正しないとですねぇ。
エルロンターンのときエレベータを引きすぎてるんですかねぇ…… いったん引きすぎていても、高度が高くなりすぎれば応じて再び直進に戻ってからエレベータ下げてゆっくり降下してきてくれれば済む話なんだが、なぜそうしてくれないのやら。
スポンサーサイト

巡航速度の調節はだいたいできたかなぁ

Engine MODの拡張で、特に重い4発爆撃機などのAIがwaypointに指定した高度以上・速度以上を既に得ているのに、さらに速度を上げようとスロットル開けっ放しにし、余力のあるジェットエンジン機だと600km/hを指定してても800km/h以上出し続けたりする課題。
空中給油ができなくなったりするので、解決しないといけませんでしたが。

たぶんこれで大丈夫かなあ?というものにできた。
あまりガクガクとスロットルを上げたり下げたりせず、それなりまったり調節しつつだいたい指定速度+-20km/hぐらいに収まったんじゃないかな。
高度がまだ低い段階では、これから高度を稼ぐために推力を使うのでそこそこオーバーしててもかまわない(でも100km/hも超過してはだめだよ)、waypoint高度を超えたらしっかり控えていく、という感じにしてみる。
おっと、内部コード見てみたらAI機の速度調節はIASで判断されているのが分かったので、同じIASをkm/h単位でwaypointに指定してても高空だと対地速度(とTAS)は高くなります。高度4000mだとIASとTASにだいたい100km/hぐらい差がつくと思うので、TASで400km/hでAI機に飛んでほしかったらIASで300km/hぐらい指定しないと、勘違いしてFMBで400km/hを指定してるとTASで500km/h近く出そうとめいっぱい飛ばすかもしれません。
ちなみに空中給油機のブームやドローグの出し仕舞いの判断はTASでやってます。

しかし、高度調節がまたうまくいかない。
Tu-95なんかが1000m以上高く飛んじゃうんですよね。
しかも着陸のときに高度処理できないままだから、上空ぐるぐる回り続けていつまでも着陸できない。
F-14などが着陸前に高度と速度を失いすぎて墜落しまくる対処したら副作用でこれだよ……
スロットルと違ってエレベータは頭打ち処理など追加するとガクガクしちゃうので(というか、今でも既にわりかしそうなってる、ジェット機は)、どーーしたもんかなあ、と悩みどころ。
こないだはIL-28が巡航はいいけど着陸できなくなってたので、対処したとこだったんですよね。

艦これウィークリークリア2018/07/16

ウィークリークリアできました。
それでネジ稼いだのですが、F6F-5を改修すると序盤でも6個使うので、すぐ減っていく感じです。
他にも☆MAXに届いた91式徹甲弾を1式に更新したりもしたし……

で、スクショ撮りそこねました。
一番分かるのこれかな。
20180716艦これウィークリークリア一部

単発の工廠任務がいっぱい溜まってきてしまいました。


ランキングは800~900位あたりとうろうろしています。
最後に追い込んで届くかどうか。

Engine MODの改善が地味に進展はしているが

表に出して配れる安定度を達成するのに今しばらく時間かかりそうですが。
Engine MODに追加した新機能の安定改善は地味に進展はしています。


これまた表に出てない機体なんで私以外はこの現象に遭遇したことないはずですが。
開発中のF-14トムキャットをAI機で3機以上の編隊にして離陸からやらせると(単純な滑走路端から開始だとあぶれる機が出てくるのでTaxi to Take-off使って1機ずつ誘導路から向かわせて)、4機目は確実に、3機目もかなりの頻度で、離陸上昇を終えてフラップを畳み巡航モードに移行して先行機を追うぞという態勢になる瞬間に爆発を起こしてました。
最初原因不明だったので、それ以外のデバッグや挙動確認を優先でAI機は2機編隊以下で出現させるって制約を自分に課して作業を進めてました。

んで他のRWRとかAI機挙動変更、着陸時にオーバーヘッドアプローチを選択可能にするといった機能追加をしていってるうちに、「あのF-14の突如の爆発、16Gとか20GとかいきなりすごいGがかかっているのではないか?」と思い当たりました。
HUDに内部パラメータがしがし表示する自作ツールを使っても爆発した瞬間にかかったGは表示されてないので確証は持てませんでしたが、可能性は高いだろうと。

F-14は離陸時にアフターバーナー焚いてスロットル110%で加速上昇していき、一定高度と速度稼いだら巡航モードに移行する、このとき純正AIの時点でいったんエレベータはマイナスになってから再度プラスに調整かかる。
1番機であれば次のNormal waypointの速度がそこまで高くないでしょうからスロットルを90%とか80%とかに戻して移行します。だからGもそこまでかからない。
しかし2番機以降は離陸の順番待ってる間に何NMも離された1番機に追いつこうとスロットル110%を維持したままでフラップをしまいエレベータをガクガクするわけで……そこで極端なGが発生するかもしれない。

ならば離陸上昇から巡航に移行する判断基準の高度や速度よりいくばくか低い高度・遅い速度に到達した時点で、スロットルを110%から96%まで絞らせれば解決するのではないか?と考えました。
その指定箇所を探し、こう書き換えればそういう動作しそうだぞという改造を施す。
そしてこれまでAI4機編隊にしたら爆発起こしてたミッションをロードしてテスト……

おおー、爆発、起きませんでした。
やったね。
まさか一発で狙い通りになるとは。

スロットルを絞るゴールは96%を指定してても、絞り始め基準到達時からAIが110%からゆるゆる絞ってきてるうち、101%ぐらいになったところで高度・速度が本来の巡航移行点に達するので96%まで落ちきらないんですけども。それでも効果ありました。
あまり判断基準を下げすぎると高度と速度を失っちゃうので、これで爆発が防げるならいいと思う。
届かなくてもいいからゴール値は96%のままにしておいて。


こんな感じで地味にいっこいっこ不具合を潰してはいけています。

あとは、巡航中にWaypoint指定の速度はとっくに超えてるのにAI機がスロットルを戻そうとせずにどんどん加速を続けてしまう問題とか、レーザー誘導爆弾やGPS誘導爆弾を抱えているAI機が指定waypoint高度で水平投下してくれることを期待しても降下爆撃しやがってそのせいで誘導時間が極端に短くなる問題とか、このへんも改善したいです。
あと超音速ジェット機のAIに、音速超えるwaypoint速度を指定して、アフターバーナー焚いて超音速巡航させるっていうのもありますかねぇ。優先度は低いですが。

オーバーヘッドアプローチの実装が60%ぐらい済んだりしてるんですけど

IL-2 1946のMODジェット機、特にF-14、F/A-18、A-4などの着陸・着艦をオーバーヘッドアプローチで行わせよう計画。
既存のクラスのメソッドとその中のコードをできるかぎりそのままに、最小限のいじくりで実現するにはこうかなあ……と温めてたアイディアを実装してみて、A-4スカイホークは、うん、まあこんなもんかなという、最小限の変更で実現できる範囲でのオーバーヘッドアプローチをしてくれるようにはなったり。
しかしF-14だと重くて機体が沈むわ旋回はまったりだわで、すぐ墜落するかウェイポイントを見失って迷走するわで、うまくいかなかったり。

そもそも既存コードをできるだけいじらずにって制約からスタートしてるから。
StockゲームのAI着陸がダウンウインドレグから始まって回って降りるって8つのウェイポイントだけ持たせてたのを、360度回ってくるようにすると地点密度が下がってカックンカックンになるのは当然で。
ウェイポイント増やしたいけど、そうすると「ウェイポイントの何番目を通過したかでフラップ降ろしたりいろいろする」ってAI機の挙動書いてたのが全部わやくちゃになりかねなくて。
どーすっかなぁーーーって。

あと、もとからの旋回決定&解除コードがおかしいんでしょうけど。
ウェイポイントを通過して次のウェイポイント向けてエルロンロールして旋回を開始したAI機が、旋回していって次のウェイポイントを正面に捉えたのになぜかそこで逆エルロン操作してロール消して直進するぞという判断を行わず、ずーっと同じロール角維持して同じ地点をぐるぐる5周ぐらい回る現象があって(旋回半径の大きさに比べて近い場所に次のウェイポイントがありすぎて、回っても回っても常に真左や真右に目的ウェイポイントがあり続け遠回りするばかりで近づけないという現象とは別、内部変数チェックして目的地をいったん正面に捉えてることは確認した)。
これもどうにかしたいんだが……とか。

まあ、そのあたりもろもろ勘案して実装度合いは60%ぐらいかなあって。
どうすっかなぁ……
プロフィール

western0221

Author:western0221
2010年7月30日にIL-2 1946を始めました。
好きなアニメは「ダーリン・イン・ザ・フランキス」「刀使ノ巫女」「多田くんは恋をしない」「グランクレスト戦記」「ひそねとまそたん」「フルメタル・パニック! IV」「Lostrage conflated WIXOSS」「SAO ガンゲイル・オンライン」「BEATLESS」「ゲゲゲの鬼太郎」「CCさくら CC編」「ブラッククローバー」「ラストピリオド」「ニル・アドミラルの天秤」。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2アフィリエイト
アフィリエイト・SEO対策
検索フォーム
RSSリンクの表示
リンク
訪問数
Twitter