#author("2023-11-10T18:35:35+09:00","default:post","post")
#author("2023-12-29T17:10:22+09:00","default:post","post")
特殊変数の一覧。またの名をシステム変数。ちょっと高度。~

-「$」を使っているため当wikiでは便宜上特殊変数と呼称していますが、''変数とは全く別物''です。~
-主にシステムや挙動の設定と、コミュニケート送信やリロードなどの命令の二種類で構成されます。変数ではなく「設定変更」「命令実行」と考えると分かりやすいかも?~
-当然ですが、一覧にある名前は変数名に使っちゃだめ。~
-また、設定変更に関係するいくつかの変数はそのままの名前で()を使えば現在の設定を呼び出すことができます。ゴーストの設定画面で使ったり、[[デフォルトサーフェス>#la079620]]や[[タイマ>#hbdb737b]]等、制作上で活用したりすることも可能。

最新の里々とその更新情報が載っています→[[ChangeLog>https://github.com/ponapalt/satoriya-shiori/releases]]~


----
#contents
----
~
*特殊変数 [#t6507092]

**$Value○ [#c272196b]
[[コミュニケート]]を実行するコマンド。Value0にコミュニケートを送りたいゴースト名を入れます。~
実行時にそのゴーストが同時起動中であればコミュニケートが送信されます。~
以下例示。~

 $Value0【タブ】Emily
とすると、(Emilyが同時に起動していれば)Emilyに話しかけます。~
要するに[[→>特殊記号一覧#h4a6f971]]と同じ効果ですが、こちらはさらに$Value1以降を設定することで、追加情報を相手に送ることができます。~
(受け取る相手は、OnCommunicateのReference1以降で送られた情報を参照できます)~

コミュニケート送信キャンセル~
 $Value0【タブ】Emily
とした後、
 $Value0【タブ】
と上書きすることでコミュニケート送信をキャンセルが可能になりました。~
掲示板にあった要望のようなので、おそらくこの書き方。 


**$教わること [#bd85dfb9]
なにか値を入れると、[[teachbox>https://ssp.shillest.net/ukadoc/manual/list_sakura_script.html#_!_open,teachbox_]]を開きます。 ~
\![open,teachbox]と直接書くのとほぼ同じです。好みで使いましょう。~
詳しく→[[OnTeach]]


**$引数区切り追加 / $引数区切り削除 [#f7ace755]
 $引数区切り追加【タブ】(追加したい区切り文字)
 $引数区切り削除【タブ】(削除したい区切り文字)

区切るのに使う文字をカスタマイズすることができます。~
ちなみに初期状態では下記が実行された状態。

 $引数区切り追加【タブ】、
 $引数区切り追加【タブ】、
 $引数区切り追加【タブ】,
 $引数区切り追加【タブ】,
 $引数区切り追加【タブ】(sprintf,%c,1)

つまり、これらを削除してしまうこともできます。ただし引数区切りの設定は保存されません。*OnSatoriLoadで設定するか、あるいは一時的に利用して戻すような感じで。~
「,」を削除するとSAORIを(sync~)で実行できなくなります。 


**$文「○」の重複回避 / $単語群「○」の重複回避 [#o772b719]
 $文「○」の重複回避【タブ】方式、期間
 $単語群「○」の重複回避【タブ】方式、期間

里々では、同名のトーク及び単語群を呼び出したとき、候補から一つだけが選ばれます。~
このコマンドは、「どのように選ぶか」を設定するものです。~
~
○にはトーク名か単語群名が入ります。~
「*」とすると、全てのトーク及び単語群が設定対象になります。 ~
方式と期間の間にある「、」は引数区切りと違い、他の記号での代用はできません。注意して下さい。

-【方式】
--&color(#cc0000){無効}; ランダムです。同じものが連続して選ばれることもあります。 
--&color(#cc0000){直前}; ランダムですが、同じものを2回連続で選ぶことだけは回避します。 
--&color(#cc0000){有効}; ランダムですが、全トークor全単語を一巡するまで同じものを選びません。
--&color(#cc0000){降順}; 最初から後ろに向かって順番に選択していきます。一巡したら戻ります。 
--&color(#cc0000){昇順}; 最後尾から前に向かって順番に選択していきます。一巡したら戻ります。 

-【期間】
--&color(#cc0000){起動中}; 終了するまで設定が適用されます。
--&color(#cc0000){トーク中}; 1回のトーク中でだけ設定が適用されます。次のトークでは再度選択をやり直します(この時の再選択の挙動は方式によって異なります)。

方式を省略した(何も指定しない)場合は「無効」、期間を省略した場合は「起動中」と見なされます。また、方式が「無効」の場合は期間の設定は無意味になります。~

重複回避の指定はOnSatoriLoadで行う事が推奨されています。~
例

 *OnSatoriLoad
 $文「*」の重複回避【タブ】有効、起動中
 $単語群「くだもの」の重複回避【タブ】有効、トーク中

また、何も指定せずとも、デフォルトで

-本家里々
 $文「*」の重複回避【タブ】無効
 $単語群「*」の重複回避【タブ】有効、トーク中

-整備班ver里々
 $文「*」の重複回避【タブ】有効
 $単語群「*」の重複回避【タブ】有効、トーク中

が自動で設定されています。~



**$スクリプトの一番頭 [#o334a39e]

里々はスクリプトの先頭に自動でサーフェス指定等が挿入されるため、¥Cなどの「冒頭にないと効果がないさくらスクリプト」が使用できませんでした。そこで考案されたのがこのコマンドです。~
この"$スクリプトの一番頭"に代入した内容はスクリプトの先頭に挿入されます。また、一度使用されると内容が消えて初期化されるのも特徴です。~
例~

 *
 $スクリプトの一番頭【タブ】\C
 \0\j[(URL)]\e

里々Mc131-1以降で使用可。~



**$呼び出し回数制限 / $ジャンプ回数制限 [#f06e4cc9]
数値を代入し、最大呼び出し回数を設定します。~
デフォルトでは200。~
(※里々Mc128-1以降では括弧や>での無限呼び出しでスタックオーバーフローするのを防ぐ処理がされています) ~

⇒「呼び出し回数制限」はcall機能利用時のみに。~
新たに「ジャンプ回数制限」キーワードが追加。(デフォルト20000回)~
里々Mc128-1以降で使用可。~



**$BalloonOffset○ [#r0f887a7]
 $BalloonOffset0【タブ】10,-50
 $BalloonOffset1【タブ】20,35  
バルーン位置を指定します。~
○はスコープID番号、¥0側は0、¥1側は1になります。~
初めて指定するときは、必ず両方とも指定すること。~

**$SAORI引数の計算 [#hedbd483]
 $SAORI引数の計算【タブ】自動
 $SAORI引数の計算【タブ】無効 
[[SAORI]]を使用する際の引数計算の機能切替をします。~
[[引数がSAORIで処理する前に計算されてしまうのを防ぐ>SAORI#t7c441c9]]事ができます。

**$デバッグ [#y69b2fb6]
 $デバッグ=有効
$デバッグ=有効 にしないとShioriEchoが動作しない?~
里々Mc147-4以降で使用可。~
配布時には無効にしておく事を強く推奨します。~


**$NOTIFYの自動保存 [#dasnotify]
 $NOTIFYの自動保存=有効
一部のNOTIFY情報の自動内部保持を有効にします。~
これを有効にしておくと、里々がベースウェアから送られてくるNOTIFYイベントを処理するようになります。~
具体的には、[[導入済み○○>情報取得変数#wcc91775]]などの情報取得変数が使えるようになります。~


**$コミュニケートの検索方法 [#n355c83e]
 $コミュニケートの検索方法=里々
 $コミュニケートの検索方法=合計文字数
里々Mc154-1以降で使用可。~
コミュニケートボックスや他のゴーストから話しかけられたときの、コミュニケートの検索方法を設定します。~
デフォルトは「$コミュニケートの検索方法=里々」。~
解説→[[コミュニケート]]


**$返信ヘッダ「ヘッダ名」 [#uca3286a]
 $返信ヘッダ「X-SSTP-PassThru-Hoge」【タブ】HogeHoge
 $返信ヘッダ「ヘッダ名」【タブ】設定する内容
里々Mc162-1以降で使用可。~
SHIORI(またはSAORI)の任意の[[レスポンスヘッダ>https://ssp.shillest.net/ukadoc/manual/spec_shiori3.html#response]]を設定できます。~
SHIORI(またはSAORI)の任意の[[レスポンス>https://ssp.shillest.net/ukadoc/manual/spec_shiori3.html#response]]を設定できるコマンド。~
これまでは不可能だった送り主(Sender)の変更やバルーンのsstpメッセージ(Marker)の他、コミュニケートの仕様とも通じているので、そちらの独自拡張といった方法にも使うことができます。~
活用しやすいのはMarker辺りかも。

 $返信ヘッダ「Marker」【タブ】このメッセージは自動的に消滅する
 バルーンに大事な事を表示しておいたで。

以下はSSTP専用。
 $返信ヘッダ「X-SSTP-PassThru-Hoge」【タブ】HogeHoge


**$外部から実行可能なイベントの接頭辞 [#qe875f29]
 $外部から実行可能なイベントの接頭辞【タブ】OnHoge
里々Mc167-1以降で使用可。~
通常はSecurityLevelがexternalの場合、里々は多くの機能の実行をデフォルトで拒否します。~
別途指定を行うことで、指定したイベントは通常通り実行することができます。~
カンマおよび読点区切りで複数指定可能。~
「全部」と書くと全部通します。

 #ExternalEvent.○○ が実行可能
 $外部から実行可能なイベントの接頭辞【タブ】ExternalEvent.
 
 #全部実行可能
 $外部から実行可能なイベントの接頭辞【タブ】全部


*れしば [#r4f34de2]

**$Log [#t212b710]
"有効"を代入すると、れしばへの送信が有効になります。~
"有効"以外を代入すると無効に。

**$RequestLog [#a140b585]
設定値は Log と同じ。本体からのリクエストの内容をれしばに送ったり送らなかったりを変えられます。

**$OperationLog [#mdeeb0dc]
リクエストとレスポンス以外のログ、かな?

**$ResponseLog [#s5eec8cf]
本体へのレスポンスの内容を(略)。 



*スコープ切換 [#m0ac8a2a]

**$スコープ切り換え時 [#m8b98f06]
 $スコープ切り換え時【タブ】\n[half]
「[[:>特殊記号一覧#xc07c81a]]」により¥0と¥1のスコープが切り替わったときに挿入されるスクリプトを記述します。 ~
ゴースト「ポストと狛犬」では[[satori_conf.txt>ファイル構成#j3e3ee70]]で¥n[half]が設定されています。

**$さくらスクリプトによるスコープ切り換え時 [#g730a069]
 $さくらスクリプトによるスコープ切り換え時【タブ】\n[half]
「$スコープ切り換え時」のさくらスクリプト版。~
¥0,¥1,¥h,¥uが対象です。デフォルトで設定なし。~
改行せずにキャラを切り替える用途で¥0,¥1,¥h,¥uが使えます。~
「[[:>特殊記号一覧#xc07c81a]]」と全く同じ動作にしたい時は「$スコープ切り換え時」と同じ値を設定してください。(デフォルトのままなら¥n[half])~


*トーク開始・終了 [#nde962d2]

**$トーク開始時 [#a883a8e5]

トークの一番最初に常に挿入するSakuraScriptを設定します。設定していない場合は何もしません。

**$トーク終了時 [#t3cab332]

トークの一番最後に常に挿入するSakuraScriptを設定します。設定していない場合は何もしません。

*選択肢開始・終了 [#k2a64c13]

**$選択肢開始時 [#kf6a3c95]

選択肢表示の直前に挿入するSakuraScriptを設定します。設定していない場合は何もしません。

**$選択肢終了時 [#r49b80ea]

選択肢表示の終了直後に挿入するSakuraScriptを設定します。~
設定していない場合は¥n(改行1個)を挿入します。


*タイマ [#hbdb737b]

**$○タイマ [#p366f286]
 $○タイマ【タブ】数値
代入した数値(単位は秒)が経過すると、○で指定した名前のトークを実行します。~
さらに詳しく→[[カウント・タイマ]]

**$全タイマ解除 [#kfc75888]
 $全タイマ解除【タブ】実行
全てのタイマを解除します。~
個別に解除したい場合は、「$○タイマ解除」と記述するか、秒数の入った「$○タイマ」に空文字をセットして削除します。~

**$タイマ変数はセーブしない [#r8bc7dcf]
Mc166-5以降で使用可。~
 $タイマ変数はセーブしない【タブ】有効
通常はタイマ変数はセーブデータに残ったままになり、次の起動時も自動でタイマ処理が続きますが、これを設定するとセーブデータに保存しなくなり、終了時に自動で全タイマが解除されます。


*トーク予約 [#af320606]

**$次から○回目のトーク [#jaad7a7c]
○で指定したランダムトークの回数後のトークを指定します。  
 *
 :明日は買い物に行かないとね。
 :冷蔵庫カラやからね。
 $次から5回目のトーク【タブ】明日の予定

 *明日の予定
 :あたし、明日何するって言ったっけ?
 :……買い物や。 

**$次のトーク [#n6a86d66]
次に来るトークを指定する。  
 *
 :安子さんの好きなものってなんだっけ?
 :えーっと、確か……。
 $次のトーク【タブ】安子さん

 *安子さん
 思い出した、あんぱんや!
 :そうそう、それそれ。

**$トーク予約のキャンセル [#d0544aee]
 $トーク予約のキャンセル【タブ】*
指定したトークの予約をキャンセルします。~
「*」を代入することで全ての予約をキャンセルします。


*サーフェス [#la079620]
関連→[[サーフェス]]

**$デフォルトサーフェス○ [#i67fbef9]
 $デフォルトサーフェス0【タブ】0
 $デフォルトサーフェス1【タブ】10 
変数「会話時サーフェス戻し」が有効である場合に、挿入するサーフェス番号を指定します。~
○はスコープID番号、¥0側は0、¥1側は1になります(¥p[2]側以降もそのまま2、3、4、、でOK)。~

**$会話時サーフェス戻し [#j901292e]
 $会話時サーフェス戻し【タブ】有効
 $会話時サーフェス戻し【タブ】無効
 $会話時サーフェス戻し【タブ】強制
トークの先頭に、変数「デフォルトサーフェス○」で設定されているサーフェス変更を自動挿入するかどうかを設定します。~
「有効」にすると、トークの先頭で任意のサーフェス指定が無い場合にデフォルトサーフェスを表示します。~
「強制」は、トークの先頭で必ずデフォルトサーフェスを表示するようにします。~
~
なお、この機能を「有効」にすると、トーク後に一定時間経過するとデフォルトサーフェスに戻る機能も同時に有効になります。~
関連→[[困ったときの対処法#w92fb37d]]

**$今回は会話時サーフェス戻し [#gcf06eeb]
 $今回は会話時サーフェス戻し【タブ】無効
 $今回は会話時サーフェス戻し【タブ】有効
 $今回は会話時サーフェス戻し【タブ】強制
里々全体の設定ではなく、トークを出力する際に1回だけサーフェス戻し設定を一時的に変更する機能。~
里々Mc148-1より使用可。

**$サーフェス加算値○ [#d73cce18]
 $サーフェス加算値○【タブ】数値
代入した値の分、表示されるサーフェスの番号をずらします。~
○はスコープID番号、¥0側は0、¥1側は1になります。 ~

&color(red){ただし $サーフェス加算値○ を設定すると $デフォルトサーフェス〇 にも同じ値が自動的に設定されます。};~
このため、この変数を使用する時は必ず $サーフェス加算値○ の''後に'' $デフォルトサーフェス〇 を一緒に設定するようにして下さい。~
なお、デフォルトサーフェス〇の値にはサーフェス加算値〇は加算されません。注意して下さい。

 *例1
 $デフォルトサーフェス0【タブ】30
 $サーフェス加算値0【タブ】100
 
 #↑これでは「デフォルトサーフェス0」も100に設定されてしまう。
 #トークした時は冒頭に100番サーフェスが挟まれる。

 *例2
 $サーフェス加算値0【タブ】100
 $デフォルトサーフェス0【タブ】30
 
 #↑この順序なら「デフォルトサーフェス0」は30になる。
 #トークした時は冒頭に30番サーフェスが挟まれる。130番ではないので注意!
 #よって、デフォルトサーフェスは加算後を見越して設定すること。

*辞書 [#t42480f7]

**$辞書フォルダ [#u52cadf2]
 $辞書フォルダ【タブ】フォルダ名
使用する辞書のフォルダを変更します。~
実行時は、セーブも同時に行われます。~
主に変数「サーフェス加算値」と組み合わせて多重人格を実現する際に使用されます。~
カンマ「,」で区切ることで、複数のフォルダを指定し、共有辞書を作る事もできます。~

以下のようなフォルダ構成の場合~
(otherフォルダに別人格用の辞書が入っているとする)~
ghost~
 └master~
   └other~
 *
 :へーんしんっ! とうっ!
 $辞書フォルダ【タブ】other
 $サーフェス加算値0【タブ】30
 
 *
 :戻るよー。
 $辞書フォルダ【タブ】.
 $サーフェス加算値0【タブ】0

**$辞書リロード [#nda49d2c]
 $辞書リロード【タブ】実行 
辞書をリロードします。~
ここでいう辞書のリロードとは、里々を一度終了して読み込み直すということ。~
このため、実行時はOnSatoriUnloadなどの[[独自イベント]]が呼ばれ、[[SAORI]]を読み込み直し、[[起動回数>情報取得変数]]が一回増えたりします。

**$辞書接頭辞 / $辞書拡張子 [#z122cc1c]
 $辞書接頭辞【タブ】dict 
 $辞書拡張子【タブ】uka 
読み込む辞書の拡張子・接頭辞を任意の文字に変更します。~
satori_conf内でのみ設定できます。savedata内、辞書等の指定は無効。~
replace.txt / replace_after.txt / satori_conf.txt には影響しません。~
拡張子を変更した場合、セーブデータの拡張子も変わるので注意してください。

*セーブデータ [#f345f6dc]
関連→[[セーブデータ]]

**$自動セーブ間隔 [#v4de587a]
 $手動セーブ間隔【タブ】秒数
指定した時間おきにセーブデータにセーブします。(単位は秒)
0で自動セーブを行いません。

**$手動セーブ [#ga4f5345]
 $手動セーブ【タブ】実行 
値の代入が行われた時点で、セーブデータにセーブします。

**$セーブデータ暗号化 [#e7d5d728]
 $セーブデータ暗号化【タブ】有効  
セーブデータが暗号化されます。



*ウェイト [#h4c08e7f]
関連→[[ウェイト]]

**$自動挿入ウェイトタイプ [#yc9de64b]
 $自動挿入ウェイトタイプ【タブ】無効
 $自動挿入ウェイトタイプ【タブ】里々
 $自動挿入ウェイトタイプ【タブ】一般 
 
-「無効」自動挿入全て無効
-「里々」従来の処理
-「一般」ゴーストで一般的に使われるウェイトを自動挿入

「一般」の時「、」で\w5ぐらい、「。!?」や改行など文末で¥w9ぐらい、話者変更で¥w9¥w9ぐらい。~
微妙にランダム調整が行なわれているようです。 ~
「里々」従来の処理は、長い台詞を喋るとそれにあわせてウエイトを長めに入れる、らしい?~

**$自動挿入ウェイトの倍率 [#oe757f98]
 $自動挿入ウェイトの倍率【タブ】100%
自動的に挿入されるウェイトの大きさを記述します。~
「[[自動挿入ウェイトタイプ>特殊変数#yc9de64b]]」が「一般」だと効果が大きい?


*喋り [#s367a167]

**$喋り間隔 [#md9b70b1]
 $喋り間隔【タブ】180秒
自発的にランダムトークする間隔を指定します。(単位は秒)~
0秒にすると、自発的に喋らなくなります。

**$喋り間隔誤差 [#p2d3a054]
 $喋り間隔誤差【タブ】10%
自発的にランダムトークする間隔の誤差を指定します。(単位は%)

**$今回は喋らない [#n82294fb]
 $今回は喋らない【タブ】有効
「有効」を代入すると、何をしようが今回は喋らなくなります。~
仕様挙動的に言うと、常に204 No Contentを返します。~
一度SHIORI呼び出しが来るごとに「無効」に戻るため、必要な時はその都度設定が必要。~
里々Mc126-1~4以降で使用可。~


**$見切れてても喋る [#i2db08f0]
 $見切れてても喋る【タブ】有効
見切れ状態でもランダムトークが発生する?



*なでられ [#d7eb8e66]

**$トーク中のなでられ反応 [#w0e1e57f]
 $トーク中のなでられ反応【タブ】有効
 $トーク中のなでられ反応【タブ】無効
トーク中の撫でにも反応します。

**$なでられ持続秒数 [#cd11143d]
 $なでられ持続秒数【タブ】2
指定した秒数撫でが止まると、なでられが発生するためのカウントがリセットされます。デフォルトで2。

**$なでられ反応回数 [#p52eb76f]
 $なでられ反応回数【タブ】60
撫でに対する感度。デフォルトで60。~
数値を上げると鈍感になります。
 
**$なでられ時実行イベント [#reddc0cd]
 $なでられ時実行イベント【タブ】なでられ時の反応
設定すると、トーク「*なでられ時の反応」をなでられ反応時に実行します。~


*自動アンカー [#of2abad9]
関連→[[アンカー]]

**$自動アンカー [#a86c4a9b]
 $自動アンカー=有効 
 $自動アンカー=無効 
[[自動アンカー辞書>ファイル構成#h0e1c049]]の有効・無効制御を行います。~
里々Mc149-1以降で使用可。

**$今回は自動アンカー [#qcde4eaf]
 $今回は自動アンカー=有効
 $今回は自動アンカー=無効
$自動アンカー のトーク1回のみ版~
1トーク出力が終わったら、$自動アンカー の設定に戻ります。~
里々Mc149-1以降で使用可。

*自動改行挿入 [#x83b7a68]

**$自動改行挿入 [#xae02c43]
 $自動改行挿入=有効
 $自動改行挿入=無効

辞書は改行したいけれど、出力するスクリプトには改行を入れたくない場合に無効にします。~
$スコープ切り換え時 や $選択肢終了時 にデフォルトで設定されている改行は出力されるので、これも要らない場合は別途設定してください。

**$今回は自動改行挿入 [#je2986ba]
 $今回は自動改行挿入=有効
 $今回は自動改行挿入=無効

$自動改行挿入 のトーク1回のみ版~
1トーク出力が終わったら、$自動改行挿入 の設定に戻ります。~

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS