跳到主内容
智客 ZICQ

技能库 智客分类:媒体内容 msw-painter

Msw Painter

当msw-search找不到合适的图示RUID时,直接用 SVG / HTML5 Canvas / HTML 代码绘制像素艺术图示,将其渲染到PNG上,并通过msw-mcp 资产上传工具上传以获得图示RUID(如果没有上传工具连接,引导用户通过Maker注册). 支持两种风格模式:相克像素(retro / 图标 / tile feel)和枫花卡通(MapleStory-inspirted character / NPC feel). 触发器:直接绘制出图示,创建出图示,图像生成,自定义图形,像素艺术,卡通图示,枫花风格,Chibi字符,画家,画出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出.

10821 安装量

官方网址:skills.sh

技能介绍

先看中文介绍;官方 description 原文单独保留,不改写 SKILL.md。

做什么

当msw-search找不到合适的图示RUID时,直接用 SVG / HTML5 Canvas / HTML 代码绘制像素艺术图示,将其渲染到PNG上,并通过msw-mcp 资产上传工具上传以获得图示RUID(如果没有上传工具连接,引导用户通过Maker注册). 支持两种风格模式:相克像素(retro / 图标 / tile feel)和枫花卡通(MapleStory-inspirted character / NPC feel). 触发器:直接绘制出图示,创建出图示,图像生成,自定义图形,像素艺术,卡通图示,枫花风格,Chibi字符,画家,画出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出入出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出.

何时用

官方 description 未单独写出 Use when。按规范,代理会在用户任务与这段 description 的关键词匹配时激活本技能。

代理如何加载

按 Agent Skills 渐进披露:启动时只加载 name 与 description(约 100 token);任务匹配后才读入整份 SKILL.md 正文;scripts/、references/、assets/ 仅在需要时再读。 本文件正文结构:MSW Painter、When to invoke、Workflow、1. Choosing the medium、Minimal SVG template、Minimal Canvas template。 其中含规范建议的小节:分步指令。

文件分析

文件分析:除 SKILL.md 外,正文引用了 references/size-guide.md、references/style-chunky-pixel.md、references/style-maple-cartoon.md、scripts/render.cjs,属于带资源的技能包,这些文件按需再读。

官方 description(原文)

When msw-search cannot find a suitable sprite RUID, draw a pixel art sprite directly with SVG / HTML5 Canvas / HTML code, render it to PNG, and upload it via the msw-mcp asset upload tool to obtain a sprite RUID (if no upload tool is connected, guide the user to register it through Maker). Two style modes are supported: chunky pixel (retro / icon / tile feel) and maple cartoon (MapleStory-inspired character / NPC feel). Triggers: draw sprite directly, create sprite, image generation, custom graphic, pixel art, cartoon sprite, maple style, chibi character, painter, draw a sprite, make an icon, create NPC image directly, draw a slime, custom sprite.

MSW PainterWhen to invokeWorkflow1. Choosing the mediumMinimal SVG templateMinimal Canvas templateMinimal HTML template2. Choosing the styleDefaults when in doubt3. Size guide (summary)3.5 Multi-sprite sets — derive every variant from one seed4. PNG render — `render.cjs`

来源分类:skills.sh agent-skill

SKILL.md 与 Agent 调用

官方规范 ↗
name
msw-painter
description
When msw-search cannot find a suitable sprite RUID, draw a pixel art sprite directly with SVG / HTML5 Canvas / HTML code, render it to PNG, and upload it via the msw-mcp asset upload tool to obtain a sprite RUID (if no upload tool is connected, guide the user to register it through Maker). Two style modes are supported: chunky pixel (retro / icon / tile feel) and maple cartoon (MapleStory-inspired character / NPC feel). Triggers: draw sprite directly, create sprite, image generation, custom graphic, pixel art, cartoon sprite, maple style, chibi character, painter, draw a sprite, make an icon, create NPC image directly, draw a slime, custom sprite.
  1. 发现技能客户端向 Agent 提供名称与描述目录。
  2. 匹配与调用用户指定或任务匹配后,载入 SKILL.md 指令。
  3. 按需加载按步骤读取参考文档、使用脚本与素材。
指令中引用的文件 · 4
  • references/size-guide.md
  • references/style-chunky-pixel.md
  • references/style-maple-cartoon.md
  • scripts/render.cjs

以下路径提取自原文;文件是否齐全请以来源仓库中的完整目录为准。

具体调用语法与可用工具以目标 Agent 客户端为准。 查看调用机制说明 ↗

安装这个技能

Skills CLI ↗

先选择目标 Agent 和安装范围,保留技能包的附属文件,安装后检查客户端能否发现该技能。

该技能引用了附属文件,请从来源获取完整目录;仅复制 SKILL.md 可能缺少依赖。

交给 Agent 安装

复制安装指令给支持 Agent Skills 的代理,确认其中的目标目录与客户端匹配。

