ボットアドベントカレンダー4日目(のはず)です。今日はどんなチャットボットかなと期待していた方、すみません。仮想空間のボットのお話です。
SecondLifeやOpenSimulatorなどの仮想空間では、人間が操作するアバターの他に、仮想世界に入りっぱなしにした状態でスクリプト等で自動制御する、いわゆるボットアバターを作成できます。
2007年〜2008年頃は、キャンプボットという、他人の土地に常駐して小銭を稼いでいくボットが活躍していましたが、現在では、モデルや、店員としてグループ招待を配ったりIMで案内したりするボットが残っているようです。
今更ながら、SecondLifeでボットを作ってみます。SecondLife自体が過去のものになりつつある2017年においてもなお更新が継続しているCorradeで作成してみることにします。
ここから先は、一応、SecondLifeの経験がある前提で書きます。SecondLife自体の経験がない方、もしくは遠い昔すぎて忘れてしまった方は、とりあえずアバターを作成し、仮想世界である程度の操作を試してから続きを読まれることをお薦めします。
Corradeでボットをまともに動かすには、プログラミングの知識が必要です。Qiitaの住人は大丈夫だと思っていますが、SecondLifeの住人で検索等から飛んできた方はご注意ください。
Corradeサイト
使い方、API説明など、全てが載っています。前説が少し長いので、Requirementsの節から読み始めるのが良さそうです。
Windows Quickstart Videoのビデオは視聴必須です。たぶん、見ないとどう使っていいか全くわからないはず。無声のため、英語力不要。この記事の大部分が、ビデオで説明されている内容です。
2017年現在では、progressive
という版のみ利用するように注意書きされていますので、conservative
と書かれている段落は無視して構いません。
1. ボットアバター(と確認用アバター)を作成
SecondLifeの登録画面で、ボット用のアバターを作成します。容姿はあとでなんとでも変更できますので、どれを選んでも良いです。ただ、馬に乗っているアバターをボットにすると、周りの人に迷惑かかる可能性があるので、あまりお薦めしません。
「ユーザー名」として指定した名前は、First Name
となります。Last Name
は固定でResident
となります。
最初にインワールドに入るとオリエンテーションが始まります。適当なインフォハブ、例えば Hyles(42,32,22) にテレポートすると、オリエンテーションが終わります。インフォハブに飛んだら、上部メニューからWorld
-> Set Home to Here
(または世界
->現在地をホームに設定
)を選択し、今いる場所をホームに設定しておきます。
ここまで終わったら、SecondLifeから一旦ログアウトしておきます。
最後に、作成したアバターをボットとしてSecondLifeの中の人に認知してもらうための手続きをします。これをしてもしなくてもアバターの動作に変化はありませんが、手続きをしない状態でボットであるとバレると、何か良くないことが起こるらしいです。
SecondLifeのマイページにログインして、右側のメニューからアカウント
->スクリプトエージェントステータス
を選択します。変更
をクリックし、はい、このアカウントをスクリプトエージェントまたはボット(Bot)と認定してください
を選択して、変更を保存
ボタンをクリックします。
これまでSecond Lifeに入ったことのない方、もしくは、通常のアバターで入るとIMの嵐になったりして面倒な方は、同様の手順で、ボットを確認するためのアバターを作成しておきます。
2. Corradeをインストール
Corradeの動作には .NET Framework 4.5 以降が必要ですので、無ければインストールします。
Download Binariesで、Corrade 9.169
(バージョン番号は執筆当時)というリンクをクリックしてZIPをダウンロードします。ダウンロードしたら、普通に展開するだけでOKです。
展開したら、ZIPの中のCorrade
というフォルダ名を、作成したボットのログイン名などに変更します。1個のCorrade.exe
で起動できるボットアバターは1個のみです。もしボットを2体以上作りたい場合は、このフォルダを丸ごとコピーしたフォルダを別に作成します。
以降は、C:\Corrade\BotName Resident\
にCorrade.exe
などがある前提で説明します。なお、執筆時には、Windows 10 Enterprise 1703で試しています。
3. Corradeを設定
展開したCorrade
フォルダの中のCorrade.ini.default
という名前を、Corrade.ini
に変名します。ファイルの中身を編集する必要はありません。この手順は、サイトには載っていませんので、注意。
その後、Configurator.exe
を起動します。起動直後は、以下のような画面が表示されます。
Client
、Masters
、Groups
タブだけ変更すれば、ボットは最低限動作します。
3.1 Client タブの設定
このタブで、ボットアカウントの情報を設定します。
-
First Name
... 登録時に指定したログイン名 -
Lsst Name
...Resident
固定 -
Password
... 登録時に指定したパスワード -
Terms of Service
... チェックを入れる -
Start Locations
...home
が先頭になるように並び替え
3.2 Masters タブの設定
このタブで、ボットに指示を出すアバターの情報を設定します。
- まず、
Delete Master
ボタンを2回押して、既に入っている名前を消します。 -
First Name
... 確認用アバターのログイン名 -
Last Name
...Resident
固定(古参アバターは苗字)
3.3 Groups タブの設定
このタブで、ボットが動作に使用するグループの情報を設定します。とはいっても、ボットのためにグループを作成する必要はありません。グループ管理ボットなど、グループに対して操作を行うボットでなければ、ここで真面目にグループを設定しなくても、動作します。
リストのMy Group
を選択して、Group Password
に、ボットのパスワードに設定したい文字列を設定します。このパスワードは、SecondLifeのパスワードと同じである必要はありません。むしろ、安全のために、違うものにしておくことをお薦めします。
グループ管理ボットの場合は、Group Name
やGroupUUID
に実際の情報を設定し、Group Permissions
やGroup Notifications
を適宜設定します。それ以外の場合は、パスワード以外の入力欄は一切触らないでください。
全部入力したら、Save File...
ボタンをクリックしてCorrade.ini
ファイルを上書きし、ソフトウェアを終了します。
4. ボットがログインできるか確認
確認用アバターでSecondLifeにログインし、ボットのホームに設定した場所にテレポートします。テレポートしたら少しその場所から離れて、テレポートしたところにアバターを向かせます。
Hyles(42,32,22) であれば、ちょうどスポットライトが当たったところにテレポートしますので、スポットライトを見るようにして待ち構えていればOKです。
Corrade.exe
を起動します。途中でファイアウォールやネットワーク周りで許可を求めるダイアログが出てきますので、クリックします。
appearance set
という文字が出てくる頃には、ボットが表示されるはずです。現時点では、何もスクリプトを書いていないため、ボットは棒立ち以外何もできません。
5. Windows サービス化
棒立ちしかできない状態なのにサービス化するというのもいかがなものかとは思いますが、チュートリアルビデオで紹介されているので、一応。
各OSでのサービス化全般の説明は、auto_restart ページにあります。コマンドプロンプトを開いて、以下の例のように実行します。
C:\Corrade\BotName Resident> Corrade.exe install --service-name "Corrade: BotName"
サービス一覧を開いて、追加されていることを確認します。
追加されたサービスを開始
すると、しばらくしてから、ボットが画面に登場します。
Windows サービスの削除も、コマンドで実行できます。
C:\Corrade\BotName Resident> Corrade.exe uninstall --service-name "Corrade: BotName"
次回はいよいよ、スクリプトを書いてボットを動かします。