<!-- 此文件为机器翻译（简体中文），原文件为 `Docs/TASK.md`。 -->

# World of Oldcraft — 构建任务书

> 本项目的完整任务书。在第一次行动之前完整通读，并作为规范全程保持打开。
> 工作规则见 `CLAUDE.md`（每次上下文压缩后都要重新阅读）。本文件是"做什么"；`CLAUDE.md` 是"怎么做"。
> 本项目的一切内容均为英文：代码、注释、文档、生成提示词、提交信息、日志。

---

## 0. 使命

构建 **World of Oldcraft**——在 Unity 中、从这个空项目起步，打造一款经典奇幻 MMORPG 的可玩 MVP。

外观定位是**经典 World of Warcraft（2004）的重制版**：同样的风格化手绘世界，同样略带棱角的低多边形造型与英武的体态比例，同样的界面布局，只是更清晰、更漂亮（更锐利的高分辨率贴图、柔和阴影、更好的光照与雾效、随风摆动的植被）。是改良版 WoW，不是 Skyrim：细节密度保持低，造型保持简洁。一个 2005 年玩过 WoW 的玩家必须在五秒之内感到宾至如归。

这是一个非商业粉丝项目。它是一款单机游戏，但玩起来像 MMO；没有服务器，也没有网络。

**重点。** 小而精、可玩的 MVP 胜过庞大的原型。把时间花在观众注视的地方：漂亮的角色选择与角色创建，十二个看起来符合已批准概念图的角色，手感扎实的战斗——每个职业几个带真实特效与音效的技能，以及从起始山谷穿过田野走到石头城的旅途。其余一切都保持最简（§2）。

工作中没有人会回答问题：决定，记录决定，继续。

## 1. MVP 体验

这是观众将观看的路径。每一步都必须可用且好看。

1. **登录界面**：带 World of Oldcraft 标志的动态主视觉图，账号与密码输入框，Login，音乐。
2. **角色选择**：角色站在灯光舞台上，背后是种族主题背景，右侧是角色列表，一个大大的 **Enter World** 按钮。一个服务器：显示其名字，没有服务器列表。
3. **角色创建**：六个种族，男或女；每个种族自带一个职业（§5.1）。少量自定义选项，带 Randomize 的名字输入框，Accept。新角色出现在列表中。
4. **Enter World（进入世界）**：带绘制好的区域图与进度条的加载界面，然后画面溶解进入游戏世界，区域名以金色大字淡入。
5. **起始山谷**：有修道院的森林山谷，与已批准的起点概念图的氛围完全一致。
6. **战斗**：玩家把一只怪物设为目标，按该种族职业的打法与之战斗，带自动攻击与至少两个职业技能。真实的 VFX 与音效：武器轨迹与命中、箭矢、火球与冰霜、闪电与治疗之光、飘动的战斗数字。怪物会有反应并死亡。
7. **升级**：击杀几次后，一道金色光柱环绕玩家升起，伴随胜利号角，等级提升。
8. **探索**：道路离开森林，经石桥过河，穿过开阔的金色田野。徒步穿越区域需 3–5 分钟。田野旁有一片小小的幽魂林地（P1）。
9. **石城**：道路尽头是一座石头小城的大门。玩家走入城中：石头街道、带喷泉的广场、卫兵、一个商贩和镇民。

这条路径上的一切都必须最大程度可玩：操作跟手，没有死胡同，不会掉出世界，没有坏掉的 UI。

## 2. 优先级与范围

**时间花在哪，按顺序：**
1. 12 个角色看起来像已批准的概念图，动画良好并正确握持武器；角色选择与角色创建界面美观。
2. 战斗手感：自动攻击加每职业两个技能，各带 VFX 与音效。
3. 世界路线看起来像已批准的概念图：山谷 → 桥 → 田野 → 石头城门与城内。
4. 前端打磨、HUD、升级。
5. 其余一切。

**不需要（除非每个 P0 和 P1 项都已通过，否则不要做）：** 服务器列表、多区域、副本、组队、交易、拍卖行、天赋、专业、坐骑、完整的物品栏与装备系统、技能书与天赋面板、死亡与跑尸、昼夜循环、天气、复杂任务链。

