3D 质感动画表情包
支持两条入口:文字描述 → 生成角色基准图 → 连续姿态 → GIF;已有参考图 → 连续姿态 → GIF。两条入口都交付配套横幅、透明封面和聊天图标。“3D”描述成品的材质、体积与光照,不代表交付三维模型。
运行环境与目录
本文件所在目录为技能根目录 SKILL_DIR,不从其父目录寻找原项目。技能中的脚本、模板都使用相对技能根的路径;实际调用时用已定位的绝对路径。
需要用户的形象描述或可读参考图、Python 3.10+ 和 Pillow 9.1+。合成器只依赖 Python 标准库与 Pillow;依赖清单在 requirements.txt。有图像生成工具才能设计新角色或创作新姿态;脚本本身不生成新画面,没有生成工具时仍能处理已有关键帧。不得把静态图平移称为已经生成动作动画。
以用户提供或当前任务工作目录为工作区 WORKSPACE;安装技能的目录只存技能代码,不存创作输出。在工作区 work/<character>/<series>/<new-version>/ 保存输入副本、提示词、关键帧、配置和成品。保留参考原件和已采纳版本,输出拒绝覆盖。若工作区是既有项目,先读该项目适用的 AGENTS/README/制作流程:项目规则优先且只在项目文档维护。没有项目文档时使用本技能的独立流程,无需创建或寻找 Sticker 项目。
安装与环境检查见 独立运行说明。不用修改全局配置或安装无关插件。
按输入选择入口
- 只有文字描述:读 从描述设计角色,先生成单个角色基准图,保存到工作区的新版本目录,再以该图作为所有动作及配套素材的身份参考。不要因为没有参考图而要求用户必须上传图片,也不要从角色名字借用已有角色。名字先查证:若是已有影视/动漫/游戏角色,按原作还原并请用户确认基准图,不自行设计新形象。
- 已有角色图:按下节直接提取身份;无需重新设计一遍。
- 文字与图同时提供:图是已有身份依据,文字中明确的修改项覆盖对应属性,未要求修改的特征保持。只为影响身份的实质冲突补充澄清。
- 已有关键帧或仅补配套:保留现有身份和已采纳素材,按本次需要合成或补齐。
请求“设计角色并做表情”时,设计基准图后继续完成已授权的后续流程;用户要求先选形象或先确认时才在该节点等待。展示和保存基准图,不把未经用户查看的设计标成“已批准”。用户只请求形象设计时交付形象,不自动扩展为整套表情。
从角色图提取身份
实际查看参考,提取轮廓、头身比、脸部标记、耳/角/尾、肢体、颜色、原有配件等身份特征;文件名或角色名字不构成身份说明。
一张清晰且造型可辨的图通常足以开始,但单视图不能证明背面或被遮挡部分的设计。头像可以做头部/半身动作,不擅自补全全身;如任务确实需要缺失部位,先向用户明确缺失设计并取得参考或设计方向。模糊、多角色或严重遮挡时先确定目标。将平面图转成 3D 材质时保留身份比例,不能默认重画成羊或套用其他案例的五官。
取得用户提供或本次生成的基准图后,自行补齐常规动作方案;尚未给出数量和场景时可提出小套日常情绪方案并说明假设,不必为每个技术选择反复确认。已有关键帧重合成或补配套素材无需重新生成所有图像。
记录身份、动作与配置
先在工作区记录参考来源(用户提供/从描述生成)、参考哈希及身份说明、动作编号/文案/聊天含义、每帧表情与关节变化、接地或跳跃、循环方式。从文字生成时还保留原始描述、设计假设、角色设计完整提示词和基准图生成记录。画面契约需明确网格行列、阅读顺序、实际图像尺寸、尺度、边距、对齐部位、字幕区和透明要求。
再基于 配置示例 编写本系列配置,字段解释见 合成与验证。示例只有输入路径占位,必须换成真实图像;所有数值都是制作示例,不是微信等平台的强制规格。平台限制仅在本次查证后记录来源和日期,否则标记待核验。
生成关键帧和配套图
读 提示词模板,替换成目标角色的实际身份与动作,保存每个实际提交的完整提示词和参考输入/工具记录。轻动作可从六格起步,但格数依动作选择;不能把示例的网格、文案、节奏当作通用要求。
使用当前环境可用的图像生成工具,优先内置 image_gen;若会话提供 imagegen 技能则遵守其工具约束,但本技能不依赖它的本地安装路径。先用图像查看工具查看本地参考,再传入实际参考。透明请求需要真实 alpha。工具输出的高分辨率原图复制到工作区,保留原件;不擅自切换付费 API。工具不可用/调用失败时报告具体阻碍,不假装出图成功。
「已请求透明」不是「已获得 alpha」:部分生成器会返回 RGB 不透明图(纯白底、画上去的棋盘格,甚至带角标)。必须读取实际像素的 alpha 通道核对;不满足时保留原图并在工作区做键控抠像(做法与适用边界见 合成与验证),不能把透明参数写进报告当成已通过。
每帧使用固定身份、镜头、尺度、材质,动作来自关节/表情变化。主体含突出部位完整留在各格内,无地面、外部投影、字或假棋盘;字幕在合成时添加。测实际尺寸、alpha、非空格子和网格可切分性;不符合契约时在新版本修正。由人查看角色一致性、肢体和动作语义,尚未查看时如实标注,不能自动打审美分。
每套配齐独立的横幅、透明半身/全身封面和透明正面头部图标,沿用同一身份和主题。这三项对应微信表情上传时要一并提交的配套素材(详情页横幅、表情封面、聊天图标),缺一项不算完整交付;具体尺寸与体积以提交页面的核对结果为准,不把示例数值当官方规格。横幅使用与主体区分的彩色不透明背景,默认不加字。已有采纳配套适配本次版本时可复用,记录来源/哈希;新系列制作对应配套。艺术家头像与主页横幅首次资料或用户要求时再制作,角色头像不冒称真人照片。
合成与核验
用本技能自带 scripts/build_stickers.py,不需要原项目脚本。先 --config ... --check(完整预处理但不写文件),再 --config ... --output <不存在的新目录>;配置内输入路径相对配置文件解析,从任何当前目录调用都有效。
合成器切格、以稳定下部身体对齐、全套统一尺度、按配置添加字幕和位移轨迹、共享色板及 GIF 单比特透明,分别导出配套文件。跳跃使用 offsets 保留轨迹;若角色没有适合默认锚点的身体结构,按实际角色修改本次合成方法,不能声称默认对齐适合所有形象。往返或首尾循环按动作决定。中文字幕显式指定可用字体;不假设目标机器有原字体。
用 --verify <bundle> 只读复核保存后的实际文件及源副本哈希。报告逐帧时长/alpha、实际帧数与不同画面数、循环、字节数和 SHA-256;编码器可能合并相邻相同画面,所以不把编码帧数等同于独立动作数。完整性通过不代表人物、动作、字幕或平台审核通过。
交付与安装范围
交付目录含 GIF、三件套、源图/参考/提示词/字体等来源副本、实际配置、清单和技术报告。从文字开始时同时交付角色基准图及原始描述。将身份记录与实际生成记录放在工作区,并将相关文件列入配置的 provenance;成品分别标记技术核验、用户视觉验收和平台核验状态。
提供浅/深背景与实际聊天尺寸供人查看毛发边缘、字幕、循环和配套构图。原始 GIF 的单比特透明可能损失毛发半透明细节,发现问题在新版本修正;人未验收时保留 pending 状态。采纳后按工作区约定交付新版本;本技能不扩张上传或发布授权。
分发时复制整个 plush-animated-stickers/ 文件夹(含 scripts、assets、references、requirements 和 agents),不能仅复制本文件。可安装到用户的技能目录;无需复制羊羊素材、原项目文档或归档。