用途:在 Phaser 4 项目中,把一组独立透明 PNG 人物帧整理成锚点稳定的水平 spritesheet,并输出可接入 Phaser 的预加载与动画合同。它只做确定性的栅格归一化、打包和机器质量门,不替代游戏工作流控制。
主要能力:支持三种根锚点模式。ground-contact(默认)在 Alpha 包围盒底部接触带取可见 x 的稳健中位数作为根锚点,只做整数平移,不缩放、不拉伸、不插帧、不裁切可见主体,适用于 grounded idle/walk。jump/airborne 需选 fixed-canvas 保留画布内既有位移轨迹,或用 explicit 并通过 --anchor-file 提供逐帧语义根锚点。所有模式以根锚点周围最大外接范围计算固定 cell,消除透明边距差异造成的意外跳跃。
使用方式:入口为 node <skill-dir>/scripts/frame-animation.mjs --help。最小调用需指定 --input-dir、--output-sheet、--output-report、--animation-key、--texture-key、--frame-rate、--padding 与 --loop 等参数(用法见资料示例)。输入目录普通文件必须全为 PNG,按文件名自然序排序,至少两帧。
接入:报告中的 phaser.preload 可映射到 this.load.spritesheet,phaser.anims 映射到 this.anims.create,并按 phaser.sprite_origin 调用 sprite.setOrigin。repeat=-1 循环,repeat=0 播放一次。
限制:空 Alpha 帧、非法 PNG、将输出写回输入帧、默认覆盖既有输出都会阻断,仅显式 --force 允许覆盖既有非输入输出。质量失败仍写出候选 PNG 与 JSON 报告,返回 exitCode=3;非法输入返回 2,成功返回 0。机器门不能证明动态表现已满足产品视觉验收,正式接入前仍需在 Phaser 运行态按时间采样检查动画切换、事件帧、命中与反馈时序。该技能只在当前 Work Item 的允许路径内生成候选与报告,不改变全局状态、不直接修改主游戏代码。