SikuliX 2.0.4のインストール方法と基本的な使い方。変更点・追加機能も解説

SikuliX 2.0.4のインストール方法と基本的な使い方。変更点・追加機能も解説

こんにちは、業務自動化ツール開発担当の吉池(@valmore_myoshi)です。

PC操作自動化ツールSikuliXのバージョン2がリリースされました。OCR機能が強化され、画像・テキスト検索機能にも変更があります。本記事ではその変更点について紹介します。

また、初めてSikuliXを触る人向けに改めてインストール方法(2020/5/19現在、最新バージョンのSikuliX 2.0.4)と基本的な使い方を解説します。 PC 操作を自動化できればルーティンワークを削減できるのでぜひ一度お試しください。

SikuliXとは

SikuliXとは、クリックやテキスト入力などのPC操作を自動化できるツールです。PC画面上のアイコンやブラウザ上の入力欄を画像認識で特定して操作できます。

SikuliXにはスクリーンショット機能があるので、操作したい要素をあらかじめスクショ画像として保持できます。SikuliXプログラムの実行時にPC画面からスクショ画像と一致する領域を検索し、クリックやテキスト入力といった操作をする仕組みです。

SikuliXの仕組みやライセンス、自動化例について詳しく知りたい方はこちらの記事をどうぞ。

SikuliXとは?無料で使えるのに高機能な自動化ツールの全貌を徹底解剖!

SikuliX 2.0.Xの変更点・追加機能

SikuliX 2.0.Xでは主に下記の変更点・追加機能がリリースされています。

  • OCR機能の強化:OCRエンジンを最新バージョンのTesseract 4.xにアップデート
  • 透過画像の検索機能:透過画像の透明な部分を除外して検索可能
  • Appクラスの改訂

そのほか、画像検索とテキスト検索のAPIがそれぞれ別個のものに分かれたので、詳しく見ていきます。

画像検索APIの改訂

主な画像検索APIは下記の表の通りです。繰り返し検索ありのAPIは目的の画像がPC画面上に表示されるか、制限時間内までPC画面上を検索し続けます。FindFailed例外ありのAPIは目的の画像が見つからない場合に例外を投げます。FindFailed例外がなしのAPIはnull/Noneを返します。

画像検索API名繰り返し検索FindFailed例外
findなしあり
waitありあり
existsありなし
hasありなし
waitVanishありなし
findChangesなしなし

hasはexistsをif文やwhile文に使用しやすくしたAPIです。existsは目的の画像がPC画面上で検索できた場合Matchオブジェクトを返すのに対し、hasはtrue/falseを返します。

テキスト検索APIの改訂

新たに新設されたテキスト検索のAPI名は、xxxTextのように画像検索API名の末尾にTextと付けられています。短縮名も用意されており、その場合はxxxTと書きます。

下記がテキスト検索APIです。テキスト検索APIは指定した領域の左上から右下に向かって検索していきます。そのため、一致するテキストが領域内に複数ある場合、常に左上に位置するテキストが取得されることに注意してください。

テキスト検索API名繰り返し検索FindFailed例外
findTextなしあり
waitTextありあり
hasTextなしなし
existsTextありなし
waitVanishText未実装未実装

上記APIのほかにも正規表現でテキスト検索できるfindWordとfindLine関数が新たに追加されましたが、正規表現を使ったテキスト検索機能はまだ実装していないようです。

SikuliX 2.0.4のインストール方法

SikuliXは64ビット版のOSのみサポートされています。マルチプラットフォームに対応しており、Windows、Mac、Linuxで動作します。Windows、Macについては下記バージョンで動作します。

  • Windows XP, 7, 8, 10
  • Mac OSX, 10.10以降

なお、モバイルOSはサポートしていないので注意してください。

Javaのインストール

SikuliXにはバージョン8以降の64ビット版Javaをインストールする必要があります。Javaは商用利用の場合ライセンスが必要になります。そのため、商用利用する場合はオープンソースのOpenJDKを推奨します。今回はJavaを例に取り上げます。

下記リンクからJavaのダウンロードページに飛んでください。

https://java.com/ja/download/

「無料Javaのダウンロード」をクリック。

無料Javaのダウンロード

ここで「同意して無料ダウンロードを開始」ボタンは押さないでください。こちらは32ビット版のJavaになります。「すべてのJavaダウンロードを表示します。」をクリックしてください。