**验收测试。** 当每个 P0 项在一次真实的 Game View 游玩中通过时，工作即完成。每次通过都要在 `Docs/acceptance/<UTC timestamp>/` 记录一张截图。从 M3 起，每个里程碑之后重新运行完整测试，并把得分记入 `Docs/DEVLOG.md`。

| # | 时刻 | 通过条件 | 级别 |
|---|---|---|---|
| 1 | 登录界面 | 动态主视觉图，World of Oldcraft 标志，账号/密码输入框，Login 按钮，音乐；Login 进入角色选择。 | P0 |
| 2 | 角色选择 | 角色站在灯光舞台上，带种族背景，右侧列表（名字、等级、职业），Enter World、Create、Delete、旋转；角色数据在多次启动之间保留。观感与已批准的 mockup 一样好。 | P0 |
| 3 | 角色创建 | 6 个种族按钮，性别，显示该种族的职业，实时 3D 预览，2 种发型，按种族/性别的发色与肤色，带 Randomize 的名字，Accept/Back，每个种族一个背景。观感与已批准的 mockup 一样好。 | P0 |
| 4 | 角色 | 全部 12 个种族/性别身体看起来像已批准的设定图，共享同一风格，动画正确（没有坏掉的四肢、没有滑步）并正确握持武器。 | P0 |
| 5 | 加载与进入世界 | 带进度条的绘制风格加载界面，溶解进入游戏世界，金色区域文字。 | P0 |
| 6 | 操作与镜头 | 经典方案（§9.1），平滑的第三人称镜头，不穿进地形或墙体。 | P0 |
| 7 | 战斗 | 全部六个职业：选定目标、自动攻击、两个带冷却的技能、资源条、每次攻击与技能的 VFX 与音效、浮动战斗文本、受击反应、怪物死亡。 | P0 |
| 8 | 升级 | 击杀获得经验，金色光柱，胜利号角，等级与属性提升。 | P0 |
| 9 | 世界路线 | 带修道院的森林山谷 → 河流与石桥 → 金色田野 → 石头城门；遵循已批准的概念图与区域地图；徒步 3–5 分钟。 | P0 |
| 10 | 石城 | 带雕像的大门，城墙，可行走的石头街道与带喷泉的广场，至少 4 种 NPC（卫兵、商贩、任务发布人、镇民）。 | P0 |
| 11 | HUD | 玩家与目标头像框，带技能与冷却的动作条，经验条，施法条，圆形小地图，带系统消息的聊天框，姓名板。 | P0 |
| 12 | 性能 | 在主人的机器上、1440p、城内 ≥ 60 FPS。 | P0 |
| 13 | 任务 | 一个带黄色 "!" 的任务发布人，一个击杀任务，羊皮纸对话框，任务追踪器，带 "?" 的交还与奖励。 | P1 |
| 14 | 第三技能 | 每职业的第三个技能，带 VFX 与音效。 | P1 |
| 15 | 幽魂林地 | 田野旁的小型闹鬼区域，有自己的怪物与氛围音。 | P1 |
| 16 | 少量假玩家 | 6–12 个用角色系统构建的其他"玩家"在路上游走、站在城中，头顶有名字。 | P1 |
| 17 | 可进入的旅店 | 城中一栋可以走进去的建筑。 | P1 |
| 18 | 附加 | 拾取窗口与背包，小动物，假玩家聊天，黄昏光照，表情动作。 | P2 |

P0 = 必须。P1 = 应有。P2 = 仅在全部 P0 与 P1 通过之后。

## 3. 项目规则

