th123_ai関連todoとか

エラーリポート内容の削除が動いてないので直す
fflagsとaflagsの詳細をのせる
ゲームパッド使用時に1P/2Pが反転する事があるらしい不具合の調査
—–今日中に終わらせたいライン—–
AILibrary(仮)を作る
—–次に手をつけたいライン—–
commandの精度向上(待ちフレーム設定しなくとも攻撃が最速で出る程度を目指したい)
gect_deck_listをいい加減非想天則対応にする(実は一度解析に挑んだけど負けて帰ってきたとはいえない)
—–やるべき事列挙ライン—–
ファイル周りを整理する(AIManagerで手動ファイル配置必須だし、そもそも別AI同士で被るし、問題山積み)
frame巻き戻り問題をなんとかする(どうしてなるかはわかってる、後はどうやって対処するか)
—–やるべきだけどまだやれないライン—–
skill.txt、spell.txtを埋める(請け負ってくれた人がいるので完成待ち)
—–防備録ライン—–

こうやって書いてみると以外と多いような少ないような。
AILibraryは別に優先度そんなに高くないんですが、完成させないとアレとアレが表に出せないから個人的に急ぎたいってだけだったり。
実はまだ構想レベルなんだけど、何日で完成するかねぇ

th123_ai(仮)の進捗報告その18

だめだ、作業締め切り2時だと2時に寝るどころの問題じゃない。
ちょうど良いところだからと作業延長した挙句、リリース作業やらで時間食って毎回3時すぎてしまう……
明日から1時終了予定にしようそうしよう。

th123_ai.zip@ver0.90
・環境変数aflags、fflagsを実装
・関数get_aflags、get_fflagsを実装

aflagsとfflagsという名前だけでピンと来る人は来るはず。
そう、判定表示ツールとして名高いframedisplayswrで表示されてる同名のアレです。

判らない人向けに解説しておくと、全モーション関係なく付与されるフラグ類を管理しているデータ(fflags)と、攻撃時に関係するフラグ類を管理しているデータ(aflags)です。
1bitごとに一つのフラグになっており、それらをAND演算した形で持っているので非常に扱い辛いのが特徴。
(例えば、中段攻撃フラグが2、下段攻撃フラグが4なので、中下どちらでも正ガードになる攻撃は2+4で6がaflagsに格納されます)

get_*flags関数はそれを1行で取れる形にしただけの便利関数。
本当なら定数定義まで万全にしたいんだけどタイムオーバーしたので、リリースだけして明日改めて解析して用意する予定。
なので、今日もまた更新はしたのにツールスレへの投下はなし、三日連続とかダメダメだね!

ちなみに、全然解析進んでいないのでdocument.txtにある情報だけではframedisplayswrより見れる種類少ないですが、一応生の値が取れるのでやる気ある人なら自力で解析なりできます。
面倒な人は後1日待てばまともに使える程度まで情報整うはずなのでマターリと食欲の秋していると良いかも。


そして、この段階になってエラーリポートがAI更新しても削除されていない不具合に気づいた。
だがこれ以上夜更かししたら明日の作業が……
悪いけど明日以降対応という事にします、困ってる人いたらごめんね。

宣言その5

実はシコシコと作っていたものがあって完成もしてるんですが、ちょっと公開前にやりたい事があるので封印して通常作業開始。

・前回リリース分の動作確認。
・中下段やら無敵やらグレイズやらといった攻撃フラグを取れるようにする。
・自由時間

ちなみに今日もむちゃくちゃ眠いのでリリースまでいけるか不明。

あれ?

th123_aiで、とある大規模機能の実装に取り組むために実装手段をあーだこーだ考えていたのですが
実際コードに出せる程度に脳内にまとまってくると「あれ? こんな程度だったっけ」となる程度にコンパクトにまとまって逆に不安になってきたという話。

細かく分けても五メソッドぐらい実装すれば実現できそうなんですが、あるぇ

最終手段

を思いついたのでメモ代わりに書いておく。

自分はdat読んだり書いたりはもちろん、非想天則のパターン定義であるpatファイルも読んだり書いたりできます。
なので、最悪patファイルから必要な情報全て読み込む形にすれば非想天則の内部実装に関係なく各種情報を提供できる。

