Darkside(リンクエラー修正しました)

2014年1月27日(月) 21:16

lua 強化

 ガチTASを作る上で、ヘアピン → S-JET と続く流れは厄介である。
 ヘアピン脱出の最適解は複数存在し、それぞれ微妙に速度が違う。S-JET は整数組み合わせ問題であるため、単純に初期値が大きい方が有利とは限らない。複数の最適解それぞれに
S-JET 最適化を加えた場合、結果が異なることが充分に予想される。
 すなわち、幾つかの最適解それぞれに対し、S-JET 最適化を実行して結果を確認せねばならない。

 S-JET 最適化は噴射期間をどれだけ余らせるかによって結果が異なるので、これも余らせ量を変えて何度も実行せねばならない。こうなると煩雑過ぎて、やってられない。どうしても、噴射期間の余らせ量はスクリプトで自動的に変化させ、1回走らせるだけで済むようにせねばならない。
 そんなことは最上位ループ回すだけでいいだろ?と思うだろうが、コトはそう簡単ではない。
 噴射期間の余らせ量が異なる場合、結果を直接比較できない。余った分は時速478キロで走るとみなし、フレームあたり内部座標9の補正を施せば比較可能である。しかしそれは、走行ラインが真北を向いた状態で行わねばならない。また、既に
S-JET が噴射されているから、時速478キロに戻った瞬間に座標を取得して計算せねばならない。

 まあ後者は簡単だが、前者の真北というのは相当に面倒臭い。
 45度や直角コーナーを抜けるのに比べ、ヘアピンでは各解のバラツキが大きい。どんな状態で抜けて来ても真北に補正するスクリプトは、案外面倒だ。
S-JET の第1ループ探索が終わった後でターンフレーム数を変化させて調べるのは簡単だが、問題は第1ループ探索の途中で旋回が完了する場合。
 第1ループ探索の途中で、ターン終了タイミングまで変化させて真北安定するかどうかまで調べていたら、スクリプトの実行時間が伸び過ぎる。仕方なく簡易判定で済ませ、最初から曲がり過ぎている場合は逆ハンドル補正を掛けることにする。これは手抜きであり、本来より僅かに遅いと判定されることがある。しかし、それを頭に入れて最終的な判断を行えば大丈夫と思われる。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4