meitu-game-2d-assets
Overview
面向 2D 游戏生产可直接进入后续美术流程的素材草图与半成品,重点覆盖:
- 单体素材:图标、道具、武器、金币、宝箱、药水、UI 小物件
- 角色素材:角色立绘、敌人概念图、NPC 半身或全身设定
- 网格素材:四宫格/九宫格 sprite sheet、简易动作帧、tileset 草图
- 资产整理:透明底导出、宫格拆分、清晰度增强、局部重绘
本 Skill 的目标不是做完整游戏场景原画、3D 建模或复杂骨骼动画,而是为游戏策划、美术和独立开发者快速产出可迭代的 2D 资产基础稿。
Dependencies
- tools: meitu-cli
text-to-image- 从文字生成单体素材、角色概念、sprite sheet 或 tileset 草图image-edit- 基于参考图做局部修改、延续风格批量变体、修正细节image-cutout- 将生成结果抠成透明底素材image-grid-split- 将 sprite sheet / 宫格图拆成独立帧image-superres-enhance- 对低分辨率素材做超分和锐化增强
- credentials: 美图 AI 开放平台 API 凭证
- 环境变量:
MEITU_OPENAPI_ACCESS_KEY/MEITU_OPENAPI_SECRET_KEY - 或配置文件:
~/.meitu/credentials.json - 验证:
meitu auth verify --json
- 环境变量:
- workspace (optional):
{OPENCLAW_HOME}/workspace/visual/- Not found -> skip all knowledge reads, skill works without it
路径别名:下文中
$VISUAL={OPENCLAW_HOME}/workspace/visual/
Core Workflow
Preflight -> [Context] -> Execute -> Refine -> Deliver -> [Record]
^ 创意型任务执行 ^ 项目模式时执行
^ 一次性模式跳过 Context ^ 一次性模式跳过
Preflight
meitu --version-> 未安装则提示npm install -g meitu-climeitu auth verify --json-> 凭证无效则引导配置- Detect mode: cwd has
openclaw.yaml-> project mode; else -> one-off can_record = cwd 有openclaw.yamlAND$VISUAL存在(两者缺一即 false) - Resolve output_dir:
openclaw.yaml->./output/| else ->$VISUAL/output/meitu-game-2d-assets/mkdir -p {output_dir} - 解析用户需求中的最少资产规格:
- asset_type:
icon | prop | character | enemy | tileset | sprite-sheet - style:
pixel | flat-vector | hand-painted | chibi-cartoon | retro-rpg | custom - ratio:未指定时按素材类型自动补默认值
- asset_type:
Context(项目模式执行 / 一次性模式跳过)
mode = one-off -> 跳过此步,直接到 Execute。以下仅限 project 模式:
- 读
./DESIGN.md,提取世界观、题材、平台、角色设定、UI 风格、目标分辨率 - 若
DESIGN.md提到品牌或项目资产,按需读取$VISUAL/assets/ - 读
$VISUAL/rules/quality.yaml-> forbidden list - 读
$VISUAL/memory/global.md-> 全局美术偏好 - 从
openclaw.yaml读project.types(数组优先)或project.type-> 对每个 type 读$VISUAL/memory/scenes/{type}.md
上下文作用:
- 统一素材风格、色板、轮廓粗细、世界观元素
- 避免生成与现有项目美术方向冲突的资产
Execute
先做任务分类
| 场景 | 条件 | 主工具路径 |
|---|---|---|
| A - 从零生成单体素材 | 无参考图,生成图标/道具/角色 | text-to-image |
| B - 基于参考图改造素材 | 用户提供参考图或旧资产 | image-edit |
| C - 生成 sprite sheet / 帧序列草图 | 明确提到 2x2/3x3/四宫格/动作帧 | text-to-image -> image-grid-split |
| D - 导出透明底 | 需要可直接贴入引擎/PS 的透明素材 | image-cutout |
| E - 提高清晰度 | 结果太糊、要放大、要高清 | image-superres-enhance |
风格识别决策表
| 用户关键词 | style_id | 说明 |
|---|---|---|
| 像素、pixel、8bit、16bit、复古像素 | pixel |
清晰像素边缘,有限调色板,避免抗锯齿 |
| 扁平、vector、手游 UI、卡通图标 | flat-vector |
平面矢量、清晰描边、便于二次排版 |
| 手绘、厚涂、日系、原画感 | hand-painted |
手绘贴图感,更适合角色与敌人设定 |
| Q版、萌系、chibi | chibi-cartoon |
大头小身,适合休闲游戏角色 |
| 横版闯关、RPG、复古冒险 | retro-rpg |
适合武器、怪物、地块与 UI 小物件 |
| 其他指定风格 | custom |
按用户描述拼装 prompt |
默认比例映射
| asset_type | 默认 ratio | 说明 |
|---|---|---|
icon / prop / tileset |
1:1 |
便于切图与导入 |
character / enemy |
3:4 |
适合立绘与站姿稿 |
sprite-sheet |
1:1 |
统一宫格画布,后续靠宫格拆分 |
Prompt 组装规则
从 references/prompts.md 选取:
## Style Prompts中对应 style section## Asset Templates中对应 asset_type section- 若是 sprite sheet,追加
## Grid Constraints - 若用户要求透明底或方便抠图,追加纯底或留白约束
Scenario A - 从零生成单体素材
适用:图标、武器、宝箱、药水、单角色、敌人草图
命令:
meitu text-to-image \
--skill_name skill_meitu-game-2d-assets \
--prompt "{ASSET_PROMPT}" \
--size 2K \
--ratio {ratio} \
--json --download-dir {output_dir}
推荐 prompt 结构:
{style_prompt} {asset_template} game asset, centered composition, clean silhouette, readable at small size, consistent material rendering
Scenario B - 基于参考图改造素材
适用:
- 用户已有旧素材,想换颜色/材质/武器/服装
- 想保留造型语言,扩一套变体
- 想统一多个素材风格
命令:
meitu image-edit \
--skill_name skill_meitu-game-2d-assets \
--image_list "{ref_image_url}" \
--prompt "{EDIT_PROMPT}" \
--ratio {ratio} \
--json --download-dir {output_dir}
Prompt 约束:
- 保持主体可识别轮廓
- 明确写出要保留什么、替换什么
- 若做游戏图标,必须强调
clean silhouette和small-size readability
Scenario C - 生成 sprite sheet / 帧序列草图
适用:
- 角色待机 4 帧
- 宝箱开启 4 帧
- 火焰/爆炸 4 或 9 帧
- 简易地块 tileset 草图
第一步先生成宫格图:
meitu text-to-image \
--skill_name skill_meitu-game-2d-assets \
--prompt "{SPRITESHEET_PROMPT}" \
--size 2K \
--ratio 1:1 \
--json --download-dir {output_dir}
第二步仅在用户确认宫格合理后再拆帧:
meitu image-grid-split \
--skill_name skill_meitu-game-2d-assets \
--image_url "{grid_image_url}" \
--json --download-dir {output_dir}/split
SPRITESHEET_PROMPT 必须包含:
- 总帧数说明(如
2x2 sprite sheet,4 frames,3x3 tileset) - 帧间留白
- 每格主体独立完整
- 固定镜头和统一角色比例
如果 image-grid-split 返回帧数不足:
- 强化 prompt 中的间距要求
- 重新生成宫格
- 仍不足则保留宫格图并告知用户需手工辅助切分
Scenario D - 导出透明底素材
适用:
- 用户要 PNG 透明底
- 生成图需要进 Unity、Godot、Cocos、PS
命令:
meitu image-cutout \
--skill_name skill_meitu-game-2d-assets \
--image_url "{asset_image_url}" \
--json --download-dir {output_dir}
图标、印章等明确图形类素材可追加 --model_type 2;角色、宠物或类型不确定时省略该参数,由服务端自动选型。
优先策略:
- 规则明确的单主体素材优先走透明底导出
- 若素材背景复杂且抠图失败,先用
image-edit重做纯底版本,再image-cutout
Scenario E - 清晰度增强
适用:
- 用户说结果糊
- 要导出到更高分辨率
- 像素风草图需要更清晰的边缘展示
命令:
meitu image-superres-enhance \
--skill_name skill_meitu-game-2d-assets \
--image_url "{asset_image_url}" \
--prompt "{CONTENT_DESC}" \
--json --download-dir {output_dir}
说明:
- 像素风超分前先提醒用户:若目标是保留像素颗粒感,优先保持整数倍放大思路,避免过度平滑
Refine
创意型场景必须走独立精炼循环,建议最多 3 轮:
- 展示当前结果,并说明其 asset_type、style、是否适合继续拆分/抠图
- 将反馈分为以下几类:
| 反馈类型 | 示例 | 处理方式 |
|---|---|---|
| 换风格 | “改成像素风” “更像日系 RPG” | 切换 style prompt,重新生成 |
| 改主体 | “剑太短了” “角色改成法师” | 修改 asset template 或 edit prompt |
| 改可读性 | “缩小后看不清” | 强化 silhouette / contrast / simple shape |
| 改帧动画 | “四帧差异不够大” | 强化每帧动作描述,重新生成 sprite sheet |
| 导出需求 | “给我透明底” “拆成单张” | 进入 cutout / grid-split 路径 |
| 满意 | “可以” “就这样” | 进入 Deliver |
- 对 sprite sheet,必须先确认宫格构图和帧间距,再执行拆分
- 对角色或道具资产,若用户想保留同一世界观,后续变体优先走
image-edit
Deliver
文件已在 output_dir,只需按素材类型重命名:
- 单体素材:
{YYYY-MM-DD}_{style}_{asset-type}_{slug}.{ext} - 拆分帧:
{YYYY-MM-DD}_{style}_{asset-type}_frame-{n}.{ext} - 透明底:
{YYYY-MM-DD}_{style}_{asset-type}_cutout.png - 超分版:
{YYYY-MM-DD}_{style}_{asset-type}_hd.{ext}
示例:
2026-05-19_pixel_prop_health-potion.png2026-05-19_flat-vector_icon_treasure-chest_cutout.png2026-05-19_chibi-cartoon_character_knight_frame-3.png
Record(项目模式时执行)
can_record = cwd 有 openclaw.yaml AND $VISUAL 存在(两者缺一即 false)-> false 时跳过。
可记录内容:
- 用户长期偏好的 style(如偏像素、偏粗描边、偏低饱和)
- 项目统一约束(如地块必须俯视角、角色必须 3/4 视角)
- 资产命名约定与常用 ratio
仅当用户明确认可某风格方向时才写入 memory,避免把临时尝试误记为长期偏好。
Output
- 2D 游戏素材草图或半成品图
- 可选:透明底 PNG
- 可选:拆分后的独立 sprite 帧
- 可选:超分增强版
Constraints
- 不承接 3D 模型、骨骼动画、长视频动画、完整场景地图设计
- sprite sheet 只适合概念级或简易动作帧,不保证严格逐帧动画工业标准
- 若用户要求“完全一致的角色多动作连续动画”,应明确这是高约束场景,建议先做角色定稿再分批生成
- 若用户未给尺寸单位,默认按视觉比例与可读性生成,不承诺像素级引擎规格