Appleシリコンという、Appleが作ったSoCを搭載したMacだとiOSアプリができる、という話をしました。では、実際にどう活用するかというと、ゲームなどの作業のオートメーション化です。

Automatorでゲームを自動化する方法
このページでは、Automatorという「Macでの作業を自動化するツール」を使って、ゲームなどでの作業を一つのアプリとして一元化して楽しちゃおうという、概ねチートのような技を紹介していきます。
Automatorとは
Automatorは、作業の自動化ツールです。
Mac OS X v10.4から搭載されている。FinderやSafari、iCalなどのAutomatorに対応したアプリケーションの様々なスクリプトを組み合わせ、自動処理プログラムを作成することができる。
https://ja.m.wikipedia.org/wiki/Automator

ワークフロー構築ソフトウェアということなのですが、これを説明するのは少し難しいので、実戦レベルでどんなことができるのかを見ていきます。
特徴としては、プログラミングのコードが書けなくても、「この作業の時は、この順番でやりたい」みたいなことを、できることリストを使って並べていく、という実に簡単で直感的に使えます。
さらに、Apple Scriptというプログラミングコードのようなものを使えば、より正確な作業が指定できます。もちろん、スクリプトなんて書けなくても使えます。というより、このスクリプトを簡単に作ることができるソフトでもあるのです。

似たようなものとして、iPhoneやiPadでは「ショートカット」というアプリがあります。これも、決まった作業を自動化してオートメーション化できる使い方ができます。
Automatorでできること
抽象的なことばかり書いても全く想像しづらいので、まずは具体例をあげていきます。ページ主旨としては「ゲームの自動化」なので、ゲームでの利用方法を想定して書きます。
できることリスト(例)
- 決まった時間にアプリを起動する
- 決まったマウス・キーボード操作を自動化する
- アプリと一緒に使うSafariの指定ページなどを同時に起動する
- アプリを起動したときに音楽をかける
- Touch Barに作成したワークフローを表示する
時間指定して、決まった作業を自動化できますし、腐りがちなTouch Barを動線として活用できたり、できることは盛りだくさんです。
Aotomaotorのワークフローの種類
- ワークフロー:「Automator」アプリケーション内で実行できるワークフロー。
- アプリケーション:開いたとき、またはその上にファイルやフォルダをドロップしたときに実行されるスタンドアロンワークフロー。
- クイックアクション: Finder ウインドウ、Touch Bar、および「サービス」メニューに追加できるワークフロー。 クイックアクション・ワークフローの使いかたについて詳しくは、Mac でクイックアクション・ワークフローを使用するを参照してください。
- プリントプラグイン: プリントダイアログで利用できるワークフロー。
- フォルダアクション:Finder 内のフォルダに関連付けられるワークフロー。フォルダに項目が追加されるとワークフローが実行され、そのファイルがワークフローの入力として使用されます。
- カレンダーアラーム:カレンダーイベントが発生したときに実行されるワークフロー。
- イメージキャプチャ・プラグイン:Mac の「イメージキャプチャ」アプリケーション で利用できるワークフロー。
- 音声入力コマンド:音声入力が使用されたときに実行されるワークフロー。
https://support.apple.com/ja-jp/guide/automator/aut7cac58839/2.9/mac/10.14
基本的には、アプリケーションを作成する使い方になると思います。
周回作業をアプリにしちゃおう
簡易な周回作業のボタン化くらいならワークフローでもOK。このワークフローを組み込んで、やることを一体化させてアプリ化してもOK。さらに、作成したアプリを一単位のアクションとして、さらに別のワークフローに組み込んでもOK。

つまり、例えば、曜日毎に決まった作業があるときは、基本構造のワークフローに、アクション内容を少し組み替えて使用することで、月曜日の作業、火曜日の作業、などをより正確に、簡単に実行できるようになるわけですね。
Automatorをゲームアプリに適応すべきか否か
うっすらとAutomatorの仕様が掴めてきたところですが、やっぱりさっぱりわかりません。
Automatorを使ってiOSゲームでできること
先のワークフローの例で言えば、ゲームに落とし込むと、月曜周回ダンジョン用にタップ位置を調整したりも、コピペなどで簡単にできるということです。
ログボ回収と周回はテンプレ化
例えば、起動してからログイン、毎日やらなければいけない周回作業があればまずは雛形としてこれをアプリケーション化します。
さらに、この雛形を1週間7日分コピペして、曜日で異なるダンジョン、1週間だけやらなければいけない周回作業などがあれば、この雛形にさらに追加して作業を組み込むことも簡単にできます。
変数を工夫すれば全て自動でできる、かも
できるかどうかは調べていませんが、例えば、アプリ内から変数としてボタン位置などを取得できれば、取得した変数を元により正確にタップする位置を組み込むこともできます。
多分できないとは思いますが、ディスプレイの色彩変化などを利用して「このポイントがこの色になったらタップ」なども、Scriptなどが書けるとできるのかもしれません。
基本的にはオートクリッカー
普通に使う場合には、まずは自分のタップ・クリックなどを記録して、それをワークフローとして組み込んでいく感じになります。

