Rebuild stage from mossy cavern reference

This commit is contained in:
2026-06-10 11:33:22 +08:00
parent c6d42ff0e0
commit 0cd665198b
9 changed files with 58 additions and 173 deletions
+6 -8
View File
@@ -72,16 +72,14 @@ endbattle_zone
- `tile_index` 当前表示 tileset 第一行的横向 tile 序号。
- `r g b` 是该批 tile 的灰盒 fallback 色,alpha 固定为 `1.0`
当前 `stage_01.map`接入 Mossy Cavern 场景图集
当前 `stage_01.map``asset\Mossy Cavern\参考图\4HibZC.jpg` 重做为一比一参考图复刻版
- 世界尺寸为 `6400 x 720`,当前按现有摄像机逻辑保持 720 高度,主要扩展横向探索长度
- `BackgroundFar` 使用 `mossy_background_decoration.png` 做远景洞穴轮廓
- `BackgroundMid` 使用 `mossy_hills.png` 做中景苔藓轮廓
- `LevelVisual` 使用 `mossy_floating_platforms.png` 做地面和悬空平台。
- `PropsBack` / `PropsFront` 使用苔藓悬挂植物、发光装饰和前景暗部遮挡。
- Battle zone 已扩展为 5 段:入口、下沉洞道、主洞厅、高低平台群和出口段。
- 原参考图尺寸为 `2432 x 832`,等比映射到当前游戏视口高度后,世界尺寸为 `2105 x 720`
- `BackgroundFar` 使用 `reference/mossy_cavern_reference_4hibzc.png` 作为完整场景底图,保证第一轮视觉尽量贴近参考图
- 碰撞只按参考图中的左侧、中央、右侧可站平台建立,不把背景洞壁和装饰当碰撞
- Battle zone 分为 3 段:左侧平台、中央平台、右侧平台。
本轮只接入地图场景视觉,碰撞仍由 `collision` 独立定义;角色、怪物、植物动画和 hazard 玩法暂不接入。
本轮只接入地图场景视觉,碰撞仍由 `collision` 独立定义;角色、怪物、植物动画和 hazard 玩法暂不接入。后续若要把底图拆成可编辑素材层,再逐步用 Mossy 图集替换完整参考底图。
## 下一步
+3 -2
View File
@@ -38,8 +38,9 @@ UI
## 当前素材接入
第一关已经通过 `rect_sprite_src` 接入 Mossy Cavern 场景图集
第一关已经接入 Mossy Cavern 场景资源
- `reference/mossy_cavern_reference_4hibzc.png`
- `background/mossy_background_decoration.png`
- `background/mossy_hills.png`
- `tiles/mossy_floating_platforms.png`
@@ -47,7 +48,7 @@ UI
- `props/mossy_decorations_hazards.png`
- `tiles/mossy_tileset.png`
当前 `stage_01.map` 已按参考图重做为 `6400 x 720`横向大地图。视觉结构包含远景洞穴轮廓、中景苔藓丘、顶部压暗悬挂植物、地面/平台裁切、发光装饰和前景暗部遮挡
当前 `stage_01.map` 已按 `4HibZC.jpg` 重做为 `2105 x 720`一比一参考图复刻版。第一轮用完整 PNG 参考图作为底图,优先保证视觉构图贴近参考图;后续再逐步拆成可编辑的背景、平台和前景装饰层
由于当前 `tile_rect` 只能取 tileset 第一行,正式 Mossy 场景暂时优先使用 `rect_sprite_src` 从大图集裁切。`mossy_tileset.png` 已落位,等后续扩展 tile row/column 或 tile id 后再用于精细铺砖。
+3 -3
View File
@@ -345,9 +345,9 @@ game/assets
```text
map stage_01
world 6400 720
camera 0 0 6400 720
player_spawn 160 496
world 2105 720
camera 0 0 2105 720
player_spawn 1030 346
collision <x> <y> <w> <h>
layer <id> <role> <parallax>
rect_sprite_src <x> <y> <w> <h> <r> <g> <b> <a> <texture> <sx> <sy> <sw> <sh>
@@ -204,7 +204,7 @@ mindmap
- `StageLayerSource` 已接入:每个 `StageRect` 可选择色块占位或 sprite 资源路径,加载失败时回退色块。
- `StageAssetSlots` 已建立:`stage_01` 资源目录和素材来源记录已预留,素材回来后可直接落位。
- `StageProps` 已统一:后景/前景 props 都走 `StageLayer`,前景层在 actor 之后绘制,可用于近景遮挡。
- 第一关宽度已扩展到 6400 像素,并加入 5 个 battle zone 占位与敌人出生点。
- 第一关已按 Mossy Cavern `4HibZC.jpg` 重做为 `2105 x 720` 的参考图复刻版,并加入 3 个 battle zone 占位与敌人出生点。
下一步:
+17 -20
View File
@@ -17,7 +17,7 @@
第一轮场景骨架进度:
- `LevelDefinition` 已扩展世界尺寸、玩家出生点、镜头范围、分层视觉、battle zone 和敌人出生点数据。
- 第一关地图已扩展到 `6400 x 720`,当前主数据在 `game/assets/map/stage_01.map`
- 第一关已按 `asset\Mossy Cavern\参考图\4HibZC.jpg` 重做为 `2105 x 720` 的参考图复刻版,当前主数据在 `game/assets/map/stage_01.map`
- `StageRenderer` 已支持远景、中景、地面/平台、后景 props 分层绘制,当前先用色块占位。
- `DebugOverlay` 已能显示碰撞、玩家框、battle zone、camera lock 范围和 spawn point。
- `WhiteboxScene` 已支持 debug overlay,具体快捷键记录在 `../controls.md`
@@ -35,10 +35,10 @@
第一关不急着做最终题材,先做通用 ACT 测试关:
- 横向推进,当前 Mossy Cavern 测试关宽度为 6400 像素。
- 横向推进,当前 Mossy Cavern 参考图复刻版宽度为 2105 像素。
- 主要视口仍用 1280x720。
- 主路线先保持连续地面,避免当前平台碰撞不支持台阶/斜坡导致卡关;高度变化主要放在悬空平台上,用于测试跳跃和镜头推进。
- 至少预留 5 个战斗区域,每个区域宽度约 780 到 980 像素
- 当前按参考图三块主要站立区域预留 3 个战斗区域。
- 每个战斗区域有明确的入口、站位空间、敌人刷出点和退出方向。
- 保留一个跳跃测试段,用来验证移动手感。
- 保留一个窄平台/边缘段,用来验证镜头和碰撞。
@@ -164,13 +164,11 @@ game/assets/stage/stage_01/
### Step 5:加入战斗区域数据
当前 Mossy Cavern 大地图标出 5 个 battle zone
当前 Mossy Cavern 参考图复刻版标出 3 个 battle zone
- `zone_01_entrance`
- `zone_02_lower_cavern`
- `zone_03_main_hall`
- `zone_04_high_garden`
- `zone_05_exit`
- `zone_01_left_platform`
- `zone_02_center_platform`
- `zone_03_right_platform`
每个区域包含:
@@ -198,12 +196,11 @@ game/assets/stage/stage_01/
第一阶段完成时应该达到:
- 能启动 `Frostbite2DGame`
- 第一关宽度至少 2400 像素
- 玩家可以从起点跑到终点
- 至少 5 个平台/地面碰撞块。
- 至少 2 层背景
- 至少 8装饰物
- 至少 5 个 battle zone debug 标记。
- 第一关世界尺寸为 `2105 x 720`,与 `4HibZC.jpg` 等比映射后的宽高一致
- 参考图底图能完整显示,且横向摄像机不露出世界外黑边
- 至少 4 个平台碰撞块,对齐参考图中的左侧、左下、中央、右侧可站平台
- 当前视觉先以 1 张完整参考底图表达,不再沿用上一版拼接地图
- 至少 3 battle zone debug 标记
- 场景资源路径集中在 `game/assets/stage/stage_01/`
- 文档记录已使用素材来源和授权信息。
@@ -226,8 +223,8 @@ game/assets/stage/stage_01/
1. 已完成:扩展 `LevelDefinition`,加入世界尺寸、玩家出生点、镜头限制、敌人出生点、battle zone 占位数据。
2. 已完成:扩展 `StageRenderer`,支持背景层、地面/平台视觉层、后景 props,第一版继续用色块。
3. 已完成:扩展关卡宽度到 6400 像素,并整理成 5 段 Mossy Cavern 推进节奏
4. 已完成:加入 5 个 battle zone debug 标记,但暂不做刷敌逻辑。
3. 已完成:`4HibZC.jpg` 重建关卡为 `2105 x 720` 的参考图复刻版
4. 已完成:加入 3 个 battle zone debug 标记,但暂不做刷敌逻辑。
5. 已完成:加入 spawn point debug 标记,用于后续接 `EnemyActor`
6. 已完成:补 debug 开关,可切换碰撞、battle zone、spawn point。
@@ -254,7 +251,7 @@ game/assets/stage/stage_01/
- `LevelDefinition` 能表达世界尺寸、玩家出生点、相机边界、碰撞、视觉层、props、battle zone、spawn point。
- `StageRenderer` 能按层绘制远景、中景、地面/平台、后景 props、前景 props,并支持资源图和色块占位两种来源。
- `DebugOverlay` 能显示碰撞、battle zone、camera lock、spawn point、玩家包围盒。
- 关卡灰盒能从起点跑到终点,至少 5 个推进段和 5 个 battle zone 都能被观察到;具体验收流程见 `../scene_acceptance.md`
- 关卡灰盒能观察到参考图中的左侧、中央、右侧三个主要平台区域,至少 3 个 battle zone 都能被观察到;具体验收流程见 `../scene_acceptance.md`
- 素材目录、命名、来源记录文件已经准备好,后续放入 PNG 后只改资源引用。
### 场景骨架实施顺序
@@ -330,6 +327,6 @@ game/assets/stage/stage_01/
2. 已完成:`stage_01.map``BackgroundFar``BackgroundMid``LevelVisual``PropsBack``PropsFront` 已改用 `rect_sprite_src` 裁切 Mossy 图集。
3. 已完成:碰撞、玩家出生点、camera bounds、battle zone 和 spawn point 保持原数据,不把视觉块当碰撞使用。
4. 已完成:贴图 `LevelVisual` 不再叠加灰盒辅助顶线,避免平台素材显示异常。
5. 已完成:参考 `asset\Mossy Cavern\参考图`,把 `stage_01.map` 扩展`6400 x 720`横向大地图,包含入口、下沉洞道、主洞厅、高低平台群和出口 5 个推进段
5. 已完成:参考 `asset\Mossy Cavern\参考图\4HibZC.jpg`,把 `stage_01.map` 重做`2105 x 720`一比一底图复刻版,完全替换上一版 6400 宽地图
暂不接入 `BlueWizard Animations``Plant Animations``Slimes` 和 hazard 玩法。下一步围绕地图编辑器继续微调场景块位置和碰撞对齐。
暂不接入 `BlueWizard Animations``Plant Animations``Slimes` 和 hazard 玩法。下一步围绕地图编辑器继续微调碰撞对齐,并逐步把完整参考底图拆成可编辑图层
+9 -7
View File
@@ -7,14 +7,14 @@
- 场景入口:`WhiteboxScene`
- 关卡数据:`game/assets/map/stage_01.map`
- 关卡 fallback`CreateWhiteboxLevel()` 内置 C++ 白盒数据
- 世界尺寸:`6400 x 720`
- 玩家出生点:`(160, 496)`
- 关卡边界:`0 -> 6400`
- 世界尺寸:`2105 x 720`
- 玩家出生点:`(1030, 346)`
- 关卡边界:`0 -> 2105`
- 视口:`1280 x 720`
- Battle zones`zone_01_entrance``zone_02_lower_cavern``zone_03_main_hall``zone_04_high_garden``zone_05_exit`
- Battle zones`zone_01_left_platform``zone_02_center_platform``zone_03_right_platform`
- 资源槽位:`game/assets/stage/stage_01/`
- 地图资源:`game/assets/map/stage_01.map`
- Tile 数据:`stage_01.map` 中的 `tileset` / `tile_rect`
- 参考底图:`game/assets/stage/stage_01/reference/mossy_cavern_reference_4hibzc.png`
- 全局资源槽位:`game/assets/ASSETS.md`
- UI overlay`GameUiOverlay`,有字体时使用 `TextSprite`,无字体时使用 fallback 色条。
- 音频 cue`stage_01``player_jump``player_attack``battle_zone_enter`
@@ -43,6 +43,7 @@ if (!$p.HasExited) { Stop-Process -Id $p.Id -Force }
Test-Path build\windows\x64\release\assets\map\stage_01.map
Test-Path build\windows\x64\release\assets\ASSETS.md
Test-Path build\windows\x64\release\assets\fonts
Test-Path build\windows\x64\release\assets\stage\stage_01\reference\mossy_cavern_reference_4hibzc.png
```
### Switch
@@ -64,6 +65,7 @@ RomFS 地图检查:
Test-Path build\switch\aarch64\release\switch_game\romfs\assets\map\stage_01.map
Test-Path build\switch\aarch64\release\switch_game\romfs\assets\ASSETS.md
Test-Path build\switch\aarch64\release\switch_game\romfs\assets\fonts
Test-Path build\switch\aarch64\release\switch_game\romfs\assets\stage\stage_01\reference\mossy_cavern_reference_4hibzc.png
```
## 手动跑图检查
@@ -72,7 +74,7 @@ Test-Path build\switch\aarch64\release\switch_game\romfs\assets\fonts
1. 启动 Windows 版 `Frostbite2DGame.exe`
2. 从出生点向右移动,确认摄像机横向跟随且不露出世界外黑边。
3. 依次进入 5 个 battle zone,确认 camera bounds 平滑切换,没有硬切瞬移。
3. 依次进入 3 个 battle zone,确认 camera bounds 平滑切换,没有硬切瞬移。
4. 通过 debug 清场或离开区域解除锁定,确认摄像机恢复全关卡跟随。
5. 使用 debug 分项开关检查:
- 碰撞矩形和场景网格。
@@ -92,7 +94,7 @@ Test-Path build\switch\aarch64\release\switch_game\romfs\assets\fonts
- Switch `Frostbite2DGameSwitch` 构建:通过。
- Switch RomFS:已包含 character、shader、`stage_01` 资源槽位和 `assets/map/stage_01.map`
- 地图加载:`stage_01.map` 已作为第一关主数据源;C++ 白盒数据仅作为 fallback。
- 地图视觉:`stage_01.map`扩展`6400 x 720` 的 Mossy Cavern 大地图,当前主要通过 `rect_sprite_src` 裁切场景图集表达。
- 地图视觉:`stage_01.map`重做`4HibZC.jpg` 的一比一参考图复刻版,当前通过 `reference/mossy_cavern_reference_4hibzc.png` 作为完整底图表达。
- 引擎能力接入:`Animation`/NPK/PNG 角色资源优先级、`UIScene`/`TextSprite` UI、`Sound`/`Music` cue、`SaveSystem` debug 存档已接入。
- 手动跑图:未在本轮执行,等待后续素材/战斗区域进一步接入时复测。