fix(scene): 修复野外与地下城火炬、蜡烛、环境火焰动画及 DT1 瓦片动画并在全地图重烘焙 #398
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题现状
目前城镇(罗格营地等)内的火炬、篝火等已经正确动起来了,但在野外和地下城(洞穴、墓穴、监牢、地下墓穴等)中,火炬、蜡烛、火堆及墙面火炬等仍然处于静止状态。
根本原因
samples/d2-packs中除城镇外的绝大部分地下城和野外地图文件为 9月21日历史数据,未包含 #387 引入的对象动画帧数据(animatedFrames: undefined)。scripts/pack-act-assets.ts在序列化地形与墙面时,将draw.animatedFrames丢弃,导致全游戏所有 DT1 动画瓦片(如墙壁火炬、水流等)丢失多帧索引。Objects.txt中部分环境火堆(FX/FY/FZ)和火盆(BR)在 OP 模式下CycleAnim=0,导致播放 1 轮后永久定格在最后一帧。修复目标与验收标准
scripts/pack-act-assets.ts瓦片动画序列化,保留animatedFramescycleAnim)samples/d2-packsmain分支修复与验证完成汇报 (Fixes #398)
DT1 瓦片动画序列化契约修复:
scripts/pack-act-assets.ts中将多帧动画瓦片完整序列化为[draw.frameIndex, draw.x, draw.y, draw.cellX, draw.cellY, ...draw.animatedFrames],彻底解决了离线打包丢失 DT1 瓦片动画帧的问题。常亮环境火源循环保底与防漂移:
PERSISTENT_ILLUMINATION_TOKENS(火炬TO、蜡烛烛台A1/A2/3O/3o、火堆FX/FY/FZ、火盆BR、骨火BF、火木FL)强制cycleAnim = true,防止播放单次后被定格。baseX/baseY坐标基准,防止帧切换时精灵坐标漂移。全量地图重烘焙:
samples/d2-packs资源包,磁盘验证涵盖 146,247 个动画瓦片与 2,712 个常亮火源对象。自动化验证与合并:
tests/dungeon-wilderness-animations.test.ts(12/12 通过)。main分支(Commitce6fdf1/806bc9c)。