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

2016年10月22日(土) 20:11

ダッシュ中のハンドル

 本番ならともかく、途中経過に過ぎないエキスパートクラスの現在は、フレーム未満の罠まで回避を考えずに作業を簡単にする。また、かなり速い解が出ていれば最後までスクリプトで確認せず先に進むのもアリだ。これらの手抜きにより、タイムは少し遅くなるが大幅に製作時間を節約できる。

 だが、手抜きできない部分もある。それは、スクリプトに不具合がないかどうか確認すること。
 2周目以降は、スクリプトが同一でも初期条件が異なる。それにより、不具合が新たに発覚することがある。発覚したら、キチンと修正せねばならない。さもないと、肝心のマスタークラス本番で最適化に失敗するかもしれない。

 3つ目のダッシュプレートに乗る最適突入ラインを探索している最中に、不具合が発覚した。その部分だけ見るとマトモなのだが、出て来た解がタイム的に想定より遅い。そこでムービー再生して確認すると、2つ目のダッシュプレートに乗ったあと、走行ラインが思い切りアウト側に膨らんでいる。これでは、大幅なタイムロスが生じるのも当然だ。
 スクリプトは、イン(右側)の折れ目すれすれを走行するように作成したはずだ。

 不具合は、2つ目のダッシュプレートに乗った直後(映像の位置)をスタートとし、右前方の折れ目すれすれを走行させに行くスクリプトに存在すると判明。
 折れ目すれすれを走るには、ここから少し右に曲がらねばならないことが分かるだろう。

 ところが、スクリプトの出力ログを見ると、最初に3フレームほど左ハンドルを切り、その後は直進している。これではアウト側にズレるのは当たり前である。
 1周目ではスクリプトは想定通りに機能し、折れ目すれすれを走行させてくれた。速度はほぼ同じなのに、なぜ2周目では訳分からないほど折れ目から離れるのか?

 初期位置からハンドル操作をせず直進すると、何とほぼ折れ目すれすれを通過。
 しまった、ダッシュプレートの特性を見誤っていた!

 これまで散々 F-ZERO のTASを製作したが、すべてミュートシティーである。ミュートにはダッシュプレートが無いため、TASで扱ったのはデスウインド2になってからである。そのため、製作歴は長くてもハマってしまった。

 1つ上の初期状態と、映像を見比べて欲しい。注目すべきは、遠景である。そう、マシンの向きは変わっていない。ハンドルを切っていないのだから、当然である。しかし、進路は右に曲がっている。さもなければ、折れ目すれすれを通過したりしない。
 要するに、ダッシュプレートに乗ると、マシンの向きではなくダッシュプレートの向きに加速するのだ。

 この違いは重大である。
 マシンの向きとダッシュプレートの向きは、同じとは限らない。特にデスウインド2のように、ダッシュプレートに乗るための走行ラインが苦しい場合には。
 そしてハンドルを切ると、進行方向(ダッシュプレートの向き)ではなくマシンの向きを基準として、左右に旋回する。

 1フレームだけ右ハンドルを切り、それ以降はハンドルに触らない。
 すると、折れ目から少し離れた位置を通過する。
 右ハンドルを切れば切るほど、走行ラインが左に移動する。

 マシンの向きがダッシュプレートより左に大きくズレているため、右ハンドルを入れても右に戻り切れず、左に動いてしまう。ハンドルに触らなければダッシュプレートの向きに進むので、結果としてハンドル操作すればするほど左に動く。

 この状態では、折れ目に接近するには直進しかない。だが、続いて3つ目のダッシュプレートに乗るためのスクリプトに引き継ぐと、ハンドル操作に関わらず左に動くのは変わらない。だから、大きくアウトに膨らんだ走行ラインとなってタイムロスする。

 結論として、2つ目のダッシュプレートに左向きで乗ったことが元凶である。
 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