ソシャゲの低コスト継続と深淵を目指せ(case:Vysor+UWSC)
みなこん、楷理です。
いきなり本質ですが、ソシャゲのデイリー周回って嬉しいですか?
私は嬉しくないのでこの記事を書くに至りました。
前提
まず、デイリー周回のやりたくなさを手短に語ります。
要するにゲーム性がない作業に長く拘束されたくないという話です。
ゲーム性というのはこの際、過程に介入の余地があるかくらいで使っています。
今やってる唯一のデイリー周回ありのゲームがブルアカなんですが、指名手配と学園交流会のチケット消化がそれに該当します。
掃討システムのお陰で所要時間はかなり短いもののやはり作業に過ぎず、面白くないことに変わりはないです。
同様にチケットを使う戦術対抗戦(オートPvP)も観戦なしでチケットを消化するほうが速いですが、おもしろいので観戦ありでやってます。
バトル相手がどんなチームか・スキル発動順・攻撃命中などが毎回異なっているなどの点が重要です。(負けると「はーこんなんただの運ゲー」って言ってはいます)
経緯
さて、ゲーム性がない作業に身を投じたくない問題へのこれまでのアプローチとして
①Nox(androidエミュ)の記録機能で自動化
②上のも諸般の面倒を抱えているので結局自力でやる
③諦める
などがありました。
しかし最近、業務でVysorとRPAツール(そのときはMS Power Automate)を久しぶりに触って、"解"じゃん…になりました。
ツール紹介
Vysorってなーに?→スマホをPCから見たり動かしたりできる、koush神が作った基本無料ツールです。windowsとmacを両サポート。
(android用ならscrcpyというのもある、でも設定は難しいと思う。iosデバイスの他のは知らないよん GitHub - Genymobile/scrcpy: Display and control your Android device )
そして今回使ったRPAツール、UWSCとはうみうみ先生が作った神の無料ツールです。windowsの結構いろんなことを自動化できるし、かなりの範囲の操作をバックグラウンドタスクとして実行可能!
この2つを組み合わせてよりよい自動化を実現しました。
Noxに対するVysorの優位性を上げていきます。
- 起動が早い
エミュレータは本体起動もまあまあ待つし、アプリ起動にも結構時間がかかる。(エミュレータ常駐でPC点けっぱは流石に負荷が高いと思う) - 安定性
Noxは(それもブルアカ特別版であるのに!)アプリ起動に結構かかるどころか途中でクラッシュすることも多々あり。起動後も画面遷移後の読み込みとかの時間がまちまち。
Vysor接続によってスマホのパフォーマンス低下は特に見られず安定して動作しています。ちなみに最悪映像が追いついていなくても遠隔操作自体は動くようです。 - 操作のスクリプトが作成しやすい
Noxのレコード自体は割と高機能で、作成した操作記録を組み合わせる・再生速度の変更などは可能です。ただ、柔軟な編集のために操作を細かくパーツ化して記録すると数が多くなり、命名とかの管理が大変になります。
かと言って通しで操作を記録するには読み込み時間のばらつきがちょっとしたハードルになる。
UWSCはスクリプトファイルを記述するため、操作のタイミング調整・結合などの再編集や拡張がしやすい、一連の操作を関数化して再利用可能などのメリットがあります。特に再編集が大事。
またキーボードの操作を扱うことが出来ることも重要。まだ私は使ってないけど画面をパターン照合とか出来るらしいので結構動的な対応も出来る可能性がある。
ついでにアプデとかが二度手間になるのもなくなるので快適。
Noxの優位性、稼働中もスマホが自由に使える点がありますがPCを触っている前提なのでそんなに問題はないです。
具体的な手法
- Vysorとスマホ(iOSデバイスではまだ試してない。書いたら追記する。)
スマホで設定>システム>開発者向けオプション>開発者向けオプションの使用をオンに、USBデバッグをオンに
(しておくと便利)LANのネットワーク設定のDHCP固定割当、あるいはスマホのIPアドレス取得を静的に
Vysorアプリのインストール(androidなら接続時にPCからapkが入ると思う)
Connect Network or Shared DeviceからスマホのIPアドレスを入力、Connect
デバイスが表示されたらView Deviceから接続し、スマホ側でデバッグを許可
[View Wirelesslyのボタンがあるが使わない]
(わたしはPin Title BarとかNavigation Barとかは外してる、あとCustomize Vysorからキーバインドで音量いじるなども可能にしてる) - UWSC
自由です。
以下は参考までに私のやり方です。各用語をヘルプで引くとだいたい話がわかると思う。
主に使うのはACW、MOUSEORG、SLEEP、BTN、KBD、INPUT、PROCEDURE、WHILEくらい。
ACWでVysorを所定のウィンドウサイズにする。
MOUSEORGでバックグラウンド実行の対象に取る。
INPUTで反復回数を入力しWHILEでループ。
BTNやKBDを組み合わせた処理をPROCEDUREでモジュール化。
など
実際は全部手書きではなく、「余分な時間のマウス移動を記録しない」とか「記録後クリップボードにコピーする」とかにチェックを入れて記録開始、終えたらエディタに貼り付けるなどで引数を適当に入れた状態の式を改造して使う。構文ミスらなくて楽ちん。
「バックグラウンド実行可能な形で記録する」のチェックを外した状態でVysorウィンドウを選択すればACWの式が、チェックを入れた状態ならMOUSEORGの式が生成される。
BTNの座標は適当にクリックして式を生成してもいいし、Alt+Prt ScとかでVysorの画面をコピってからペイントツールとかで確認して入れてもいい。
別スクリプトファイルの呼び出しも可能ということで処理を連結しまくってすべてのソシャゲのすべての周回を自動化するのも夢ではない。
というわけで、ゲーム性のない周回と離別し本質と向き合うスマホゲーライフをみんなも送ってみませんか?
おわり