---
name: ymm4-story
description: |
  YMM4でゆっくり音声を使ったストーリー・物語動画を作るスキル。
  霊夢・魔理沙・その他キャラクターが登場する短編小説・ドラマ・ファンタジー・
  感動系・ホラー・ミステリー等の物語を自動生成する。
  以下の場面で必ず使うこと：
  - 「ゆっくりでストーリーを作って」「物語動画にして」「短編ドラマを作って」
  - 「感動系のゆっくりを作って」「ホラーストーリーにして」「ミステリーを作って」
  - 「霊夢と魔理沙が冒険する話」「ファンタジー系の動画」
  - 「台本から動画を作って」「小説をゆっくり動画にして」
  - 複数キャラが登場する物語・ドラマ・朗読系の動画全般
---

# ゆっくりストーリースキル

霊夢・魔理沙・ナレーターを使って物語を動画化するスキル。
「解説」「実況」「茶番」ではなく、**物語の流れと感情表現**が核心。

---

## キャラクター性（ストーリー内での役割）

| キャラ | ストーリー内の立ち位置 | 口調の特徴 |
|---|---|---|
| **霊夢** | 主人公・感情表現が豊か | 素直・感情的「〜だわ」「そんな…」「絶対に〜する！」 |
| **魔理沙** | 相棒・行動派・熱血 | 前向き・力強い「〜するぜ！」「任せとけ！」「諦めないぞ！」 |
| **ナレーター** | 地の文・状況描写 | 落ち着いた語り口「〜だった。」「〜が起きた。」「〜の時、——」 |
| **その他キャラ** | 敵・助言者・第三者等 | キャラに合わせて自由に設定 |

> ⚠️ **魔理沙の一人称は「私」。「俺」「僕」は使わないこと。**

---

## ストーリー動画の構成パターン

### 三幕構成（基本）
```
[第一幕：日常・発端]
  → ナレーター：世界観・状況の説明
  → 霊夢・魔理沙：日常会話・現状の提示
  → 事件・きっかけが起きる

[第二幕：展開・葛藤]
  → 問題に立ち向かう
  → 障害・困難・感情の起伏
  → どん底・クライマックス前の危機

[第三幕：クライマックス・解決]
  → 最大の山場（感情・行動のピーク）
  → 解決・結末
  → ナレーター：エピローグ
```

### ジャンル別構成

**感動系：**
```
日常 → 別れ・喪失の予感 → 試練 → 決意 → 再会 or 回想 → 感動の結末
```

**ホラー系：**
```
日常 → 不気味な予兆 → 恐怖の正体に近づく → パニック → 脱出 or 絶望のオチ
```

**ファンタジー・冒険系：**
```
旅立ち → 仲間・敵との出会い → 試練・成長 → 最終決戦 → 勝利・帰還
```

**ミステリー系：**
```
謎の提示 → 調査・手がかり収集 → 疑惑・どんでん返し → 真相解明 → オチ
```

---

## 標準ワークフロー

### Step 1：ストーリー設計

台本を作る前に**プロット**を決める。

```
ジャンル：[感動/ホラー/ファンタジー/ミステリー/日常/その他]
テーマ：[友情/勇気/孤独/謎/恐怖/成長/etc.]
登場キャラ：[霊夢・魔理沙・ナレーター・その他(名前と役割)]
あらすじ（3行）：
  ①発端：
  ②葛藤：
  ③結末：
想定尺：[短編:3〜5分 / 中編:5〜10分 / 長編:10分以上]
```

### Step 2：シーン分け

プロットをシーンに分割する。

```
シーン1：[場面・状況] → [担当キャラ] → [感情・トーン]
シーン2：[場面・状況] → [担当キャラ] → [感情・トーン]
...
```

**1シーンの目安：**
- 短い場面：150〜300f（5〜10秒）
- 会話シーン：300〜600f（10〜20秒）
- 重要シーン：600〜900f（20〜30秒）

### Step 3：台本設計のルール