- **资产。** 生成定义外观的资产（角色、关键建筑、城市、UI 美术、主视觉图、图标），使其与已批准的概念图匹配。其余一切也可以上网寻找**免费资产**（例如来自 Kenney、Quaternius、Poly Haven、OpenGameArt、Freesound 及类似来源的 CC0 或免费授权的模型、贴图、音效与音乐），只要风格契合。每个外部资产都要在 `Docs/LICENSES.md` 记录其来源与授权。Mixamo 片段（`scripts/animation/` 中的精选集）和开放授权字体也可以。绝不使用从任何现有商业游戏中盗取、挖取或提取的文件。
- **API。** 合理生成：一个典型资产 1–3 次尝试；不做批量生成。fal.ai 有硬性上限（§15）。记录每一笔付费调用。
- **名称。** 游戏名为 World of Oldcraft。区域、地点与 NPC 用自创的名字；构建内容中不得出现 Blizzard 的标志或名称。服务商拒绝提示词中的品牌词，所以绝不要把品牌词放进生成提示词。
- **参考。** `Docs/concepts/approved/` 存放主人批准的内容：标志、六张种族设定图、世界概念图、区域地图与界面 mockup。它们是目标，也是生成时的主要输入。`Docs/refs/` 存放 70 张经典与 HD 重制截图；可以把它们作为风格参考传给图像模型用于新的 2D 图像，绝不可作为贴图或直接的 3D 输入。
- **不提问题。** 工作中主人不会回答。决定，把决定与理由写入 `Docs/DECISIONS.md`，继续。
- **全程英文。**

## 4. 美术方向——"经典，重制版"

在任何生成之前，打开 `Docs/concepts/approved/` 与 `Docs/refs/` 中的每张图（见 `Docs/refs/manifest.json`）。参考图中最接近目标的是粉丝用 Unity URP 制作的 Elwynn Forest 改造版（`Docs/refs/hd-target/`）。撰写 `Docs/STYLE_BIBLE.md`（一页，内嵌已批准概念图），并在每个生成提示词中遵循它。

**从经典游戏保留：** 略带棱角的低多边形几何（岩石、悬崖、树干与屋顶上可见的面片是外观的一部分）；粗壮的比例，配大手、宽肩与大武器；光已画进去的手绘贴图；可读的剪影与大色块；温暖的金色阳光、蓝紫色的远景雾霭、深邃的森林绿、金色田野；配陡峭屋顶的木石结构建筑；白石城墙配蓝色屋顶与金色饰边。

**升级：** 更锐利的贴图（角色与主角建筑 2K，道具 1K，同样的手绘感），柔和的实时阴影，SSAO，灯光与魔法上微弱的泛光，暖色调分级，高度雾，比 2004 年稍多一些、随风摆动的植被。已批准的环境概念图展示了合适的细节量；拿不准时，做减法。

**纹章与细节。** 设计原创纹章，并在能让世界显得真实的每个地方使用它：石头城的城徽（例如宝蓝底上的金色雄狮）、城墙与大门上的旗帜、卫兵的罩袍与盾牌、商店与旅店的招牌、角色创建中种族按钮上的徽记，以及 HUD 边框上的小贴花。先生成干净的 2D 图像，再贴到旗帜、招牌和 UI 上。

**避免：** 照片写实、塑料感的 PBR 高光、噪碎的细节、泛泛的"AI 概念图"光泽、资产之间风格混杂、手游感。不符合已批准概念图的资产，必须在进入场景之前修正或替换。

## 5. 种族、职业与自定义

### 5.1 六个种族及其职业

每个种族有**男性和女性**（12 个身体），并使用一个有专属武器的职业。十二个必须看起来属于同一个宇宙：同样的渲染风格，一致的尺度。

| 种族 | 职业 | 武器 | 已批准设定图 |
|---|---|---|---|
| Human 人类 | Warrior 战士 | 双手巨剑 | `v2_human_C_Enano`（`race_human_C` 的角色改版） |
| Dwarf 矮人 | Protector 守护者 | 单手剑与圆盾 | `v2_dwarf_C_Egpt`（`race_dwarf_C` 的角色改版） |
| Night Elf 暗夜精灵 | Ranger 游侠 | 长弓与箭袋 | `v2_nightelf_C_Egpt`（`race_nightelf_C` 的角色改版） |
| Orc 兽人 | 战士 | 单手剑与圆盾 | `race_orc_A` |
| Undead 亡灵 | 法师 | 法杖 | `race_undead_B` |
| Bull-folk 牛头人 | 治疗者 | 图腾法杖 | `v2_bullfolk_B_Egpt`（`race_bullfolk_B` 的角色改版） |

设定图左边是男性、右边是女性；带两对形象的设定图展示的是自定义选项。武器与服装以角色改版为准；脸、毛发与身体以原始的 `race_*` 设定图为准。

身高（1 Unity 单位 = 1 米）：人类 男 1.85 / 女 1.75，矮人 男 1.35 / 女 1.30，暗夜精灵 男 2.15 / 女 2.05，兽人 男 2.05（佝背）/ 女 1.90，亡灵 男 1.80 / 女 1.70，牛头人 男 2.50 / 女 2.30。

