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

2016年10月の記事

<< 前のページ

2016年10月31日(月) 21:40

複雑化し過ぎ

 新判定条件だと、旧解の方が優れていると判定されるはずだ。
 それなのに、旧解が選出されない。

 例によって、どこにも誤りが見つからない。
 スクリプトが非常に複雑になって、TAS用自作スクリプトでは最高に複雑な「ミサイルコマンド完全自動プレイ」の8割規模にまで膨れ上がっている。SJET
最適化の一部に過ぎないスクリプトが、1つのゲームを完全にプレイできるスクリプトに迫る状態になっているのは異常。
 そしてそうなると、不具合の調査も困難になってしまう。

 初期位置から S-JET 最適化の1周期までは、まだ直線部分で完結する。コーナーリングが絡むのは、2周目の最適化からとなり、そこで解が分かれる。
 1周期目の解は、新旧同じ。そりゃそうで、直線のみだから変化しようがない。

 この手のスクリプトは、解が無かった場合にどうするかを考えておかねばならない。
 解が無ければガードビームと常時接触させれば良いが、それも駄目な場合がありえる。
 それ以前に、旧解が選ばれないというのは明白な不具合であって、解消せねばならない。こういう話になると、1日に使える時間が30分とかでは、ほんとどうにもならない。忙しくなる前にスクリプト流れ作業が可能になるようにしておきたかったし、その目論見は達成されたかに思えたのだが、次周回で不具合を生じるスクリプトが想定以上に多かった。

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

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

2016年10月30日(日) 20:15

判定がおかしい

 行き詰っているシーン。
 ここから最大限に右旋回しても、かなりガードビームから離れてしまう。

 S-JET 最適化の解候補について速遅判定を行うが、明らかにクルマの向きが問題だ。
 向きを直接見ても良いか、座標が同一ならともかく異なるのが普通。向きが良くても座標が手前では損かもしれない。
 となると、何フレームか直進してみて、その座標で判定するのが適切だろう。

 そのようにスクリプトを修正しようとしたが、既にそうなっていた。
 それぐらいのことは考え付いていて当たり前であり、とっくに配慮されていた。

 ただ、判定を直進で行っているというのは1つのポイントである。これは、ガードビームに弾かれることを恐れた処理になっている。普通に座標判定すれば、ガードビームに食い込み過ぎた解が選ばれる危険性がある。そこで、直進しても弾かれるような解は却下し、安全な中で直進後の座標ができるだけ右寄りのものを選んでいる。

 ならば、ガードビームに突っ込まないことが判明した解のうち、少しでも長くガードビームに食い込み続けるものを選んだらどうだろうか?
 以前と同じ判定を行い、ガードビームに弾かれないことだけは確認しておく。
 弾かれない解に対し、今度は最大限に右旋回を行い、できるだけ長くガードビームに食い込み続けた解を選ぶ。単にフレーム判定ではなく、ガードビームから離れた瞬間の座標で比較する。

 これは少しマシな解が選択されるのではと期待したが、動作させると事態が悪化した。

 旧解よりも左を向いた解が選ばれている。
 どこで処理を誤ったのだろうか?

 調べているうちに、副次的な重要事項に気付いた。
 S-JET のループでは、内部速度で+256の変化が生じる。ガードビームに突っ込んだ状態では1フレームで20の減速が生じるため、256を割り切ることができず速度が2304に戻らない。ついそう思っていたが、ガードビームに突っ込みっ離しだと+240にしか回復しない。だから、20で割り切れるのだ。
 全くガードビームから離れずに走り、ブレーキも使用しなければ、速度は2304に戻って来る。
 だから、人力プレイでもガードビームに突っ込みっ放しでそれなりに速く走れる。

 逆に言えば、TASでも無策だとそれより速く走れない。

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

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

2016年10月29日(土) 21:37

煮詰まった

 S-JET 最適化が大変で、デスウインド2のTAS製作が行き詰っている。
 ミュートシティーではヘアピン抜けが大変で行き詰ったが、S-JET の方は何とかなった。自由空間でありガードビームとの接触を考慮する必要がなかったためだ。

 今後のコースを考えると、いずれも S-JET にガードビームが絡む上にその絡み方がデスウインド2とも異なる。同様の苦労が次々に待ち受けている可能性は高い。
 キングリーグ完走までの道のりは、遥かに長い。
 とはいえ実情は、どうしようもないというより作業時間が取れないという方がでかい。たぶん何とかなるが、かなりの時間が必要だろう。

 製作に煮詰まったら別ゲームのTASに手を出すというのもアリだが、作業を止めると記憶が薄れ、再開に大きな労力を要する。だから、少なくともデス2は完走しておくべきだ。そして、デス2が完走できたなら、別ゲームに手を出さなくても次コースに取り掛かることで気分転換になる。
 いずれにしろ、想定とは違ってあと1年ぐらいはたっぷり楽しませて貰えそうだ。

 TAS製作は安上がりの良いネタだが、現状で製作したいゲームはほぼ済ませてしまった。残るのはランナバウト2ぐらいだ。これは大物で、長く楽しめると期待している。
 ランナバウト2まで作り尽くしてしまうようなら、その頃にはプレステ2対応のエミュレーターが進歩していると期待している。

 SFCやプレステを離れると、TASの世界ではスーパーマリオ64やマリオカート64の人気が高い。そう、Nintedo64
系統だ。

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

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

2016年10月28日(金) 22:25

最適化できない

 ある程度座標が進行した段階で、自動運転の操作を以前のものに戻す。
 それだけで、スムーズにコーナーリング可能だと判明。

 初期状態の差異を吸収できるようになったところで、再び S-JET 最適化処理を組み込む。

 だが、修正前と同様で、1周期の最適化が完了した段階で前進できなくなる。1周期終了時に左を向き過ぎていて、そのままアウトに膨らんで行ってしまうのだ。
 これは、最適化候補の速遅判定を修正するとか、解無しの場合に少しでもマシな操作を用意するとか、やや規模の大きな改良が必要なようだ。

 現状スクリプトの改変に余り時間が取れない状態なので、スクリプトが不具合を出すとなかなか先に進めない。

 うまく行かないなら S-JET の最適化を行わず、この部分を自動運転だけで進めてしまうということも可能である。だが、S-JET
最適化は人力プレイに対してTASが優位に立つ大きな部分なので、ここの手抜きをするというのはTAS製作にとっての敗北でもある。
 理想的な最適化ができないのであれば、少しでもマシな最適化を追求せねばならない。

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

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

2016年10月27日(木) 21:35

方法はある

 何フレームか直進してから、延々と右ハンドルを切り続ける。
 右ハンドルのフレーム数ではなく、直進のフレーム数を変化させる。
 これで到達座標を確認し、最速の操作パターンを選択する。

 スクリプトの自動運転部分を、そのように変えてみる。
 本来のスクリプトは、自動運転の途中で S-JET の周期調整を試している。それをいっさい試さず、単なる自動運転だけでクルマを先に進めて挙動を確認する。

 以前のようにハンドル→直進という操作だと、最初はインに食い込むがその後の走行ラインが苦しくなり、アウトに膨らんでしまう。しかし直進→ハンドルという操作なら、期待通りインに張り付いたまま曲がり切れることが判明した。
 ただし、コーナーが終了して直線部分に入る際が問題になるのも明白だ。自動運転のアルゴリズムを、この付近で適切に切り替えねばならない。

 そういう切り替え基準の妙で、また次ラップに誤動作なんてことがあり得る。
 さて、どのように切り替えればスムーズに直進部分に走り込めるだろうか?

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

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

<< 前のページ

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

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4