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

2015年6月13日(土) 19:10

積極利用

 スタックリカバーの座標を見ていて、異常な座標が混じっているのに気付いた。

 電話ボックス付近の座標だけ取り出していたが、妙に離れた場所に飛んでいるものがある。そういうのは使い物にならないとして捨てていたが、マップの遥か離れた場所に飛んでいるステートは、どのような経過を辿ったのか?
 異常座標を1つ試しにロードし、コマ送り再生してみる。

 その結果、非常な高速でマップから放り出されていることが判明。

 右下のミニマップが、マップ外を示す濃い緑で塗り潰されてしまっている。

 にも関わらず、オブジェクトを破壊したという表示が出ている。
 マップ外なのに、マップとの当たり判定が存在する。そして映像的には、空を飛んでいる。

 これは遠方に一気に移動可能かもしれない。
 スクリプトでは、狙った座標範囲に飛ばないスタックリカバーは捨てていた。その制限を外し、スタックリカバーはすべてステートセーブするようにした。そして、改めてスクリプトを動作させる。

 その結果、いきなりアイテム付近に落下するパターンが発見された。

 スタックリカバー発生時は、最大600フレーム先までキー入力を続行し、速度が低下した段階でステートセーブするというスクリプトになっている。停止座標を確認するだけで、アイテムに近い・・・などの状況は把握できる。
 マップ外であっても、座標を16ビットで取り出せば位置が把握できる。ミニマップは32ビット座標で表示を行っているが、コースとの当たり判定は16ビットで行っているようだ。

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