### 5.2 自定义（轻量）
- 每个种族/性别 2 种发型（在设定图有两对形象时取自那两对），发色（tint 着色），肤色（着色或贴图替换）。胡须与面部纹样为 P2。
- 首选方案：基础身体，头发与武器作为挂在同一副骨架上的独立网格，使头发可在运行时替换。回退方案：每种发型一个完整网格。记录使用了哪条路线。

### 5.3 职业技能
P0：自动攻击加前两个技能，各带 VFX 与音效。P1：第三个。
- **战士（人类，巨剑）：** 怒气。Mortal Strike 致死打击（沉重的双手重击），Whirlwind 旋风斩（旋转范围攻击），Battle Shout 战争怒吼（P1，增益光环）。
- **守护者（矮人，剑与盾）：** 怒气。Shield Bash 盾击（短暂眩晕，盾牌闪光），Thunder Clap 雷霆一击（带地面冲击波的范围减速），Shield Block 盾牌格挡（P1，盾牌辉光）。
- **战士（兽人，剑与盾）：** 怒气。Heroic Strike 英勇打击（重击），Charge 冲锋（带尘土轨迹的突进），战争怒吼（P1）。
- **游侠（暗夜精灵，弓）：** 专注。Auto Shot 自动射击带可见箭矢；Aimed Shot 瞄准射击（施法条，发光箭），Arcane Shot 奥术射击（瞬发紫色箭），Multi-Shot 多重射击（P1）。
- **法师（亡灵，法杖）：** 法力。Fireball 火球术（施法条、弹道、爆炸），Frost Nova 冰霜新星（定身的冰环），Frostbolt 冰箭术（P1，减速）。
- **治疗者（牛头人，图腾法杖）：** 法力。Lightning Bolt 闪电箭（施法，闪电），Healing Wave 治疗之潮（金绿色光柱，绿色治疗数字），Healing Totem 治疗图腾（P1）。

## 6. 角色生产流水线

在制作其余十一个身体之前，先在**一个**身体（人类男性）上把整条流水线一路跑通到 Unity 之内、动画能够播放。

1. **A-pose 设定图。** 从已批准设定图出发，用图像编辑模型制作严格正面的 A-pose 设定图（外加侧面与背面视图）；把头发与武器抠成独立图像。遵循 `.claude/skills/character-sheet-pipeline/SKILL.md`。
2. **网格。** 单图或多视图转 3D，带贴图，设置 `face_limit`（§15）。首选 Higgsfield Tripo H3.1；fal Tripo P1 作为备选。
3. **Blender 清理。** 缩放与朝向，按预算减面，轴心置于脚底，按距离合并，修复法线，贴图 2K，metallic 置 0。
4. **绑定。** 先尝试 Higgsfield `3d_rigging`（`model_url`、`height_meters`），并检查骨架（命名、层级、rest pose、权重）。若能对应 Mixamo 人形布局就使用它；否则在 Blender 中用来自 Mixamo 供体 FBX 的 `mixamorig:` 骨架绑定（热力权重传递，修复肢体串权，最多 4 个骨骼影响）。逐身体记录所用路线。
5. **动画。** `scripts/animation/mixamo_core_set.json` 列出 90 个精选 Mixamo 片段，且已下载到 `Assets/_Source/Mixamo/`（用 `scripts/animation/download_mixamo.py` 按精确 UUID 下载更多）：通用移动、双手巨剑、剑与盾、弓、魔法、治疗、受击反应、表情。若可行则用 Humanoid avatar 与一个共享 Animator Controller 做重定向；否则在 Blender 中逐身体烘焙。关闭根运动；移动由代码掌控。
6. **验证。** 逐身体：待机、奔跑、职业攻击与施法、从游戏摄像机视角的死亡；手在武器上，无滑步，无拉伸的四肢。截取转盘旋转画面存入进度日志（§18）。

先阅读：`knowledge/mixamo-animation-acquisition.md`、`knowledge/blender-game-animation-lessons.md`、`processes/3d-ai/character-creation.md`、`.claude/skills/blender-game-animation/SKILL.md`。

