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

❓ 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: "伊丹シゲユキ, 山田花子"
🔸 description の記述例
✅ description は複数行の改行に対応しています :
description: "朝日のまぶしさに目をそむけて"
- 複数行文字列は
|
を使って記述
改行による記述は、そのままプレビューに反映されます。
description: |
朝日のまぶしさに目をそむけて歩く雄太は、
走る自転車を左右に避けながら、
器用に歩いていた。
構成フィールド
フィールド |
日本語訳 |
説明 |
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: カット追加)を活用して、ミスや構文エラーを防ぎましょう。
✅ まとめ
改行は自由ですが、インデントだけは絶対に守ってください!
📄 SpDL 例
title: "風の谷の少年"
authors:
- 伊丹シゲユキ
- 山田太郎
- 佐藤花子
created_at: "2025-05-31"
updated_at: "2025-05-31"
version: "1.0"
description: |
風の谷に住む少年ユウが、不思議な風を追って旅立つ物語。
少年の成長と出会いを描く短編シナリオ。
repository: https://github.com/yourname/yourproject
# これはコメントです。
# YAML形式で書かれたシナリオファイルの例です。
# 各要素はインデントで階層を表現しています。
# 各シーンは、ID、名前、説明、時間帯、SE(効果音)、登場人物、カットなどの情報を持っています。
sequences:
- id: 1
name: "旅立ち"
description: "主人公が村を出て旅に出る"
scenes:
- id: 1
name: "風の気配"
duration: 90
time_of_day: "早朝"
se: "風のささやき"
description: "朝の静かな村。風に導かれるようにユウが目を覚ます。"
actors:
- "ユウ"
- "祖母"
cuts:
- id: 1
camera: "窓辺で目を覚ますユウのアップ"
description: "風に髪がなびく"
se: "風の音"
dialogue:
- speaker: "ユウ"
text: "……この風、どこから?"
description: "目を細めながら"
duration: 8
transition: "カット"
- id: 2
camera: "祖母の部屋"
description: "祖母が静かにユウを見る"
se: ""
dialogue:
- speaker: "祖母"
text: "風の声が聞こえたのかい?"
description: "優しく"
- speaker: "ユウ"
text: "うん、呼ばれてる気がするんだ。"
description: "真剣な表情"
duration: 8
transition: "ディゾルブ"
- id: 2
name: "出発"
duration: 60
time_of_day: "朝"
se: "小鳥のさえずり"
description: "ユウが村を出ていく"
actors:
- "ユウ"
- "祖母"
- "村人たち"
cuts:
- id: 1
camera: "村の門前"
description: "ユウが荷物を背負って立つ"
se: "足音、鳥の声"
dialogue:
- speaker: "ユウ"
text: "行ってくるね、ばあちゃん。"
- speaker: "祖母"
text: "風の導きに従いなさい。"
duration: 7
transition: "フェードアウト"
📜 ライセンス
MIT License
Created with ❤️ by buzzlyhan@gmail.com