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

2014年3月19日(水) 22:06

内部変数の向き

 自機の向きが僅かに違っていても、到達座標が変わらないことは多い。
 移動ベクトルは結構大雑把なので、ダブル一点読みなど小さなハンドル操作を左右に行って調整せねばならないことが多い。そのため、全くガードビームに接触しない完璧なダブル一点読みは、人間実機プレイでは非常に難しい。もはや偶然に頼る世界。
 しかし、ハンドル操作を行った場合の向きの変化は、操作前の自機の向きに影響される。向きが違うのに到達座標が同じ場合、一方はハンドルを4フレーム連続で押さないと到達座標が変わらないのに、もう一方は3フレーム連続でOKということが良くある。

 1周目のヘアピン最適化探索では、右ダートの折れ目を曲がった直後にステートセーブ。そこをスタート位置にしてスクリプトを走らせている。
 ここで、ムービーファイルをいじり、曲がった直後に逆ハンドルを1フレーム単位で入れてみる。すると、曲がった直後の直進で、自機の向きが微妙に変わる。到達座標は変わらないが向きは変わるという入力パターンを、幾つも用意できる。
 一見同一に見えるそれらの基点を使い、スクリプトを動かしてみる。スクリプトは全く同一なのに、探索走行ラインには明白に違いが生じた。

 これは、スクリプトのログから切り出したもの。


初期向き=43232 初期向き=43190

探索開始
turn3_cnt_a 7,0,0 D=42070
line3_cnt_a(7)=2 to 32
line3 cnt_a=2
ガード縁なし打ち切り
ガード縁なし打ち切り
line3 cnt_a=3
ガード縁なし打ち切り
ガード縁なし打ち切り
line3 cnt_a=4

探索開始
turn3_cnt_a 7,0,0 D=42028
line3_cnt_a(7)=3 to 33
line3 cnt_a=3
ガード縁なし打ち切り
ガード縁なし打ち切り
ガード縁なし打ち切り
line3 cnt_a=4
ガード縁なし打ち切り
ガード縁なし打ち切り


 逆ハンドルのタイミングが1フレーム異なることで、内部向きに42の差が発生。その程度では到達座標は変わらない。しかし左ハンドルを7フレーム連続で切った際の向きは異なる(相変わらずの42差)。
 すると、ハンドルを切るまでの直進フレーム数(探索範囲)に、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