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

2016年6月2日(木) 21:32

壁加速自動探索

 速度に関しては、300キロ以下は特定アドレスの値を採用。それを超えると、座標の変化量から計算することにした。

 さて、スタート直後は壁を使用した超加速になる。
 壁で加速するのは、ランナバウトやグランツーリスモでもあったので、基本的な要領は決まっている。一定フレーム(たとえば100フレーム)先までネジコンの切れ角を固定して進行させる。これを、あらゆる切れ角に対して試し、最速の切れ角を探し出す。
 だが、実際の匙加減は難しい。

1)最速とは何か?
 最後の到達速度か?途中でもいいから出た最高速度か?移動量が大きいことか?
 最速の定義によって、解は異なる。

2)最適なフレーム数は?
 100フレーム先まで試すのと、50フレーム先まで試すのでは、解が異なる。
 どれぐらい先まで試すのがベストか?

 スクリプトを走らせれば解は出て来るが、1)や2)は人間が決めてやらねばならない。決めるためには、実際に試して速そうなものはどれか試行錯誤せねばならない。

 1)に関しては、将棋やオセロをコンピューターに打たせる場合にも似ている。
 それらボードゲームにおいて、最善手は終局まで調べることで確定する。しかし計算量が膨大になり過ぎて、終局間近を除けば不可能だから、途中まで調べた段階で「どれぐらい最善に近いか」を推定する。この推定を行う計算式を、評価関数と呼ぶ。コンピューターの強さは、評価関数の質に左右される。

 TAS製作でも、最速はゴールまで調べることで確定する。しかし、可能な操作の組み合わせは膨大であり、ゴール間近を除けば調査は不可能だ。だから、途中まで調べた段階で「どれぐらい最速に近いか」を推定する。この推定方法の良し悪しで、最終的なタイムが左右される。
 ランナバウトでは、一定フレーム数における移動距離を最大にするのが好タイムを出した。しかしゲームによって違うし、大抵は速度領域によっても異なる。実際の解を見ながら試行錯誤が必要だ。

 2)も厄介。
 余り先のフレームまで調べると、局所的な急加速を見落とし易い。しかし先の方を調べないと、コーナーが接近した場合などの急変に対応できなくなる。これもボードゲームの水平線効果に似ている。
 状況に応じて最適な先読みフレーム数は変化するので、人間が時々スクリプトの動作状態を確認して手を加えねばならない。

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