--- name: game-assets description: 在 NianCode 中通过 Meowa 的固定版 game-assets 适配器生成和整理像素素材、高清素材、角色、道具、背景、UI 图和可复用游戏资源。素材生成、下载、项目内落盘、授权记录和审核证据必须走这个 Skill。 --- # NianCode · Meowa game-assets 这是项目内固定的 Meowa `game-assets` Skill 适配版,版本 `2026.06.19.1`。 上游参考:`https://github.com/Meowa-AI/meowa-skills/tree/main/skills/game-assets`。 NianCode 会把 Meowa API Key 留在 Electron Main 的安全存储或启动环境变量中。你只能通过随 Skill 一起提供的 `meowart_api.py` 调用本地 Host API,不能直接访问 Meowa API,也不能读取、打印、复制或写入 API Key。 ## 角色边界 在项目中手动配置并绑定本 Skill 的 Agent 负责素材生成;只有该 Agent 直接调用本 Skill。当前 Meowa 适配器只生成 2D 像素/高清光栅素材,不生成 3D 模型;3D 模型应走项目、用户或许可证明确的外部来源,并记录在 `ASSET_PLAN.md`。负责策划的 Agent 提出视觉缺口和验收语境,负责开发的 Agent 只接入审核状态为 `approved` 的项目内素材,负责测试发布的 Agent 验证真实运行效果并回交问题;它们通过 `GDD.md`、`TECH_STACK.md`、`ASSET_PLAN.md`、`ART_GUIDE.md`、`TASKS.md` 和 `.niancode/asset-review.json` 协作,不重复发起生成。负责宣传的 Agent 不属于素材生成链路,只能引用已经确认、可追溯的成果。 这个 Skill 不授予任何 Agent 直接访问 Meowa 的权限。所有角色都必须遵守本地适配器、API Key 隔离、生成元数据、项目内预览和用户审核规则。 ## 每次素材任务的第一步 先读取当前任务的动态指引;网络不可用时,CLI 会自动使用项目内固定指引: ```bash MEOWA_GAME_ASSETS_CLI="${NIANCODE_GAME_ASSETS_CLI:-${OPENCODE_CONFIG_DIR}/skills/game-assets/meowart_api.py}" if [ -z "${NIANCODE_PYTHON_PATH:-}" ]; then echo "NianCode managed Python is unavailable; repair or reinstall NianCode." >&2 exit 1 fi "$NIANCODE_PYTHON_PATH" "$MEOWA_GAME_ASSETS_CLI" skill-doc --task "<这次素材需求>" ``` 然后读取项目中的 `GDD.md`、`ASSET_PLAN.md`、`ART_GUIDE.md`、`TASKS.md` 和 `.niancode/asset-review.json`(如果存在)。先判断现有 Works Square、开源素材是否能满足需求;只有在缺口明确时才生成。 ## 生成前检查 ```bash "$NIANCODE_PYTHON_PATH" "$MEOWA_GAME_ASSETS_CLI" config-status "$NIANCODE_PYTHON_PATH" "$MEOWA_GAME_ASSETS_CLI" template-info --kind pixel "$NIANCODE_PYTHON_PATH" "$MEOWA_GAME_ASSETS_CLI" template-info --kind hd ``` `template-info` 返回的模版名和字段是当前可用事实。不要凭记忆编造模版名或字段。没有配置 Meowa 时,明确写入 `ASSET_PLAN.md` 的阻塞项,不要求用户把 Key 发到聊天里。 `config-status` 用于确认 Main 是否已准备好 Meowa 凭据。未配置时停止生成,把阻塞原因写入 `ASSET_PLAN.md`,且不要要求用户在聊天中提供 Key。 ## 生成命令 像素素材: ```bash "$NIANCODE_PYTHON_PATH" "$MEOWA_GAME_ASSETS_CLI" pixel-gen \ --template-name "<从 template-info 选择>" \ --requirement "<角色/道具/地形和透明背景要求>" \ --aspect-ratio 1:1 \ --output-dir assets/generated/meowa ``` 高清素材: ```bash "$NIANCODE_PYTHON_PATH" "$MEOWA_GAME_ASSETS_CLI" hd-gen \ --template-name "<从 template-info 选择>" \ --requirement "<素材要求>" \ --output-dir assets/generated/meowa ``` 需要参考图时使用一个或多个 `--reference-file <项目相对路径>`。需要特定模型、分辨率、去背景模式或模版 JSON 时,先从动态指引和 `template-info` 确认,再传 `--model-name`、`--resolution`、`--remove-bg-mode`、`--template-config ''`。 CLI 会等待异步任务完成,把输出下载到明确的项目目录,并写入 `submit_response.json`、`final_response.json` 和 `generation.meta.json`。不要只把远程 URL 写进 `ASSET_PLAN.md`,也不要把未下载的输出提交审核。 ## 项目资产与审核规则 - 默认输出放在 `assets/generated/meowa//`;每个候选必须有真实存在的 `localPath`、`previewPath`、`coverPath` 或非空 `manifestPaths`。 - `generation.meta.json` 必须保留 provider、Skill 版本、模版、提示词、任务 ID、生成时间、条款链接和授权状态。 - Meowa 生成物不是 CC0。当前条款下,商业使用取决于 Meowa 账户方案;免费方案按条款限制为非商业使用,付费方案也要在交付前复核当前条款。记录 `https://meowa.ai/tos`,不要把“可生成”写成“已获商业授权”。 - 用户没有 `approve` 前,只能写入候选和审核记录,不能当作正式开发素材接入。 - 用户 `discard` 或 `replace` 的候选不得再次提交;候选、pending、discarded 和 replace-requested 不得交给游戏开发 Agent 当作已选素材。 - 像素素材预览和缩放使用 nearest-neighbor;保持透明背景、画布尺寸、命名和导出格式与 `ART_GUIDE.md` 一致。 - 生成结果失败、超时、下载失败或授权无法确认时,写清楚 `BLOCKED`/`TODO` 和备用方案;不要编造成功结果。 ## 禁止事项 - 不运行 `npx skills add`、远程 bootstrap、用户级外部 Skill 或未固定版本的 `game-assets`。 - 不直接请求 `https://api.meowa.ai`,不把 API Key 放入命令行参数、提示词、项目文件、日志或聊天。 - 不把 Meowa 输出标成 CC0、OpenGameArt、Kenney 或 Works Square 素材。 - 不为了增加数量而重复生成同一缺口;先记录已有候选和生成理由。