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

2017年09月の記事

<< 前のページ

2017年9月30日(土) 20:47

作り直す価値

 WGの追い抜きは見た目究極になったが、直後の左コーナーは明らかにインベタではない(左)。

 ここは緩い左コーナーと、続くキツめの左コーナーを一体処理している。そのため、折れ線走行になっていない。
 スクリプトを1つ増やしてキツめの左コーナーを折れ線走行させたところ、キッチリとインに付けるようになった(右)。

 こうして、ここまで作り直しの意味があるていどに速くなった。
 1周目が1フレームでも速くなれば、現状最悪とも言える2周目の乱数が変化する可能性がある。仮に変化しなくても、1周目が速くなれば作り直しは成功だ。
 そして作り直しは作り直し前との比較ができるため、手間では有るが作業は楽になる。

 1周目に関しては、ここでGFを抜いたらもう邪魔カーは出現しない。

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

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

2017年9月29日(金) 21:49

死闘の末


 邪魔カーが出現しないギリギリの遅さから走行する手法は、僅かに速くできるだけだと判明。
 速くて邪魔カーが出現しない突発的な例外解は見つからない。もう完全に、自機の速さと邪魔カー乱数が連動している。特定チェックポイントに自機が到達した時点で、邪魔カーが再配置されるのだろう。

 そこで、最速解から頑張って邪魔カーを回避する方の最適化を頑張る。これは、スクリプト化が困難なので厄介だ。その結果、二股棒磁石を抜けるあたりで0.8〜0.9フレーム速くできた。この調子だと、2周目ラップ2417フレームにはできそうだ。
 ところが、その後はラップ完走までスクリプト4本しかないのに、スクリプトを動かす度に出力解が遅い。あっという間に作り直し前と同等の速さに追い付かれてしまった。たったのスクリプト3本で。4本目を動かすまでもなく、2周目が2418フレームになることは見えている。

 邪魔カーとの死闘を繰り広げた末に全く速くなりませんでした、ではあんまりだ。


 ここまで邪魔カーが致命的なのでは、1周目を意図的に遅くしても乱数を変更することで速くなるかもしれない。その前に、1周目に遅い部分は無いだろうか?

 数多のコースをTAS製作し、ファイアーフィールド自体も相当な作業量を費やしている。その経験を得た目で眺めても、大半の部分に遅い要素はない。キッチリと最適化されているようにしか思えない。
 だが、1箇所だけ。最初のヘアピンでWGの大邪魔を食らうところだ。大外から抜いているが、WGとの距離が十分に詰まっておらず、もっとギリギリを狙えそうに感じられる。当事は汎用スクリプトがうまくWGを回避できず、その場しのぎのスクリプトを強引に動作させた。それで幾つかの候補を調べたのであり、システマティックに一定のパラメーター範囲を全部調べたのではない。

 そこで操作パターンの絨毯爆撃ができるようにスクリプトの改造を頑張ったところ、faster 解が見つかった。WGに食い込むようにして当たり判定の究極を攻める走行だ。

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

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

2017年9月28日(木) 21:22

5秒 S-JET


 初代 F-ZERO には、5秒 S-JET というテクニックが存在した。これは、S-JET 噴射中にガードビームと接触させることで速度周期をズラし、噴射終了直後まで最高速以上を持ち越すものである。このシーンに注目。
 スピードメーターは最高速である478キロを超えているが、右下の S-JET 噴射中表示は消えている。噴射終了しても最高速以上だ。

 しかしこれは遥か以前に、演出であることが判明した。画面表示では最高速を超えているが、内部座標の変化を見ると、最高速ちょうどで移動しているのだ。つまり、全く速くなっていない。S-JET 噴射が終了した瞬間に、実際の速度は478キロしか出なくなる。
 それでもタイムが短縮されるのは、速度周期をズラすことによって S-JET 噴射中の移動距離は確かに伸ばせるからだ。TASでは、ガードビームとの接触が無くても積極的にブレーキを使用し、移動距離が伸びるようなズラせ方を行うのが当然となっている。

 さて、そんな訳で5秒 S-JET は幻であり常に4秒 S-JET でしかないのだが、実際は全くの無意味ではない。というのも、5秒 S-JET 中にガードビームと接触して速度が低下しても、478キロ以下になるまでは478キロで走れるからだ。
 5秒 S-JET 効果外でガードビームと接触すれば減速するが、5秒 S-JET 効果内は画面表示が478キロ未満になる前にガードビームから離れれば、全く減速しない。ずっと478キロで走っている。

 スリップゾーン直前まで5秒 S-JET を持続させれば、このコーナーは減速無しにガードビームを少しケズることが可能だ。しかしこれまでスクリプトでは、うっかり見落としてガードビームと接触しない操作だけを行っていた。そこで、接触を許可するようスクリプトを書き換えた。
 ところが、なぜか速くならない。手動でケズり方を調整すれば速くなる場合もあるが、大半は逆に遅くなる。謎である。類似状況のレッドキャニオン2では、2フレームも速くなったのに。

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

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

