使用頻度の高そうな汎用さくらスクリプト。
イベントコマンド(一部)、スコープコマンド、バルーン・テキストコマンド、ウェイトコマンド、選択肢コマンド
イベントコマンド(一部)
ここに載っているもの以外はさくらスクリプト/イベントへ。
\e
イベント、メッセージの終了する。 その後に書かれたイベント、メッセージは発生しない。
- そのスクリプトの終わりを示す。
- 里々を使っていると気にしなくなるが、一応は必須スクリプトである事を覚えておこう。
- \eの後に書かれたものは実行されない。しかしスクリプトとしては渡されるので、ゴースト間コミュニケーションや切替反応とかで利用できなくもない。
-
文の最後尾につける必須のさくらスクリプト。しかし、
- 里々は自動的につけてくれるので意図的でない限り使う必要はない。
- 里々以外でもSSPなら自動的に処理してくれるっぽい(たぶん)。
\-
本体を終了する。
- このさくらスクリプトが実行された瞬間にゴーストが終了。
- 終了イベントを発生させるコマンドではないです。
-
里々以外の栞の場合、OnCloseイベント後には必ず付与しましょう。そうでないと終了してくれません。
- ちなみにSSPだと「周りに誰もいないとき」、つまり一体でのみ起動している時に限り、\-コマンドがなくても終了します。
スコープコマンド
\0 もしくは \h
本体側のスコープに移る。
\1 もしくは \u
相方側のスコープに移る。
\p[ID番号]
ID番号のスコープを表示する。
- 三人目以降を表示させる時に使う。
- \p[0]は\0、\p[1]は\1と同じ。\p[2]からは\2じゃないので気を付けろ!
- 里々で使う時、自動でスコープを変えてくれる「:」が問題。これの法則を掴まないと失敗しやすいので、三人目以降を使うトークだけ「:」を使わないようにすると分かりやすい。
サーフィスコマンド(基本)
ここに載っているもの以外はさくらスクリプト/サーフィスへ。
\sID番号
現スコープ側のサーフィスをID番号のサーフィスに変更する。0~9のみ使用可能。
- 旧仕様っぽいので使用は非推奨。
- 旧仕様との事で、\p[2]などの三人目のキャラには使えない様子。
\s[ID番号]
現スコープ側のサーフィスをID番号のサーフィスに変更する。 \s[-1]で非表示サーフィス。
- サーフィス(立ち絵)を変える。(shellフォルダのsurfaces.txtに特殊な記述がなければ)ふつうはsurface0.pngが\s[0]、surface99が\s[99]と、そのまま数字が入る。\s[-1]で一時的に非表示(透明)になる。
- 里々の場合は(0)で\s[0]と同じ。(-1)で\s[-1]と同じ。
-
\s[-1]の非表示状態で喋らせた場合、バルーン位置は\s[-1]の実行される直前のサーフィスの場所になる。ずれたりしないので使い勝手が良い。
- 逆に、起動直後など「直前のサーフィス」がない時はバルーン位置がずれることもある。サーフィスと同じ大きさの透明サーフィスを用意するのも手。
\i[ID番号]
現スコープ側にID番号のサーフィスアニメーションを表示する。
- surfaces.txtで設定したアニメーションパターンを実行。
- アニメーション関連の詳しいスクリプトはさくらスクリプト/サーフィスへ。
バルーン・テキストコマンド
ここに載っているもの以外はさくらスクリプト/基本非汎用へ。
\b[ID番号]
現スコープ側のバルーンをID番号のバルーンに変更する。 \b[-1]でバルーンを非表示。
- バルーン変更コマンド。それまで表示されていたトークなどは消えない。
- バルーンは一種類ごとに右向き時と左向き時の2ずつセットになっているので、数字は\b[0]、\b[2]、\b[4]、、、と全て偶数で指定する。
- \b[-1]によるバルーンの消去は、キャラクターが席を外すなどを表現する時に。この場合 \c との併用を推奨( \1\c\b[-1] 等)。\cし忘れると同スコープで再度トークをした時に非表示前のセリフが一瞬見える。
\_b[ファイル名,x,y]
画像をバルーンのXY座標に貼り付ける。 ※SSPのみ画像URLを指定可能。 ※ファイル名の代わりにbase64エンコードやexe/dllのリソースを画像として指定可能、下記参照。
\_b[ファイル名,x,y,opaque] と記述すると左上の色を透過しないで表示する。 逆にこれをつけない場合、シェルと同じく自動的に画像の左上1pxの色が透過される。
- バルーン内の画像貼り付けの基本。
- 座標の位置調整がやや面倒なのが難点だが、周りの状態に左右されない。
-
座標の開始位置(0,0)は「バルーン画像の最も左上」なことに注意。
- \_l[0,0] は「バルーン側で設定された文字表示開始位置」なので別物。
- バルーン画像の0,0からなので、バルーンの形状が同じなら、スクリプトの最初で背景画像を貼り付けることで擬似的に独自バルーンっぽくできる。
\_b[ファイル名,inline]
バルーンのテキスト行内に1文字分扱いとして画像を貼り付ける。 ※ファイル名の代わりにbase64エンコードやexe/dllのリソースを画像として指定可能、下記参照。
\_b[ファイル名,inline,opaque] と記述すると左上の色を透過しないで表示する。 逆にこれをつけない場合、シェルと同じく自動的に画像の左上1pxの色が透過される。
- SSP専用。こちらは文章と同じ感覚でバルーン内に画像を表示できる。
- いわゆる外字の感覚で画像を文字の代わりに使ったり、選択肢横につけるアイコンに使ったりと便利。
\_b[ファイル名,inline,オプション名,オプション名...]
※ファイル名の代わりにbase64エンコードやexe/dllのリソースを画像として指定可能、下記参照。
※オプション名 『--option=opaque』 バルーンのテキスト行内に1文字分扱いとして画像を貼り付ける。 左上の色を透過しないで表示する。 『--option=use_self_alpha』 アルファチャンネル付きのPNGを透過して表示する。 『--clipping=左 上 右 下』 左上右下の順に指定した数値の座標で画像を切り取ってバルーンに貼り付ける。
- クリッピングオプションを活用すると、画像ファイルを一つにまとめる事も可能。使い方としてはクリッピング座標を指定した\_bを、単語に突っ込んでおくのが一般的。
- メーターやエネルギーゲージみたいなのを表現するのにも使える(100*数値/最大値で算出した座標軸で必要な係数・数値分クリッピングする)。
補足
※SSPのみ可、ファイル名等のパスには環境変数も使える。
-
base64を使用する場合
- 例:"data:image/png;base64,iV~II"
-
exe/dllのリソースを使用する場合
- 例:D:\hogehoge.exe,20
-
exe/dllのリソースを使用する場合(リソースID指定)
- 例:D:\hogehoge.exe,-10
\n
バルーン内の文字を改行。
\n[half]
通常の半分の高さで改行。
- 表示の高さ調整に。空行が一行分では多過ぎる、等。
\n[パーセント]
通常のパーセント分改行する。
-
使うときには%記号は不要。
- \n[100] で \n と同じ。
- \n[50] で \n[half] と同じ。
\_n
次の\_nがくるまで自動改行されない。
\c
現スコープ側のバルーン内の文字をクリア。
- バルーン内の文字や貼り付けた画像を全て消し、かつカーソル位置がバルーンの初期位置まで戻る。
- バルーン自体は消えない。
\c[char,数値]
現スコープ側のカーソル位置から指定文字数をクリア。 \c[char,数値,開始位置] で現スコープ側の指定位置から指定文字数をクリア。
- バルーン内の演出に。
-
活用して文字によるアニメーションが可能。
- 例/ あ\f[height,20]あ\c[char,1]\f[height,16]あ\c[char,1]\f[height,12]あ\c[char,1]\f[height,8]あ
\c[line,数値]
現スコープ側のカーソル位置から指定行数をクリア。 \c[line,数値,開始位置] で現スコープ側の指定位置から指定行数をクリア。
\_l[x,y]
現スコープ側のカーソル位置をXYの座標に移動する。 \_l[xem,yem] で現スコープ側のカーソル位置をem単位でXY座標に移動する。 \_l[@x,@y] で現スコープ側のカーソル位置をXY相対座標に移動する。em単位でも可。
- 単位はドット。
- \_l[0,0]にすると、バルーンで設定された初期位置、つまり\cでクリアした時と同じ位置に移動する。画像の0,0座標ではないので注意。
\C
先頭に記述すると直前に表示したバルーンのテキストに追記をする。
- 普通は1トーク(開始~\e)単位で内容が消えるところを追記する。
- トーク後(またはトーク中)に別のイベントが発生した時などに、自動的にバルーンがクリアされてしまうのを防ぎたい時、後発イベントにこのタグを仕込むと、バルーンの内容をそのまま残して追記続行できる。
- 時間経過でバルーンが消えた場合でも、\Cがくると直前の内容ごと復帰する。
- 「追記」なので、前のイベントを中断して介入することはできない事に注意。直前のトークを全て表示してから続きます。
-
文の最初に記述しなければ無視されるので、里々では要注意。
- $スクリプトの一番頭【タブ】\C のように使う。
\![*]
マーカーを表示する。
- よく色々な選択肢の横についてるアイコン画像みたいなアレを表示する。
- バルーン作成者がそれぞれ用意した画像なので、ゴースト側で画像を用意するより背景との整合性が取れているはず。
-
里々でこれを選択肢の横につける場合、『_』は使用不可。\qタグを使おう。
- 例/ _何か話して → \![*]\q[何か話して,何か話して]
ウエイトコマンド
\w時間
時間x50ms分の時間ウエイト。
- \w1~\w9。
\_w[時間]
精密ウエイト。[時間]ms。
- \_w[500]のように使う。演出に便利。単位は1000ms=1秒。
\__w[時間]
再生開始、または\xから指定ミリ秒数が経つまで待機。 \__w[clear]で時間リセット。
\x
バルーンをクリック待ちにする。
- バルーンをクリックするまで先に進まない。長い文章や説明なんかで便利。
- \tと併用していない場合、触り反応などはきちんと発生する。
-
バルーンをクリックすると、自動的に内容がクリア(\cとほぼ同じ)される。クリアされたくない場合は↓を。
- \x = \x[noclear]\c だと思えば分かりやすい。
\x[noclear]
バルーンを一時クリック待ちにする。
- クリアが発生しないクリック待ち。そのまま継続して進められるので、場合によっては通常の\xより使いやすい場面もある。
\t
タイムクリティカルセッション。 \eまでの間、クリックや他のイベントなどを行わない。
- これを使ったトーク中は、ランダムトークや触り反応が発生しなくなる。
- パッシブモードと違い終了は可(ただし即時終了になる)。
- 初回起動など、「キャンセルされては困るトーク」で特に有効。
- 物語系の導入では、\*と併用して「絶対に選択しなければならない選択肢」としても使える。
\_q
クイックセッション。 次の\_qか\eまでメッセージがノーウエイトで表示される。
- \_q~\_q
- ゴーストのメニューや設定モードなんかで使うと効果的。
- クイックセクション中でもウェイトコマンドがきちんと動作する。これを利用して一行ずつ瞬間表示にする、といった事も可能。
\![quicksession,true]
クイックセッションを開始する。
-
\_qと違い、ひとたびこれを実行すればゴーストが終了するまで常にクイックセッション。 - \_qの開始限定版。文中に\_qを使いすぎて、どこでon/offしたか分からなくなった時とかに。
\![quicksession,false]
クイックセッションを終了する。
-
↑を解除する。 - \_qの解除限定版。文中に\_qを使いすぎて、どこでon/offしたか分からなくなった時とかに。
\_s
シンクロナイズセッション。 次の\_sか\eまでメッセージを両バルーンに表示する。
- \0と\1のみ。
\_s[ID1,ID2,ID3...]
IDのスコープをシンクロナイズセッションする。
- 普通の\_sと同じく、効力は次の\_sか\eまで。こちらは三人目以降にも適応できる。
- 使用例/ \_s[0,2]ダウト!\_s ←これで\0と\p[2]が同時に喋る
選択肢コマンド
\q[タイトル,ID]
選択肢を表示。 選択後、SHIORIイベントOnChoiceSelectが開始される。IDはReference0に格納される。
-
里々を使う場合でも、この書き方に慣れておくと後々便利。
- \q[クリックできる文章,ジャンプ先の*] と覚えておくといいかも?
-
\q[ほーむぺーじ,http://...]でクリックすると指定したページに飛ぶようにできる。
- 但しこれらを変数に格納している場合はエスケープシーケンスの関係でうまくいかない場合がある(YAYA)。たとえば"\q[%(PAGE),%(URL)]"などでは上手く動作しない。この場合は後述の\__qタグを使って"\__q[%(URL)]%(PAGE)\__q"だとうまく動作する。
\q[タイトル,OnID,r0,r1,...]
選択肢を表示。 上記のようにIDが"On"で始まっている場合は、選択後、SHIORIイベントOnID(つまりOn...という名前の関数) が実行される。 それ以降のパラメータはr0,r1,...の順番にReference0以降に格納される。
- 意図的に自分の好きな名前で定義したOnなんちゃらイベントを発生させられる。OnChoiceSelectの一括処理では分岐がキツくなってきた時などに。勿論あらかじめ処理するイベント名を分けておくにも有効。
\q[タイトル,ID1,ID2,ID3...]
選択肢を表示。選択後、SHIORIイベントOnChoiceSelectが開始される。 ID*はReference*に格納される。
- CROW専用。
\q[タイトル,script:実行内容]
選択肢を表示。選択後、script:以下の内容をSakuraScriptとして実行する。
\q[ID][タイトル]
選択肢を表示。[旧仕様] 選択後、ID番号のSHIORIイベントが開始される。 上記のものとは違い選択肢は改行される。
\z
上記選択肢の範囲終了に付ける。[旧仕様]
\__q[ID,...]
\__qがくるまでの範囲を選択肢とする。 ID以降の仕様は、Onやscript:で始まるものが特別扱いされるのも含めて\qと同じ。 Onで始まるIDを指定した場合のみ、ID以降のパラメータがそれぞれreferenceとして扱われる。
- Onで始まるIDを指定しなくてもreferenceは通知される。referenceはr2以降から。
- アンダーバーが 2つ なので注意。SSP専用。
- \__q[]~\__q で括った全てが選択肢(タイトル)になる。
-
特筆すべきはこのタグの効力は画像などにも適応されるという事。つまり、
- \__q[ランダムトーク]\_b[talkicon.png,inline]\__q
- とすると、画像を選択肢としてクリックできるようになる。バルーン内の装飾のほか、ミニゲームにも有用。また、さらに\_l[x,y]と併用すると非常識な選択肢グルーピングが可能。お験しあれ。
- 追加情報をリファレンスに格納利用する場合、OnChoiceSelectではなくOnChoiceSelectExイベントを使うので注意。
- ふつうの\qタグと違い、選択肢は瞬間表示にならない。わりと気になるので\_qのクイックセッションで挟んでおきたいところ。
\*
このコマンドの後の選択肢はタイムアウトされない。
- 元は消滅予定の仕様だった。今も現存現役。
- ゴーストの設定メニューなどを表示している時に活躍。表示している情報量が多い場合、少なくともこれかタイムアウト時間を設定するかどちらかは設定しておきたい。
- タイムアウトはされないが、これ単体ではつつき等の他のイベントは発生する。初回起動などで「邪魔されない選択肢」にしたい場合は\tと併用すべし。
- 逆に設定やメニューなど、「日常的に開くトーク」と\*\tの併用は非推奨。ユーザービリティを損ねやすい。
\![set,choicetimeout,時間]
タイムアウトを時間指定する。
\_a[ID]
\_aがくるまでの範囲をジャンパとする。 ジャンパをクリックするとSHIORIイベントOnAnchorSelectが開始される。 IDはReference0に格納される。 SSPのみ、IDでURLジャンプが可能+Onで始まるIDを特別扱いする処理が含まれる。