設定(config.toml)

config.toml はゴーストフォルダに置く設定ファイルです。

キャラクター設定

[characters]
"湊" = "\\0"
"助手" = "\\1"

キャラクター名とSAKURAスクリプトのタグを対応させます。 スクリプト内でキャラクター名を使うとここで設定したタグに変換されます。

OnBoot => {
    // \0こんにちは。 に変換される
    湊: こんにちは。
    // \1よろしく。 に変換される
    助手: よろしく。
}

キー名は引用符で囲む

日本語のキャラクター名は、TOMLの仕様上キー名を "湊" のように引用符で囲む必要があります。 引用符なしの 湊 = "\\0" と書くとパースエラーになり、ゴーストが起動しません。 半角英数字だけの名前(minato = "\\0" など)なら引用符は不要です。

値の "\\0" は、TOMLのエスケープ規則により \\ が \ 1文字を表すため、\0(バックスラッシュと0)になります。 "\0" と1つだけ書くとTOMLの不正なエスケープになり、config.toml の読み込みに失敗してゴーストが起動しません。

未登録のキャラクター名

[characters] に登録していない名前をセリフに使った場合、その名前は \0 として扱われます。 セリフは出ますが、話者が \0 になります。

動作設定

[settings]
talk_interval_secs = 300    # ランダムトークの基本間隔(秒)
talk_jitter_secs = 180      # ランダムトークの揺らぎ(秒)
debug_log = false           # trueにするとminato_load.logなどを生成する
auto_newline = true         # 話者が戻ったときに \n を自動で挿入するか

すべて省略可能です。省略した項目は上に書いたデフォルト値になります。

talk_interval_secs / talk_jitter_secs

ランダムトークの発火間隔を設定します。 実際の間隔は talk_interval_secs から talk_interval_secs + talk_jitter_secs の間でランダムになります。

デフォルトは300〜480秒(5〜8分)です。

debug_log

true にするとゴーストフォルダに minato_load.log(動作ログ)、minato_request.log(直近のSSPからのリクエスト)が生成されます。 台本の log() を使っている場合は、minato_debug.log にもその出力が書かれます。 各ファイルの内容はファイル構成を参照してください。 動作がおかしいときのデバッグに使います。 リリース時は false に戻してください。

auto_newline

デフォルトは true です。 話者が切り替わったあと、すでに喋ったことのある話者に戻るときに、 タグの直後へ \n を自動で挿入します。

OnBoot => {
    湊: こんにちは。
    助手: よろしくお願いします。
    // \0\nそれでは始めましょう。 のように、タグの直後に改行が入る
    湊: それでは始めましょう。
}

false にすると自動の改行は入りません。改行が必要なら \n を自分で書きます。

save.json の system.* が優先される

talk_interval_secs / talk_jitter_secs / debug_log の3つは、 初回起動のときに config.toml の値が使われ、ゴーストの終了時などに save.json の system.talk_interval / system.talk_jitter / system.debug_log として保存されます。

2回目以降の起動では、save.json に保存された値が config.toml より優先されます。 そのため、初回起動後に config.toml の値を書き換えても反映されません。 たとえば config.toml で debug_log = true にしても、save.json の system.debug_log が false なら、ログは出ません。

設定を変更したいときは、次のどちらかを行ってください。

  • ゴーストを終了してから save.json の system の該当項目を書き換える
  • save.json の system を削除する(config.toml の値が使われるようになります)

スクリプトの中から global system.talk_interval = 600 のように書き換えることもでき、 その値も save.json に保存されます。

system 変数の一覧

台本からは、system というマップで湊の設定や情報を参照できます。

キー内容保存
system.talk_intervalランダムトークの基本間隔(秒)save.json に保存される
system.talk_jitterランダムトークの揺らぎ(秒)save.json に保存される
system.debug_logログ出力が有効か(true / false)save.json に保存される
system.ghost_dirゴーストの master フォルダのパス保存されない(起動のたびに設定される)
system.version湊のバージョン(例: "0.1.0")保存されない(起動のたびに設定される)

system.ghost_dir と system.version は情報の参照用です。値を書き換えても、次の起動では元に戻ります。

使われない設定項目

次の2つは config.toml に書いてもエラーにはなりませんが、現在の湊では効果がありません。

項目説明
shuffle_reset読み込まれますが、実装のどこでも使われていません。トークの選択は、直前に選ばれたトークをなるべく避け、全候補が出そろうまで同じものは選ばない仕組みで固定されています
encoding読み込まれますが、実装のどこでも使われていません。スクリプトの文字コードは指定できません(UTF-8で保存してください)

最小構成

[settings] は省略できます。省略した場合はすべてデフォルト値が使われます。

[characters]
"湊" = "\\0"