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

<< 前のページ

2018年4月11日(水) 22:45

ホイールスピン

 う〜、頭が痛い。

 ホイールスピン抑止を組み込んで通常スクリプトを何とか動かそうと、試行錯誤する。
 ホイールスピンしない場合、アクセル全開が最速である。
 ホイールスピンが発生すると、アクセルを緩めた方が速くなる。
 だから、アクセル値を変化させて走行距離を比較し、最も走行距離の長くなるアクセル値を採用すれば良い。

 過去の調査により、8フレームで走行する距離を比較するのがベストだと判明している。
 しかしアクセル値は8ビット精度であり、通常は128〜255まで調べれば実用できだがそれでも2フレーム(2INTのゲームです)走行させるのに8フレーム走行を100回以上繰り返す。
 1回の繰り返しごとにステートロードが必要であり、これは走行よりも遥かに時間を食う。
 結果として、ホイールスピン抑止は通常スクリプトの1000倍ぐらいの時間を要する。

 だが、アクセル値は192で飽和するようだ。すなわち、128〜192までチェックすれば良い。それでも、1000倍も時間が掛かるのだから何割か省略できても焼け石に水である。

 いや、ホイールスピンはアクセルを緩めると速くなるから、アクセル192と191の走行距離を比較し、191の走行距離が長くなった場合だけ190から128まで調べれば良いのではないか?
 特にここのコーナーは、ホイールスピンしているのが1〜2割しかない。最初にホイールスピンの有無だけを検出し、それから最適アクセル値を調べるという2段階にすれば、大幅な高速化が可能では?

 そう思ったが、試したら無茶苦茶な解になった。
 ホイールスピンしている場合でも、大抵はアクセル値191より192の方が速いのだ。アクセルを緩めると、ホイールスピンしたままでどんどん遅くなる。そして、ある一点よりアクセルを緩めた瞬間に、突然速くなる。それが、ホイールスピンしなくなった瞬間だ。
 だから192と191の比較だけではホイールスピンの有無を判別できず、アクセル値を変えまくって調べるしかない。

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

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

2018年4月10日(火) 22:56

邪魔邪魔邪魔

 白い駐車の更にインを突くのは、物理的には可能である。

 赤い駐車に比べると隙間が遥かに狭いが、クルマ1台分はある。
 しかし狭いため、この角度では抜けられない。抜けるのが可能な角度は限定されており、その角度ではかなり右を向いてしまう。そうなると、アウト側に膨らみ過ぎる。

 ここを抜けるのは、諦めるしかない情勢。

 赤い駐車と壁の隙間をうまく抜けるには、浅い角度で壁を回り込まねばならない。それには、ギリギリまで右旋回してから左フル旋回を続けるのが良いと考えられる。ポイントは、左「フル」旋回の持続。
 それを可能とするような適切な右旋回を決めたい。

 これは操作パターンが1フレーム単位では大雑把過ぎて、調整できない。

 邪魔駐車の配置は、嫌らしいの極み。

 ランナバウト2のコース設計は、邪魔物の配置まで精緻に¥煮詰められている。良くもまあそこまで煮詰めるだけの開発期間が取れたものだと感心する。
 それは、名作の証でもある。だが、それほど余裕があるなら、グラフィックも煮詰めて欲しかったのは確か。

 見た目で敬遠され大損して、マイナーゲームに留まってしまったと思う。

 右旋回が少ないと、インの白い駐車にぶつかる。

 しかし、そこから1フレーム余計に右旋回を続けただけで、今度はアウト側の壁にぶつかる。赤い駐車のかなり手前である。
 進路調整するのに、1フレームは余りに大雑把だ。

 だから、右旋回でも左旋回でもない、中間的なツイスト値を挟んで微調整する。それは散々経験したことがあり、ホイールスピンを気にせずに済むならどうということはない。

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

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

2018年4月9日(月) 22:53

