document

コマンド
環境変数
エスケープシーケンス

コマンド


\ で始まる特定の組み合わせの文字列は、書式をコントロール、もしくはコマンドを実行するためのコマンドとなる。


書式系


\0
以降 sakura スコープ
\1
以降 kero スコープ
\s[id]
現スコープのサーフィスを id に切り替え。id が -1 だった場合はサーフィスを消し一時的不可視状態へ
\b[id]
現スコープのバルーンサーフィスを id に切り替え。id が -1 だった場合はバルーンを消す
\n
改行
\n[half]
通常の半分の高さだけ改行
\w?
簡易ウエイト。50*[?]ms 待機。スクエアブラケットは付かない。
\_w[?]
高精度ウエイト。[?]ms 待つ。
\c
現スコープの表示域クリア、文字表示座標 を (0,0) にリセット。
\x
表示一時停止、クリック待ち。クリックされると進む。
\t
タイムクリティカルセクション。タイムクリティカルセクション中は右クリック/ダブルクリックメニューや自動チェック系など状況を破壊するコマンドが来ない。\e が出るまで有効。
\_q
クイックセクション。セクション中は全てのメッセージがノーウエイトで表示される。もう一度 \_q が来るかあるいは \e 等で解除。
\_s
シンクロナイズセクション。セクション中は全てのメッセージを2人同時に喋る。もう一度 \_s が来るかあるいは \e 等で解除。
\_n
自動改行のスイッチ。
\_l[x,y]
現スコープのカーソル位置の絶対指定。カーソル位置が (x,y) に移動する。
\e
えんいー


選択肢系


\q[title,id]
title で示されるタイトルを持った選択肢を表示。選択後 SHIORI に対して OnChoiceSelect イベントが発生し、id で指定された識別子がパラメータとして渡される。択一数は最大255択。
\q[title]
第一引数 title で示されるタイトルを持った選択肢を表示。選択後第二引数 event で指定されるイベントが SHIORI にポストされる。第三引数以降は reference となる。択一数は最大255択。
\*
次の選択肢はタイムアウトしない。


文字コード関連


\_u[0x0000]
UCS-2 コード埋め込み
\_m[0x00]
ASCII コード埋め込み
\&[id]
識別子による実体参照


その他の実行系


\_v[filename]
filename で指定される wave / mp3 / wma ファイルを再生する。ファイルはゴーストのホームディレクトリに存在する必要があり、仮に絶対パスを指定しても外のファイルは取れない。ファイルが存在しなくてもエラーは出ない。
\_V
\_v で再生されたファイルの再生終了を待つ。再生されていない、もしくは既に再生が終わっている場合は無視
\i[id]
id で指定されたアニメーションパターンを発動させる。
\v
フォアグラウンドウインドウへ
\4
現スコープのキャラクタが離れる方向に一定距離移動。主に重なり後の強制排除に使用。
\5
現スコープのキャラクタが接触する距離まで移動。
\-
即座に終了


特殊


\m[umsg,wparam,lparam]
SSTP 権限のスクリプトでのみ使用可能。HWnd ヘッダにより予めセットされたウインドウハンドルに対し postmessage(hwnd,umsg,wparam,lparam) を実行する。


r2


\![lock,repaint]
一時的に再描画を停止させる。いわゆる lock と言われるもの。セッションをまたぐ(明示的解除が必要)。
\![unlock,repaint]
解除。


\![open,browser]
本体側で設定されたブラウザを開く。第3引数以降はブラウザの起動パラメータとなる。
\![open,mailer]
本体側で設定されたメーラを開く。第3引数以降はメーラの起動パラメータとなる。
\![open,teachbox]
TEACH ボックスを開く
\![open,communicatebox]
COMMUNICATE ボックスを開く


