巫女さんファイター涼子ちゃん (PC) TAS

※現在、TASツールの乱数処理にバグがあることが判明しています。多分 近日中に修正できると思いますが、今のところ乱数依存かつ0F目で乱数が消費される ステージはうまく扱えないので注意してください(これまでに私が制作したムービー については問題ありません)。

以前作ったコマ送りツールを発展させ、一応コマ送りと ステート機能を備えたTASツールができました。現在全ステージ制覇に向けて制作中 です(ただし、5-5などの穴掘り面は面倒な割に面白くなさそうなので省略する予定)。

0.2.0 でdesync問題がかなり改善され、ステートロードも高速化されました。

TASツール

MinGWでビルドしています。MSVCでもビルドできるかもしれませんが未確認。DLL injectionのためにdllinjectを使用して います。

ダウンロード: tasryoko-0.2.3.tar.bz2

今のところかなり適当な作りです。desync防止のため、ゲームウィンドウへのキー 入力、マウス入力は無効となり、ウィンドウのアクティブ化もできなくなります (0.2.1 以降では Ctrl-H で一時的にアクティブ化を許可できます)。ゲームパッドが ない環境ではメニュー操作やメッセージ送りなどが面倒かもしれません。

今のところ、アイテム取得などでメッセージ表示が入るステージはうまく扱えま せん。

Windows XP SP3 (32bit)で動作確認しています。

使い方

※0.2.0 で偽DLL方式からDLL injection+IATパッチ方式に変更したため、 使い方が変わりました。exe書き換えは不要になったので、もし0.1を使っていた方が いたら ryoko_fight.exe をオリジナルのものに戻してください。

あらかじめ dllinject.exe, tasryoko.dll, tasryoko.bat を同じディレクトリに 置いておき、ryoko_fight.exe を起動後に tasryoko.bat を実行するとTASツールが 組み込まれます。

TASツールを組み込むと、ゲームウィンドウの他にもう1つのウィンドウが現れま す。キー入力は全てこのウィンドウに対して行います。

自機座標のアドレスはゲームを起動するたびに変わるので、アドレスサーチ機能 を付けています。おまけモードを起動し、一歩も動かずに Ctrl+P を押して設定ダイ アログを開き、searchボタンを押すとアドレスが取得されます(ごく稀に取得できな いことがあるかも)。

ゲーム開始直後に必ずおまけモードを起動し、自機座標アドレスサーチをかけて ください。これを行わないとステートロード時のdesync判定ができなくなります。

0.2.0 でdesync問題はかなり改善されましたが、まだごく稀にdesyncが発生しま す。ムービー及びステートには最終フレームでの自機座標などが記録されているので、 desync発生時はその旨報告するダイアログが出ます。

乱数などのアドレスは環境によって変わるかもしれないので、その場合はソース を修正するか、Ctrl+P で設定し直してください。

スクリーンショット

tasryoko screenshot

キーバインド

キー機能
A左ボタントグル
D右ボタントグル
W上ボタントグル
S下ボタントグル
Z式神ボタントグル
Xジャンプボタントグル
C御札ボタントグル
Shift+ADWSZXC各ボタンを「離してから押す」。2Fダッシュに必要
\frame advance
Pauseポーズ
Tabターボ(ムービー中は無効)
Shift+Tabターボトグル(ムービー中は無効)
Alt+Pムービー再生
Alt+Rムービー記録/追記
Alt+Qムービー停止
F1-F10ステートロード
Shift+F1-F10ステートセーブ
Ctrl+P各種設定(自機座標アドレスなど)
Ctrl+Hキーボード/ウィンドウフックトグル

更新履歴

0.2.3

式神に関するデータを表示するようにした(自機x座標アドレスを取得して おく必要がある)

0.2.2

*.rfr.st にフレーム別の追加ウェイトを記録できるようにした(UIにはま だ反映されていない)。BGMが途中で変化する面では、BGMの変わり目で追加ウェイ トを入れてやらないとdesyncする(面にもよるが、timeGetTime() が30回程度呼ば れるまで待てばいいようだ)。

0.2.1

Ctrl-H で一時的にキーボード/ウィンドウフックを無効化できるようにし た。*.rfr.sdt の内容が正しくないとゲーム側のリプレイ機能でムービー再生がう まくいかない現象への暫定的な対処。

0.2.0

偽DLL方式からDLL injection+IATパッチ方式へ変更。これにより、所属DLLを気 にせず任意のAPIをフックできるようになった(今のところ役に立っていないが)。 また、DLLのサイズが変わっても乱数などのアドレスが変化しなくなった。

timeGetTime() の呼び出し回数を基準としたウェイト処理を実装。これにより desyncが激減した。また、ステートロードが高速化した。

0.1

作った(偽DLL方式)

キーファイル

キーファイルはrfrファイルフォーマットとなっています(TASツールを組み込んで いない状態でもF8キーで再生可能)。また、*.rfr.st にdesync検出用データが格納さ れています。

なお、F8キーで再生する際は *.rfr.sdt ファイルも必要になります。これは同ス テージの他のムービーのものを流用できる場合もありますが、そうするとたまに再生 がうまくいかない(最終フレームで鳥居に入れない)ことがあるので、Ctrl-Hでウィン ドウのアクティブ化を許可し、F7キーで *.rfr.sdt を書き出させるのが確実です。

ステージキーファイル
1-100:08.64
1-300:08.32
1-400:13.52
2-100:14.11
2-500:06.48
2-700:09.16
3-400:08.41
3-500:03.85
4-300:08.72
4-500:08.78
4-600:13.48
6-300:15.98
9-200:22.30

各種調査

x速度

速度に比例する抵抗がかかっています。以下は測定値から類推した加速度です(逆 アセンブルなどは行っていません)。

地上での自然減速(横方向入力なし)

加速度 -0.3133*(速度)

歩き移動

加速度 0.94176 - 0.2152*(速度)

ダッシュ移動

加速度 1.42164 - 0.2152*(速度)

しゃがみ移動

加速度 0.70632 - 0.2152*(速度)

空中移動

上下左右同時押しは特に意味がないようです(上下/左右同時押しは無入力状態と 同様に扱われる模様)。

式神

式神は4つのモードを持ちます:

モード0
物理法則に従い、攻撃判定を持つが、自機との当たり判定は持たない。式神を 投げた直後はこのモードになっている。式神が自機から離れるとモード1へ移行す る。また、敵に当たるか、連打回収を行うとモード3へ移行する。
モード1
物理法則に従い、攻撃判定および自機との当たり判定を持つ。自機と接触する (式神ジャンプする)とモード2へ移行する(このときy速度が3程度増加する)。また、 敵に当たるか、最初に地形に当たってから48F(1Fずれることがあるかも)経過する か、画面外に出た時間が累計30Fになるか、連打回収を行うとモード3へ移行する。
モード2
重力の影響は受けるが、地形を無視し、一切の当たり判定を持たない。式神ジャ ンプを行った時点から16F経過するとモード3へ移行する。連打回収を行ってもこの 待ち時間を減らすことはできない。
モード3
高速で自機のところへ戻ってくる。重力、地形を無視し、一切の当たり判定を 持たない。

関連リンク


Back