SikuliXの勉強のため、FFRK(FINAL FANTASY Record Keeper)のラビリンスダンジョンの操作を自動化してみました。いろいろ課題はありますが、以前投稿した汎用スクリプトで自動操作できました。
スクリプト
スクリプトは以前の汎用スクリプトそのまま。
Settings.MinSimilarity = 0.80 Settings.MoveMouseDelay = 0 Settings.ClickDelay = 0.4 IMGS = [ ] reg = Region(App.focusedWindow()) reg.highlight(1,"green") while True: ms = reg.findAnyList(IMGS) for m in ms: m.click() break sleep(0.5)
動作
使い方はIMGSに操作対象の画像を登録していくのみ。
同じ画面に複数の検索対象がある場合は、画像の並びを調整することで対応できました。
実際の流れは以下の動作を参照。
課題
現状のスクリプトでは1場面1クリックを想定しており、クリックすると場面が変わりクリックした画像がなくなる事を期待しています。なくならず残り続けるシーンだと永遠にその画像をクリックし続ける動きになります。
このため、1つの場面でクリック対象を順番に切り替えるような場面はやり方を考えなければなりません。
今回のFFRKの場合は、出撃するパーティを選択するシーンになります。一番消耗していないパーティを選択した後、Goボタンをクリックする処理になります。
クリックした画像の情報を残す(フラグを立てる)など実装すると実現可能ですが、コードが複雑化しそうです。
より簡単かつすっきりする方法を検討したいと思います。