**ナレーターの使い方：**
```python
# ナレーターはlayer=6に配置（霊夢・魔理沙より下）
{"layer": 6, "character": "ゆっくりナレーター", "text": "地の文のセリフ"}
# または読み上げキャラを別途設定
```

**感情表現のテクニック：**
```
通常会話：  chars_per_sec=5（標準）
緊迫シーン：chars_per_sec=6（早口・焦り）
感動シーン：chars_per_sec=4（ゆっくり・しみじみ）
ナレーション：chars_per_sec=4（落ち着いた語り）
```

**間（ま）の使い方：**
```
通常会話の間：10〜20f
感情的なセリフ後：30〜60f（余韻）
ナレーションと会話の切り替え：20〜40f
シーン転換：60〜120f（大きく空ける）
```

**セリフのテンプレ：**
```
ナレーション（地の文）：
  「〜な場所に、〜がいた。」
  「〜のことを、霊夢は知らなかった。」
  「その日——すべてが変わった。」

霊夢（感情表現豊か）：
  驚き「え……嘘でしょ？」
  決意「絶対に〜してみせるわ！」
  悲しみ「そんな……どうして……」
  喜び「よかった……本当によかった……！」

魔理沙（行動派・熱血）：
  励まし「諦めるな！私が一緒にいるぜ！」
  決意「任せとけ！必ずやってみせるぜ！」
  驚き「なんだと……！そんなことがあるのか！」
  感動「……お前って、本当にすごいな。」
```

### Step 4：add_scriptでシーンごとに配置

```python
# シーン1：ナレーション（地の文）
action="add_script", start_frame=0, fps=30, chars_per_sec=4,
lines=[
    {"layer": 6, "character": "ゆっくりナレーター", "text": "ある日のこと——"},
]

# シーン1：会話（ナレーション終了後 30f空けて）
action="add_script", start_frame=ナレ終了f+30, fps=30, chars_per_sec=5,
lines=[
    {"layer": 7, "character": "ゆっくり霊夢",   "text": "霊夢のセリフ"},
    {"layer": 8, "character": "ゆっくり魔理沙", "text": "魔理沙のセリフ"},
]

# シーン転換（前シーン終了後 90f空けて次シーンへ）
action="add_script", start_frame=前シーン終了f+90, fps=30, chars_per_sec=4,
lines=[
    {"layer": 6, "character": "ゆっくりナレーター", "text": "——そして翌日。"},
]
```

### Step 5：映像・音声の確認

```python
# 各シーンの頭でseek_captureして雰囲気を確認
action="seek_capture", frame=シーン開始f

# watchで音声と映像の雰囲気を確認
action="watch", frame=0, duration_ms=8000, capture_interval_ms=8000
```

---

## ストーリーセリフのコツ

| 状況 | ポイント |
|---|---|
| 感情が高まるシーン | 短いセリフを連続させる（1文15文字以下） |
| ナレーション | 「——」「……」を使って余韻を演出 |
| 回想・伏線 | ナレーターが静かに語る |
| クライマックス | chars_per_sec=6で緊迫感を出す |
| 感動・エンディング | chars_per_sec=4でゆっくり締める |
| 対話シーン | 2人のセリフ間を5〜10fに詰めて自然な会話に |

---

## フレーム計算早見表

| chars/sec | 文字数 | フレーム | 用途 |
|---|---|---|---|
| 4 | 20文字 | 150f | ナレーション・感動シーン |
| 4 | 30文字 | 225f | ナレーション・感動シーン |
| 5 | 20文字 | 120f | 通常会話 |
| 5 | 30文字 | 180f | 通常会話 |
| 6 | 15文字 | 75f | 緊迫・アクション |
| 6 | 20文字 | 100f | 緊迫・アクション |

---

## レイヤー構成

```
Layer 0:  動画・背景ファイル
Layer 6:  ナレーター（地の文）
Layer 7:  ゆっくり霊夢（主人公・感情表現）
Layer 8:  ゆっくり魔理沙（相棒・行動派）
Layer 9:  その他キャラA（敵・助言者等）
Layer 10: その他キャラB
```