実際のレシピ作成は後述しますが、ワークフロー作成自体はすごく簡単です。実践していけばすぐに容量が掴めると思います。

ただ、実際にオート化すると、7割くらいは想定通りに動きますが、周回で1時間くらい放っておくと大体失敗しています。勝手に課金したりはしませんが、課金アイテムを勝手に使って周回したりはしているので心臓には悪いです。

やりようによっては、課金も自動化できそうではありますが。キーボード操作も記録できるので。
Automatorはチートツールになるのか
これは「スイッチコントロール」の記事にも書いておきましたが、いくら端末の純正ツールであってもゲーム内で想定した挙動でなければ「外部ツール」となります。つまり、チートとみなされても仕方がないということになります。

データに不正がなければ概ねOK
スイッチコントロールの場合は利用者のアクセシビリティを守るための当然の権利なので、使用不可とはしづらい背景があります。
また、他のプレイヤーへの影響がなければ運営もマンパワーを投じてまで取り締まることはないと思います。
また、データの改竄ではなく、ゲームが想定している挙動で不正と認知されない範囲での操作自動化なら、ある程度は許される(見て見ぬ振り)傾向にはあります。
しかし、周回を自動化することで他のプレイヤーよりも育成進捗が進んでしまう場合は、当然、取り締まりの対象となります。

運営としては、育成要素に差をつけることも「課金」の対象としているから、これを侵害する場合は取り締まりの対象となる場合が多いですね。
Androidはエミュレーターが豊富にあるから、PCさえあればオートクリックなどのマクロ挙動は簡単に導入できます。

iOS系はせいぜいスイコン利用くらいでマクロ利用は難しかったんですよね。これが、すでにフェアじゃない環境であったとは思いますが。
ロマサガなんてマクロありきの周回設定
例えば、くそ周回ゲームであるロマサガRSは、ユーザーのほとんどがマクロ利用者だと思いますが、ユーザー数を大きく減らすような垢BAN措置は取られていません。(もちろん、データ書き換えなどの不正ツールを使用した場合、不正課金などは別ですが)

ロマサガは他のユーザーと競うことはゲームの主旨からは離れているので大丈夫、ということもありますが。
オートクリックに関しては見て見ぬ振り、という運営は多いと思います。むしろ、マクロ組まれて不平が出るなら、周回が不要になるようにしたり、ゲーム内の仕様として自動化する(サーバー側とデバイス側のパターンに分かれる)ものが最近の主流になりつつあると思います。
グラブルなんかはオートクリックも取り締まる、という話は聞くけどね。でも、周回自体がユーザーの障壁となりつつあるので、育成コンテンツがユーザーの苦痛でしかなくなるようなら自動化したり簡易化したりするという対応が需要となっていますね。
何がゲームの本質なのかを考え直す
個人的には、ゲーム体験として育成がメインコンテンツで、このバランスを崩すとゲームとして成り立たなくなる、というゲームに関してはエミュレーターの使用やオートクリック系の外部ツールの利用は、クリック位置の定点・連続性や、ログイン時間などをみて率先して取り締まればいいと思います。

ただ、やることを増やすためだけにコンテンツを嵩ませるためだけの育成周回などは、ゲームの主旨からハズレており、ユーザー側でも工夫して時間の節約を考えてもいいのかな、と思っています。

もう、ゲーム体験に時間だけを奪う育成周回を導入することが、時代と逆行していると思います。未来ある若者がクソみたいな周回作業を行うこと自体、社会的な損失が大きいと思うんですよね。

