トークを書く
キャラクターの会話は簡易トーク記法で書きます。日本語で直感的に記述でき、変換ツールでエンジンが読めるJSONに変換します。
簡易トーク記法とは
キャラクターの動きやセリフを、日本語で直感的に書ける記法です。プログラミングの知識は不要で、1行が1つのコマンドになります。全角コロン(:)で区切ります。
SSPの里々を使ったことがある方なら、雰囲気が近いと感じるかもしれません。日本語で書いて変換ツールに通す流れも似ています。
配置:キャラ:向き:表情:セリフ
具体例:
右:アリス:左向き:笑顔:おはよう!今日もいい天気だね。
左:ボブ:右向き:通常:……そうだな。
ヒント: 省略したフィールドは前の状態を引き継ぎます(空のままでOK)。
// で始まる行はコメントとして無視されます。
トリガー
トークの先頭で、いつ再生されるかの条件を指定します。
【朝】
右:アリス:左向き:笑顔:おはよう!
左:ボブ:右向き:通常:おはよう。
使えるトリガー
| 種類 | 書き方 | 例 |
|---|---|---|
| 時間帯 | 【深夜】【朝】【昼】【午後】【夕方】【夜】 |
時間帯に応じて再生 |
| 曜日 | 【月曜日】【火曜日】 … |
特定の曜日に再生 |
| 月 | 【1月】【12月】 … |
特定の月に再生 |
| 特定日 | 【12/25】【1/1】 |
特定の日付に再生 |
| 条件なし | 【条件なし】 |
いつでも再生される |
| 組み合わせ | 【朝・土曜日】【夜・7/7】 |
時間帯+もう1条件を「・」で繋ぐ |
優先度
条件が具体的なほど優先されます。
- 時間帯×特定日(
【夜・7/7】) - 時間帯×月(
【朝・12月】) - 時間帯×曜日(
【朝・土曜日】) - 特定日(
【7/7】) - 月(
【12月】) - 時間帯(
【朝】)+ 条件なし(【条件なし】)を混合
時間帯トークさえ用意しておけば最低限動きます。
【条件なし】 のトークは時間帯トークと同じプールに入り、ランダムに混ざって再生されます。作品紹介など時間帯を問わない内容に便利です。
便利なコマンド
表情だけ変える(キャラ省略)
既に表示されているキャラの表情を変えるには、キャラ名を省略します。
左::右向き:驚き:えっ、本当に!?
退場
左:退場:::
即・登場(フェードなし)
中:即・アリス:左向き:驚き:
改行を含むセリフ
全角スペースで始まる行は、直前のセリフの続きとして改行結合されます。
左:ボブ:右向き:通常:……朝から元気だな。
まだ眠いのに。
待機(間を空ける)
待機:2000
ミリ秒単位です。2000 = 2秒。無言の間や呼吸の表現に使います。
演出のコツ
- 間を使う — セリフとセリフの間に
待機:1500を挟むと、自然なテンポが生まれます。 - 動いてから話す — 無言で登場 → 待機 → セリフ、の順にすると「来てから話し始めた」感が出ます。
- 向きで感情を表す — そっぽを向く(向きを変えてセリフなし)→ 待機 → 振り向いて話す、で感情表現ができます。
【朝】
右:アリス:左向き:笑顔:おはよう!
待機:2000
中:ボブ:左向き:疲れ:
待機:1500
中::右向き:通常:……朝から元気だな。
待機:2000
右:アリス::笑顔:元気だよ! 今日は何して遊ぶ?
待機:3000
中:即・退場:::
右:アリス::驚き:あっ、行っちゃった……
セリフ内に全角コロン
: を含めても大丈夫です。最初の4つ目以降はすべてセリフとして結合されます。
defineファイル
簡易トーク記法で使う日本語名と、エンジン内部の英語名の対応を define ファイルで定義します。
【キャラクター定義】
アリス: alice
ボブ: bob
【表情定義】
通常: normal
笑顔: smile
驚き: surprised
悲しみ: sad
【向き定義】
左向き: left
右向き: right
【配置定義】
左: left
中: center
右: right
変換ツール
簡易トーク記法で書いたトークは、同梱の変換ツール(tools/converter.html)でJSONに変換します。
- defineファイルを読み込む
- 簡易トーク記法のトークを貼り付ける
- 「変換」ボタンでJSONが出力される
- 出力されたJSONを
worlds/あなたのワールド名/scenario/に保存
