第一章美术 / 音频资源清单(Chapter 1 Asset Manifest)
本清单对应 task-item.md 中的 10.1 集成像素美术与音频资源。
真正的 PNG / WAV / MP3 二进制文件需由美术、音效组按下表规格制作并放入对应目录。
当前状态:
- PNG 资源:已用 Python 程序化绘制(
scripts/gen_pixel_art_assets.py),按 ASSETS.md 规格生成像素美术占位,可直接进游戏看到角色/敌人/场景/剧情插画,但仅为过渡素材,正式版仍需美术替换。
- WAV / MP3 资源:仍用
scripts/gen_placeholder_assets.js 生成的静音占位,便于工程联调。
两个脚本都是幂等的,可随时重跑。程序化 PNG 脚本会覆盖占位脚本的 1×1 纯色 PNG。
1. 主角 · 3 形态(参考 images/影.png)
| 资源路径 |
形态 |
尺寸 |
帧数 |
备注 |
textures/characters/kage_red.png |
红衣(基础) |
16×32 |
idle 2 / run 4 / jump 2 / attack 3 |
初始形态,一击即死 |
textures/characters/kage_green.png |
绿衣(+1 水晶玉) |
16×32 |
idle 2 / run 4 / jump 2 / attack 3 |
配色采用青叶主题 |
textures/characters/kage_yellow.png |
黄衣(+2 水晶玉) |
16×32 |
idle 2 / run 4 / jump 2 / attack 3 |
移速提升 |
每张 PNG 单独调色板 ≤ 16 色,三形态共用轮廓(便于换色表)。
2. 敌人 · 4 种 + 1 BOSS(参考 images/敌人.png)
| 资源路径 |
敌人 |
尺寸 |
帧数 |
备注 |
textures/enemies/qing_ren.png |
青忍 |
16×16 |
idle 1 / run 2 / throw 2 / swing 2 |
双色主题 |
textures/enemies/chi_ren.png |
赤忍 |
16×16 |
idle 1 / run 2 / throw 2 / jump 2 |
红色忍装 |
textures/enemies/hei_ren.png |
黑忍 |
20×24 |
idle 2 / run 2 / swing 2 |
掉落魔笛 |
textures/enemies/yao_fang.png |
妖坊 |
18×20 |
idle 1 / cast 3 |
不动,远程火球 |
textures/bosses/shuang_huan_fang.png |
双幻坊 |
32×32(单体)/ 96×32(双身) |
idle 2 / clone 4 / fireball 3 |
蝴蝶伴生对象单独贴图 |
textures/bosses/butterfly.png |
BOSS 蝴蝶 |
16×16 |
fly 4 |
命中后变色 2 帧 |
3. 场景 · 森林 / 城墙 / 魔城(参考 images/场景.png)
每个主题 4 层视差,速度比 1:2:4:4,独立调色板 ≤ 48 色(含角色共用 16 色)。
| 主题 |
层 |
资源路径 |
| 森林 |
远景 / 中景 / 近景 / 特效 |
textures/scenes/forest/{far,mid,near,fx}.png |
| 城墙 |
远景 / 中景 / 近景 / 特效 |
textures/scenes/castle_wall/{far,mid,near,fx}.png |
| 魔城 |
远景 / 中景 / 近景 / 特效 |
textures/scenes/demon_castle/{far,mid,near,fx}.png |
MVP 仅启用青叶配色;红叶 / 雪原调色板预留接口但不纳入 MVP。
4. 剧情背景插画(req 19.2)
| 资源路径 |
内容 |
尺寸 |
textures/story/ch1_page1_ninja.png |
主角忍者身份 |
480×270 |
textures/story/ch1_page2_princess.png |
公主被青忍掳走 |
480×270 |
textures/story/ch1_page3_depart.png |
主角启程 |
480×270 |
5. 音效 WAV(每段 ≤ 0.5 秒)
| 资源路径 |
触发 |
需求 |
audio/sfx/attack.wav |
任意攻击 |
req 16.1 |
audio/sfx/jump.wav |
跳跃 |
req 16.1 |
audio/sfx/hurt.wav |
受伤 / 死亡 |
req 16.1 |
audio/sfx/pickup.wav |
拾取道具 |
req 16.1 |
audio/sfx/parry.wav |
成功格挡 |
req 16.1 |
6. 背景音乐 MP3
| 资源路径 |
用途 |
需求 |
audio/bgm/bgm_forest.mp3 |
森林 / 洞穴 |
req 16.2 |
audio/bgm/bgm_castle.mp3 |
城墙 / 密道 |
req 16.2 |
audio/bgm/bgm_final.mp3 |
魔城/天守阁 |
req 16.2 |
audio/bgm/bgm_boss.mp3 |
BOSS 战 |
req 16.3 |
audio/bgm/bgm_story.mp3 |
背景介绍过场 |
req 19.7 |
7. 粒子 / 特效
| 特效 |
实现 |
| 落叶(青叶配色) |
Cocos Creator ParticleSystem2D,textures/fx/leaf_particle.png |
| 飘雪(预留) |
同上 — MVP 不启用 |
| 跳跃尘 |
Cocos Animation 序列帧,textures/fx/jump_dust.png |
| 格挡火花 |
同上,textures/fx/parry_spark.png |
体积预算对照(req 16.5, 18.7)
| 项目 |
预算 |
当前占用 |
备注 |
| 首包 |
≤ 4 MB |
TBD |
主角 + 敌人 + UI + 代码 |
| 音频总包 |
≤ 500 KB |
TBD |
5 WAV + 5 MP3 |
| 内存峰值 |
≤ 200 MB |
TBD |
见 10.2 埋点 |
填写"当前占用"由 CI 通过 perf_report.json 自动写入(见 10.2 PerfMonitor)。
8. 资源交付跟踪表(Delivery Tracker)
状态图例:⬜ 待制作 🟨 静音/空包占位(WAV/MP3) 🟦 程序化像素美术占位(PNG) 🟩 已交付正式版
🟨 由 scripts/gen_placeholder_assets.js 生成;🟦 由 scripts/gen_pixel_art_assets.py 生成。两个脚本都幂等可重跑。
8.1 主角 · 3 形态
| 资源 |
状态 |
负责人 |
计划交付 |
备注 |
textures/characters/kage_red.png |
🟦 |
TBD-美术 |
TBD |
16×32 · 11 帧(程序化) |
textures/characters/kage_green.png |
🟦 |
TBD-美术 |
TBD |
16×32 · 11 帧(程序化) |
textures/characters/kage_yellow.png |
🟦 |
TBD-美术 |
TBD |
16×32 · 11 帧(程序化) |
8.2 敌人 + BOSS
| 资源 |
状态 |
负责人 |
计划交付 |
备注 |
textures/enemies/qing_ren.png |
🟦 |
TBD-美术 |
TBD |
16×16 · 7 帧(程序化) |
textures/enemies/chi_ren.png |
🟦 |
TBD-美术 |
TBD |
16×16 · 7 帧(程序化) |
textures/enemies/hei_ren.png |
🟦 |
TBD-美术 |
TBD |
20×24 · 6 帧(程序化) |
textures/enemies/yao_fang.png |
🟦 |
TBD-美术 |
TBD |
18×20 · 4 帧(程序化) |
textures/bosses/shuang_huan_fang.png |
🟦 |
TBD-美术 |
TBD |
32×32 × 9 帧(程序化) |
textures/bosses/butterfly.png |
🟦 |
TBD-美术 |
TBD |
16×16 · 4 帧(程序化) |
8.3 场景视差(3 主题 × 4 层 = 12 张)
| 主题 |
far |
mid |
near |
fx |
负责人 |
计划交付 |
森林 textures/scenes/forest/* |
🟦 |
🟦 |
🟦 |
🟦 |
TBD-美术 |
TBD |
城墙 textures/scenes/castle_wall/* |
🟦 |
🟦 |
🟦 |
🟦 |
TBD-美术 |
TBD |
魔城 textures/scenes/demon_castle/* |
🟦 |
🟦 |
🟦 |
🟦 |
TBD-美术 |
TBD |
8.4 剧情背景插画(req 19.2)
| 资源 |
状态 |
负责人 |
计划交付 |
备注 |
textures/story/ch1_page1_ninja.png |
🟦 |
TBD-美术 |
TBD |
480×270(程序化) |
textures/story/ch1_page2_princess.png |
🟦 |
TBD-美术 |
TBD |
480×270(程序化) |
textures/story/ch1_page3_depart.png |
🟦 |
TBD-美术 |
TBD |
480×270(程序化) |
8.5 粒子特效贴图
| 资源 |
状态 |
负责人 |
计划交付 |
备注 |
textures/fx/leaf_particle.png |
🟦 |
TBD-美术 |
TBD |
透明底落叶(程序化) |
textures/fx/jump_dust.png |
🟦 |
TBD-美术 |
TBD |
透明底尘土(程序化) |
textures/fx/parry_spark.png |
🟦 |
TBD-美术 |
TBD |
透明底火花(程序化) |
8.6 音效 WAV(每段 ≤ 0.5 s,req 16.1)
| 资源 |
状态 |
负责人 |
计划交付 |
备注 |
audio/sfx/attack.wav |
🟨 |
TBD-音效 |
TBD |
攻击 |
audio/sfx/jump.wav |
🟨 |
TBD-音效 |
TBD |
跳跃 |
audio/sfx/hurt.wav |
🟨 |
TBD-音效 |
TBD |
受伤/死亡 |
audio/sfx/pickup.wav |
🟨 |
TBD-音效 |
TBD |
拾取 |
audio/sfx/parry.wav |
🟨 |
TBD-音效 |
TBD |
格挡 |
8.7 背景音乐 MP3(req 16.2 / 16.3 / 19.7)
| 资源 |
状态 |
负责人 |
计划交付 |
备注 |
audio/bgm/bgm_forest.mp3 |
🟨 |
TBD-音效 |
TBD |
森林 / 洞穴 |
audio/bgm/bgm_castle.mp3 |
🟨 |
TBD-音效 |
TBD |
城墙 / 密道 |
audio/bgm/bgm_final.mp3 |
🟨 |
TBD-音效 |
TBD |
魔城 / 天守阁 |
audio/bgm/bgm_boss.mp3 |
🟨 |
TBD-音效 |
TBD |
BOSS 战 |
audio/bgm/bgm_story.mp3 |
🟨 |
TBD-音效 |
TBD |
背景介绍过场 |
8.8 交付流程
- 美术 / 音效收到任务后把正式素材放到上表对应路径,覆盖同名占位文件。
- 在本 md 中把对应行的 🟨 改为 🟩,填写负责人与交付日期。
- 提交 PR,CI 会对比文件大小与
ASSETS.md 预算表 (§ "体积预算对照")。
- 所有条目变 🟩 且体积预算达标后,可以撤掉占位脚本的调用。
重要:禁止手动修改 scripts/gen_placeholder_assets.js 的输出策略,除非变更点已同步到本 md 的 "当前状态" 段。任何新增资源条目必须同时:在上述 § 1~§ 7 规格表中加一行、在 § 8 跟踪表加一行、在脚本 SPEC 数组加一条。