スタン値とスタン値リセットタイマーの増分をわかるようにしました。
スタン値とスタン値リセットタイマーの増分をわかるようにしました。
スクリプトを動作させるには2パターンあってエミュレータ本体であるFBArrからのコールバックか、スクリプト本体がスクリプト実行の途中にエミュレータ本体のゲーム進行をすすめるかのどちらかになります。
以下はFBArrで用意されている関数のうちのコールバック関数登録用の関数です。
エミュレータ本体がわちゃわちゃ動いている途中にこれらで登録したコールバック関数が呼び出されて動くことになります。
今回、トレモでやりたいことはメモリ状態をみたり更新したりしてキャラの状態を確認したり、操作をしたいんですが、ゲームからのメモリ更新タイミングや、ゲームへの反映タイミングを1フレームのずれなくおこなおうとしたときにどれをどう使えばいいのかになります。
これらをやろうとしたとき1は emu.registerbefore(function func) ですが入力が完了しているかどうかはソースみないとわかりません。2は gui.register(function func) が最適そうですが、後者は描画がスキップされると動作しません。
となった場合、エミュレータでゲームの動作直前や動作直後をコールバックで検知するのがいいのではないかと考えています。
ゲームのプログラムを追ったり、メモリやレジスタを読んでいけばいいのかもしれませんが、そのへんぜんぜんわからんので追うのは絶望的というかそんなにエネルギー費やせません。幸い、先達様がつくっている当たり判定表示用のスクリプトがレジスタの変化をフックしてメモリ状態をチェックしていたりするので、その辺をヒントに進めるかもしれないなと考えています。
フレーム回りの値の取り出し方を考え中です。
あとちょっと仕事がいそがしくなりそうなんで休憩しつつのんびり考ええてみます。
リプレイのところは登録したリプレイをランダムで再生するのも入れておきたいなとかちょいちょいじりたいところ。
ひきつづきちょいちょい進めています。
動作確認ついでにボブの持続重ねしらべてみました。
CCの2段目で+10Fとれるのと、ラインB攻撃で+3Fとれるのがわかってニヤニヤできました。タイミング厳しすぎてねらえません。
ちょいちょい進めていっています。
動作確認時にボタン連打でキャラを選んでるせいでテリーをつかっていますが、なにしてもちょい不利になるばっかりで、このキャラをいったいどうしたかったのかモヤモヤします。
クラックシュートのダメージが高いか、空中ヒット時に浮かせになるとかでもうちょっと強かったらなーとか、バーンナックルも空中ヒット時にもっと浮いたらいいのになーとか、ファイヤーキックのリーチ長くするか硬直短くするかとか、もうちょっと触ったらモリっとゴリっと減るとかしてくれればなーとか、バックスピンキックは飛びにあたるくらいあればバーンナックルのかわりになるのになーとか。あとバックスピンキック空キャンファイヤーキックの移動がかっこいいけど猶予が短かったり硬直が長くて全然きもちよくならないのが惜しいなとか。もうちょっと尖った部分が残っていてほしかったです。