「RPA」でドラクエ1をやってみた!

「RPAって、具体的に何ができるのですか?」という質問を受けることは、よくあります。

コンピュータ上の繰り返し作業を自動化するツールです!と説明しても、やはり多くの人にとっては、ピンと来ない訳です。

そこで今回、新企画となりますが、

「RPAでドラクエ1をやってみた!」

 

話をシンプルにする為に、ドラクエ1

ドラゴンクエストといっても、今やシリーズは数多くあります。

そこで、ここでは「ドラクエ1」をWindows10で動かしていることにします。

世の中には、エミュレーターと呼ばれるソフトウェアがあり、ファミリーコンピュータやプレイステーションのゲームがWindows上で遊べるツールがあるのです。もちろん、ここでは実際に利用した訳ではなく、もし利用したら・・・という仮定の話です。

 

①(大前提)RPAツールは、Windows上で動かすもの

Mac版のRPAツールもありますが、世の中に出回っているRPAのほとんどは、Windows版なのです。

 

 

②最初から最後まで、RPAツールだけで、クリアできるのか?

答えから言えば、無理です。

極めれば可能かもしれませんが、そんなロボットを作るのに、何年かかるのでしょうか。

Excelで精密なドット絵を描くようなもの。本来の使い方でないのです。

あくまでもRPAツールは、繰り返し作業を自動化するものです。

 

 

③経験値稼ぎには利用できるのか?

条件付きですが、可能です。

RPAは「キーボード」と「マウス」の動きを模倣することができます。

ですので、「画面を上下や左右に行ったり来たり」とか、「Aボタンを連打」といったことは、お手の物です。

敵に遭遇した時に、戦闘画面に切り替わったことが分かるのか?というと、認識できます。

画面に決まった画像(文字)が出るというパターンを、RPAは画像認識できるのです。

なので、

A)「キーボード」の「上」を押す。

B)「戦闘画面に入ったかどうか?の識別チェック」

C)入った場合には「たたかう」を押す
入っていない場合には、上記のA)に戻る

といった具合です。

もちろん、これだと主人公がずっと上方向にしか動かなくなるので、「10回上を押したら、今度は下を10回」といった繰り返し回数を指定しておきます。

 

 

④緊急時に「ホイミ」は唱えられるのか?

ここが難しいところです。

Excelシート上にある値であれば、そのまま「値」を正確に取得することが出来ます。

つまり、「14」であれば、「14」という数字を認識できるのです。

一方、エミュレーターで動かしているドラクエでは、表示されているものが「値」ではなく、「画像」なのです。

ちょっと分かりづらいかもしれませんが、画面上で「HP:14」と見えているものは、「HP:14」という画像なのです。

そのため、「HPが10を下回ったら、ホイミを唱える」という設定が、値ではないため、簡単に出来ないのです。

 

もし、画像認識機能を利用してホイミを唱えるとすれば、次のような感じになります。

現時点で、主人公の最大HPは、「50」とします。

レベルアップしているエリアのモンスターの攻撃力から考えると、HPが10を下回ると、一撃で死ぬことがある。

なので、常にHPは10以上にしておきたい。

しかし、数字を数字として認識することが出来ない。

となると、「HP:1」、「HP:2」、「HP:3」・・・といった具合に、1から10までの画像をすべてRPAに覚えさせます。

そして、戦闘の1ターンが終わる度に、HPの部分を画像認識にてチェックさせます。

もし、1から10の画像に当てはまった場合、「ホイミ」を唱える。

当てはまらなかった場合、「Aボタン(たたかう)」を押す。

 

Excelのように「数字」としてHPの値が取得できれば、条件分岐にて「HPの値 <= 10」として一発で設定可能ですが、画像認識の場合、実際に1から10までの画面を表示させ、手作業で1つずつ取得しておかなければいけないのです。

つまり、「HP:3」という画像が欲しければ、その画面が出るまで手作業で続けなければいけないというのが、何とも面倒くさいのです。

ちなみにRPAにおいて、ホームページ上のテキスト文字・数字は、HTMLで書かれており、その多くは「値」として取得できます。

 

