从一张 PNG 到可上场的宝可梦:一条流水线看懂 pokemonAutoChess 的纹理打包
【免费下载链接】pokemonAutoChessPokemon Auto Chess Game. Made by fans for fans. Open source, non profit. All rights to the Pokemon Company.项目地址: https://gitcode.com/GitHub_Trending/po/pokemonAutoChess
pokemonAutoChess 是一款粉丝制作的开源宝可梦自走棋游戏,本文用仓库里自带的精灵处理脚本讲清楚:原始动画素材是怎么被切成帧、重新打包、再变成游戏能直接加载的纹理资源的。
手工摆资源为什么扛不住
给游戏新增一只宝可梦,远不是放一张 PNG 那么简单。每只角色都要有站立、走路、攻击、受击等好几套动作,每套又是几十帧动画,且每一帧的持续时间要单独记录。手工处理时对齐稍有偏差,帧序就会乱掉;要是再算上闪光形态,工作量直接翻倍。这正是仓库里那条自动化流水线要解决的痛点。
一次看懂这条流水线
它本质是 edit/add-pokemon.ts 里的一段 TypeScript 编排逻辑:输入是 SpriteCollab 仓库(存放社区绘画原始素材的仓库),读取其中每只宝可梦的 AnimData.xml 动画配置和帧图长条,拆分、处理颜色后重新打包,产出游戏直接消费的纹理表(把几十个小帧拼进一张大图,减少加载次数)和配套的 JSON 元数据。
输入、中间过程与产出
脚本运行后先问两个问题:SpriteCollab 的本地路径、要处理的宝可梦 4 位索引。索引留空就是处理全图鉴,README 里注明可能需要数小时,不建议第一次尝试。
确认之后,SpriteSheetProcessor会先加载已计算过的 durations/delays 数据避免重复劳动,再按 XML 里的 FrameWidth/FrameHeight 把每张帧图切到split/目录,按"索引/闪光/动作/贴图类型"分层存放。阴影帧会做额外的颜色通道清理,把纯红、纯蓝像素转成透明黑。
切帧完成后交给 TexturePacker,参数包括--pack-mode Good、--texture-format png8、--format phaser,产出单张 PNG8 纹理表加 Phaser 格式 JSON。随后脚本删掉 JSON 的 meta 字段和空格做精简,把.png/.json移入app/public/src/assets/pokemons/,肖像移入 portraits 目录,并把时长数据同步到app/types/delays.json等位置。最后解析 SpriteCollab 的 tracker.json,更新每只宝可梦可用的情感肖像表和创作者署名文件,至此一次完整的入库结束。
跨平台与依赖的坑在哪
- 系统差异藏在命令名里:Windows 调
TexturePacker.exe,Mac/Linux 调TexturePacker,脚本按process.platform自动选择,但 TexturePacker 的命令行版必须先装好并加入 PATH。 - 路径输入支持
/与\混用,~会被展开为主目录;路径不存在时脚本会直接退出,所以先确认路径再跑。 - 写入目标包括
sheets/、split/和app/子目录,运行账号需要项目目录的写权限。 - 依赖缺失先在项目根目录跑
npm install。个别动画缺失不会中断流程,会记入日志,缺失清单最终汇总到sheets/missing.txt,方便补资源时对照。
源码地图
- edit/add-pokemon.ts — 主脚本,含
SpriteSheetProcessor类与整个编排流程 - edit/README.md — 用法、依赖与排错说明
- edit/assetpack/ — AssetPack 工具链配置(CLI fork 与插件补丁)
动手跑一下
克隆仓库后在项目根目录执行:
git clone https://gitcode.com/GitHub_Trending/po/pokemonAutoChess cd pokemonAutoChess && npm install npm run add-pokemon按提示输入 SpriteCollab 路径和索引(如0001),终端会依次打印 Step 1/5 到 Step 5/5 的日志;成功后 assets 目录多出一对0001.png与0001.json,说明这只宝可梦已经能进入游戏了 🎮
这套流水线把"画图的人"和"跑游戏的人"解耦:贡献者只管产出素材,切帧、打包、署名记录全部交给脚本。想参与的话,可以从补画 SpriteCollab 的缺失帧入手,也可以直接给这个仓库的脚本与配置提改进建议。
【免费下载链接】pokemonAutoChessPokemon Auto Chess Game. Made by fans for fans. Open source, non profit. All rights to the Pokemon Company.项目地址: https://gitcode.com/GitHub_Trending/po/pokemonAutoChess
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考