いや、課金系のゲームなんて、プレイヤーのほとんどは実際のところおっさんなんじゃない?
昨今のゲームは、周回部分はオート化しているものが大半なので、本来のコンテンツに集中できるような構造をしっかりと用意しているゲームの方が健全だと思います。
育成の時間投資は、本当に「努力」なの?
あくまでも私の意見ですが、Automatorもエミュレーターでのマクロ操作も、導入しないと育成が成り立たないようなゲームは旧時代的でナンセンスだと思います。
もちろん、育成周回はユーザーの努力であり、ここでパラメータに差別化をさせるのはゲーム体験としては必要なことだとは思いますが、ただタップだけを強いるようなゲームはゲームではなく作業です。
作業は時間の浪費となりやすく、その作業自体にユーザーを成長させる要素はありません。育成方針などを考えて、育成を最適化させることを考える作業は重要だと思いますけどね。ぽちぽちやってるだけだと、スキルも向上しないし脳は死んでる。

ユーザーにもいろんな層がいますからね。知識レベル的にもタップが限界、という方は実際にいるし、ぽちぽちし続けることだけでしか他の人に評価を受けられずに、ゲームのステータスから自己肯定感を得るためにゲームをしているという人は一定数いると思います。

ただ、そこに時間を費やしたら、余計に実生活・社会的な評価は下がる一方なわけで。あえてゲームメーカーが助長するような作業を提供することはないんじゃないかと私は思います。
実際にAutomatorを使ってみる
どのゲームでもいいのですが、アカウントが停止されてもよさそうなゲームで実践します。暇があれば動画も作成します。
やりたいことを整理する
まず、できそうなことを列挙しておきます。詳細はこの後に繋げます。
Automatorに期待したいこと
- 複数アプリの同時起動、同時操作
- 複数ウィンドウで展開しながら複数アプリをモニタリングする
- 別アプリの同時育成・周回
- 同一アプリを複数展開してアカウントを増産する(→正攻法では無理そう)
- 複数アカウントでの一括リセマラ(→正攻法では無理そう)
- 複数ウィンドウで別アカウントの同時育成・周回作業を行う(→正攻法では無理そう)
基本的には、アプリの挙動に手を加えすぎるとゲームとしては「外部ツールの使用」にカウントされるのであまり考えたくはないところ。
ウィンドウひとつを端末と考えれば、一個人での複数端末所持は概ねどのゲームでも認められているのでセーフ。ただ、結論としてはMacひとつでのコピペアプリ増産は無理そう。
アプリは一つしか起動しない
結論としては、ひとつのアプリは、ひとつのウィンドウ・アカウントでしか起動しません。

一見すると、アプリが二つ存在しそうですが、基本的にはMacの中にはアプリが一つしか存在しなていません。ショートカットアイコンが複製されているだけ、といった感じですね。

そのため、複垢量産して光速リセマラなどはできなさそう。リセマラのオート化はできそうですけどね。
別アプリなら複数同時起動できる

別のアプリであれば、複数ウィンドウで同時展開できます。これをAutomatorで一括して操作することで、「とりあえず起動だけしてログボでも回収するか」というときに便利です。
Automatorの使い方は上述の通りなので、Macで周回作業などさせるときは、ウィンドウに展開できる限りで同時に操作はできそう。ただ、複数アプリでの処理量が尋常ではないので、必然的にMacの処理能力に依存する形になります。
Automatorでゲームを自動化する実践例
では、イメージしやすいように実際にAutomatorでiOSゲームを操作してみましょう。
Automatorを起動する

Automatorは基本的には最初からMacに入っています。Launchpadから起動してもいいですし、Finder→アプリケーションで探してもいいです。
Automatorでワークフローを選択する

上述の通り、Automatorを実行できるワークフローの種類は複数あります。とりあえず、悩んだときは「アプリケーション」を選択しておけばいいと思います。

基本的にはタスクごとにアプリケーション化することで、指定したアクションをグルーピングしやすくしていきます。

例えば、「育成クエストの周回」とかをひとつずつアプリにして、全てをまとめて「月曜日の作業」アプリにまとめる、とかですね。
アプリケーションでもAutomator上で実行することで適宜調整可能です。
Automatorの使用感はそれほどいいものではない(操作はしづらい)ので、ひとつのワークフローはあまり大きくせずに、適宜まとめながらタスクを組み上げていくというイメージでいいと思います。

例えば、ログインするタスク(ワークフローアクション)、クエストを選択するタスクみたいな感じですね。
アプリを起動する

アプリを起動する場合には、「アクション」「ライブラリのユーティリティ」「アプリケーションを起動」から、「その他」から好きなゲームを選択します。
ゲームのダウンロードの仕方は「MacでiOSゲームをプレイする」の記事をご覧ください。
オートクリックを記録する


