バージョン: 0.9.8
映画・アニメ・ボイスドラマ・その他なんでも、シナリオ作成支援VSCode拡張機能
シーケンス → シーン → カット の階層構造で、プロフェッショナルなシナリオ管理が可能になります。
SpDL(Screenplay Description Language:シナリオ記述言語)は、映画・アニメ・ボイスドラマなどのシナリオを構造化しつつ、人間がプレーンテキストで直感的に記述できることを目的とした記述言語です。
ScreenPlay Formater は SpDLをベースとしています。
🎯要「YAML by Red Hat」のインストール
本拡張機能に加えて「YAML by Red Hat」のインストールを行ってだい。
「YAML by Red Hat」は、YAMLのエラーチェックやコードハイライト、補完機能を持ちます。
🚀 使い方の流れ
Ctrl + Shift + P
でコマンドパレットを開く
- または、マウス右ボタンでコンテクストメニューを開く
📋 コマンド一覧
✅ YAML構文+構造チェックについて(sp:validateYaml)
sp: YAML構文+構造チェック
コマンドでは、以下の2段階の検証が実行されます。
🔹 1. YAML構文チェック(基本文法)
YAML形式として正しいかどうかを確認します。
例:インデントミス、文字列の閉じ忘れ、コロンやリストの誤記など
- エラーがある場合:
❌ YAML構文エラー: ...
🔹 2. SpDL構造チェック(シナリオ構造)
SpDL仕様に基づき、次のような構造が適切かを検証します:
sequences:
- scenes:
- cuts:
- エラーがある場合:
⚠️ SpDL構造エラー: sequences > scenes > cuts の構造が正しいか確認してください。
✅ 両方正しい場合:
✅ YAML構文 + SpDL構造ともに正常です。
🔸注意
- YAML構文エラーがある場合、構造チェックには進まず停止します。
- Webプレビューで出るエラーの大半はこの構造チェックで事前検出できます。
- このコマンドは YAMLファイルの右クリックメニューからも実行できます。
コマンド |
sp:新規ファイル |
sp:テンプレート追加 |
sp:シーケンス追加 |
sp:シーン追加 |
sp:カット追加 |
sp:pプレビュー |
sp:総尺カウント(範囲指定対応) |
sp:セリフ文字数カウント(範囲指定対応) |
sp:HTML書き出し |
🎥 デモ動画