⑤MPが「0」になったらどうするの?

これも問題です。

「ホイミ」を唱えようと思ったら、MPが「3」必要となります。

では、残りMPが「3」未満になったら?

人間がプレイしているのであれば、当然、「街に戻り、宿屋に泊まる」ということになります。

しかし、RPAでは、主人公を街に向かわせるというのは、結構大変です。

ひと工夫必要になってきますね。

ちょっと考えて見ましょう。

 

「MP:3」未満になっているという状態を認識するのは、先程の画像認識にて、0から2までを取得することで可能です。

難しいのは、主人公と街の位置関係を認識、主人公を街の方向に向かわせるということです。

RPAの画像認識では、「(事前に取得した)画像Aというものと同じものが画面に表示されたら、操作Bを行う」というものです。

ここでいう画像認識は、画面全体を認識させるものではありません。

その範囲は任意ですが、一部分を切り取る形であり、「画面全体の中に、その画像と同じものが出ているかどうか?」を判別するのです。

 

(1)  レベルアップのための、行ったり来たりを街のある同じ「軸(縦軸、横軸)」や、近場で行わせる。

⇒街と主人公の両方が入った画像を事前に取得する。(街と主人公を並べるなど)

そして、MP:3未満で、主人公を街方向に進ませ、入場させる。

もちろん、遠くにいても操作可能といえば可能ですが、事前準備である画像取得の作業量も大幅に増え、RPAロボット作成が複雑になります。

 

(2)街への帰還には、「ルーラ」を使う

⇒これであれば、どこに主人公が位置しているといったことを考えなくても大丈夫です。

ただ、「ルーラ」の消費MPは「1」です。使おうと思ったときに、MP:0にならないようにしておく必要がありますね。(あれっ、でもドラクエ1の場合、ルーラで移動先の街を指定できなかったですよね!?うーん。。)

 

(3)敵からHPを自分のものにできる武器で戦う

⇒確か、ドラクエ1では、そういった武器は無かったような気がします。

ロトの鎧であれば、1歩歩く度にHPが1回復しますが、ただ連続でモンスターに遭遇した際には、回復が追い付かないかもしれません。

 

(4)RPAを止める

⇒上記の通り、色々なシチュエーションを考え、それに合わせて設定しておく必要があります。

それでも乱数処理されているドラクエの世界では、イレギュラーなことが起こりえます。

そこでシンプルかつ効果的な方法として、「(MPが0になったら)主人公を止める」ということも選択肢に入れておくとよいかもしれません。

つまり、何の操作もしないということです。歩かなければ、モンスターに遭遇することもありません。

寝る前にRPAをセットして、朝起きたらチェックする。(手作業で街に戻る)といった使い方です。

もちろん、レベルアップという面では効率が悪くなりますが、主人公を死なせないということを優先した場合、悪い選択肢ではありません。

 

以上、いかがだったでしょうか?

「ドラクエ1」のレベルアップをRPAで行う場合の話を描いてみました。

 

 

(まとめ)
RPAツールの特徴として、
・「マウス」と「キーボード」操作を覚え、再現する
・画像認識機能がある
・条件分岐にて、処理を分けれる
・繰り返しの回数を指定できる
というのがあります。

これを組み合わせることで、上記のようなことも可能になるのです。

 

ここまで読んで頂いた方だと、「あれっ、これが出来るのなら、社内のあの業務もRPA自動化できるのでは!?」ということが浮かんだかもしれませんね。

恐らく可能だと思います。

ただ、RPAツールは汎用性がとても高い反面、様々なシチュエーションを想定し、「例外処理」と言われるレアケースにも対応できるように、設計しておく必要があります。

とはいえ、あまりにも全部自動化してしまおうとすると、ロボット作成にとてつもない作業量が必要になるケースもあるので、その際には上記(4)のように、人間の目視チェックを入れるといった具合にRPAを止めてしまうのも、現実的な利用方法だと思います。

RPAの導入・運用に役立つ情報をお探しなら