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

2016年6月9日(木) 21:33

苦戦

 スクリプトでは、最適走行を得るために種々の評価関数を使い分けている。

 一番普通に有効なのは、特定フレーム後の速度が最も速いハンドル値を選択するものだ。
 同じぐらい有効なのは、特定フレーム後に目標座標に最も近くなるハンドル値を選択するものだ。目標座標を設定するのが面倒であったり困難な場合は、移動距離の最大化という方式もある。

 それぞれ欠点もある。
 最終速度優先は、壁で減速せず逆向きに跳ね返った場合を高速扱いしてしまうことがある。
 目標座標や移動距離優先は、最後の方で急減速するのを見落とすことがある。
 そして、そういった欠点は、何フレーム先で判断するかによっても出現傾向が変わる。

 超加速に入った場合は、特定フレーム数のうちで出た最高速が最も速くなるハンドル値を使うのが有効だと判明している。

 どうやっても駄目であれば、人間の破断で手動で試行錯誤し、得られた操作を少しずつ変化させてベターな解を探す手法を併用する。
 スクリプトが途中からおかしな走行ラインに紛れ込む場合は、スクリプトの結果を人間が修正するというやり方で解を作る。

 TAS製作とは、そういう面倒な作業の連続だ。
 スクリプトは強力な道具が手に入ったというだけで、完成に持っていくには人間の知恵が必須であることに変わりがない。 

 1周目では壁反射からの3回転など特異な解を採用してしまい、それは逃げだったかもしれないと思っていた。もっとスマートな解があったのではないだろうか?と。
 しかし2周目のこのエリアは、超絶の苦戦。最適解を得るのは事実上不可能なエリアであり、かなり速いという解が得られれば満足すべきだと認識する。そのうえで1周目を見ると、かなり満足すべき走行だ。少なくとも、同じぐらい速い解が発見できれば、即座に2周目の探索は完了扱いするレベル。

 左側の壁で加速できそうな雰囲気になったが、湾曲が大きいため本来は超加速に向かない。そこを強引に超加速させるべく、強引なスクリプトを記述した。
 途中フレームで出た最高速を優先させる超加速汎用スクリプトだと、ポリゴンの折れ目に引っ掛かって進めなくなる。進めなくなったら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