跳转到内容

面向非技术读者解释如何把一个角色变成 Codex 可用的桌面宠物资源。

Hatch Pet 不是简单地“让 AI 画一张小动物图”。它是一套把角色概念变成可运行桌面宠物的制作流程:先确定宠物长什么样,再为它做出一组固定动作,最后把这些动作整理成应用能读取的动画文件。

对没有 AI 和编程基础的人,可以把它理解成一个小型动画制片流程:AI 负责画角色和动作,流程脚本负责裁切、排版、检查和打包,人负责判断这个宠物是不是同一个角色、动作有没有问题。

可以参考这个 demo repo:emma-millstein-codex-pet。它适合作为理解最终宠物包形态的示例。

桌面宠物不是一张普通图片。它要在应用里不断播放不同状态,比如待机、奔跑、挥手、跳跃、失败、等待和审阅。为了让应用稳定播放,所有动作都必须放进同一张标准动画图里。

这张图可以想成一张九行八列的透明格子表:

每一行 = 一种动作状态
每一格 = 这个动作的一帧

应用播放动画时,不是理解“这是一只鸭子”或“它在跑步”,而是按固定位置读取这些格子。所以流程的重点不是让每张图都漂亮,而是让每一格都干净、对齐、透明,并且看起来像同一只宠物。

开始时需要确定三个东西:宠物名字、角色描述、参考图片或文字概念。

如果用户没有提供名字,流程会根据角色特点推断一个简短名字。名字不只是展示文本,也会影响最终保存目录。描述则是给 AI 和后续检查用的身份锚点,例如“短腿、圆脑袋、深色描边、绿色小芽”等。

这一步的关键不是写得华丽,而是把宠物最不能变的特征说清楚:外形、颜色、表情、道具、身体比例和整体风格。

主视觉是这个宠物的“身份证照片”。后面所有动作都要参考它,不能每一行都重新设计一个相似但不同的角色。

即使用户一开始给了参考图,流程也会先生成一张符合 Codex 桌面宠物风格的主视觉。这个风格偏小型像素风:轮廓清楚、身体紧凑、表情简单、颜色有限、细节不要太复杂。

主视觉通过后,才进入动作制作。否则后面生成越多,返工成本越高。

宠物动作不是一次性生成整张大图,而是按行生成。每一行对应一种状态,例如:

动作普通理解
idle安静待机
running-right向右跑
running-left向左跑
running通用运行状态
waiting等待用户处理
failed出错或失败
review等待用户查看结果
jumping跳跃
waving挥手

流程会优先做 idlerunning-right,因为这两行最容易看出角色是否稳定。若 running-right 左右翻转后仍然合理,running-left 可以由它镜像得到;如果角色有单边道具、文字、特殊花纹或方向性姿势,就必须重新生成左跑动作。

动作生成时有一个重要规则:不要加入漂浮特效。比如挥手不要画波浪线,跑步不要画速度线或灰尘,跳跃不要画地面影子。桌面宠物需要的是清晰角色动作,不是漫画效果。

在完整制作里,主流程会负责主视觉和最终打包,动作行则交给多个子助手并行生成。普通读者可以把它理解成“一个导演,多个动画师”。

导演负责决定标准、保存记录和最终验收;每个动画师只负责一行动作,不能改总目录、不能擅自打包,也不能用程序自己画假动作。这样可以加快制作,同时避免多人同时改同一份文件造成混乱。

动作图生成后,流程会把它们整理成标准尺寸:

单格:192 x 208
总图:1536 x 1872

整理完成后会生成几类检查材料:

文件用途
spritesheet.webp应用最终使用的动画图
pet.json宠物名称、描述和动画配置
contact-sheet.png方便人一眼检查所有动作的总览图
validation.json程序检查结果
videos/*.mp4每个动作的预览视频

程序检查只能确认尺寸、透明度、格子是否为空等硬规则。它不能真正判断“这还是不是同一只宠物”。所以最终一定要看总览图和预览视频。

如果某一行动作失败,流程不会重做整个宠物,而是只重做那一行。常见失败包括:

  • 角色突然换了物种或身体比例。
  • 脸、花纹、颜色或道具和主视觉不一致。
  • 背景没有被清理干净。
  • 动作跨进了旁边格子。
  • 身体被裁掉。
  • 出现速度线、灰尘、漂浮星星、影子或其他不适合透明动画的效果。

这种局部修复方式更稳定,也更节省生成成本。

验收时不需要懂代码,只要按下面的问题看图:

  • 每一行动作看起来是不是同一只宠物?
  • 宠物有没有被裁掉,或者跑到格子外?
  • 背景是不是透明或容易被清理,而不是白底、黑底、网格底?
  • 有没有多余的字、符号、波浪线、速度线、灰尘、影子或漂浮装饰?
  • 动作循环是否自然,不会突然闪成另一个造型?
  • 最终是否同时有 pet.jsonspritesheet.webp

如果这些问题都通过,这个宠物才算真正“孵化完成”。