SikuliXによるスマホゲーム自動化

無料のRPAツールを使ってスマホゲームを自動化するためのサイトです

3.デイリーミッションを自動化する

このページの目的

  • ゲーム内で毎日やるような定形作業について、Sikulixを使ってどのように自動化をするのか、初歩的な例で説明します。
  • 日毎に繰り返す作業は、手順の少ないものでも自動化しておくとメリットが大きいです。ここでは1つの作業だけを例に記載していますが、日毎に操作が必要な複数の作業をまとめて一つのプログラムにしておくことで、面倒な日常の作業をワンクリックで終わらせることができるようになります。
  • 一時期ハマってたプリンセスコネクトを例に記載

前提

今回自動化する作業

プリコネのデイリーガチャを引く一連の作業で、実施手順は以下の通り。

  • 手順①:マイページ画面から「ガチャボタン」をクリック
  • 手順②:ガチャ画面に遷移後、「ノーマル」タブをクリック
  • 手順③:「10回引く」ボタンをクリック
  • 手順④:「OKボタン」を押す
  • 手順⑤:ガチャの結果が表示された後の「OKボタン」を押す
  • 手順⑥:「マイページ」に戻る

具体的なコード

f:id:sikulix:20210313152032p:plain

コードの内容

code:gacha
doubleClick("ガチャアイコン") #手順①
wait("ノーマル",20)
click("ノーマル")  #手順②
click("10回引く") #手順③
click("青いOKボタン") #手順④
wait("白いOKボタン",10)
click("白いOKボタン") #手順⑤
sleep(2)
click("マイページアイコン") #手順⑥

コードのポイント解説

  • 手順①
    • Sikulixから実行する最初のクリック操作は"click"ではなく、"doubleClick"で記載します
    • Sikulixからコードを実行する場合、Androidエミュレータのウィンドウがアクティブじゃないためシングルクリックではクリックに失敗する
  • 手順②
    • 手順①の後、ガチャの画面遷移までに時間がかかるため、「ノーマルタブ」が表示されるまで、待機する設定を記載
    • サーバとの通信に時間がかかる処理については、いちいち"wait"を入れたほうがいい
    • sleepでもいいが、必ず一定時間待つのは時間の無駄であり、また、サーバとの通信は環境に依存して予想以上に時間がかかることがあるため以前大丈夫だった待機時間でもタイムアウトするという場合が発生するためwaitがいい
  • 手順③・手順④
    • 単なるクリック。ここは画面遷移にタイムラグがないのでwait不要
  • 手順⑤
    • ガチャのアニメーションの時間を待機し、白いOKボタンが押されるまで待った上でクリック
  • 手順⑥
    • 手順⑤の後、若干の画面読み込みがあり、マイページアイコンを即クリックすると失敗することがあるため、"sleep"で2秒の休止時間を入れる
    • 上記のような実際にクリックできるようになるまでのタイムラグはスマホゲーでしばしば存在するため、実際に何度か操作させてみて、適宜sleepやwaitを入れるような調整が必要

動作する様子


デイリーガチャを自動化する