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

2015年4月17日(金) 21:30

いつもの壁加速

 グランツーリスモで御馴染みの、壁加速。

 前回の製作が3年近くも前なので忘れていたが、前回はネジコンこそ使えなかったもののアナログパッドを使っていた。すなわち、アナログスクリプトが効かなかっただけで、ステアリングは当時からアナログだったのだ。
 今回は、スクリプトが使える優位しかない。

 でもってアナログハンドル可能でも、壁加速を持続させるのはそれほど簡単ではない。直線壁であるにも関わらず。
 ゲームの中の壁は、現実の壁のような連続性がない。直線に見えても、実際はポリゴンで作られた多角形の壁である。ポリゴンの継ぎ目・折り目が、常に問題となる。ある程度のスケールで見た場合、挙動がリニアではないのだ。

 更に、壁加速には独自の物理がある。
 進行方向は左←だが、車体は僅かに右を向いた状態が最も強力に加速する。また、左右の首振りにも慣性と揺り戻しがある。もちろん右を向き過ぎたら、そのままスピンして壁から外れる。
 半端に右を向き過ぎたら、揺れ戻って過剰に左を向いてしまう。そのまま左を向く勢いが止められず、普通に進行方向を向いての走行になってしまうことも多い。

 これらにポリゴンのノンリニア性まで加わり、単純な制御ができない。
 アナログスクリプトを駆使し、少し未来の状態を探索。自動的に壁加速を続行するようにしてみた。だが、どんなに制御を工夫しても数秒で壁から外れてしまう。手動で様子を見ながら試行錯誤して進めるしかない。油断すると、どうやっても壁から外れるトラップにハマる。
 TASとはいえ、やり直しが効くだけであって、実機プレイで苦心しているのと変わらない。

 トドメが、座標演算バグ。
 1フレーム内の移動距離が大きくなると、座標演算がオーバーフローして逆走してしまう。これは、移動量のX成分またはY成分が32768を超えると発生。X軸またはY軸に平行な移動だと、時速620キロ程度で発生。平行ではない移動ならもっと高速で発生する。
 せっかく壁加速があるのなら、座標演算ぐらいしっかりやってくれていれば壁加速だけで究極速度を狙えて更に面白かったのに。

 逆に言えば時速620キロオーバーなど想定外だったということで、壁加速は純粋な「バグの見落とし」だったのだろう。
 壁加速時はスピード表示が実際より遅くなるが、Wrong Way の表示が出る。この写真の状態は、実際は600キロ超えている。

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