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

2017年10月の記事

<< 前のページ

2017年10月31日(火) 22:05

対症療法

 暫定的にゴールインしたものの、4周目と5周目を比較すれば5周目が遅いのは疑う余地がない。
 そこで、進行を詳細に比較する。どこが遅いのか?

 すると、4周目(左)と5周目(右)で顕著な差が発見できた。

 S-JET 噴射の終盤で、4周目(左)はキッチリとインを攻めているのに対し、5周目(右)はアウトに膨らんでいる。
 このあと、一気に遅れる。

 そこでこの部分を作り直し、ちゃんとインベタで走るようにした。

 そもそもなぜここでいきなりアウトに膨らんだのか?
 それは、前方の邪魔カーのせいである。

 スクリプトで走行パターンを生成すると、その多くが前方の邪魔カーに追突してしまう。本来なら、次の左コーナーでガードビームに突っ込まない走行を解候補にしているが、まっとうな解候補の多数が邪魔カーに追突してしまう。
 ガードビームの接触と邪魔カーとの接触は、減速率で有る程度の区別は可能だが完全には区別できない。そのため、ガードビームには接触しないのに邪魔カーには接触する走行パターンが切り捨てられてしまい、本来の最速解が出て来ない。

 何とか頑張ってインベタで走る解が出てくるようにしたが、これも完全ではない。

 続く左コーナーへのエントリー。
 4周目(左)に比べて5周目(右)は、インに近付き過ぎている。これでは、左旋回に無理が生じる。

 ここのイン=手前のアウト、なわけで手前のコーナーで十分にインに付けなかったために立ち上がりでアウトに流された。

 邪魔カーの影響を排除するにはスクリプトが不完全で、4周目のような理想的な走行ラインが出力できなかった。

 対症療法として、5秒 S-JET で左コーナーのガードビームをケズり、遅延を最小限に抑える。

 最終的に3.5フレームほど短縮できて、トータルはギリギリで4フレーム0.06秒の短縮となった。
 ほんと作る前は、ファイアーフィールドを3分04秒41で走れるとは思わなかった。

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

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

2017年10月30日(月) 21:49

暫定ゴール

 邪魔カーとガードビームは、不完全な区別は可能である。

 ガードビームとの接触では、内部速度にして1フレームに30減速するのがMAXである。それ以上に減速することはない。しかし、邪魔カーに追突すると、それ以上に減速する。だから、減速の大きさで区別できる。
 ただし、邪魔カーと軽く触れた程度では減速は小さい。その場合、区別は困難だ。

 これで邪魔カーを有る程度区別してスクリプトが本来の動作をするよう修正し、何とか動かす。手動で最適化するのは困難なので、何とかスクリプトで処理したい。
 しかし、得られた解は妙に遅い。
 S-JET 最適化が十分に出来ていない感じだ。

 S-JET 噴射前までは、前ラップ+2410フレームのペースで進行していた。それが噴射後は2413〜2414フレーム差に広がっている。

 試しにゴールインまで製作したところ、3分4秒台前半が出た。

 5周目ラップは2375フレームであり、2〜4周目の理論値(たぶん)の2410フレームより35フレーム速い。5周目は35フレーム短縮される見当なので、数字上は理論値まで煮詰められていることになる。
 だが、どう見ても5周目後半は遅い。恐らくあと3〜4フレームの短縮が可能なはずだ。

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

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

2017年10月29日(日) 18:22

