【免费下载链接】gorest-2d-animation-spritesheet-generator
Codex-assisted local 2D animation spritesheet generator and scene compositing workspace.
Gorest 2D Animation Spritesheet Generator 是一个开源的本地 2D 动画生成平台:你用一句自然语言提示词描述角色或场景,Agent 就会产出透明背景、可直接进游戏引擎的 Spritesheet(雪碧图)动画。这篇文章用仓库中 4 个真实生成案例拆解高效提示词的写法,帮你一次写对、少返工。
为什么提示词决定了 Spritesheet 的成败
Gorest 走的是 no-UI 工作流:没有一堆参数面板,浏览器只是"结果展示台",真正的生产由 Agent 根据你的提示词完成——生成图、抠像、检测网格、统一缩放、锚点归一、打包帧、写入元数据。完整流程可以在 docs/AGENT_WORKFLOW.md 中找到说明。
这就意味着:你在提示词里漏掉的信息,Agent 只能靠猜。帧数、网格布局、每帧动作、锚点位置、禁止项——这些写清楚,产出才能稳定。
一条高效提示词的 5 个必备要素
对照 docs/AGENT_WORKFLOW.md 中的 Prompt Shape 模板,一条完整提示词通常包含:
| 要素 | 写什么 | 作用 |
|---|---|---|
| 身份与风格 | 角色长什么样、什么画风、什么光照 | 锁定 identity,防止帧间"换脸" |
| 网格与帧数 | 如4 列 x 2 行 = 8 帧,从左到右、从上到下阅读 | 保证可自动切帧 |
| 逐帧序列 | 第 1 帧干什么……第 8 帧干什么 | 生成真正的动作而非抖动 |
| 锚点与稳定性 | "所有帧保持相同头大小、相机、缩放、脚部基线" | 播放时不漂移、不跳动 |
| 负向约束 | "无文字、无水印、无阴影、无边框" | 减少后处理和重试 |
另外还有一个小技巧:让画面统一生成在纯#FF00FF洋红色背景上(chroma key),Agent 就能用 scripts/normalize_spritesheet.py 这类脚本做确定性抠像和归一化,比直接生成透明背景更可靠。
案例一:钟塔钟声——道具动画也要"逐帧编剧本"
第一个案例是一口古铜钟的敲击循环。最终产物是 8 帧、4x2 网格的透明 PNG:
这条提示词的核心技巧是把 8 帧当成 8 个"镜头"来编剧本,来源见 public/generated/sources/clock_tower_bell_strike_8f/IMAGEGEN_PROMPTS.md:
Eight sequential frames in a 4 x 2 grid: rest, draw-back, acceleration, impact glint, rebound/swing, clapper contact, diminishing oscillation, return to rest.
逐帧序列覆盖了钟摆的完整物理过程:静止 → 后摆蓄力 → 加速 → 撞击闪光 → 回弹 → 钟舌碰撞 → 衰减 → 回到静止。同时提示词锁定了"每帧相同的造型、风化质感、相机和顶部中央吊架锚点",并额外声明了洋红背景"格距留白要充足"。
生成后由 scripts/normalize_spritesheet.py 自动检测真实网格、应用统一缩放和共享锚点,最终 manifest 记录在 public/generated/clock_tower_bell_strike_4x2_8f_manifest.json,sourceEdgeRisks为零——说明没有任何一帧的边缘被裁切。
可复用经验:即使是小道具,也要给出"逐帧剧本 + 固定锚点 + 留白要求",动画才有物理感。
案例二:水墨武侠饮酒——风格锚点与无缝循环
第二个案例:一位水墨武侠风格男子举杯饮酒的 8 帧循环,配合一张空旷的 16:9 宫殿露台背景:
提示词原文在 public/generated/sources/ink_wash_wuxia_drinking_8f/IMAGEGEN_PROMPTS.md,有三个值得抄的写法:
- 身份锚点清单化。把要保留的细节逐项列出:半扎长发、披散发丝、深色交领长袍、右手握杯……"在每一格里都保留"。这比一句"保持一致"有效得多。
- 循环设计写进序列。第 8 帧被明确要求"settle smoothly toward the first frame for a seamless loop"(平滑回到首帧姿态),播放时就不会有接缝。
- 负向约束精确到像素。"完美均匀的 #FF00FF chroma 背景覆盖所有格子与格距,无多余肢体、杯子、文字、logo、水印"。
同文件还描述了背景图的提示词:"画面中央保持空旷,留给动画角色"——这种前景为角色预留空间的写法,让合成一步到位。背景成品见 public/generated/ink_wash_palace_terrace_background_1672x941.png。
可复用经验:身份细节"清单化"、末帧回绕首帧、负向约束写死背景色。
案例三:黑桃 K 对决——多角色同步动作怎么写
第三例是两名男子侧身对射的举枪动画,8 帧完成从垂手到互相瞄准的全过程:
多角色场景最容易翻车的点是:两个角色的相对位置、大小、朝向帧帧都在变。这条提示词(见 public/generated/sources/spade_king_duel_pair_raise_8f/IMAGEGEN_PROMPTS.md)用了三个锁定手段:
- 空间锁:"Every frame contains the same two full-body men in profile, facing one anotherat fixed positions and scale"(每帧两人位置与比例固定)。
- 同步锁:"Both characters move synchronously"(两人动作严格同步),8 个关键姿势逐帧列出:垂手 → 起抬 → 低位预备 → 肘到胸口 → 枪口过 45° → 接近水平 → 完全伸展互瞄 → 定格。
- 内容红线:"No firing, recoil, muzzle flash, smoke, casings, impact, injury, blood, or gore"(无开枪、无硝烟、无伤害画面),一次性排除整类问题帧。
manifest(public/generated/spade_king_duel_pair_raise_4x2_8f_manifest.json)中的rootAnchorPolicy是"固定下半身 X 坐标 + 共享脚部基线",这正是提示词里"baseline in every frame"的落地结果。
可复用经验:多角色 = 逐帧位置锁定 + 动作同步声明 + 一条内容红线。
案例四:表情组件 Sheet——identity-preserve 逐格换脸
最后一个案例最"工业":为一个分层 2D 角色 rig 生成 8 格面部动作表,前 4 格只改变眼睛朝向,后 4 格换成四种表情:
完整提示词保存在 public/generated/rigged/silver_schoolgirl_face_rig/sources/IMAGEGEN_PROMPTS.md,它演示了identity-preserve(身份保留)类提示词的标准结构:
- 开头声明
Use case: identity-preserve,并指定输入图是"identity reference / registration reference / layout reference"(身份、注册、布局三重参考)。 - 每格一个明确指令:cell 1 眼睛朝左、cell 2 朝右、cell 3 朝上、cell 4 朝下;cell 5 微笑、cell 6 惊讶 O 型嘴、cell 7 愤怒、cell 8 忧伤,且"change only iris/pupil direction"(只改虹膜方向)。
- 白名单 + 黑名单双保险:"只允许改眼睛、眉毛、嘴;脸型、肤色、鼻子、头发、服装、光照、线宽、格子注册必须与参考图完全一致。不要重设计角色。"
- 甚至精细到颜色约束:"Do not use #00ff00 anywhere in the character"(角色身上不得出现 chroma 同色,否则抠像会抠穿)。
可复用经验:改局部时,用"只允许改 X,其余必须与参考图逐像素一致"的句式,把自由度收窄到最小。
验收标准:什么算"一次写对"
提示词写完只是开始,SPRITESHEET_GENERATION_POLICY.md 定义了项目的硬性验收标准,也适合作为你自检的清单:
- ✅ 全剪影(含头发、武器、特效)不超过每格宽高的 75%,四周保留至少 12% 平背景
- ✅ 所有帧同一像素尺寸、同一角色比例,锚点稳定(全身用脚/根部锚点,特写用脸部锚点)
- ✅ idle/呼吸类动画帧间变化小而缓;行走循环只画一个干净 cycle,靠播放循环而非在 sheet 里重复
- ❌ 拒绝整图漂移、抖动、缩放、旋转冒充动作
- ❌ 拒绝低清晰度糊脸,宁可高细节源图降采样,不放大模糊帧
生成之后:浏览器预览,不满意就改提示词
所有素材都会写入 public/generated/ 目录,并登记到 public/generated/game_asset_library.json 的本地资产库,随后就能在场景合成器里直接摆放、预览、调层:
迭代同样靠提示词:README 里给了一个典型"二次修改"示例——"把鱼缸重画得更像真实蝶尾金鱼,保持圆形缸体与透明背景,并调整场景图层位置让它落在木桌上"。也就是说:第一版不满意时,不要从头写,而是用"改哪里 + 保持什么 + 为什么"的句式追加一条修改指令。
一句话总结
高效提示词 =清单化身份+网格与帧数+逐帧剧本+固定锚点+写死的负向约束。把这五样写进一句话,Gorest 就能稳定产出游戏级的 Spritesheet。
【免费下载链接】gorest-2d-animation-spritesheet-generator
Codex-assisted local 2D animation spritesheet generator and scene compositing workspace.
相关推荐
Gorest 2D Animation Spritesheet Generator 完整介绍:免费开源的 AI 2D 游戏动画精灵图生产平台
Gorest 2D Animation Spritesheet Generator 完整介绍:免费开源的 AI 2D 游戏动画精灵图生产平台 Gorest 2D
一段提示词如何生成一个"电影级"画面:Opus 5.5 案例提示词逐句拆解
一段提示词如何生成一个"电影级"画面:Opus 5.5 案例提示词逐句拆解 Claude Opus 5.5 发布后,中文社区最出圈的讨论几乎都围绕一个词展开:"
wiredep源码解析:探索依赖注入的实现原理
wiredep源码解析:探索依赖注入的实现原理 wiredep是一款强大的Bower依赖注入工具,能够自动将Bower管理的前端依赖项注入到你的源代码中。本文将
开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考