# 制作自己的 PNG 皮肤 [文档中心](../README.md) · [玩家换肤教程](skins.md) · [完整格式规范](skin-pack-format.md) 一套皮肤是一个 ZIP:根目录放 `skin.json` 和透明 PNG。下载[示例 ZIP](../examples/skin-pack-example.zip)后替换图片、修改说明再压缩;[示例源文件](../examples/skin-pack/)可直接参考。旧 SVG 包仍可导入,原存档不需要重做。 ## 1. 要准备哪些图 | 文件 | 必须 | 用途 | |---|---|---| | `idle.png` | 是 | 闲置;可选动作缺少时使用 | | `eat.png` | 是 | 喂食 | | `bathe.png` | 是 | 洗澡 | | `play.png` | 是 | 玩耍 | | `pet.png` | 是 | 被摸 | | `relaxed.png` | 否 | 放松、陪伴专注 | | `work.png` | 否 | 打工:猪在地上操作电脑 | | `study.png` | 否 | 学习 | | `trip.png` | 否 | 旅行 | | `fish.png` | 否 | 钓鱼 | | `sleep.png` | 否 | 横躺或蜷着睡觉,可带睡垫 | 可选动作缺少时回退到 `idle.png`;睡姿缺少时使用默认猪睡姿。睡姿与放松是不同动作。[默认睡姿](../../assets/pigs/base/piglet/sleep.png)可作参考。 ## 2. 出图与导出 - 使用透明背景,不铺白底,不依赖游戏运行时抠白。眼白、白衣服和高光要保留。 - 简洁二维 Q 版、柔和配色、黑色轮廓线,参考[默认猪](../../assets/pigs/base/piglet/idle.png)及[统一出图规范](../art/pig-style.md)。不擅自加独立握持蹄子、分叉线或额外肢体。 - 同一角色沿用同一身体比例;头到背部是一条饱满圆弧。道具连接要正确,背包带绕肩背,不能接耳朵。 - 推荐长边 256px,最多 1024px;单张不超过 96KB。完整帽子、翅膀、尾巴与道具留在画布内,并留透明边距。 - 游戏按图片可见高度统一缩放。尽量统一可见高度与中心,避免动作切换时跳动;睡姿无需照站姿对齐脚底。 - 给每次生图保存逐字提示词、参考图、原图和版本。原图留素材目录;离线清理低 alpha 噪点、缩小后的成品放入 ZIP。 - 导出后逐张在深浅背景上检查:没有白框、白边、缺失白色装扮、多腿或裁切。原稿先过目再接入游戏。 PNG 的 RGBA 或带透明调色板的 PNG 都支持。旧 SVG 继续执行原有安全检查:64×64 viewBox,不含脚本、外链、位图、文字、渐变或滤镜。同一动作只放一种格式。 ## 3. 写说明文件 ```json { "key": "my-blue-pig", "label": "蓝莓猪", "author": "你的名字", "description": "一句话介绍", "emoji": "🫐" } ``` `key` 使用小写字母、数字、短横线,最多 24 位;首尾为字母或数字,不与内置皮肤重名。更新皮肤时保留相同 key。 ## 4. 压缩、导入与使用 ZIP 打开直接看见 `skin.json` 和图片,不再包一层文件夹。整个 ZIP 最多 2MB、20 个文件;使用普通 ZIP 或 Deflate,不加密。 游戏打开「换肤 → 导入皮肤」,选择 ZIP。导入后自动选中这套皮肤;缺图、损坏 PNG 和不安全的旧 SVG 会显示错误。原 SVG 包和原存档继续可用,新旧格式更换不改变皮肤 key。 ## 5. 后续动图流程 底图仍是透明 PNG。先生成并审定静态姿态,再按动作逐帧出图,保持角色比例、画布和中心一致,检查每帧后组合成 GIF。当前皮肤 ZIP 只接静态动作 PNG;GIF 与播放帧序列后续讨论后再实现。