はじめに
2018年の初めに初回の公開をしましたこちらの記事ですが、RPA(Robotics Process Automation)の実装例ということで大好評をいただいておりまして、読者の皆様方には感謝申し上げる次第でございます。🐼
そこで、SikuliX-2.0.1をインストールし、GIMP-2.10でよく使う操作を自動化してみましたので、この記事ではそれについて書いていきます。
おことわり(2020/01/16)
この記事を最初に書いた時点(2018年11月)ではSikuliX-1.1.4をインストールし、GIMP-2.10用のスクリプトを作成した際の記事を書いていましたが、SikuliX-2.0.1を使ってGIMP-2.10.10用の自動化スクリプトを作成した際に記事を全面的に改訂しました。
また、SikuliXについての本が出版され始めているようですので、リンクを張ってみました。ご参考にしていただけると幸いです。
まず、インストール。
インストールは以下の手順で行います。なお、2018年11月18日現在、1.1.3以前のバージョンはサポートされていないようです。
また、1.1.3以前のバージョンとはインストールの手順が大きく変わっています。
- Javaをインストールしていない場合には、SikuliXのインストールの前にインストールしておきます。1.1.0のときにはJDKを使ってIDEを起動していましたが、JREでも動かせるようです。
- インストール先のディレクトリを作っておきます。
- SikuliXのサイトにアクセスし、以下のJARファイルのうち少なくとも一方をダウンロードします。
- 「The Jython interpreter 2.7.1 for python scripting (the default)」
- 「The JRuby interpreter 9.x for ruby scripting」
- ダウンロードしてきたJARファイルを手順2で作ったディレクトリの下に保存します。
- 「Download the ready to use sikulix.jar (SikuliX IDE)」のリンクをクリックします。
- ダウンロードしてきたJARファイルを手順2で作ったディレクトリの下に保存します。手順2で作成したディレクトリの中身が下図のようになっていればインストール完了です。
起動します。
sikulix.jar (下図の赤矢印)をダブルクリックすると起動できます。なお、jython-standalone-2.7.1.jarは初回のsikulix.jarの起動後にホームディレクトリの下のAppData\Roaming\Sikulix\Extensionsの下にコピーされてしまうようです。
すると、以下のような起動画面が表示されます。
上図をよく見ると少なくとも1.1.1までは存在していたコマンドリストが表示されていませんが、そこはいったん目をつぶって先に進むことにします。
…とこれだけでは起動時にインストール先のディレクトリを開く必要があるために操作が少々面倒になるので、デスクトップのわかりやすい場所にショートカットを作っておきます。
おしゃれなショートカットですね。(`・ω・´)
サクサク記述してみます。
IDEからコマンドリストがなくなってしまったっぽいためにサクサク感が損なわれてしまったような感じもしますが、GIMP-2.10でスクリーンショットを取るところまでを自動的に実行するスクリプトを書いてみたいと思います…
事前準備。
…といきたいところですが、SikuliXでスクロールを記述するのはちょっと難しいので、GIMP-2.10(以下の例ではGIMP-2.10.8ですが、GIMP-2.10.10でも同様です。)をタイルに入れておきます(下図の赤矢印)。
今度こそサクサク書きます。
事前準備ができたら、サクサクと書いていきます。
適宜、「実行」ボタンを押しながら動作を確認していきます。
うまくクリックがされないときの調整方法例
スポンサーリンク
うまくクリックがされないときには以下の方法等を駆使して調整します。
- wait関数をクリックがされていない画像の直前に、
wait(1)
のように挿入し、タイミングの調整を行います。。 - IDE上でその画像をダブルクリックすると表示される「パターン設定」(下図)の「マッチングプレビュー」(下図の赤枠)をクリックすると…
画面上のどの部分にマッチングされるかが表示されます(マッチする場所がない場合には以下のように表示されます。)ので…
画面下部のスライダー(上図の赤矢印(a))を使って類似度の最小値を変更し、画面上でマッチする箇所が1ヵ所だけになるように調整します。調整ができたら、「Apply」ボタン(上図の赤矢印(b))をクリックします。 - IDE上でその画像をダブルクリックすると表示される「パターン設定」の「ターゲットオフセット」をクリックしてクリックする位置を変更してみます。
作成したスクリプトをGitHubに置いてみた。
ここまでの手順で作成されたSikuliXのスクリプトを以下の場所に置きましたので、IDEによる開発作業の参考にしていただければと思います。
[2020/01/16 追記] SikuliX-2.0.1+GIMP-2.10.10で動作確認を行ったものに更新しました。
https://github.com/pandanote-info/gimp-2.10.sikuli/
上記GitHubリポジトリのREADMEにも書きましたが、現在この記事を書いているPC(dynabookR732/HK, ストレージはSSDに換装済。)用に作成したものです。したがってHDDで使われる際などにはwait関数の設定値を大きくするなどの調整が必要かもしれません。
起動からスクリーンショット取得までの動画
文章で書いたものをお読みいただくよりも、実際に動作しているところをご覧いただいた方がわかりやすいと思いますので…
動画を作りました(1.1.4を使って作成したものですが、2.0.1でも同様の動きになります)↓
まとめ
SikuliX-1.1.4以降のバージョンではそれまでのバージョン(1.1.3以前)と比較するとインストール作業が圧倒的に簡単になりました。IDEでコマンドが選択できなくなってしまったのは残念ですが、ドキュメントを頑張って読んでいろいろな使い方を編み出すしかなさそうです。
findText()関数とか面白そうですけどね。
実は、こちらの記事を書いた後にメインのPCをdynabookR732/HKに変更した上で、ストレージをSSDに交換(その際の記事はこちら)してから使用していました。
そのため、この記事にも書きましたが、PCのdynabookへの変更により画面が広くなり、さらにSSDへの交換によってパフォーマンスがかなり上がりました。それにともない、GIMP-2.10等の重いツールの起動時にも以前ほどストレスを感じなくなったことと、GIMPよりもLaTeXが必要な文書を書く機会が多かったために直近ではSikuliXを使う機会が減っていました。
上記の理由により、SikuliXの環境については現状維持としていましたが、GIMPを使って複雑かつ定型的な操作をする機会が増えそうなので、再度環境整備を行うこととしました。
スクリプトの動作などについては保証することはできませんが、参考にしていただけると幸いです。
この記事は以上です。