最適化至難

 アウト側の壁にぶつけるとすれば、通常旋回に比べて余分に右旋回を続けることになる。

 そこで予備調査として、右フル旋回を続けた場合のホイールスピンを調べる。
 その結果、断続的にホイールスピンが発生し非常に厄介だと判明。簡便な手抜き処理が可能になるまで、相当な試行錯誤を要しそうだ。

 そう思ったのだが、最初の方はホイールスピンしない。
 この位置がギリギリで、ここから一歩右旋回するとホイールスピンが発生する。
 では、この位置からは右旋回せず、左旋回に切り替えたらどうなるか?

 何と、アウト側の壁に極めて浅い角度で2度3度接触しつつ、赤い邪魔カーの外側を悠々と通過!

 昨日のパターンでは回避不能だったが、壁に沿った走行ができるなら十分な隙間がある。
 ここを通過できない場合、赤い邪魔カーのかなり手前の壁にぶつけて赤い邪魔カーの内側を抜けねばならない。それは、壁に深めの角度で衝突する必要があり減速が大きい。

 とはいえ、浅くても2度3度と壁にぶつけるロスも大きい。
 とにかく何が最適か自明ではなく、製作が大変過ぎだ。せめてホイールスピンしない路面なら、まだしもだが。

 単純にホイールスピン抑止をやると、速度が上がって走行ラインがアウト側に膨らみ、壁との接触が深い角度になってしまう。これだと、赤い邪魔カーと壁の隙間を通過するのは難しい。

 ホイールスピンを抑止したまま、隙間を抜けることは可能なのか?
 可能だとして、それは邪魔カー手前で1回反射させる走行より速いのか?

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

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

2018年4月8日(日) 20:11

邪魔3連発

 まず、何フレームか右フル旋回し、それから左フル旋回する。
 昨日は、右フル旋回を16フレーム持続。これでは、ホイールスピンを抑止した場合にアウトに膨らみ過ぎた。
 そこで右フル旋回の持続フレーム数を変化させつつ、ホイールスピン抑止を試す。その結果、10フレーム+αでインをギリギリまで突けそうだと判明。

 続いて、10フレームの右フル旋回を行った直後を、初期値として調査する。

 左フル旋回するのではなく、半端なツイスト値での左旋回を行う。そして、インを一杯まで攻めることができるかどうか調べる。
 何十分か経過してホイールスピン抑止における結果が出たら、インの壁(実は例によって駐車)に接触したかどうかで二分木サーチ状態。

 これにより、ギリギリを狙うツイスト値が絞り込める。
 そしてここに至ると、ツイスト値を1や2変化させてもホイールスピン抑止に必要なアクセル値は変わらなくなってくる。

 そこで、ホイールスピン抑止スクリプトを動かさず、最適アクセル値を決め打ちにして通常のスクリプトを動かす。

 インの白い邪魔カーに接触しないギリギリのツイスト値を、ツイスト値混合により追い込む。
 ホイールスピンが抑止されているため、当初よりも遥かに高速でインを攻められる。

 しかし更に走ると、脱出アウト側にも邪魔カーが止まっていて突っ込んでしまう。

 直線終わりの右コーナーのイン、続く左コーナーのイン、そしてその脱出アウト・・・3連続で要所に駐車が配置されているという酷さである。

 こうなると、インを突くのは恐らく最適ではない。
 例によって、更なる高速で壁にぶつける。ただし、やはりホイールスピンの処理が厄介だ。

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

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

2018年4月7日(土) 20:39

些細にスピン

 これも有力解が2つあるので、昨日と異なる方から調べる。

 壁反射直後から煙が出っ放しであり、ホールスピンしている雰囲気だ。
 反射して少し右旋回を続けるが、すぐに左旋回に移行するl。それで難無く曲がれるように見えて、直進に移行しようとしてもスピンしてしまう。

 路面が、見た目以上に厄介っぽい。もはやお馴染みの罠だ。

 案の定で、ホイールスピンを検出。

 左旋回開始から間もなく、12フレームだけホイールスピン抑止が必要になる。
 それ以外は、アクセル前回でOK。

 ほとんど常時スピンしているかのような映像なので、スピン区間が少なかったのが意外。

 ホイールスピンを抑止しない場合、インの邪魔な駐車をギリギリに交わして曲がることができる。
 ただし、前述の通りここからスピンしてしまう。

 ホイールスピンを抑止すると、比較にならないほど速度が上がって走行ラインもアウトに大きく膨らむ。
 12フレームしかないホイールスピンの影響は、非常に大きい。

 そして当然ながら、これほど走行ラインが違うと典型走行パターンも別物になる。スクリプトを作るのが難しい。
 ホイールスピン抑止はアクセル値を変化させながら様子を見るため、実行時間が100倍になる。だから事実上、通常のスクリプトと同時使用できない。

 システマティックな走行ライン調査と、ホイールスピン抑止は、両立が困難。

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

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

<< 前のページ

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

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4