ゴースト3分クッキングを読んだら、次はどんな表現方法があるか調べよう。
特殊記号一覧、ファイル構成にも目を通しておくと吉。
ランダムトークはトーク名なしのトーク(*)を辞書ファイルに記述して置くと、その中よりランダムで選択され一定時間毎にトークします。
* :ランダムトークです。 * :(2)隣の客はよく柿食う客だ! :へー
詳しくは→ランダムトーク
イベントトークは、ゴーストが起動した時や、マウスでクリックした時などなんらかのイベントが発生した時に呼び出されるトークで、*の後にトーク名としてイベント名を記述して置くとイベント発生時に呼ばれてトークします。
*OnBoot :起動しました。 #別なゴーストから切り替わって起動した時のトーク *OnGhostChanged :(R0)さんから交代したよ~。
上記例の(R0)はリファレンスと呼び、イベントの情報を参照出来ます、参照出来る情報が複数ある場合はR1、R2…と続きます。
イベント及びリファレンスの種類については下記リンクを参照して下さい。
SHIORI(栞)イベントについては里々の仕様に含まれないので、里々wikiでは全てに触れません。
通常メインキャラ側から喋りはじめる時は次の様に書きます。
* :おはよう
サブキャラ側から喋り始める場合は次の様に書きます。
* こんばんわ
喋るキャラを途中で切り替える場合
* :おはよう :こんばんわ :なんでやねん!
詳しくは→スコープ切り替え
()内に表示したいサーフェス番号を入れて指定します、現在スコープがあるキャラのサーフェスが変わります。
* :(5)おはよう!(7)って昼だよ!! :(12)ねむねむ
詳しくは→サーフェス
ウェイトとはトーク中に入れる"間"の事、長文を読みやすくしたり、抑揚をつけたりします。
:お、\w3は、\w3よ、\w3う
詳しくは→ウェイト
さくらスクリプトには二つの意味があります。
一つ目は、トークを修飾したりゴーストを制御したりするコマンド。
二つ目は、ベースウェアが理解できるトーク文字列の規格。
このwikiでは、もっぱら一つ目の意味で使われます。
これは、¥から始まる英数字で記述します。
:普通のポストで終わりたくないなぁ…… :……っていうかお前、自分を普通だと思ってたのか。 :え?さくらスクリプトや、他のSHIORIでは普通はこう書きます。
\0\s[0]\1\s[10]\0普通のポストで終わりたくないなぁ…\w2…\w2\n\_w[126]\n[half] \1…\w2…\w2っていうかお前、\_w[78]自分を普通だと思ってたのか。\_w[84]\n\n[half]\0え?\e里々もベースウェアにトークを渡す時は、この形式に自動で変換しているのです。
里々の記法や自動化は、すべてのさくらスクリプトをフォローしていません。
里々でもさくらスクリプトを直接記述する事ができるので、少し難しくはなるものの、さくらスクリプトを使いこなすことで、ゴーストの表現や挙動の幅を広げる事ができます。
どんなスクリプトがあるのかは下記の外部サイトを参照して下さい。
里々では、変数やトーク等を呼び出しや展開する時()を使用しますが、何でもかんでも()を使うので、あとで辞書を見返した時にそれがトーク・関数なのか、変数なのか、単語群なのか、この変数名はトーク名と重複していないかとが解らなくなる事があります。
なので変数なら、"~変数"の名前にするとか英数で命名するとか、トークなら"~トーク"とか日本語で命名するとかのルールを予め作っておいた方がよいかもしれません。
…ただし里々やshioriのイベント・リソースの予約名とか「ポストと狛犬」で使ってる変数やトークの名前とかが既にフリーダムなので完全にどうこう出来るわけではありません。
バルーン中をリセットする時にはさくらスクリプト「¥c」を使います。
* :今日のあなたの運勢は\w8・\w8・\w8・\w8 \c大吉です!よかったねー
「今日のあなたの運勢は・・・」と表示されたあと
バルーンがリセットされて、
「大吉です!よかったねー」と表示されます。
ウェイトとかを考えておかないと、前の文章を
読み終わらないうちに消えてしまったりするので注意。
トークを何往復もさせる場合、バルーンにスクロールが出ないよう
適宜¥cを使うゴーストは多いです。
反面、¥cを使わずに全て表示させておくゴーストもいるので
そのあたりは好みによるでしょう。
さくらスクリプト「¥-」を使うと、そこで即時終了します。
さくらスクリプト「¥_s」を使う。
:\_sいっしょにしゃべるよ。\e
¥_sか¥eで閉じ。
@あれ えー びー しー * :(あれ)がほしいなー。 :(H1)ですか。 :(あれ)もほしいんだけどねー。 :(H3)もですか。
これで、
「えーがほしいなー。」
「えーですか。」
「しーもほしいんだけどねー。」
「しーもですか。」
になるはず。
Hの後にはトーク中にその変数が現れた順番を入れます。 この時(0)(1)(2)…や(H○)や(R○)なども変数としてカウントされます。
* :(1)(あれ)がほしいなー。 :(H2)ですか。 :(2)(あれ)もほしいんだけどねー。 :(H5)もですか。
「*OnBoot」や「*OnGhostChanging」などのイベントを複数用意すると、そのイベントが発生した時に、そのうちのどれか1つをランダムにトークします。
ご自身で用意したジャンプ先についても同様です。
*OnBoot :起動しました! *OnBoot :呼ばれました!
*OnGhostChanging :次の方へ交代しますね。 *OnGhostChanging :え~、交代ですか~?
*選択肢1 :正解です! *選択肢1 :おめでとうございます。
イベント発生時にゴーストが喋るパターンを多数用意したいだけならば、次のようにすると記述を簡素・短くできます。
つつき反応など、短い反応をたくさん用意したいときなどに有効です。
*OnBoot :(OnBoot時台詞集) @OnBoot時台詞集 (5)呼ばれました! (5)起動しました! (4)……うぃー。 (5)起動してしまいました!
記号の「*」や「>」のあとに【タブ】と条件式を書いておくと、条件式が成立した時にだけ有効にする事ができます。
*トーク【タブ】(機嫌)<30 :私は不機嫌である。
* >ウニョラー【タブ】(機嫌)<30 :これはウニョール草といいます。 *ウニョラー :トッピロキー!
条件式はほんとに色々書けるので、詳しくは条件式へ。
install.txtに
refresh,1 refreshundeletemask,satori_savedata.txt
と書き加えれば、元からあるファイルを全て削除したあと、 改めてインストールします。 refreshundeletemaskで指定したファイルは削除されません。 (上の例なら、里々のセーブデータを削除せずに残します)
追加シェルのあるゴーストの場合追加シェルまで消えてしまうケースがあるため「refresh,0」の方が良いです。(消去したいファイルはdelete.txtで指定)