---
name: ymm4-jikkyou
description: |
  YMM4でゆっくり実況動画を作るスキル。
  ゲームプレイ映像にゆっくりボイスのセリフを合わせて実況動画を自動生成する。
  以下の場面で必ず使うこと：
  - 「ゆっくり実況を作って」「ゲーム実況にセリフをつけて」
  - 「映像を見ながらセリフを考えて」「ボス戦の実況をして」
  - 「マインクラフト・Apex・原神」等ゲーム名が出てきたとき
  - 「霊夢と魔理沙に実況させて」「セリフと映像を合わせて」
  - ゲームプレイ動画・実況・解説コメントに関する操作全般
---

# ゆっくり実況スキル

ゲームプレイ映像を watchで確認しながら、霊夢・魔理沙の掛け合いセリフを
映像ぴったりのタイミングで自動生成・配置するスキル。

---

## 実況動画の構成パターン

```
[オープニング]  霊夢が挨拶・今日の内容紹介
[序盤]          魔理沙が現状・目的を補足説明
[イベント発生]  映像の変化に合わせてリアクション（交互に）
[クライマックス] 盛り上がりに合わせてテンションを上げる
[エンディング]   霊夢が締め・次回予告
```

---

## 標準ワークフロー

### Step 1：映像全体を把握（watchで確認）

```python
# 大まかな流れを掴む（500〜1000fごと）
action="watch", frame=0,     duration_ms=4000, capture_interval_ms=2000
action="watch", frame=500,   duration_ms=4000, capture_interval_ms=2000
action="watch", frame=1500,  duration_ms=4000, capture_interval_ms=2000
action="watch", frame=3000,  duration_ms=4000, capture_interval_ms=2000
action="watch", frame=5000,  duration_ms=4000, capture_interval_ms=2000
```

**把握すべき情報：**
- どんなゲームか・何をしているシーンか
- 大きなイベント（ボス登場・死亡・クリア等）の発生フレーム
- 映像内のテキスト（チャット・ボスのセリフ・UI表示）
- 音声の雰囲気（BGM・SE・静かか騒がしいか）

### Step 2：シーン表を作る

| フレーム | シーン内容 | セリフ担当 |
|---|---|---|
| 0f | オープニング | 霊夢 → 魔理沙 |
| ○○f | ○○イベント | 魔理沙 → 霊夢 |
| ○○f | クライマックス | 霊夢 → 魔理沙 |

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

**キャラクター性：**
- 霊夢：ボケ・実況役・マイペース「〜じゃない？」「なんか〜な気がするわ」「え、そうなの？」
- 魔理沙：ツッコミ・解説役・突っ込み速い「違うだろ！」「それはおかしいぜ！」「〜に決まってるだろ！」

**セリフのテンプレ：**
```
オープニング：
  霊夢「はーい！ゆっくり霊夢よ！今日は[内容]に挑戦するわよ！」
  魔理沙「俺は魔理沙だぜ！[補足説明]！さあ行くぞ！」

イベントリアクション（映像に合わせて）：
  霊夢「[マイペースなコメント・ちょっとズレた感想]」
  魔理沙「[状況の正確な解説・ツッコミ]だぜ！」

クライマックス：
  霊夢「なんか[楽観的・マイペースなコメント]な気がするわ」
  魔理沙「気がするじゃないぜ！[正確な状況]だぞ！集中しろ！」

エンディング：
  霊夢「なんとかなったわね！ゆっくりしていってね！」
  魔理沙「なんとかじゃないぜ！[結果の解説]だぜ！次回もよろしくな！」
```

### Step 4：add_scriptで配置

```python
# シーンの開始フレームを指定して配置（シーンごとに呼ぶ）
action="add_script",
start_frame=○○,   # シーンの映像開始フレーム
fps=30,
chars_per_sec=5,
lines=[
    {"layer": 7, "character": "ゆっくり霊夢",   "text": "セリフ"},
    {"layer": 8, "character": "ゆっくり魔理沙", "text": "セリフ"},
]
# 戻り値のtotal_framesが次のシーンstart_frameの参考に
```

### Step 5：100fごとに映像確認・修正

```python
# seek_captureで1枚ずつ確認
action="seek_capture", frame=0
action="seek_capture", frame=100
# ...

# ズレていたらフレームを修正
action="edit_item", sub_action="property",
layer=8, frame=現在のframe, prop="Frame", value="修正後frame"
```

---

## 被り（重複）チェック

アイテム一覧取得後、同レイヤーで計算：
```
被り = item[n].frame < item[n-1].frame + item[n-1].length
```

修正：前のアイテムの終了フレーム + 10f以上 を次のstart_frameに指定。

---

## 実況セリフのコツ

| シーン | ポイント |
|---|---|
| ボス登場 | HP量・見た目へのリアクションを入れる |
| 攻撃・ダメージ | 映像のエフェクトや数値を読み上げる |
| フェーズ移行 | 「変わった！」と驚きを表現 |
| ピンチ | テンションを上げ、切迫感を出す |
| クリア | 達成感・感謝を込めたセリフ |
| 死亡 | 自虐・笑いを入れる「やられたぜ！」 |

---

## フレーム計算早見表

| 文字数 | フレーム | 時間 |
|---|---|---|
| 15文字 | 90f | 3秒 |
| 20文字 | 120f | 4秒 |
| 30文字 | 180f | 6秒 |
| 40文字 | 240f | 8秒 |

---

## レイヤー構成

```
Layer 0:  動画ファイル
Layer 7:  ゆっくり霊夢（ボケ・マイペース実況）
Layer 8:  ゆっくり魔理沙（ツッコミ・解説）
Layer 9+: 追加キャラ（必要に応じて）
```
