イベントコマンド
特殊なコマンドはSHIORIイベントと連動する事が多いので、ukadocのSHIORI Eventの熟読を推奨。併せて参照して下さい。
-
イベントコマンド
- \4
- \5
- \![move]
- \![moveasync]
- \![set,position,x,y,スコープID]
- \![reset,position]
- \![updatebymyself]
- \![updatebymyself,checkonly]
- \![update,platform]
- \6
- \7
- \![executesntp]
- \![execute,headline,ヘッドライン名]
- \![biff]
- \![vanishbymyself]
- \![vanishbymyself,ゴースト名]
- \+
- \_+
- \![change,ghost,ゴースト名]
- \![change,shell,シェル名]
- \![change,balloon,バルーン名]
- \![call,ghost,ゴースト名]
- \v
- \![set,windowstate,stayontop]
- \![set,windowstate,!stayontop]
- \![set,windowstate,minimize]
- \![set,wallpaper,ファイル名,オプション]
- \![set,tasktrayicon,ファイル名,テキスト]
- \![set,trayballoon,オプション,オプション,オプション...]
- \![raise,イベント名,r0,r1,r2...]
- \![embed,イベント名,r0,r1,r2...]
- \![timerraise,時間,繰り返すか否か,イベント名,r0,r1,r2...]
- \![raiseother,ゴースト名,イベント名,r0,r1,r2...]
- \![timerraiseother,時間,繰り返すか否か,ゴースト名,イベント名,r0,r1,r2...]
- \![raiseplugin,プラグインのIDまたは名前,イベント名,r0,r1,r2...]
- \![notify,イベント名,r0,r1,r2...]
- \![notifyother,ゴースト名,イベント名,r0,r1,r2...]
- \![notifyplugin,プラグインのIDまたは名前,イベント名,r0,r1,r2...]
イベントコマンド
\4
現スコープのキャラクターが離れる距離まで移動。
-
キャラが重なっている時に。
- 「寄るな!」「触るな!」「抱きつくな!」「暑苦しい!」etc
\5
現スコープのキャラクタが接触する距離まで移動。
\![move]
指定座標まで移動。
- 下記のオプションを利用してあちこちに移動可能。
-
初回起動時の初期位置を\0を左側、\1を右側にしたい時に。
- \0\![move,-200,0,0,screen,right,bottom]\1\![move,-650,0,0,screen,right,bottom]
- 画面領域にもよるので数値は要調整。
\![moveasync]
指定座標まで非同期移動。
\![move]、\![moveasync]について
-
\![move,X座標,Y座標,移動時間,基準とするキャラ,基準とするキャラ基準位置,動かすキャラ基準位置]
- 移動時間以降は省略可能。
- X座標、Y座標は目的の座標を指定。
- 負の値も指定可能。
- どちらかを省略するか、"fix"と指定した場合は、その座標を保持する。
-
移動時間はミリ秒単位。
- 移動時間を省略、もしくは0を指定した場合は瞬時に移動。
-
基準とするキャラは、別のスコープの相対位置に移動する際に使用。
- 指定方法は0 1等のキャラクターを表わすIDの数値の他、自分自身をあらわすme、スクリーン左上を起点とするscreenがある。
- 省略時はscreenが指定したとみなされる。
-
基準とするキャラ基準位置は、指定した座標をそのサーフィスのどこを起点とするかを指定する。
- X基準.Y基準、という形で指定し、それぞれ
- X基準:left,right,base,center
- Y基準:top,bottom,base,center
- の4つの指定を組み合わせ、right.base、などのように記述する。
- なお、baseはsurfaces.txt内のpoint.basepos指定に従う。
- 省略時は、left.topを指定したとみなされる。また、screen指定の場合はbaseは利用できない。
- 動かすキャラ基準位置は、基準とするキャラ基準位置と同じように指定する。
\![set,position,x,y,スコープID]
指定スコープをXY座標に固定する。(ドラッグ等を不可能にする)
- CROW専用。
\![reset,position]
上記を解除する。
- CROW専用。
\![updatebymyself]
ネットワーク更新イベントを開始する。
- 右クリックメニューからのネットワーク更新を選択した時と同じ挙動を開始。
- 自動ネットワーク更新などの実装に。テストの際は必ず作業ファイルのバックアップを取っておこう。
- 自動ネットワーク更新をする場合、↓の \![updatebymyself,checkonly] でチェックして「更新がある」時だけ行う方が良い。余計なトークをしなくなる。
\![updatebymyself,checkonly]
ネットワーク更新チェックイベントを開始する。
- SSP専用。
- 起動時とかにチェックして、「更新があるみたいだよ」などで通知してみるとか。
- ただし、勝手にネットに接続する行為は不快に感じる人も多いので、搭載するならユーザ側がON/OFFできるスイッチを一緒につけておくのがベスト。
-
具体的にこのコマンドでネットワーク更新チェックを実装したい場合
-
このコマンドを使った時、更新ファイルがあるとOnUpdateCheckCompleteイベントが、それ以外だとOnUpdateCheckFailureイベントがそれぞれ発生する。前者には「更新があるよ」トークを、後者にはReference0に理由が格納されるのでこれを使って分岐しよう。
- none ... 更新なし
- timeout ... タイムアウト
- 404 等 ... そのステータスコードでの失敗
-
里々例
-
裏でこっそり更新チェックをして、更新がある時だけ喋る例。これに、チェックしたいタイミングで \![updatebymyself,checkonly] をはさもう。
*OnUpdateCheckComplete :(0)更新があるみたいだよ。すぐ更新する? _更新する _更新しない *更新する \![updatebymyself] *更新しない :じゃ、やめとくね。
-
裏でこっそり更新チェックをして、更新がある時だけ喋る例。これに、チェックしたいタイミングで \![updatebymyself,checkonly] をはさもう。
-
このコマンドを使った時、更新ファイルがあるとOnUpdateCheckCompleteイベントが、それ以外だとOnUpdateCheckFailureイベントがそれぞれ発生する。前者には「更新があるよ」トークを、後者にはReference0に理由が格納されるのでこれを使って分岐しよう。
\![update,platform]
本体ネットワーク更新イベントを開始する。
- SSP本体のネットワーク更新?
\6
時計合わせイベントで実際に時間修正を行う。
- 単体では役に立たない。具体的には↓のコマンドを使って、時計合わせイベントを発生させると、サーバに接続が確立された際に自動的にOnSNTPCompareイベントが発生する。このイベント中で使うことで時間修正が完了する。
- 他のOnSNTP~イベントも併せて参照のこと。
\7
時計合わせイベントを開始する。
\![executesntp]
時計合わせイベントを開始する。
\![execute,headline,ヘッドライン名]
ヘッドラインセンスイベントを開始する。ヘッドライン名をrandomにするとランダムに選択。 lastinstalledにすると最後にインストールされたヘッドラインを開始。
\![biff]
メールチェックイベントを開始する。
\![vanishbymyself]
消滅指示無しで自ゴーストをアンインストールする。
- 使いすぎに注意。
\![vanishbymyself,ゴースト名]
消滅後に交代するゴーストを指定して自ゴーストをアンインストールする。
- SSP専用。
- 「ゴースト名」は\0ではなく、まんまゴースト名。ghost\master\descript.txt の name, の項目です。
-
発動は以下の条件を全て満たしている事が条件。
- 自分以外の「隣で起動しているゴースト」がいない
- 指定したゴーストがインストールされている
- 本体設定の開発オプションでバニッシュ抑制をしていない
- 一つでも満たしていない場合、通常のアンインストールと同じになる。
\+
ランダムに他のゴーストに切り替わる。
\_+
次の順番のゴーストに切り替わる。
\![change,ghost,ゴースト名]
そのゴーストへの切り替えを行う。 該当ゴーストがいなかった場合は無視される。 ゴースト名をrandomにするとランダムチェンジ。 sequentialの場合はシーケンシャルチェンジ。 lastinstalledで最後にインストールされたゴーストへの切り替えを行う。
- lastinstalledはゴーストが新しくインストールされた時(OnInstallCompleteイベントで使う)にも有効。これを使うか、それともインストールイベントのリファレンスを使いゴースト名で呼び出すかは趣味。
\![change,shell,シェル名]
そのシェルへの切り替えを行う。 該当シェルがなかった場合は無視される。 lastinstalledで最後にインストールされたシェルへの切り替えを行う。
- 同上。
\![change,balloon,バルーン名]
そのバルーンへの切り替えを行う。 該当バルーンがなかった場合は無視される。 lastinstalledで最後にインストールされたバルーンへの切り替えを行う。
- 同上。ただしこれを実行すると強制的にOnBalloonChangeイベントが発生する。
- 従ってこのスクリプトを活用しようとしてもその後のトークが表示されなくなる(OnBalloonChangeイベントに割り込まれる)。インストールイベントや初期バルーンの強制設定などでこのスクリプトを使う場合、フラグ変数などを設定し、OnBalloonChangeイベント上でトークを分岐させよう。
\![call,ghost,ゴースト名]
そのゴーストを呼び出す。 ゴースト名をlastinstalledにすると最後にインストールしたゴーストを呼び出し。
- 連動イベントなどに。やはりインストールイベント後にも使える。
\v
手前に表示する。
- このスクリプトが実行された時、ウィンドウの最前面に出てくる。「常に手前に表示」とは関係ない。
\![set,windowstate,stayontop]
手前に表示する。
- 「常に手前に表示」にチェックが入る(ONになる)。
- 当然、このコマンドを使ってもウィンドウの最前面に出てくる。
\![set,windowstate,!stayontop]
手前に表示しない。
- 「常に手前に表示」からチェックが消える(OFFになる)。
- これを実行したからといって、すぐに後ろに引っ込むわけではない事に注意。
\![set,windowstate,minimize]
最小化する。
\![set,wallpaper,ファイル名,オプション]
指定したファイルを壁紙にする。 オプションにcenter、tile、stretchを指定できる、省略可。
\![set,tasktrayicon,ファイル名,テキスト]
指定したアイコンファイルをタスクトレイのアイコンに変更する。 テキストはアイコンにマウスを重ねたときの表示、省略可。
\![set,trayballoon,オプション,オプション,オプション...]
トレイアイコンからバルーンを表示する。※下記参照。 バルーンをクリックして消した時にOnTrayBalloonClickが発生。 タイムアウトした時や閉じるボタンで閉じた時にOnTrayBalloonTimeoutが発生。
- SSP専用。
-
各種オプションを併用して様々な情報を表示できる。『--text』オプションは、定義した分ごとに改行される。
- 例/ \![set,trayballoon,--title=疲労度がたまっています,--text=けっこうきついです,--text=そろそろ休ませて下さい,--icon=warning]
- timeoutオプションはいまいち働いていない様子?単位はmsかsか微妙。
- titleやtextはOnTrayBalloonClickのリファレンスとして送られるので、ギミックを仕込みたい時はしっかり定義しよう。
オプション詳細
-
『--text=テキスト』
- バルーンに表示する文字列、複数指定で複数行に。
-
『--title=タイトル』
- バルーンのタイトル。
-
『--icon=アイコン設定名』
- バルーンに表示されるアイコンの設定。
- info 情報アイコン
- error エラーアイコン
- warning 警告アイコン
- none なし
-
『--timeout=秒数』
- バルーンの表示時間。
\![raise,イベント名,r0,r1,r2...]
イベントを実行する。第3引数以降はreference。
- 任意のイベントを実行する便利なコマンド。
-
どう便利かというと、まずタイミング指定ができるところ。
- saoriやshiori独自のコマンドはまず「スクリプトが実行される前に全部処理される」。よって、スクリプト中にsaoriの実行コマンドを入れても、まずsaoriが実行されてからスクリプトが実行されてしまう。そこで、raiseで任意にジャンプする事によりタイミングを制御できる。
- ただし、里々/整備班verでは、主要なコマンドがスクリプトの順番通り実行される高度なギミックが仕込まれている他、syncコマンドなどsaori用に効果を発揮するものが充実しているので、あまり使う機会はないかも。
\![embed,イベント名,r0,r1,r2...]
イベントの実行結果を現在実行中のスクリプトのこのタグ内に「埋め込む」。 使い方は\![raise]と同じ。プロパティシステムの内容によって分岐など、イベントを実行して情報を 取得する仕様を、1回のスクリプト実行で有効に使用するための仕様。 第3引数以降はreference。
\![timerraise,時間,繰り返すか否か,イベント名,r0,r1,r2...]
待ち時間(ミリ秒)を指定してイベントを実行する。 第5引数以降はreference。
- このコマンドがきてから「時間」が経過すると、「イベント名」が実行される特殊なraise。
- 「繰り返すか否か」は 0 で延々とリピート、 1 以上で一回のみ。
- 時間制限などに使える。
- 連続で実行した場合、最後に実行したものだけが動作する。
\![raiseother,ゴースト名,イベント名,r0,r1,r2...]
起動している他のゴーストへイベントを通知する。 第4引数以降はreference。 ゴースト名を__SYSTEM_ALL_GHOST__とすると起動している全てのゴーストに通知。 1バイト区切りで複数指定可。
\![timerraiseother,時間,繰り返すか否か,ゴースト名,イベント名,r0,r1,r2...]
待ち時間(ミリ秒)を指定して起動している他のゴーストへイベントを通知する。 第6引数以降はreference。 ゴースト名を__SYSTEM_ALL_GHOST__とすると起動している全てのゴーストに通知。 1バイト区切りで複数指定可。
\![raiseplugin,プラグインのIDまたは名前,イベント名,r0,r1,r2...]
プラグインに指定したイベントを送信する。 プラグイン名をrandomにするとランダムに選択。 lastinstalledにすると最後にインストールされたプラグインを開始。
\![notify,イベント名,r0,r1,r2...]
Notifyイベントを実行する。第3引数以降はreference。
\![notifyother,ゴースト名,イベント名,r0,r1,r2...]
起動している他のゴーストへNotifyイベントを通知する。 第4引数以降はreference。 ゴースト名を__SYSTEM_ALL_GHOST__とすると起動している全てのゴーストに通知。 1バイト区切りで複数指定可。
\![notifyplugin,プラグインのIDまたは名前,イベント名,r0,r1,r2...]
プラグインに指定したNotifyイベントを送信する。 プラグイン名をrandomにするとランダムに選択。 lastinstalledにすると最後にインストールされたプラグインを開始。