# 大学物語 — 設計コンセプト

## 1. ゲーム体験の核

> 「東大合格」を Roblox 上で **2〜3 分 / 科目 × 7科目** の短時間体験に圧縮する。

- プロンプト時間ゼロの理念と同じく **プレイヤーが立つだけで意思決定が完了する**。
- ボタンや UI クリックではなく **物理的な移動** が回答 → ライブ感と緊張感を生む。
- 仕切り壁が下りる瞬間が「ジャッジ確定」の演出になる。

## 2. 1ループのタイムテーブル

| t (秒) | フェーズ | 演出 |
|--------|---------|------|
| 0      | 出題開始 | 仕切り壁が透明 / CanCollide=false。問題文 UI 表示 |
| 0〜N   | 読み上げ | VOICEVOX TTS が問題文+選択肢を読む (約 8〜12 秒) |
| N      | 思考開始 | タイマー 10 秒スタート (TimerTick イベント) |
| N+10   | 締切    | 仕切り壁が CanCollide=true、赤く発光 |
| N+11   | 採点    | サーバーが各プレイヤー位置を Raycast で判定 |
| N+12.5 | 次へ    | 結果カラー→リセット |

## 3. 配点ヒートマップ

kyoutsu-test の web 側と同じ **配点比例ブロック** を Roblox UI 上で再現する。

- 7 科目 × 分野ブロック (各 2〜3個)
- ブロックの幅 = 科目内配点比
- ブロックの色 = 自分の正答率 (赤 → 黄 → 緑)
- 1問終わるたびに HeatmapUpdate イベントで滑らかに更新

## 4. 足切りロジック

```
foreach subject in [国語, 数学IA, 数学IIBC, 英語, 物理, 化学, 公共政経]
    score = correct / total
    if score < 0.7:
        gameOver = subject
        break
if gameOver is nil and すべての科目で満点:
    => 東京大学 合格
```

## 5. ロゴ入りアバター

学生服 / セーラー服 / 学生帽 はゲームの世界観を強化する。
- `Outfits.SchoolUniform(char)` — 黒詰襟 + 学生帽
- `Outfits.SailorFuku(char)`    — セーラー服 + 学生帽
- 胸元・帽子前面に SurfaceGui ベースのロゴ (テキスト or 画像)

## 6. 音声生成

VOICEVOX (商用利用可・無料) を採用。

- speaker = 3 (春日部つむぎ) を既定 → 落ち着いた女性声
- スクリプト: `scripts/generate-tts.mjs`
- 出力: `assets/audio/<科目>/<科目>_<連番>.wav`

## 7. 拡張余地

- 全国大学のランクごとの合格条件 (例: 東大=満点 / 京大=85% / MARCH=70%)
- リプレイ機能 (DataStore)
- マルチプレイ対戦 (1問ごとに勝者ボーナス)
- 配点ヒートマップを別フロアの 3D 地形にもマッピング
