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

2014年1月9日(木) 21:33

最適化はいろいろ大変

 いざ実際にTAS製作を進めようとしたら、たちまちミスに気付いた。

 Yボタン(ブレーキ)が押されていると、速度が−15される。

 これは不正確だった。現在速度が2432(=256*9.5)以上の場合は、確かに−15される。しかし、現在速度が2431以下になると−14しかされない。この些細な差は重大であり、速度がちょうど2304に戻るかどうかに関わる。もちろん、最適なブレーキパターンも変わる。
 シミュレーションをやり直し、最適パターンを再計算。

 アクセル26フレーム、ブレーキ11フレーム。正しい最適周期は37フレームだと判明。これで噴射期間の最終フレームに+256が発生するよう調整すると、第1ループに使えるのは33フレームしかない。早期減速を前提に速度を逆算する。

 ここでまた、離散的座標に起因する当たり判定の罠にハマる。
 減速パターンが一定にハマってしまい、変えられない。最終的な速度を内部変数で1だけ変更したいのだが、微調整しても変わらない。2単位で動いてしまい、ドンピシャに入らない。1の違いは大違いで、S-JET
速度のロスに直結する。
 ヘアピン突入前の角度を僅かに変えて、ターン開始を1フレームずらせる。

 ようやく目標の S-JET パターンに持ち込めたが、これまたすぐに誤算発覚。一般論として、S-JET
は最も速度が低下する瞬間に使うのがベストである。ミュート3では、このヘアピン抜け際である。しかし、抜け際で噴射すると旋回半径が大きくなり、大きくアウトに膨らんでしまう。タイムロスならまだしも、曲がり切れなかったりする。
 かと言って充分に曲がれるまで待ってから噴射すると、ヘアピンを抜けた直後の大きく速度低下した状態でフレームを重ねることになる。これもまた大きなタイムロスだ。

 噴射期間をフル活用する前提で綺麗に計画したキー入力パターンは、少なくとも第1ループに関しては使い物にならないと分かった。単純に実行したのでは、ヘアピンを抜けてから噴射するまでのフレームで大幅に遅くなる。
 全体のタイムに大きく影響するのは、速度が遅い部分である。

 ヘアピンを抜けた直後の減速を補填し、しかも旋回性能は確保したい。どうするか?

 赤車の性質としては以前にも書いたが、最高速(内部速度2304)では非常に旋回し難い。しかし2303以下に落ちると、急に旋回し易くなる。
 ガードビームに重ねつつヘアピンを曲がると、脱出時には2048前後まで減速している。そこで、脱出の瞬間に
S-JET を噴射し、しかしそれによって速度が2304には達しないというのを狙う。その後はアクセルを押さない。

 S-JET の仕様として、速度が2303以下の場合はアクセルを押している場合だけ加速する。アクセルを押さなければ少しずつ減速する・・・つまり速度は2303以下のままであるから、ヘアピン脱出直後よりはかなり速くしかも旋回性能は良好となる。
 そして、ヘアピンを曲がり切れると分かった時点で再びアクセルを押す。これで速度が+256され、一気に2304を超える。

 再加速が遅れれば明白なタイムロス。再加速が早ければアウトに膨らみ過ぎる。
 更に、アクセルを押さずに旋回しているフレームと、再加速による第1ループの合計を33フレームに収めねばならない。当然ブレーキを早期に押すことになるし、それで速度が2304に戻らねばならない。いろいろ大変だ。

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