Automatorの真骨頂とも言えるのが、自分が操作した内容をワークフローとして保存し、これを活用して繰り返し実行できることです。これの操作内容をスクリプト化する方法を「記録」と呼びます。
「記録」は、どのアプリケーションに対して、どのような操作を行なったのか、ということを記録してAppleScriptにしてくれるようです。スクリプトが書ければ、クリック位置や操作タイミングなどをスクリプト上で確認して調整することもでき、そうです。

やろうと思えば、数分間くらいのクリック・入力操作を記録します。ちなみに、操作対象のアプリも記録され、誤って他のアプリなどに操作されると、自動で一時停止したり、しなかったりします。
スムーズにゲーム操作を行う
基本的には、「記録」で操作方法をAutomatorに保存して、実行していくだけです。
Automatorで作成したファイルはアプリとして起動できるので、Dockなどに表示して、自分でタップしてもいいですし、後述するカレンダーなどに予定として入れて自動で起動させることもできます。
一時停止などで微調整する
クエストなどの周回の際には、「クエスト出撃」までのオートクリックと、「再戦」などの操作を分けておき、間に「一時停止」を仕込んでおきます。この一時停止時間を適宜調整することで、毎回クリックの記録をしなくても対応できるようにします。
例えば、「戦闘で最初に使用するスキルを使ってからオート操作にする」といったやりたいことがある場合には、「出撃」「スキル」「オートプレイ」「終了」など、一連のクリックを分割していた方が後から修正・追加がしやすいです。
記録したアクションに名前をつける
ついでに、複雑な操作ほど多量なアクションが必要になります。記録したアクションは、クリック位置などを詳細に「名前」をつけて保存しておくと、後から見返したときに修正しやすいです。
Automatorでゲームをする際に知っておくべき小技集
実際にAutomatorを使うと、色々と調べておくことや、知っておくことで取り入れやすい実例集を作っておきます。
指定時間に起動するようにする
基本的には、自分がMacを触っていない時に起動するようにしたい。そのため、カレンダーの通知機能を利用して作成したアプリを実行します。

- カレンダーを開く
- 指定したい日時に新規イベントを設定する
- 「通知」「カスタム」「ファイルを開く」「指定したいAutomatorアプリ」
- 指定した時間に通知にする
これできっと動きます。ただ、カレンダーで未使用のファイルを起動する際には、「実施してもいいですか」というコメントが出て「確認」をクリックする作業が出てきます。これをコメントアウトしてもいいですし、Automator上でこの確認を含めた操作まで組み込んでもいいはずです。
夜間の場合はスリープ解除する


問題は、夜間に行う場合。Macをスリープ・ログアウトすると通知ができないのでアプリも起動しないことになります。
Macの「バッテリー(従来の省エネ)」から、スケジュールを選び、「起動またはスリープ解除」で、実行したいアプリの時間の数分前くらいに設定しておきます。
おやすみモードの設定

夜間の場合、おやすみモードによって通知がされないように設定されています。
通知がAutomatorファイルの実行起点になっているので、通知が夜間でもできるように、これもチェックが入らないようにしておきます。
セキュリティとプライバシーの設定
これはまだ検証中の内容です。
該当のアプリを起動できるようにチェックマークを入れておく

アプリを起動する場合、起動するアプリにMacを操作させるか事前に許可を出しておく必要がある場合があります。
これは、「システム環境設定」の「セキュリティとプライバシー」の「アクセシビリティ」に該当するアプリ(Automatorで作成したもの)を追加しておきます。

コンピュータが勝手に動く場合には、こういったことをさせていいかどうかを確認することで、ウイルスなどにデータをいじられないようにしているわけですね。
自動で画面収録する
ゲームプレイを全て録画することも、ゲーム実況などをする場合は考えておきたいところです。
Macでの画面収録の方法
スクリーンショットのツールバーを表示するには、「shift」「command」「5」の 3 つのキーを同時に押します。
https://support.apple.com/ja-jp/HT208721
スクリーンショット自体はAutomatroで簡単に撮れるのですが、画面収録で録画するとなると、こちらのショートカットキーで呼び出して画面収録を開始するか、 QuickTime Player を起動して新規画面収録するかの方法が考えられます。

アプリを起動する際に、忘れずに画面収録したい場合にはこの辺りのコマンドを同時に行なっておけば安心です。

さらに言えば、マイク・音量などの調整も自動で行なっておけば、毎回安定した環境で「音を出し忘れた」なんてことにならずによさそうですね。
コメント