把 Agent Skill「msw-painter」安装到我的项目:SKILL.md 原文与官方 description 见 https://zicq.com/zh/skills/skl-3e0571ce9f91505b-Msw-Painter.html
请存为 .cursor/skills/msw-painter/SKILL.md 或 .claude/skills/msw-painter/SKILL.md,frontmatter 的 name 与 description 保持原样,不要改写。
该技能还带 scripts/、references/、assets/ 等文件,请从 https://github.com/msw-git/msw-ai-coding-plugins-official 取完整目录,不要只建一个 SKILL.md。

GitHub 完整包 ↗

终端安装 · Skills CLI

需要 Node.js 与 npx。先查看仓库技能列表,确认实际名称。

npx skills add 'https://github.com/msw-git/msw-ai-coding-plugins-official' --list

npx skills add 'https://github.com/msw-git/msw-ai-coding-plugins-official' --skill 'msw-painter'

CLI 会交互选择目标 Agent,默认安装到项目;用户级安装使用 -g。先通过查看命令核对仓库内容,再用 npx skills list 检查已安装技能。

阅读排版
--- name: msw-painter description: "When msw-search cannot find a suitable sprite RUID, draw a pixel art sprite directly with SVG / HTML5 Canvas / HTML code, render it to PNG, and upload it via the msw-mcp asset upload tool to obtain a sprite RUID (if no upload tool is connected, guide the user to register it through Maker). Two style modes are supported: chunky pixel (retro / icon / tile feel) and maple cartoon (MapleStory-inspired character / NPC feel). Triggers: draw sprite directly, create sprite, image generation, custom graphic, pixel art, cartoon sprite, maple style, chibi character, painter, draw a sprite, make an icon, create NPC image directly, draw a slime, custom sprite." --- # MSW Painter A workflow for registering a hand-drawn pixel art sprite as a sprite resource. **Call `msw-search` first, and only invoke this skill when no suitable RUID is found.** This skill is dedicated to the sprite category. It does not handle animation / audio / avatar / atlas. The painter supports two pixel art **styles**: **chunky pixel** (retro, icon/tile feel) and **maple cartoon** (MapleStory-inspired, character/NPC feel). Pick one before writing code — see step 2 below. --- ## When to invoke | Situation | Action | |-----------|--------| | User wants a specific sprite | First use `msw-search` (Resource search section, sprite category) | | `msw-search` returns an RUID that matches the intent | Use that RUID directly. **Do not invoke painter.** | | No search results, or all results are unsuitable | Invoke painter → create directly | | User explicitly says "I need a hand-drawn looking character/icon" | Invoke painter directly | --- ## Workflow 1. **Choose the medium** — One of SVG / Canvas / HTML. See "Choosing the medium" below. 2. **Choose the style** — `chunky` or `maple`. See "Choosing the style" below. 3. **Decide the size** — See [references/size-guide.md](references/size-guide.md). Default is 128×128. 4. **Write the code** — Follow the rules for the chosen style: - `chunky` → [references/style-chunky-pixel.md](references/style-chunky-pixel.md) - `maple` → [references/style-maple-cartoon.md](references/style-maple-cartoon.md) 5. **Render to PNG** — Run `scripts/render.cjs`. 6. **Upload the resource** — the msw-mcp asset upload tool, two-step presigned pattern (§5). If the connected MCP has no upload tool, ask the user to register the PNG through Maker. 7. **Register sprite properties** — `asset_update_resource_storage_info` right after upload: `filter_mode` / `wrap_mode` / pivot, plus 9-slice borders for UI frame sprites. See "Step 4" below. 8. **Report the result** — RUID + a 1–2 sentence description (include which style was used). Entity placement / script application is outside the painter's scope. --- ## 1. Choosing the medium | Medium | Recommended use | Strengths | |--------|-----------------|-----------| | **SVG** | Icons, logos, simple characters, shape-based pixel art | Intuitive code, easy to drop 1px `` dots | | **Canvas** | Procedural patterns, iterative logic (loop-drawn textures / noise) | Generate complex patterns via JS programming logic | | **HTML** | Composite layouts that can be styled quickly with CSS | Rarely used — SVG/Canvas is usually a better fit for pixel art | ### Minimal SVG template ```xml ``` > ⚠️ Use `width="100%" height="100%"` (NOT a fixed pixel count). The SVG element draws at its **own** declared size inside the render.cjs viewport — if you hard-code 128 but render at `--width 1024`, the SVG fills only the top-left 128px and the rest of the PNG is transparent. `100%` makes the SVG fill whatever canvas `--width`/`--height` specifies. ### Minimal Canvas template ```javascript // `c` (canvas element) and `ctx` (2D context) are auto-exposed by render.cjs. // ctx.imageSmoothingEnabled = false is applied automatically as well. // IMPORTANT: derive scale from c.width, not a hard-coded constant — otherwise // a different --width leaves the bottom-right of the canvas blank. const GRID = 16; const scale = c.width / GRID; // 16×16 logical grid → canvas-sized output ctx.fillStyle = '#4A90D9'; ctx.fillRect(6 * scale, 2 * scale, scale, scale); ``` ### Minimal HTML template ```html ``` --- ## 2. Choosing the style | Style | Recommended use | Look & feel | Logical grid | Outline | Shading | |-------|-----------------|-------------|--------------|---------|---------| | **`chunky`** | Icons, buttons, tiles, blocks, simple props | Retro / 8-bit / NES-SNES | Small (16×16, 32×32) | Black or white, 1px | 2–4 stepped levels, NO AA | | **`maple`** | Characters, NPCs, monsters, cute mascots | MapleStory / storybook / cartoon | Larger (32×32 ~ 128×128) | **Selout** (darker version of fill color) | 4–6 stepped levels + **selective AA** on silhouette + optional 2×2 dithering | ### Defaults when in doubt - Icon / button / tile / block → **`chunky`** - Character / NPC / monster / mascot / "cute" requests / "draw a slime" → **`maple`** - User says "retro" / "8-bit" / "NES" / "minimal" → **`chunky`** - User says "MapleStory" / "cute" / "cartoon" / "chibi" / "illustrated" → **`maple`** Full per-style rules: - [references/style-chunky-pixel.md](references/style-chunky-pixel.md) - [references/style-maple-cartoon.md](references/style-maple-cartoon.md) Both styles share the same forbidden APIs (no curve APIs, no gradient APIs, no fractional coordinates, no `filter: blur`/`drop-shadow`). They differ in palette richness, outline color, AA, and working grid. --- ## 3. Size guide (summary) | Use | Recommended size | |-----|------------------| | Icon / button | 48×48 ~ 64×64 | | Character / item / NPC / monster | 96×96 ~ 128×128 | | Tile / floor / block | 64×64 ~ 128×128 | | Background / large object | 256×256 or larger (only on explicit request) | The default is **128×128**. For style-specific working-grid tables (chunky uses a small logical grid like 16×16; maple uses a larger one like 64×64) and SD character proportions, see [references/size-guide.md](references/size-guide.md). > If the requested output is **below 64×64**, the `maple` style does not have enough pixels for selout + AA + facial features — either bump the output size to 64+ or fall back to `chunky`. --- ## 3.5 Multi-sprite sets — derive every variant from one seed When one request needs several related sprites — frame-like sequences (walk 1/2/3, attack poses), icon families, or state variants of one character — never draw each sprite from scratch. Independently drawn sprites drift in size, palette, and baseline even when the prompt repeats the same description. 1. Draw ONE seed sprite first, render it, and verify it (Read the PNG) before touching the rest of the set. 2. Derive every other sprite by **editing a copy of the seed's code** — keep the logical grid, palette constants, outline treatment, silhouette/proportions, and anchor identical; change only the pose/content. Characters anchor bottom-center so feet stay on the same baseline across the set. 3. Render all PNGs and Read them side by side **before uploading any of them**. If one variant drifted (size/palette/baseline), re-derive it from the seed code — do not patch the drifted output. 4. Upload each PNG as its own sprite (§5) with a shared name prefix (`Slime_Walk_01`, `Slime_Walk_02`, …) and report all RUIDs together (§6). For frame sequences, tell the user the boundary up front: the upload tool cannot create an `animationclip`, so the frames land as N independent sprite RUIDs and playback means a script swapping `SpriteRendererComponent.SpriteRUID` on a timer. A native clip (played without any script) requires the user to import the frames through Maker themselves. --- ## 4. PNG render — `render.cjs` ### One-time dependency install ```bash cd scripts && npm ci ``` This installs `puppeteer` (~200MB including headless Chromium) from the committed `package-lock.json`. It is separate from other base skill dependencies, so run this only the first time you use painter. > 🔒 Use `npm ci`, **not** `npm install`. `npm ci` installs exactly the versions pinned in `package-lock.json` and fails if the lockfile and `package.json` disagree — this is the supply-chain integrity guarantee for W012. Never edit `package-lock.json` by hand; if you need to bump puppeteer, run `npm install puppeteer@` locally and commit the regenerated lockfile. ### Sandboxing & network isolation `render.cjs` runs the headless Chromium with the OS sandbox **enabled** by default and blocks **all** network requests from the rendered page. The page is also served via a `data:` URL with a strict `Content-Security-Policy` (`default-src 'none'`), and the SVG / HTML input is sanitized to strip `

相关技能

媒体内容

Nano Banana Pro

以纳米·香蕉Pro(Gemini 3 Pro Image)来生成/编辑图像. 用于创建/修改请求,包括编辑。 支持文本到图像+图像到图像; 1K/2K/4K; 使用 -- input-image.

媒体内容

Youtube Watcher

从YouTube视频中获取并读取文字记录. 需要汇总视频时使用,回答有关视频内容的问题,或者从中提取信息.

媒体内容

Atxp

Access ATXP支付API工具用于网页搜索,AI图像生成,音乐创建,视频生成,X/Twitter搜索,电子邮件,代理账户管理. 当用户需要实时网络搜索时使用,AI生成的媒体(图像,音乐,视频),X/Twitter搜索,发送/接收电子邮件,或创建和资助代理账户. 需要通过“ …

媒体内容

Youtube

YouTube Data API与管理的OAuth的集成. 搜索视频,管理播放列表,访问频道数据,并与评论互动. 用户想与YouTube互动时使用此技能. 对于其他第三方应用,使用api-gateway技能(https://clawhub.ai/byungkyu/api-gate…