❓ FAQ
- Q: ファイル名は?
- A:
xxxx.sp.yml
形式で保存してください。
📝 主要フィールド一覧(完全版)
フィールド |
日本語訳 |
説明 |
title |
作品タイトル |
シナリオ全体のタイトル |
authors |
著者リスト |
シナリオの著者名(複数可) |
created_at |
作成日 |
シナリオが作成された日付(ISO形式) |
updated_at |
更新日 |
最終更新された日付(ISO形式) |
version |
バージョン |
シナリオのバージョン番号 |
description |
説明 |
流れ、場面、カットの簡単な説明 |
repository |
リポジトリURL |
最新版が格納されているGitHub等のURL |
sequences |
シーケンス |
物語の流れの単位、複数シーンをまとめる |
name |
名前 |
シーケンス名・シーン名・カット名に使用 |
scenes |
シーンリスト |
シーケンス内に含まれる場面のリスト |
id |
ID |
一意にシーンやカットを識別する番号 |
duration |
時間(秒) |
シーンまたはカットの再生時間(秒単位、null可) |
time_of_day |
時間帯 |
朝、昼、夕方、夜など場面の時間設定 |
se |
サウンドエフェクト |
効果音(例:BGM、環境音) |
actors |
登場人物リスト |
シーン内で登場するキャラクター一覧 |
cuts |
カットリスト |
シーン内を構成するショットのリスト |
camera |
カメラ設定 |
ショットにおけるカメラのアングル・動き |
action |
動作 |
キャラクターやカメラの動作説明 |
dialogue |
セリフリスト |
セリフの配列(speakerとtextを持つ) |
speaker |
セリフの話者 |
dialogue内でセリフを話すキャラクター |
text |
セリフ本文 |
実際に話されるセリフ内容 |
transition |
トランジション |
カット間の映像切替効果(フェード、オーバーラップなど) |
シナリオ構文フィールド+記述ルール)
基本情報フィールド
フィールド |
日本語訳 |
説明 |
title |
作品タイトル |
シナリオ全体のタイトル |
authors |
著者リスト |
著者名(複数可、リスト形式) |
created_at |
作成日 |
ISO形式日付(例: 2025-05-14) |
updated_at |
更新日 |
最終更新日(任意) |
version |
バージョン |
バージョン番号(例: "1.0") |
description |
説明 |
シナリオの概要説明 |
repository |
リポジトリURL |
GitHubなどのURL |
🔸 authors の記述例
✅ 正しい例:
authors:
- "伊丹シゲユキ"
- "山田花子"
❌ 間違い例(カンマ区切り):
authors: "伊丹シゲユキ, 山田花子"
構成フィールド
フィールド |
日本語訳 |
説明 |
sequences |
シーケンス |
複数のシーンをまとめる単位(リスト) |
name |
名前 |
各構成要素の名前(シーケンス・シーン・カットなど) |
scenes |
シーンリスト |
シーケンスに含まれる場面群(リスト) |
id |
ID |
一意に識別する数値 |
duration |
時間(秒) |
シーンやカットの長さ(null可) |
time_of_day |
時間帯 |
朝・昼・夕方・夜 など |
se |
効果音 |
BGM・環境音など |
actors |
登場人物 |
シーンに登場する人物(リスト) |
🔸 sequences の記述例
✅ 正しい例:
sequences:
- id: 1
name: "第1シーン"
scenes:
- id: 1
name: "冒頭の場面"
❌ 間違い例(インデント不正):
sequences:
- id: 1
name: "第1シーン" # ← 'name' のインデントがズレている
シーン・カット・セリフ関連
フィールド |
日本語訳 |
説明 |
cuts |
カットリスト |
シーンを構成するショット群 |
camera |
カメラ設定 |
カメラの種類、アングル、動きなど |
action |
動作 |
キャラクターや背景の動作説明 |
dialogue |
セリフリスト |
セリフのリスト(配列) |
speaker |
セリフの話者 |
各セリフの話し手 |
text |
セリフ本文 |
話される内容(複数行も可) |
transition |
トランジション |
カット間の映像切替(例: フェード) |
🔸 dialogue の記述例(複数行セリフを含む)
✅ 正しい例(複数行セリフは |
を使う):
dialogue:
- speaker: "吉"
text: |
あの……
すみません、降ります。
- speaker: "玉川"
text: “あ、はい。すみません。(不満そうに)”
❌ 間違い例(1行にまとめる、改行が表現されない):
dialogue:
- speaker: "吉"
text: "あの…… すみません、降ります。" # ← セリフが改行されない
💡 注意事項
- インデントはスペース2つ or 4つで統一(タブはNG)
- テンプレートはスペースでインデントしているので、VSCodeではタブを押してもスペースに変換される
- リストは必ず
-
を使って明示
- 複数行文字列は
|
を使って記述
- YAML構文として通っても、SpDL構造として不正だとWebプレビューでエラーになる
dialogue
や actors
など、期待される型(配列・マッピング)に注意
🔸 dialogue を空にする場合
✅ 正しい例(セリフがない場合でも構文を維持):
dialogue: []
❌ 間違い例(文字列にしてしまう/不正な形式):
dialogue:
dialogue: "なし" # ← NG(配列ではない)
📌大事なこと
sp.yamlでは「統一されたインデント」「正確なキーと値の記述」「可読性を意識した空行」が特に重要です。
必ず拡張機能コマンド(sp: シーン追加、sp: カット追加)を活用して、ミスや構文エラーを防ぎましょう。
✅ まとめ
改行は自由ですが、インデントだけは絶対に守ってください!
title: 春の日の屋上
authors:
- 伊丹シゲユキ
- 山田太郎
- 佐藤花子
created_at: '2025-04-27'
updated_at: '2027-03-02'
version: '1.0'
description: |
春の日、卒業を控えた生徒の物語
友情、恋愛、夢を追いかける姿を描く。
それぞれの思いが交差する瞬間を描く。
# これはコメントです。
# YAML形式で書かれたシナリオファイルの例です。
# 各要素はインデントで階層を表現しています。
# 各シーンは、ID、名前、説明、時間帯、SE(効果音)、登場人物、カットなどの情報を持っています。
repository: https://github.com/yourname/yourproject
sequences:
- id: 1
name: 春の出会い
description: 新学期、新しいクラスメイトとの出会いと始まり
scenes:
- id: 1
name: 始業式の朝
duration: null
time_of_day: 朝
se: チャイムの音、教室のざわめき
description: 新しい教室。生徒たちがざわざわと席に着く。
actors:
- 結城 翼(主人公)
- 高橋 光(親友)
- 椎名 紗良(ヒロイン)
cuts:
- id: 1
camera: 教室全体のロングショット
description: 窓から朝日が差し込み、埃がきらめく教室。
se: null
dialogue: []
duration: 4
transition: フェードイン
- id: 2
camera: 翼と光の中距離ショット
description: 隣同士に座る翼と光。どこか落ち着かない様子。
se: null
dialogue:
- speaker: 光
description: 机に肘をつきながら
text: また同じクラスかよ、俺たち。
- speaker: 翼
description: 小さく笑いながら
text: まあ、楽でいいけどな。
duration: 6
transition: カット
- id: 2
name: 静かな放課後
description: 交差する想い、誰にも見せない本音
scenes:
- id: 1
name: 放課後の図書室
duration: null
time_of_day: 夕方
se: ページをめくる音、遠くのチャイム
description: 陽が傾く図書室。静かに本を読む生徒たち。
actors:
- 結城 翼
- 椎名 紗良
cuts:
- id: 1
camera: 図書室の俯瞰ショット
description: 棚の間にぽつんと座る紗良。光の粒が漂っている。
se: null
dialogue: []
duration: 5
transition: カット
- id: 2
name: 校庭
duration: null
time_of_day: 夕方
se: null
description: サッカー部が練習を続ける
actors:
- 結城 翼
- 椎名 紗良
cuts:
- id: 1
camera: 翼の視線からのショット
description: 本棚越しに紗良を見つめる翼。
se: null
dialogue: []
duration: 4
transition: カット
- id: 2
camera: 翼と紗良のバストショット
description: 翼が本を手に紗良に近づく。少しだけためらいながら。
se: null
dialogue:
- speaker: 翼
description: 声をひそめて
text: この本、面白いって聞いた。
- speaker: 紗良
description: はにかみながら
text: …うん、すごくいいよ。
duration: 7
transition: フェードアウト
- id: 3
name: 未来への一歩
description: 進路発表、夢へ向かう決意
scenes:
- id: 1
name: 体育館での発表
duration: null
time_of_day: 昼
se: 生徒たちのざわめき、マイクのハウリング音
description: 進路発表会。体育館に集まる生徒たち。
actors:
- 結城 翼
- 椎名 紗良
- 高橋 光
- 教師たち
cuts:
- id: 1
camera: 体育館全体のロングショット
description: 生徒たちが整列して座っている。ざわめきが次第に静まる。
se: null
dialogue: []
duration: 5
transition: フェードイン
- id: 2
camera: ステージ上の教師バストアップ
description: マイクを手に進路発表の説明をする教師。
se: null
dialogue: []
duration: 4
transition: カット
- id: 3
camera: 翼のクローズアップ
description: 拳を握りしめ、まっすぐ前を見つめる翼。
se: null
dialogue:
- speaker: 翼
description: 心の中で強く
text: 絶対に夢を叶える…!
duration: 6
transition: フェードアウト
📜 ライセンス
MIT License
Created with ❤️ by buzzlyhan@gmail.com