もちろん最終手段。
実装手法と実装難度、どちらの観点から見ても絶対にやりたくない。

丸1日無駄にしたかも

今日はただひたすらに眠かった。
なぜか昨晩まったく眠れず寝ておきてを繰り返して5時間で起床。
その後も眠気は取れず、眠い眠い言いつつ中途半端に寝ると明日起きれず色々と支障をきたすので我慢して、
色々手を出してみる物のまったく進まずあーだこーだ無為に時間を過ごしていたら休日は終わっていた。

あぁもう、俺の休日返せよ……

やったーget_obj_attackarea動いたよー!

その代わりobj_disが動かなくなりました^p^

2時に寝ると言いつつ今の今までth123_aiで大規模な改修作業なぞやってまして、今さっき終わって試しに動かしてみたらobj_disが動かなかったという話。
get_obj_attackarea動かなかった理由は後々説明するとして、今の構造のまま修正すると非常に気持ち悪いコードになるからとobj関連全般に手を入れた結果がこれだよ!

というわけで今日のリリースはなし、明日朝(昼?)起きてから直してリリースという流れにします。


ところで、obj_dis異常下で動かしたレミリアAIがいつもより強く感じる件について。
いや、0.88bと現行バグVerで同じレミリアAI動かすとバグありのほうが勝率高いという不思議現象がですね……
射撃は撒かないしコンボも途中で自分からやめると酷い事になってますが、obj_dis的に常にグレイズ狙いで画面中飛び回るせいか刺し合いでは滅法強い。
あれ、これ案外ありなんじゃない?w

復活のゲームパッド

緋想天プレイするためのゲームパッドには変換機越しに純正PS2コントローラーを使っていたわけですが、夕方ごろ突然十字キーが効かなくなりました。
といっても、強くぐりぐり押していると反応するので何かゴミでも挟まったかのような印象。
というわけで、友人とAI設計論を話つつ洗浄作業してました。

方法は簡単、ばらして電子部品以外以外全部を鍋に突っ込んで水入れて台所用中性洗剤も入れてぐーるぐーる書き混ぜた後1時間放置。
その後適当に指かスポンジでこすって汚れを落とし、水で何度もすすいでからタオルの上に放置してまた1時間。
で、組み立て終わって繋いで非想天則ON→動いたー!
(※鍋なのは適当な大きさの入れ物がなかっただけで深い意味はありません)

大変だったのは、中に入っている三叉の変な部品がどう付いていたのかわからなくなったこと。
適当に組み立ててみたら十字キーの感触が違いすぎてどうしようかと……
どうやらこの部品はつけた側の十字キー二つを若干硬めにする効果のある部品で、下左を硬くするように配置されていた様子。
この程度の差でここまで大きな違和感になるとは……
コントローラーに拘る人も出てくるわけだ。

で、気づいたらもう寝る時間なわけですが
宣言する余裕すらないとかどういうことなの……

禁じられた遊び と 致命傷(?)

th123_aiの開発をしているとたまに非想天則側に書き込みできるようにして常に体力回復し続けるとか、常にスーパーアーマーとか、常に速度10倍とか、そういうことをして遊びたくなる。
いや、実際時止め制限などなど解除して遊んだ動画一回作ったことあるけどね。
だけど、実際そんな事できるようにした物を作って公開なんぞした日にはきっと酷い事になるんだろうな~というのがどうにも……

で、そんな事を悶々と考えつつ非想天則立ち上げたらパッドの十字キーきかなくなった。
どういうことなの……

バグバグ

非想天則の話。

空のスペルフィクストスターが他スペルを使用するまで永遠に画面外に存在し続ける。
そのため、プラクティスで延々とフィクストスターを使い続けるとみるみる重くなっていく。
その他スペルを使うと削除されるようで元の軽さに戻る。

プラで曇天にしてスペル使うたびに天候メーターの白いエフェクトが重複するため、使い続けると真っ白になる。
こっちもきっと途方もない回数繰り返せば重くなる。

画面二個分ぐらい画面外に行ったら消去ってコード組んでおけば少なくとも居残りバグはなくなるよ!>黄昏