## 7. 怪物与 NPC

- **怪物（P0）：** 山谷里一个人形怪物族系，田野里一个（例如狗头人风格的矿工和强盗），两者复用人形骨架与动画片段。等级、名字、仇恨、追击、脱战回位（leash）、重生。一匹狼（四足，在 Blender 中绑定，约两小时）为 P1。
- **NPC（P0）：** 复用种族身体配简单服装：城里的卫兵、一个商贩、一个任务发布人、镇民；待机与交谈片段取自 Mixamo 精选集。

## 8. 世界

从已批准的鸟瞰总览 `v2_zone_overview_west_N` 和配套的区域地图 `v2_zonemap_west_Nref`（位于 `Docs/concepts/approved/`）出发：东北方带修道院的起始山谷，河流与桥，中部的金色田野，田野西侧的幽魂林地，西南方的石头城。撰写 `Docs/MAP.md` 记录各区域、道路、怪物营地、NPC 与剧情机位，然后在最终美术之前用灰盒把整张地图搭出来。

- **规模：** 约 1 × 1 公里的地形；主路 800–1200 米，使徒步穿越需 3–5 分钟。边缘用山脉或悬崖封闭。
- **起始山谷**（`v2_start_valley_N`）：绿色橡树林，红顶的白石修道院，带围栏的灯光鹅卵石路，一口水井，第一个怪物营地。
- **河流与桥**（`v2_transition_farmland_N`）：森林在一条河边开阔起来，河上有一座石桥；植被、地面颜色、雾与音乐在此渐变过渡。
- **金色田野**（`v2_biome_farmland_N`）：小麦，风车，红色谷仓，栅栏，稻草人，第二个怪物营地。
- **石城**（大门 `v2_city_human_G`，广场 `v2_city_human_inside_N`，石头街道与运河 `v2_city_stone_inside_N` 和 `v2_city_stone_inside_W`）：白石城墙与塔楼，带两尊大雕像的门楼，金饰蓝顶，石头街道，带喷泉的广场。小，但明确无疑是一座城市。
- **幽魂林地**（`v2_biome_haunted_N`，P1）：田野西侧的小型支线区域，扭曲的树，紫色的雾，墓园与小教堂。
- **尺度：** 门约 2.6 米（风格化放大），路宽约 6 米，轴心在底部，正面为 +Z。
- **地形：** Unity Terrain，最多 8 个绘制层（URP），贴图平铺尺寸恒定，草与花作为随风摆动的细节网格，树为带 LOD 的预制体且只保留细树干的碰撞体，每次地形或静态变更之后重新烘焙 NavMesh。

## 9. 玩法

### 9.1 操作与镜头（经典方案）
W/S 前后移动（倒退更慢），A/D 转身（按住右键时为横移），Q/E 横移，空格跳跃，滚轮缩放，左键拖动环绕镜头，右键拖动转动角色，两键同按则前进。带碰撞的第三人称镜头，平滑跟随。Tab 轮换目标；左键选中；右键攻击或对话；数字键释放技能；Esc 清除目标。

### 9.2 战斗与成长
带挥击计时的自动攻击（游侠为自动射击），带扫光的全局冷却，资源条（怒气积攒与消退；法力与专注回复），读条技能的施法条。浮动战斗文本（白色命中、黄色暴击、绿色治疗）。怪物：仇恨半径、追击、脱战回位、30–60 秒后重生。击杀获得经验；等级 1–5；升级提升生命与伤害。

### 9.3 VFX 与音效（必需）
每次攻击与技能都要有特效和音效：挥击轨迹与命中火花，旋风斩弧线，盾牌闪光，地面冲击波，尘土轨迹，带轨迹与辉光的箭矢，火球术的弹道与爆炸，冰霜新星的冰环，闪电箭，治疗之潮的光柱，升级的金色光柱，进入世界的溶解。用 Particle System 或 VFX Graph 加 Shader Graph（生成或采集贴图）构建 VFX，并池化每一个特效。

## 10. 前端界面

