Darkside(https対応しました)

2016年10月30日(日) 20:15

判定がおかしい

 行き詰っているシーン。
 ここから最大限に右旋回しても、かなりガードビームから離れてしまう。

 S-JET 最適化の解候補について速遅判定を行うが、明らかにクルマの向きが問題だ。
 向きを直接見ても良いか、座標が同一ならともかく異なるのが普通。向きが良くても座標が手前では損かもしれない。
 となると、何フレームか直進してみて、その座標で判定するのが適切だろう。

 そのようにスクリプトを修正しようとしたが、既にそうなっていた。
 それぐらいのことは考え付いていて当たり前であり、とっくに配慮されていた。

 ただ、判定を直進で行っているというのは1つのポイントである。これは、ガードビームに弾かれることを恐れた処理になっている。普通に座標判定すれば、ガードビームに食い込み過ぎた解が選ばれる危険性がある。そこで、直進しても弾かれるような解は却下し、安全な中で直進後の座標ができるだけ右寄りのものを選んでいる。

 ならば、ガードビームに突っ込まないことが判明した解のうち、少しでも長くガードビームに食い込み続けるものを選んだらどうだろうか?
 以前と同じ判定を行い、ガードビームに弾かれないことだけは確認しておく。
 弾かれない解に対し、今度は最大限に右旋回を行い、できるだけ長くガードビームに食い込み続けた解を選ぶ。単にフレーム判定ではなく、ガードビームから離れた瞬間の座標で比較する。

 これは少しマシな解が選択されるのではと期待したが、動作させると事態が悪化した。

 旧解よりも左を向いた解が選ばれている。
 どこで処理を誤ったのだろうか?

 調べているうちに、副次的な重要事項に気付いた。
 S-JET のループでは、内部速度で+256の変化が生じる。ガードビームに突っ込んだ状態では1フレームで20の減速が生じるため、256を割り切ることができず速度が2304に戻らない。ついそう思っていたが、ガードビームに突っ込みっ離しだと+240にしか回復しない。だから、20で割り切れるのだ。
 全くガードビームから離れずに走り、ブレーキも使用しなければ、速度は2304に戻って来る。
 だから、人力プレイでもガードビームに突っ込みっ放しでそれなりに速く走れる。

 逆に言えば、TASでも無策だとそれより速く走れない。

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

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

Comments

TrackBacks

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4