ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

接入你的游戏引擎:sprite-gen精灵图集与Manifest如何导入Phaser、Flame和Aseprite

2026/10/7 3:16:59 拓冰建站 浏览量
接入你的游戏引擎:sprite-gen精灵图集与Manifest如何导入Phaser、Flame和Aseprite 接入你的游戏引擎sprite-gen精灵图集与Manifest如何导入Phaser、Flame和Aseprite【免费下载链接】sprite-genGenerate clean 2D game sprites animation atlases — component-row pipeline: state rows, alpha cleanup, frame extraction, runtime atlases. Codex/Claude skill.项目地址: https://gitcode.com/gh_mirrors/sp/sprite-gensprite-gen把一张静态角色图变成干净的 2D 游戏精灵图集sprite sheet并附带一份运行时Manifestmanifest.json——记录每一帧在图集里的绝对位置、帧时长与循环策略。你不需要手写切图坐标一条export-aseprite命令即可生成 Phaser、Flame 和 Aseprite 都能直接消费的描述文件几分钟就能把精灵动画跑起来。1️⃣ 图集 Manifest引擎真正需要的两样东西跑完compose-atlas之后运行目录里会产出两个核心交付物文件作用sprite-sheet-alpha.png透明背景的精灵图集所有状态idle、walk、attack…按行排列manifest.json运行时契约frame_layout.rows.state[i]给出每帧{x, y, w, h}绝对矩形animation.rows.state给出帧数、fps 与 loop游戏代码直接读取这些矩形即可不需要在运行时用 alpha 反推帧位置——这是 sprite-gen 运行时契约的硬性要求见 docs/architecture.md 第 8 节。Manifest 还记录了策展是否已烘焙curation_applied所以你在 curation 视图 里做的选帧、变换、克隆都会体现在最终图集中。2️⃣ 一条命令生成引擎导入文件图集合成完成后执行sprite-gen export-aseprite --run-dir run-dir默认输出exports/aseprite.jsonjson-array格式它与图集 PNG 配对使用。字段映射关系一目了然sprite-gen Manifest导出 JSONframe_layout.rows.state[i]播放顺序中的frames[]矩形animation.rows.state.durations_ms[i]每帧duration毫秒状态名 帧区间meta.frameTags[]即动画名game_input/sheetWidth/Heightmeta.image/meta.size实现位于 sprite_gen/compose/export_aseprite.py它只重新描述现有图集、从不重编码 PNG且导出文件被锁定在运行目录的exports/内。3️⃣ 导入 Phaser两行代码跑起动画Phaser 原生支持 Aseprite 格式的 JSON并会根据meta.frameTags自动创建动画。把sprite-sheet-alpha.png和aseprite.json放进你的assets/this.load.aseprite(hero, sprite-sheet-alpha.png, aseprite.json); this.anims.createFromAseprite(hero); this.add.sprite(100, 100, hero).play(idle); // 状态名即动画名play(walk)、play(attack)直接对应你在 sprite-request.json 里声明的状态。每帧的独立时长也被保留所以不同状态可以有不同节奏。4️⃣ 导入 FlameFlutter按状态拆分文件Flame 的SpriteAnimation.fromAsepriteData要求frames是哈希表map且不读取meta.frameTags。所以给 Flame 导出时用拆分模式每个状态一个文件、局部索引从 0 开始sprite-gen export-aseprite --run-dir run-dir --format json-hash --split-states生成exports/aseprite/idle.json、exports/aseprite/walk.json……它们都指向同一张图集 PNG并保留毫秒级帧时长。Dart 侧每个文件构建一个动画天然贴合 Flame「一个状态一个动画」的用法。5️⃣ 在 Aseprite 中继续精修导出的 JSON 遵循 Aseprite 加载器消费的 schemaframesmeta可直接被 Aseprite 生态工具链识别方便美术在熟悉的环境里核对帧矩形、时长和标签。注意sprite-gen 输出的是描述文件而非可编辑.aseprite源文件也不重新编码图片——你的原始图集 PNG 字节不变。6️⃣ 注意事项三个常见坑循环策略不随标签导出loop仍保留在manifest.json中。Aseprite frameTags 只携带方向与帧区间Flame 工厂也不读标签——需要精确循环控制时请以 Manifest 为准。策展已烘焙因为 compose 阶段就读取了curation.json导出的矩形引用的是你最终选定的顺序、复用单元格、变换与呼吸帧——放心交付。导出路径有边界导出器拒绝格式错误的行映射也拒绝写到运行目录之外的路径拆分状态文件作为完整目录一次性发布不会出现半套文件。7️⃣ 下一步完整的字段语义、Phaser/Flame 行为细节与限制说明见 docs/engine-export.md运行时目录结构与 Manifest 契约见 docs/run-contract.md 和 docs/architecture.md。从一张静帧到引擎里跑起来的完整流程文档索引在 docs/README.md。 现在把你的sprite-sheet-alpha.png Manifest 丢进引擎让角色动起来【免费下载链接】sprite-genGenerate clean 2D game sprites animation atlases — component-row pipeline: state rows, alpha cleanup, frame extraction, runtime atlases. Codex/Claude skill.项目地址: https://gitcode.com/gh_mirrors/sp/sprite-gen创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考