邪魔が入らない

 5周目に入り、嘘のように邪魔が入らなくなった。

 敵車は次々に出現するが、すべて邪魔にならないタイミングなのだ。
 これはもしかすると、4周目で片っ端から邪魔された反動かもしれない。

 初代 F-ZERO の敵車は、マジメに走っていない。普通に競争しているフリをしているだけである。自機が特定の座標を通過したり、近接する敵車を追い抜いて一定の距離を引き離したり・・・などのトリガーにより、適宜再配置されている。再配置先の座標は決まっているが、その座標は数パターン存在する。
 これにより敵車がソレっぽく走っているよう演出しているが、数パターンの組み合わせであるためバリエーションは限られている。そうなると、1周前と同じパターンで敵車が出現する可能性もあり、それはプレイしていて非常に不自然だ。

 だから、1周前と同じパターンは出現し難い、という補正が働いている可能性がある。
 そうすると、極端に邪魔になる当たり屋パターンばかり4周目に出現した結果として、5周目は邪魔にならないパターンが揃ったということかもしれない。

 いずれにしろ、邪魔カーの妨害さえ無ければTAS製作はガンガン進むものだということを認識させられた。
 4周目を思い出すと嘘のように、すいすい製作が進む。

 S-JET 噴射が終了してスリップゾーンが始まる所で、2連邪魔カーが出現した。しかしこれも、インから問題なく追い抜けるタイミングだ。
 ただし、スクリプトには支障がある。

 この緩い左コーナーを曲がれるかどうかの判定に、コーナーの角より先の座標まで自機が進めるかどうかをチェックしている。ガードビームに接触すると、アウト。しかし、邪魔カーに接触するのはセーフである。あくまで、ガードビームとの当たり判定だけが問題になるからだ。
 次スクリプトでは邪魔カーとガードビームの隙間を通過できるパターンだけ調べるが、今スクリプトの速遅判定はそんな細かな操作調整までは行わない。計算時間を減らすため、大雑把な操作で終わらせている。そのため、ガードビームに突っ込んだ走行の隣接操作で、隙間ではなくいきなり邪魔カーに追突ということが多発する。

 しかるに、ガードビームへの接触と邪魔カーへの接触は、容易に区別できない。どっちも減速するし、どっちもパワーが減る。座標で判定しようにも、ガードビームが曲線でありX軸やY軸とも並行ではないから、判定しにくい。

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

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

2017年10月28日(土) 20:52

4周目36秒18

 スリップゾーン出口の2連邪魔カーに関してはもちろん座標調整も考えたが、実際は正面突破の方が良さそうだ。
 faster 解候補の中に、2連邪魔カーをうまく突破できるものが存在した。

 2つとも躱すことはできないが、一方と接触しつつ抜けることは可能だった。
 邪魔カーと接触すると、ドリフト状態になる。自機の左側で接触する場合はマシンも左回転するため、左コーナーをドリフトする動きが自然になる。このままドリフトで綺麗に抜けられる。
 ガードビームに接触させずに抜けられるが、接触させた方が速いようだ。

 各種接触や反射技は、パワーを消費する。TASでさえパワー残量が半分を切っている。人力実機プレイでは、パワー切れとの戦いにもなる。
 いちおう、4分の1以上残っていれば性能低下はない。

 3周目のラップは当初2411フレームだったが、4周目の邪魔カー座標を調整するため2412フレームになった。そして4周目も、ラップ2412フレーム。

 ラップタイムにすると、1周目40秒33・2周目36秒15・3周目と4周目が36秒18である。
 他コースなら邪魔カーに起因するロスは1フレームに留めたいが、ことファイアーフィールドに関しては2+2フレームのロスでさえ精一杯だ。邪魔カーが酷過ぎる。

 5周目の邪魔カー座標調整が必要になると4周目ラップも遅くなる可能性ありだが、ホームストレートを走行させたところ右へアピンで邪魔カーの絡みは無さそうだ。
 さあどこまで邪魔されずに走れるか?
 遂に、ファイナルラップ。

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

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

2017年10月27日(金) 21:13

カオス

 連続ヘアピンで最適なコース端との間合い。
 S-JET 最適化。
 そして、スリップゾーンの最適化。

 このあたりこれまで散々やって来たが、4周目はいずれも曖昧模糊とし過ぎていて、最適化できているのかどうか良く分からない。速遅判定がアテにならないのだ。当たり判定の影響が大き過ぎる。更に S-JET に関しては、ブレーキ周期とガードビーム接触のタイミング次第で、思い切りタイムが変化する。

 スクリプトの投機実行で暫定解も求めたが、4周目ラップ2412.5フレーム前後まで遅くなる。後から faster 解の有力候補が発見され、またスクリプトのリレーをやり直す。スリップゾーンの出口では、邪魔カーが2台連なって進路妨害してやがる。状況かなりカオスで、どこに落ち着くのか見当が付かない。
 こういうときこそ計算リソースが問われる。計算量の省略どころか、広範囲の絨毯爆撃が必要だ。

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

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

<< 前のページ

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

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4