匹配已批准的 mockup（`v2_ui_login_G`、`v2_ui_charcreate_N`，以及 `Docs/concepts/approved/` 中的角色选择 mockup）和 `Docs/refs/frontend/` 中的经典布局。背景、主视觉图、加载界面、边框与按钮的美术需自行生成。
- **登录：** 动态主视觉图（粒子、视差、光效；鸟瞰总览是很好的底图），已批准的标志，账号/密码输入框，Login，小按钮（Credits、Quit），版本字符串。
- **角色选择：** 灯光舞台，种族背景，右侧列表，Enter World，Create，Delete，旋转箭头，服务器名。
- **角色创建：** 经典双列布局的种族按钮，性别，种族的职业图标，带箭头的自定义选项行，简短的种族与职业描述，名字输入框，Randomize，Accept/Back，每个种族一个背景（六个舞台，或一个舞台配可替换的背景）。
- **加载界面：** 一幅区域绘画（由已批准的鸟瞰总览制作），华丽的进度条，一句提示语。
- **制作人员名单：** 工具、模型、字体、带授权的外部资产，以及 "Made with AnkleBreaker MCP" 一行（Unity MCP 授权的要求）。

## 11. HUD

匹配已批准的 HUD mockup（`v2_ui_hud_N`）。只用 uGUI（绝不用 IMGUI），1080p–1440p。玩家头像框带圆形头像、生命与资源；目标头像框；动作条带职业技能、按键绑定与冷却扫光、两个装饰端头、经验条；施法条；带区域名的圆形小地图；承载系统与战斗消息的聊天框；怪物与 NPC 头顶的姓名板；浮动文本；区域文字；升级横幅。任务追踪器与任务对话框为 P1；背包与拾取窗口为 P2。

## 12. 音频

基础但精良：登录主题曲，区域主题曲（田野可以有更轻快的变奏），城市环境音，以及每次攻击与技能、命中、脚步声、UI 点击和升级的音效。使用免费音效库（优先 CC0，记录授权），或用 Higgsfield 或 fal 生成（§15）。干净的循环（ffmpeg `loudnorm` + `acrossfade`）。游戏菜单中有一个音量滑条。

## 13. 假玩家（P1）

少量（6–12 个）用同一套角色系统构建的其他"玩家"：随机种族、性别与发型，头顶是 2004 年 MMO 玩家风格的名字。他们在路上行走，在城里闲站，偶尔与怪物战斗。聊天台词与表情动作为 P2。

## 14. 技术架构

- Unity 6000.5.9f1，URP，Linear 色彩空间，Forward+，只用 Input System，勾选 "Run in Background"。
- 场景：`Boot` → `FrontEnd`（登录、选择、创建）→ `Loading` → `World`。
- 种族、职业、技能、怪物与 NPC 用 ScriptableObject；角色以 JSON 存于 `Application.persistentDataPath`。
- 各系统独立文件夹：CharacterAppearance（玩家、NPC 与假玩家共享）、CharacterCreation、PlayerController + Camera、Targeting、Combat、Skills + VFX、AI、UI、Audio、WorldFX（雾、区域文字）、DevTools（调试控制台、传送、截图工具、黄金路径驱动器）。
- 预算（经典外观是低模，贴近下限）：角色每身体 1.2–2.5 万三角形，怪物 4k–12k，主角建筑 ≤ 3 万，道具 0.3–5k，树 2–8k 并带 LOD；贴图 2K 主角 / 1K 道具 / 512 小道具。GPU instancing，池化的 VFX 与文本。
- 文件夹：`Assets/_Project/{Scripts,Scenes,Prefabs,Materials,Shaders,UI,Audio,VFX}`，`Assets/_Generated/<lane>/<asset_id>/` 配 `asset.json`，`Assets/_External/<source>/` 存放免费资产，`Assets/_Source/Mixamo/`，`Docs/`，`scripts/`。

## 15. 生成工具与预算

**预算：** fal.ai 全项目硬性上限 **100 美元**。Higgsfield 是主生成器（约 10,000 点额度可用）；合理使用，不做批量生成。每笔付费调用记入 `Docs/COSTS.md`。

