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

2013年12月11日(水) 21:46

スタートダッシュ

 lua スクリプトは、別にTAS専用言語ではない。ディスク入出力とか基本構文はTASと無関係に言語仕様として存在している。
 TAS用の lua スクリプトは、そこにエミュレーター操作関連の独自拡張を施している。よって、エミュレーターが変わると拡張部分の仕様も変わる。
 例えばパッド入力させる場合だが、大抵のゲームマシンには複数のパッドを接続可能である。よって、押されているキーだけでなく「どのパッドであるか」も指定せねばならない。で、キーとパッド番号のどちらを先に与えるかという点でも、エミュレーターごとに違っている。
 BizHawk だと、キーを先に与えてパッド番号を後に与える。

 更に、キー入力の指定にバグがあるようだ。公開されている仕様と、動きが違う。Bボタンを押す場合は
{B=1} でもいいが、押さない場合は {B=false} と指定する。仕様だと「何もしない」はずの記述で、ボタンが押されていたりする。joypad.set
関係は必須なのに、トラブルが多い。

 他のエミュレーターにはなかなか無いアナログ入力が可能なので BizHawk の lua は進んでいるのかと思ったら、欲しい機能がやたら欠落している。
 pause がない。lua から一時停止状態にできないので、使い勝手が悪い。
 速度制御が無い。画面描画を行なわずに高速実行とか、フレームレート管理せず最高速実行とか、そういうことができず常に
lua スクリプトが等速実行。非常に時間の無駄だ。lua と無関係なところでエミュレーターの実行速度を上げておけがいいが、今度は通常プレイで確認したい場合には元に戻さねばならず煩雑。

 あれこれ苦労しながら、ようやくスタート時のスクリプトが組めた。

 GFはダッシュ力最高なので、タイミング良くスタートすれば自然にトップに立てる。よって、他のマシンを使う場合のように追突して貰う必要はなく、普通のレースゲームのスタートと同じである。しかし、デスウインドでは風に流されるため、左ハンドルを切っておかねばならない。
 そのあたりにキー入力調整しつつ、Bボタンを押し始めるタイミングのベストを探る。タイミングが速ければ回転オーバーでホイールスピン、遅ければ出遅れる、というのは普通のレースゲームだが、それと同様。

 最高のスタートを切れるタイミングが、驚いたことに21フレームも存在した。0.35秒の範囲なら、どのタイミングで押し始めても結果は同じ。人間のプレイを前提に考えると、慣れる事でほぼ確実に決められるが安易過ぎない良い調整ではなかろうか。
 ベストの1フレームを選び出そうとの野望は消えたが、TAS製作上で支障はない。

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