\![set,alignmentondesktop,top]
デスクトップ上での位置アラインメントを上端に変更。
\![set,alignmentondesktop,bottom]
デスクトップ上での位置アラインメントを下端に変更。


  • \![raise]


    ユーザ定義イベントの発生。第2引数がイベント識別子、第3引数以降が reference ヘッダ。カンマはダブルクォートでエスケープできる。例示

    \![raise,OnUserEvent,r0,r1,r2,r3,r4,r5,r6,r7]
    \![raise,OnUserEvent,"0,100"]
    \![raise,OnClose]


  • \![enter,passivemode]
  • \![leave,passivemode]


    パッシブモード制御。enter で入り、leave で解除。パッシブモードは明示的に解除されるまで失効しない。

    パッシブモードはシステムによる interrupt を抑制したモードであり、主にゲーム等において使用する。パッシブモードには以下のような特徴がある。

    ポップアップメニューが出ない
    メールチェックしない
    ヘッドラインセンスしない
    オートチェンジしない
    選択肢がタイムアウトしない
    吹き出しが時間経過で消えない
    ファイルが DnD されても無視
    nar ダブルクリックも無視
    OnSurfaceRestoreが来ない
    cantalk は常に false(OnSecondChange および OnMinuteChange 自体は来る)
    コミュニケートボックスは閉じられ、また開かない
    最小化できない
    終了できない

    パッシブモード中はイベントをチェインし SHIORI 内でメインループを形成しなくてはならない。なぜならチェインが途切れた時点で passive mode は単なる操作不能状態になるからである。


  • \![open,inputbox]


    InputBox を開く。開いたボックスに文字列を入力し enter すると第三引数で指定されたユーザ定義イベントが発生し、reference0 に入力された文字列が返る。また何も入力しなかった場合でも limittime で示される時間が経過すると入力待ちが打ち切られ reference0 に文字列 "timeout" が返る。ただし limittime に -1 をセットした場合はタイムアウトは発生しない。limittime の単位は milli second。例示

    \![open,inputbox,OnUserInput,4000]

    入力待ちの間は passive かつモーダルになっており、文字列が入力されるかタイムアウトするまでユーザは他に何もできない。


  • \![change,ghost]


    第三引数でゴーストの名前を指定することにより能動的にカレントゴーストを変更できる。指定されたゴーストが存在しない場合は何もしない。例示

    \![change,ghost,さくら]

    第三引数に文字列「random」を指定した場合、ランダムチェンジを行う。

    第三引数に文字列「sequential」を指定した場合、シーケンシャルチェンジを行う。

    いずれの場合も OnGhostChanging イベントは発生しない。

  • 環境変数/メタ文字列


    % で始まる特定の文字列の組み合わせはメタ文字列であり、表示時に適切な文字列に置換される。


    基礎情報


    %month
    現在月
    %day
    現在日
    %hour
    現在時
    %minute
    現在分
    %second
    現在秒
    %username
    ユーザの呼び名
    %selfname
    自分の名前(正)
    %selfname2
    自分の名前(誤)
    %keroname
    うにゅうの名前


    特殊情報系


    %screenwidth
    %screenheight

    スクリーンの幅/高さ。マルチモニタ時はプライマリモニタのサイズしか取れない
    %exh
    連続起動時間
    %songname
    最後に認識した曲のタイトル


    AI系


    %ms
    名詞 - 人
    %mz
    名詞 - 無機物
    %ml
    名詞 - 集合
    %mc
    名詞 - 社名
    %mh
    名詞 - 店名
    %mt
    名詞 - 技
    %me
    名詞 - 食物
    %mp
    名詞 - 地名
    %m?
    名詞 - 非限定
    %dms
    「〜に〜する〜」的な、品詞が複数連結された長めの名詞


    構造系


    %j[#entry]
    #entry で指示されたエントリ。以下のように使う。

    #temp
    \h\s0%j[#temp0]\e
    #temp0
    カードキャプター%ms

    ※SSTP/1.2 でのみ使用される。

    エスケープシーケンス


    \\ で \、\% で % にエスケープ。

    スクエアブラケット内に限り \] で ] にエスケープ。

    戻る