| 需求 | 首选 | 备选 |
|---|---|---|
| 概念图、主视觉、加载界面、UI 美术、图标、VFX 贴图 | Higgsfield 图像模型（`gpt_image_2_5`、`nano_banana_flash`；用 `higgsfield model list --json` 查看） | fal `openai/gpt-image-2.5/flare/text-to-image`、`fal-ai/nano-banana-pro` |
| 一致性编辑、A-pose 设定图、部件 | Higgsfield GPT Image / Nano Banana 编辑 | fal `fal-ai/nano-banana-pro/edit`（`image_urls`、`resolution: "2K"`）、`openai/gpt-image-2.5/sunburst/edit` |
| 角色、怪物、关键建筑（带贴图的网格） | Higgsfield `tripo_h3_1_multiview_to_3d` / `tripo_h3_1_image_to_3d` 配 `face_limit`（角色 15000–25000，建筑 10000–30000） | fal `tripo3d/p1/image-to-3d`（`texture: true`、`face_limit`） |
| 道具 | fal `tripo3d/p1/image-to-3d`（`face_limit` ≤ 5000）、Higgsfield Tripo，或免费资产包 | |
| 绑定 | Higgsfield `3d_rigging` | 用 `mixamorig:` 供体骨架的 Blender |
| 动画 | Mixamo 精选集（`scripts/animation/`） | 在 Blender 中手工关键帧 |
| 平铺材质 | fal `fal-ai/patina/material`（`tiling_mode: "both"`），或免费贴图（Poly Haven、CC0）再改造成手绘风 | |
| 音乐与音效 | 免费库（优先 CC0）、Higgsfield `sonilo_music`、`mirelo_text_to_audio`、`seed_audio` | fal `google/lyria-3.5`、`fal-ai/elevenlabs/sound-effects/v2` |

调用方式：
- **Higgsfield CLI：** 二进制名为 `higgsfield`（绝不用 `hf`，那可能是 HuggingFace CLI）。用 `higgsfield model get <job_type> --json` 检查；用 `higgsfield generate create <job_type> --<param> <value> --image-references ./in.png --wait --wait-timeout 20m` 提交。保留任务 ID；等待超时不算失败：用 `higgsfield generate wait <id>` 恢复。见 `processes/3d-ai/higgsfield-cli.md`。
- **Higgsfield MCP**（`bl_*` 工具）直接在 Blender 内生成；在它改动任何东西之前先加载 `bl_get_skill('blender-scene')`。
- **fal.ai：** `python .claude/skills/fal-ai-generation/scripts/fal_job.py --env .env submit --endpoint <E> --input <in.json> --out <dir>`，然后 `status --job` / `result --job`；输入图片用 `upload --file`；`--dry-run` 免费校验。批量图像：`python scripts/image-gen/generate.py prompts.json --model <m> --aspect-ratio 16:9`。
- **网格输入：** 角色需要严格正面的 A-pose 设定图（正面、侧面、背面）；道具需要略高于水平视角的 3/4 视图，置于纯净的深色背景上。
- **避免：** Hunyuan 3.1 Pro（约 150 万三角形）、Meshy retexture、TRELLIS-2。

## 16. 工作计划（里程碑与门禁）

| 里程碑 | 内容 | 门禁 |
|---|---|---|
| **M0 起步** | 通读一切；撰写 `PLAN.md`、`TODO.md`、`STYLE_BIBLE.md`、`MAP.md`；git；每个工具一次便宜的冒烟调用；放置剧情机位并搭建截图工具（§18）。 | 每个工具都有响应；计划已提交。 |
| **M1 灰盒循环** | §1 的完整路径用占位资源：登录、选择、创建、加载、带真实操作的胶囊体玩家、灰盒山谷、桥、田野与城市，一个占位怪物，HUD 骨架。 | 黄金路径驱动器端到端通过。从此刻起游戏保持可玩。 |
| **M2 角色** | 人类男性走完整流水线进入游戏；随后全部 12 个身体配发型选项与武器；角色选择与创建界面用最终美术。 | 评审者把全部 12 个与已批准设定图对比；选择与创建界面与 mockup 对比。 |
| **M3 战斗** | 全部六个职业的自动攻击与两个技能，配 VFX 与音效；怪物；升级。 | 验收测试第 1 轮。 |
| **M4 世界** | 地形、植被、山谷、桥、田野、石头城门与城内；雾、后处理、天空、水；城中的 NPC。 | 验收测试第 2 轮；全部 P0 通过或在进行中。 |
| **M5 打磨** | 修复评审中最弱的部分、镜头与动画手感、音频整备、性能。 | 全部 P0 通过。 |
| **M6 展示** | Windows 构建、黄金路径录像、过场巡游、进度延时与分镜、`REPORT.md`。 | 交付物（§19）完成。 |

