| name | import-scenario |
| description | シナリオライターが書いたテキスト原稿(Googleドキュメント記法)を TyranoScript の .ks ファイルに変換する |
| allowed-tools | Read, Write |
| argument-hint | <原稿ファイルのパス> [出力先.ksファイルパス(省略可)] |
import-scenario
$ARGUMENTS を空白で分割し、第1引数を原稿ファイル、第2引数(省略可)を出力先 .ks ファイルとして扱う。
引数
| 引数 | 必須 | 説明 |
|---|
| 第1引数 | 必須 | 変換する原稿ファイルのパス(例: docs/draft.txt) |
| 第2引数 | 省略可 | 出力先 .ks ファイルのパス(例: data/scenario/scene1.ks) |
第2引数を省略した場合: data/scenario/<原稿ファイル名>.ks に新規作成する。
第2引数を指定した場合: 指定した既存の .ks ファイルを読み込み、ラベルブロック単位で差分を適用する(既存ファイルへの手動追記は保持される)。
キャラクター名対応表
docs/chara_list.md を参照してキャラクター名を変換すること。
変換ルール
コメント行
; で始まる行はそのまま出力する。
キャラクター行(# で始まる行)
docs/chara_list.md の対応表を参照して日本語名を英語 ID に変換する。
対応表にない名前はそのまま出力し、変換レポートに警告として記録する。
入力: #あかね → 出力: #akane
入力: #やまと → 出力: #yamato
入力: #(名前なし)→ 地の文(話者なし)
セリフブロック
# 行の直後に続くテキスト行がセリフブロック。
- 連続するセリフ行は
[r] で繋ぐ
- ブロックの最終行に
[p] を付加する
- セリフブロック内の空行は
[p] で区切り、同キャラの #英語ID を再出力する
例1: 通常
入力:
#あかね
こんにちは!
今日もいい天気ですね。
出力:
#akane
こんにちは![r]今日もいい天気ですね。[p]
例2: セリフ内に空行
入力:
#あかね
こんにちは!
今日もいい天気ですね。
出力:
#akane
こんにちは![p]
#akane
今日もいい天気ですね。[p]
ト書き行(@ で始まる行)
自然言語の演出指示を TyranoScript タグに変換する。内容を解釈して適切なタグを判断すること。
ファイル名が曖昧または省略されている場合は、文脈から妥当な名前を推測して storage に入れ、レポートに「要確認」として記録する。
どう変換すべきか判断できない場合は元テキストをコメントとして残す:
; TODO(要確認): @ <元の指示テキスト>
選択肢(? で始まる行)
? が連続する行を選択肢ブロックとして扱い、[glink] タグに変換する。ブロック末尾に [s] を付加する。
ジャンプ先は -> の後に書く(→ や > も可)。省略または曖昧な場合は文脈から推測してラベル名を決める。どうしても判断できない場合のみ target="*???" とし、レポートに警告を記録する。
入力:
? 助けに行く -> help
? 無視する -> ignore
出力:
[glink text="助けに行く" target="*help"]
[glink text="無視する" target="*ignore"]
[s]
空行
ブロック間の空行はそのまま保持する。
出力
第2引数なし(新規作成)
data/scenario/<原稿ファイル名>.ks に新規作成する(例: docs/draft.txt → data/scenario/draft.ks)。
第2引数あり(既存ファイルを差分更新)
既存ファイルを読み込み、原稿から変換した内容と照合して変更部分を適用する。
既存ファイルにあるラベル行(*xxx)や手動追加のタグはそのまま保持する。
変換方針
曖昧な記述は積極的に解釈して変換する。警告は本当に判断不能な場合のみ。
- ファイル名が不明・省略 → 文脈から推測して変換(推測した旨をレポートに記載)
- キャラクター名が対応表にない → 名前から英語IDを推測して変換(推測した旨をレポートに記載)
- ト書きの意図が不明瞭 → 最も自然なタグを推測して変換
- 選択肢のジャンプ先が不明・省略 → テキストからラベル名を推測して変換
- それでも変換不能なもののみ
; TODO(要確認): として残し、警告に記録する
変換レポート
変換完了後、以下を報告する:
- 保存先ファイルパス
- 推測して変換した箇所(念のため確認を促す)
- 警告(変換不能で
; TODO(要確認): にしたもの)