2017年9月27日(水) 21:43

2つの対策

 邪魔カーをどうするか?
 考えられる対策は、2つある。

 1つは、少しでも速く走ることを優先させ、邪魔カーをアウトから追い抜くこと。現状で既に、作り直し前より0.5フレームほど速い。余りにロスが大きいが、少なくとも作り直したことで速くはなっている。ならば、更に僅かでも速く走って頑張ろうという方向だ。
 もう1つは、遅い解を意図的に使う。作り直し後よりは遅くて作り直し前よりは速く、しかし邪魔カーがワープしないような走行を探し出す。

 いずれにしろ、数多くの解候補を探し出さねばならない。モンテカルロ法が大活躍だ。そして成功するまでに、膨大な計算時間が必要なこともはっきりしている。


 とはいえ考えてみれば、遅い解を探すには、邪魔カーがワープしている解だけ除外して最速を得れば良い。つまり、ちょっとスクリプトに手を入れるだけで、計算量は通常と同じ。通常に最速解を探すのと同じであり、要は単なる作り直しと同等の計算量だ。まあその作り直しが S-JET 絡みではオオゴトなのだが。
 邪魔カーのワープを確認していると、いよいよワープの有無は自機の速遅と相関している可能性が高くなった。

 ある程度速い解になると、ワープが必ず発生して邪魔カーが最悪の位置に出現する。速くてワープ無しという都合の良い解は、皆無だ。
 今回は速く走ることで邪魔カーが配置されたが、レッドキャニオン2では逆に速く走ることで邪魔カーが消えるパターンがあった。このゲームでは敵の配置が行われる特定のポイントが幾つか存在し、そこに到達するタイミングによって敵の配置が変わるのだろう。どこからどこまで、乱数調整の困難なゲームである。

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

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

2017年9月26日(火) 22:06

ブチギレ

 S-JET 噴射時の初期速度を4の倍数に揃えないことで、faster 解が見つかった。
 モンテカルロ法を適用して走行させると、案の定すぐに4の剰余などズレて無意味となり、一気に速くなった。

 S-JET 噴射完了時点では1.5フレームていど速いとの判定だったが、続くスリップゾーンを延々と走った結果、何と3フレーム近くも速くなった。予想通り、タイム短縮の余地は S-JET に潜んでいる。

 嬉々として続くスクリプトを動かそうとして、愕然とした。
 作り直し前(左)にはクリアだった前方に、邪魔カーが思い切り鎮座してやがる!

 直後の複合コーナーは走行ラインがシビアなので、完全に手詰まりである。ここからもう、どうすることもできない。
 邪魔カーをアウト側から抜き去る走行を試したが、複合コーナーを抜けた時点で0.5フレームほど速いだけだった。
3フレーム近く速くなったのに、邪魔カー1つで0.5フレームになってしまった!

 さすがにブチギレて、どこでこんなものが出現したか調査開始。
 作り直し前は2周目完走まで前方はクリアであり、すっかり安心していた。それが、作り直したらいきなりこれだ。

 これは、作り直し前(左)と作り直し後(右)の途中経過。左前方に地雷マシンが見えているが、内部メモリーを確認するとその座標は左右で完全に同一だ。
 作り直し前は、この地雷マシンはそのまま走行を続け、自機はどんどん先へ進む。
 これに対し作り直し後は、地雷マシンがここから暫く走行を続けたあと突然ワープする。前方に大きくワープし、地雷マシンではない邪魔カーとして再配置されるのだ。座標が切り替わるのではなく、数フレーム掛けて移動するのが嫌らしい挙動。

 遡って走行し直しチェックすると、作り直し前の初期値はすべて邪魔カーがワープしない。
 作り直し後の初期値はすべて邪魔カーがワープする。ただし、途中で思い切り減速すると、邪魔カーがワープしない。
 暗雲が立ちこめて来た。ある程度速く走ることで、邪魔カーの挙動が変わるのではないか?
 それでは乱数調整できない。

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

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

<< 前のページ

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

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4