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

2016年8月2日(火) 21:31

飛び込み大成功

 スクリプトでいろいろなキー入力パターンを試すとき、見込みのないパターンを途中で打ち切るのは重要である。エミュレーターの動作を速くするのは無理で、ただでさえ実行速度は遅い。だから、スクリプトの実行時間を短縮するには、無駄な frameadvance をしないことに尽きる。
 だが、条件の設定を誤ると、調べるべきキー入力パターンを調べずに終わってしまう。

 これ以上先を調べても意味がないという判断は、コンピューターに比べて人間の知能が勝っている代表的な能力である。人間並みの判断など、スクリプトを幾ら改良しても困難である。
 それも汎用で使えるスクリプトならまだしも、特定ゲームの特定コースの特定コーナーにしか使用できない超専用スクリプトである。そんなものに多大なリソースを投入して賢くするのはペイしない。

 どの程度の改良を施すかは、ケースバイケースである。

 一点読みの飛び込みに関しては、大半が入り口で失敗する。正確に45度を向いているとか、減速していないとか、そういった本判定に進む場合は予想外に少ない。となれば、力ずくで片っ端から試すのも実用的である。
 F-ZERO はデジタルハンドルだが、何フレーム連続でハンドルを入れたか・・・というだけで調整は終わらない。逆ハンドルを入れることで進路を更に細かく調整できる。その調整を行わずして、最速は狙えない。
 既存の調査により、開かれた空間では105通りの入力パターンを調べれば進路調整は網羅できることが判明している。しかし、一点読みは開かれた空間ではない。

 進路調整のキー操作が終了しても、進路が安定するまでに若干のフレーム数を要する。その間にガードビームに接触したりダートを踏んだりする可能性がある。だから、一点読みでは考慮すべき操作パターンが増える。
 既存ミュート3の5周分と、ミュート1の1周分。合計6回の入力例にマージンを追加し、310通りの入力パターンを調べることにした。

 打ち切り条件は過剰な減速だけで、310通りを片っ端から全調査する。旧スクリプトでは打ち切り条件に引っ掛かって、大抵の飛び込みで数通りしか調査できていなかった。
 現在のミュート1ムービーの1周目直角コーナー直後からスクリプトを走らせると、スクリプトの終了までに約27分を要した。実用範囲内である。
 肝心の解は、手動で最適化したのと同じものが、キッチリと出力された。更に、それより速い解も、多数出力された。大成功だ。

 続いて、左の隙間への移動スクリプトを製作せねばならない。

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