EyeMot3Dの的の画像を変更するプログラム
視線入力導入のためのソフトとしていつもお世話になっているのが、ポランの広場で無料公開されている視線入力訓練ソフト「EyeMot 3D」シリーズです。その中でもGame_00「風船割り」は、導入として非常によく利用されていると思います。
ピコピコルームも例外ではなく、初めて視線入力を体験される方にはまずこのソフトで視線入力の操作感に慣れていただいて、徐々にキャリブレーションや他のソフトに取り組んでいくようにしています。
今回の記事は、視線入力に取り組んでいる支援者向けの内容になっています。
任意の画像に変更するImage Circle
さて、このソフトには風船を任意の画像に変更して使う機能も用意されているので、標準で用意されている「風船」や「ぷよ」に興味が向かない方に、その方の関心のある画像を使って取り組むことができます。
すでにソフトを利用されている方はご存じかと思いますが、EyeMot3Dのフォルダ内にある「YOUR_RESOURCES」フォルダに画像を入れておき、設定画面の[Target]から[Image Circle]を選ぶことで、その画像を的として表示してくれる機能です。
例えば「知っている人の顔」「好きなキャラクター」など、好きな画像が出てくると視線の動きが良くなるケースもあります。
そのため、「YOUR_RESOURCES」フォルダに様々な画像を入れて試していくのですが、使用するたびに目的の画像に入れ替える必要がでてきます。
ピコピコルームでは、フォルダ内に更に画像ごとのフォルダを用意して、必要なときにコピーして表に出すような操作をしていました。
とはいえ、数が増えてくるとフォルダ内で削除やコピーをするのも大変になってきましたので、簡単なプログラムを用意してフォルダを選ぶだけで自動的にこれらの処理を行うようにしてみたというのが今回の本題です。
画像を入れ替えるプログラム
プログラムは初心者にも易しいというVBScriptで書きました。
とは言っても、私自身VBScript関する知識はほとんどありませんので、試行錯誤で制作してなんとか動いている状態です。
もしかしたら詳しい人が見たら非効率なプログラム内容になっているかもしれませんがあしからず。
プログラムの内容としては、プログラム自身が置かれているフォルダ内の画像を削除してから、指定したフォルダから画像をコピーして持ってくるといった動作になっています。
以下に使い方を記載しますので、利用される場合はよく読んで使っていただければと思います。
もともと自分たちが便利に使えるようにと思って考えたものなので、公開するレベルのものではないのかもしれませんが、それでも同じような不便さを感じている方の助けになるかもと思って記事を書いています。
このプログラムを使用したことによって問題が起きた場合も責任は負えませんので、利用される方の自己責任でご利用ください。
特に、プログラム自身があるフォルダ内の画像を削除する処理が入っていますので、プログラムを実行する場所には気を付けてくださいね⚠
ソースコードの公開
プログラムのソースコードは以下のようになっています。
'画像の変更プログラム 2021.06.04版
'島田療育センターピコピコルーム制作
Option Explicit
'変数を宣言
Dim objFS
Dim objShell
Dim objFolder
Dim imgpath
'画像フォルダを取得(YOUR_RESORCESを想定))
Set imgpath = WScript.CreateObject("WScript.Shell")
'ファイルシステムオブジェクトを生成
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "変更したい画像が入っているフォルダを選択してください。", 0, imgpath.CurrentDirectory)
'キャンセルした場合は中断
If objFolder Is Nothing Then
WScript.Quit
End If
On Error Resume Next
'プログラム本体があるフォルダ内の画像を削除
objFS.DeleteFile imgpath.CurrentDirectory & "\*.jpg",true
objFS.DeleteFile imgpath.CurrentDirectory & "\*.png",true
'選択したフォルダ内にある画像ファイルをプログラム本体があるフォルダへコピー
objFS.CopyFile objFolder.Items.Item.Path & "\*.jpg",imgpath.CurrentDirectory
objFS.CopyFile objFolder.Items.Item.Path & "\*.png",imgpath.CurrentDirectory
'ファイルシステムオブジェクトを破棄
Set objFS = Nothing
Set objShell = Nothing
Set imgpath = Nothing
細かい説明は省きますが、以下のような順番で動いています。
- 自身が置かれているフォルダ(YOUR_RESOURCESを想定)を取得
- 自身が置かれているフォルダ内にある、画像を入れてあるフォルダを選ぶ(キャンセルしたら終了)
- 自身が置かれているフォルダにある画像(.jpg、.png)を削除する
- 2.で選んだフォルダ内にある画像(.jpg、.png)をコピーして、自身が置かれているフォルダに貼り付ける
使い方
プログラムを用意する
このプログラムは直接ダウンロードできるようにはしていませんので、以下の方法で準備をしてください。
- すべてのプログラムから「メモ帳」を探して開く
- 上記のソースコードを全部コピーして貼り付ける
- [ファイル]→[名前を付けて保存]に進む
- [ファイルの種類]を[すべてのファイル]にし、ファイル名の最後に「.vbs」と入力して、保存する。
(保存場所、ファイル名はとりあえず何でもOK。) - 保存先にプログラム(.vbsファイル)が保存されます。保存したらメモ帳は閉じてOK。
プログラムを利用する
- 上で作成したプログラム(.vbsファイル)をEyeMot3D Game_00フォルダ内にある、YOUR_RESOURCESフォルダに置く(重要)
- YOUR_RESOURCESフォルダにもともと入ってる画像は、新しいフォルダを作成してコピーしておく
(ここに出してある画像はプログラムを実行すると削除されてしまうため)それ以外に使いたい画像がある場合は、それぞれフォルダに分けて用意しておく - プログラムをダブルクリックして開く
- フォルダの選択画面になるので、変更したい画像が入っているフォルダを選んで[OK]を押す
- 自身が置かれているフォルダ内の画像が削除され、選んだフォルダの画像がコピーされる
(画像の例では、ポケモンの画像が消えて、ワンピースフォルダに入れてあった画像が並んでいる)
YOUR_RESOURCESフォルダの画像がきちんと入れ替わっていれば動作はOKです。
最後に、使いやすくなるようプログラムファイルのショートカットを作って、使いやすい場所に置いておけば完了です。
どうでしょうか?導入までの手順はちょっと多いですが、たくさん画像を入れ替えている方ほど楽になるのではないかと思います。
よろしければ試してみてください。