
UiPathはRPA用のツールであり、基本的に業務を自動化するためのものと思い込んでいましたが、こんなUiPathの使い方があったのか!とびっくりするような使い方がTwitterで流れてきましたので動画の紹介と自分で作る方法を説明したいと思います。
Contents
UiPathを使ってペイントに自動で絵を描く!
Twitterで見つけたのがこの動画です。
恐らく発信者である「@imranloon」さんの自画像をUiPathを使ってペイントに描画している動画になります。
Created a BOT using @UiPath to draw the sketch of @anandmahindra @tech_mahindra #RPA #FUTURise
To understand the solution refer – https://t.co/H0gGuPaTgF pic.twitter.com/9b1ZHDNgNi
— imran wali (@imranloon) 2018年4月12日
正直これを見たとき、驚いたと同時に「その発想はなかった!」と悔しい気持ちになりました。
せっかくなので自分でもやってみた。
これはぜひとも自分でもやってみたいと思ったのですが、実際のところどうやるかさっぱりわからない。きっと恐ろしく難しい処理をやっているんだろうと思いつつも方法を模索&Google先生で検索してみました。
で、色々探し回った挙句に見つけたのがこちらのページ。
How to perform a sketch on MSPAINT using UiPath (UiPathを使ってMSペイントでスケッチする方法)
UiPathのフォーラム内でペイントに絵を描く方法と、なんとその実行ファイルも添付されていました。以下は、実際にmain.xamlを使ってペイントに描いてみたものです。
スケッチ用main.xamlファイルの使い方
ここからはフォーラムに添付されているお絵かき用「main.xaml」ファイルを使って描画するまでの使い方を説明します。実行ファイルの中身が分からなくても簡単に行えますので、ぜひ試してみてください!
まずはmain.xamlファイルのダウンロードから
フォーラムの該当ページからmain.xamlファイルをダウンロードしましょう。下記画像の赤枠内をクリックすれば自動でダウンロードが開始されます。
ダウンロードしたファイルを読み込む
ダウンロードが完了したら、UiPathStudioからmain.xamlファイルを開きましょう
ファイルを開くと以下のようなフローになっています。
※ブログへの投稿の都合上、アクティビティの配置を少し変えています。
描画用画像を設定する。
次にペイントに描画したい画像をUiPathで読み込めるように設定します。
下記の赤枠内にある「ab.bmp」の箇所を描画したい画像名に変更して、main.xamlファイルがおいてある場所にそのファイルも配置します。
今回はダウンロードフォルダに「paint.jpg」ファイルを配置。
起動するペイントのセレクタを修正
英語版OS向けのファイルとなっているため、このままではペイントが起動されません。OpenApplicationのセレクタを修正してあげましょう。
Open paintと書かれているペイント起動用アクティビティのセレクタを選択し、「* – Paint」のチェックボックスからチェックを外します。
これでペイントが起動するようになりますが、まだセレクタの問題で処理が止まってしまいます。
クリックアクティビティのセレクタを修正
実際には、ペイントへの描画はクリックが何度も繰り返し行われることで描画されていきます。元のファイルではクリックのセレクタも、英語OS用のペイントになっているためこちらも修正が必要です。
Clickアクティビティは、パラレル処理の中に複数入っており、これら一つ一つのセレクタを修正してあげる必要があります。全部で30個のクリックアクティビティがあるので、それらからペイントの起動と同じようにタイトルのチェックボックスを外してあげましょう。
遅い処理はパラレル動かすなど勉強になりますね。
なお注意事項として、以下のようなコメントがついています。
Please note that the use of parallel depends on the OS to run properly. If you have less memory or OS cores, it might be a problem. In that case, remove parallel and perform simple clicks.
要約すると、パラレルで動かすので性能の低いPC使ってると問題が起きる可能性があるから、その時はパラレル処理を削除してね、という事だと思います。
一応私のメモリ8GBの環境では特に何の問題もなく処理を行うことができました。
後は実行するのみ!
ここまでの準備ができればあとは実行するだけです。実際の処理はかなり時間がかかるため、寝る前とかに実行だけして朝出来上がりを確認するのが良いかと思います。
なお、色が付いた画像などは余り綺麗に描画してくれないため、白黒の画像でかつ黒が少ない画像だと早めに処理が完了します。
また一度実行すると、クリックが連続で実行されているため、処理を止めづらいです。私の場合は、Winキー+F4で無理やりペイントを終了させその後UiPathを止めるようにしていました。
実際の動画はこちらです。時間がかかるため10倍速にしています。
まとめ
今回UiPathでお絵かきしてみて(実際は描いていませんが…)、このようなアイディアと使い方にとても驚きました。またパラレル処理を行っているなどとても勉強になる部分もありました。
ああ、こんなこと思いつくアイディアと技術力が欲しい・・・。