[M14] 可破坏物件美术与剧情任务链 #29

Closed
opened 2026-09-15 06:36:02 +00:00 by troytt · 0 comments
Owner

里程碑 M14 · 重要程度 ★★★☆☆ · 风险 中 · 依赖:M6, M7
完整路线图见 ROADMAP.md


背景

可破坏物件美术

data\\global\\objects\\ 下是 1748 个 DCC + 1461 个 COF,只有 13 个 DC6——
也就是说 D2 画对象用的是和角色一样的 COF + DCC 合成管线。

资源包目前只烘焙了它们的位置与元数据(Objects.txt 的名称 / HP / Token + 选定的美术成员名),
像素留白。

⚠️ 不要把这些文件当 DC6 硬解:头部对不上,解出来是垃圾(已实测验证过)。必须走 DCC 路径。

另一个已知的坑:DS1 对象的 id 不是 Objects.txt 的行号,而是「该 act 对象表」的索引
(见 src/game/object-lookup.ts,数据由 npm run port:object-lookup 从 OpenDiablo2 的表生成)。
identity 映射会把 act1 的喷泉(id 0)读成 Objects.txt 第 0 行 "Expansion"。

剧情

questsFromTable 目前只有 1 个 demo 任务。

改动清单

  • [MODIFY] scripts/pack-act-assets.ts —— 烘焙可破坏物件美术(走 DCC/COF 管线,与 M7 的怪物精灵同一套机制)
  • [MODIFY] src/game/quests.ts —— 真实任务链

验收

  • 罐子 / 箱子 / 火把可破坏,有正确的破坏动画
  • 对象美术在等距深度排序中位置正确(不穿墙、不盖角色)
  • npm run verify:object-lookup 仍然通过(DS1 对象 id → token/mode 与 Objects.txt 交叉核对)
  • 第一幕完整任务链可通关
> **里程碑 M14** · 重要程度 ★★★☆☆ · 风险 中 · 依赖:M6, M7 > 完整路线图见 [`ROADMAP.md`](https://git.projectdiablo2.cn/troytt/diablo2-web/src/branch/main/ROADMAP.md) --- ## 背景 ### 可破坏物件美术 `data\\global\\objects\\` 下是 **1748 个 DCC + 1461 个 COF,只有 13 个 DC6**—— 也就是说 D2 画对象用的是和角色一样的 COF + DCC 合成管线。 资源包目前只烘焙了它们的**位置与元数据**(`Objects.txt` 的名称 / HP / Token + 选定的美术成员名), 像素留白。 > ⚠️ **不要把这些文件当 DC6 硬解**:头部对不上,解出来是垃圾(已实测验证过)。必须走 DCC 路径。 另一个已知的坑:**DS1 对象的 `id` 不是 `Objects.txt` 的行号**,而是「该 act 对象表」的索引 (见 `src/game/object-lookup.ts`,数据由 `npm run port:object-lookup` 从 OpenDiablo2 的表生成)。 identity 映射会把 act1 的喷泉(id 0)读成 `Objects.txt` 第 0 行 "Expansion"。 ### 剧情 `questsFromTable` 目前只有 **1 个 demo 任务**。 ## 改动清单 - **[MODIFY] `scripts/pack-act-assets.ts`** —— 烘焙可破坏物件美术(走 DCC/COF 管线,与 M7 的怪物精灵同一套机制) - **[MODIFY] `src/game/quests.ts`** —— 真实任务链 ## 验收 - [ ] 罐子 / 箱子 / 火把可破坏,有正确的破坏动画 - [ ] 对象美术在等距深度排序中位置正确(不穿墙、不盖角色) - [ ] `npm run verify:object-lookup` 仍然通过(DS1 对象 id → token/mode 与 `Objects.txt` 交叉核对) - [ ] 第一幕完整任务链可通关
troytt added this to the [M14] 可破坏物件美术与剧情任务链 milestone 2026-09-17 07:23:21 +00:00
Sign in to join this conversation.
No Label
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#29
No description provided.