すべてのJavaダウンロードを表示します

OSに応じてダウンロードできるJavaの一覧が表示されます。Windowsは複数ありますがWindowsオフライン(64ビット)を選択してください。

64ビット版Javaをダウンロード

ダウンロードが完了したらファイルをクリックし、指示に従ってJavaをインストールしてください。

SikuliX 2.0.4のインストール

まずはSikuliXを入れるフォルダを適当に作ります。今回はCドライブ直下にsikulix-2.0.4というフォルダを作成しました。

SikuliXフォルダを作成

続いて下記リンクからSikuliXダウンロードページに飛びます。

https://raiman.github.io/SikuliX1/downloads.html

ここではSikuliXの開発環境であるSikuliX IDEスクリプト実行ファイルの2つをダウンロードします。SikuliXで使用できるプログラミング言語はPythonとRubyがありますが、今回はPythonを選択します。下記画像の通り、2つのリンクをクリックしてダウンロードしてください。

SikuliXダウンロードページ

ダウンロードしたファイルはさきほど作成したsikulix-2.0.4ファルダに入れます。

SikuliXフォルダに格納

最後にsikulixide-2.0.4.jarファイルをクリックして完了です。jython-standalone-2.7.1.jarファイルが消えますが、SikuliX所定の拡張ファルダに移動しただけですので問題ありません。下記画像のようにSikuliXの開発環境が立ち上がればインストールは成功です。

SikuliX IDE

開発環境が立ち上がらない場合はJavaのバージョンを確認してください。Windowsならコマンドプロンプト、Macならターミナルで「java -version」と打つとJavaのバージョンが表示されます。下記画像のように64ビット版がインストールされていることを確認してください。

Java 64ビット

SikuliXの基本的な使い方

ブラウザでのキーワード検索を例にとって、SikuliXの基本的な使い方を見ていきましょう。まず考えることはキーワード検索に必要な手順です。具体的には下記のようになります。

  1. ブラウザアイコンをクリックしてブラウザを開く
  2. ブラウザの検索欄をクリックしてテキスト入力できるようにする
  3. キーワードを入力する
  4. Enterを押して検索する

この手順を一つひとつSikuliXのプログラムに置き換えていきます。

最初のブラウザアイコンをクリックするにはclickという命令を使います。下記のように開発環境に書いてみましょう。

click命令の書き方

カッコの中にはクリックする要素を画像で指定します。開発環境のカーソルをカッコ内に移動してから開発画面の「スクリーンショットを撮る」ボタンをクリックします。

スクリーンショットを撮る

するとPC画面上をドラッグできるようになるので、ブラウザアイコンを囲むように指定します。

アイコンのスクショイメージ

スクショが完了するとclick命令のカッコ内に画像が入ります。これでブラウザアイコンのクリック処理は完了です。

続いてブラウザの検索欄も同様にclick命令を使ってクリックします。スクショのときに赤い点線が交差する点を検索欄と重なるようにします。交差点を実際にクリックすることになります。

交差点がクリック位置

キーワードを入力する方法はいくつかありますが、今回はpaste命令を使います。カッコ内にはペーストしたい文字列を入れます。これで検索欄にテキスト入力できました。

paste命令の書き方

最後にEnterキーを押すにはtype命令を使います。カッコ内には押すキーを指定します。今回はEnterキーを表すKey.ENTERを指定します。

type命令の書き方

以上でキーワード検索の自動化プログラムを書けました。開発環境の実行ボタンを押して自動化を体験してみてください。

他にもSikuliXを使ったチュートリアルを用意しています。興味がある方はチャレンジしてみてください。

【初心者向け】SikuliXを入れたらまずやるべきチュートリアル5選

まとめ

SikuliX 2.0.Xの変更点・追加機能やインストール方法、基本的な使い方について解説しました。

SikuliX 2.0.Xでの注目すべき変更点はやはりOCR機能の強化でしょう。OCRエンジンがバージョンアップしたことにより、認識精度の向上が見込めます。

開発環境についてはそれほど変更点はなかったように思えます。将来的には操作を記録するレコーダー機能の搭載を予定しているようです。

本記事を通してSikuliXを初めて触ったという方がいれば、ぜひ小さなことから自動化を試してみてください。ルーティンワークをSikuliXが代行してくれれば業務はもっと楽になります。本ブログではSikuliXの操作方法についても解説しているので他の記事も読んでみてください。