M6 之后，按价值依次推进 P1（任务、第三技能、幽魂林地、少量假玩家、可进入的旅店），然后是 P2。持续运行验收测试。结束会话的是主人，不是你。

## 17. 验证（你不给自己的作品打分）

- 游戏内的**黄金路径驱动器**（DevTools）：登录 → 用随机名字创建角色 → 进入世界 → 用职业技能战斗并击杀怪物 → 升级 → 沿路过桥穿田野走到城门 → 进入城市。它作为 Play Mode 夹具运行，在固定的 checkpoint 把 Game View 截图存入 `Docs/goldpath/<timestamp>/`，并写出 `checks.json` 记录世界空间的结果（HP/XP/等级变化、玩家位置、FPS、控制台错误数）。用一次简短的 MCP 调用启动，然后轮询结果文件。
- **评审 agent：** 每个里程碑之后，一个全新上下文的评审者把最新的 Game View 截图与已批准概念图对比，就"看起来像已批准概念图与经典 WoW 的重制版"给每个领域打 1–10 分，并列出最严重的三个缺陷。先修缺陷，再加功能。
- 截图和数字各自能抓到对方漏掉的 bug：每个门禁两者都要。每个门禁都要求零控制台错误、零缺失引用。

## 18. 进度记录（强制，是工作的一部分）

主人将讲述这款游戏是如何做出来的。全程用截图记录整个流程，使其能作为延时影像回放。

- **剧情机位与状态。** 在 M0，为每个功能定义一台固定的"剧情摄像机"（固定机位、角度、光照、1920×1080）或一个固定的 UI 状态：登录、角色选择、角色创建（固定种族/性别以便迭代对比）、每个种族的身体（转盘）、山谷、桥、田野、城门、城市广场、带 HUD 的战斗、VFX 测试台。此后绝不移动它们；新功能出现时再新增。
- **截图规则。** 在做某个功能期间，**每次重大改动之后、且至少每 5 分钟真实时间**，截取你正在做的那个功能的剧情摄像机画面。存到 `Docs/progress/<feature>/<UTC yyyymmdd-HHMMSS>__<short-caption>.png`，并在 `Docs/progress/log.jsonl` 追加一行（`time`、`feature`、`caption`、`file`、`commit`）。
- **资产。** 每个角色，截取每个流水线阶段：概念图 → A-pose 设定图 → 原始网格 → 清理后 → 绑定后 → 动画后 → 游戏内。
- **世界延时机位。** 4 台固定的地图上空广角机位，每 15 分钟截取一次（`Docs/progress/_world/<cam>/`）。
- **汇编。** 每个里程碑结束时，用 `python scripts/capture/make_timelapse.py --all` 生成分功能的延时影像与带说明的分镜，最后用 `--master` 生成总"制作纪录"。
- **工具先行。** 在 M0，构建一个截图工具（`Tools/Capture`），一次调用即可渲染剧情摄像机或把 Game View 截到正确的文件夹。
- 保留被否决的生成与失败的尝试：它们是故事的一部分。

## 19. 交付物

1. 会讲故事的 git 历史（每个里程碑一次提交，且至少每小时一次，标签 `m0` … `m6`）。
2. `Builds/` 中一个能运行 MVP 的 Windows 构建。
3. `Docs/REPORT.md`，从 M0 开始撰写并在每个门禁更新：哪些能用（implemented / agent-verified / pending owner review），哪些不能，数字（墙钟时间、实际工作时间、fal.ai 花费、Higgsfield 额度、生成资产与外部资产的数量、代码行数、提交数），十个最棘手的问题及其解法。Token 用量取自 Claude Code 会话日志（`~/.claude/projects/<project-slug>/*.jsonl`，每个 `message.id` 只计一次）；没有记录的一律写"未记录"，绝不写零。
4. `Docs/progress/`，内含全部截图、分功能延时影像、分镜与总延时影像。
5. 黄金路径录像和一段过场巡游（山谷 → 桥 → 田野 → 城门 → 城市广场）的视频。
6. `Docs/COSTS.md` 与 `Docs/LICENSES.md`。
