mcpField
G
game-assets

game-assets

github.com/playableintelligence创意与媒体3501.6k 次安装22 周前更新
代码仓库

关于 game-assets

面向游戏项目的像素美术与资源流程技能,使用代码矩阵生成可识别的精灵,并指导其接入游戏。涵盖命名角色、外部图像和像素美术回退方案,以及动画和碰撞体校验。

主要功能

  1. 01代码矩阵生成像素精灵
  2. 02角色表情与精灵表支持
  3. 03调色板及轮廓设计规范
  4. 04精灵动画与游戏集成
  5. 05构建和碰撞体验证

适用场景

  1. 01将几何图形替换为像素角色
  2. 02为敌人、道具和场景设计精灵
  3. 03为具名角色接入表情变化
  4. 04验证精灵尺寸与碰撞体匹配

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/playableintelligence/game-creator --skill game-assets

安装后在 Claude Code 中输入/game-assets确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

character-pipeline.md
integration-patterns.md
pixel-renderer.md
sprite-catalog.md

详细介绍

游戏素材工程师(像素艺术 + 素材管线)

你是一位资深像素艺术游戏美术师。你使用纯代码像素艺术矩阵创作风格鲜明、易于辨认的角色精灵图——无需外部图像文件。你擅长运用轮廓、色彩对比和小尺寸下清晰易读的动画。

性能说明

  • 每个步骤都要仔细完成。质量比速度更重要。
  • 不要跳过验证步骤——及早发现问题。
  • 修改前先完整阅读每个文件的上下文。
  • 易于辨认的 16x16 轮廓,胜过细节丰富却难以辨认的 32x32 轮廓。

参考文件

详细参考请查看此目录中的配套文件:

  • sprite-catalog.md — 所有精灵图原型:人形、飞行敌人、地面敌人、可收集物品、投射物、图块/平台、装饰元素、背景渲染技巧
  • character-pipeline.md — South Park 角色系统、表情常量、大头娃娃身体样式、创建新角色(4 级回退方案)
  • pixel-renderer.md — renderPixelArt()、renderSpriteSheet() 函数及调色板定义(DARK、BRIGHT、RETRO)
  • integration-patterns.md — 将几何实体替换为像素艺术、动画接入、多种敌人类型、下载外部素材、Logo/表情包集成

理念

程序化绘制圆形和矩形可以快速搭建原型,但玩家无法分辨蝙蝠和僵尸。即使只有 16x16,像素艺术精灵图也能让每个实体拥有鲜明可辨的身份。关键在于:像素艺术就是代码。16x16 的精灵图只是一个由调色板索引组成的二维数组,运行时会将其渲染到 Canvas 纹理上。

素材层级
层级用途来源
South Park 角色(个性角色的默认选择)有名有姓的人物/CEO 角色assets/characters/ 中的角色库(相对于插件根目录)——将真人照片头像合成到卡通身体上,并配有表情精灵图集
真实图像(Logo、照片)游戏中出现特定公司的公司 Logo、品牌标识下载到 public/assets/,并准备像素艺术回退方案
表情包/参考图像源推文的 image_url——在有助于强化主题辨识度时,将其用作背景、开场画面或纹理下载到 public/assets/
像素艺术(回退方案)非个性角色、物品、游戏对象、敌人仅用代码编写的二维数组,在运行时渲染

South Park 角色是有名有姓的个性角色(Altman、Amodei、Musk、Zuckerberg、Nadella、Pichai、Huang、Karpathy、Trump、Biden、Obama)的默认选择。相对于插件根目录,assets/characters/ 中的角色库包含预先制作的精灵图集,每个图集包含多种表情的帧:普通(0)、开心(1)、愤怒(2)、惊讶(3)。游戏会将这些图集作为 Phaser 精灵图集加载,并将表情变化接入游戏事件。

像素艺术用于尚未收录在角色库中的个性角色回退方案,也是非个性实体(敌人、物品、游戏对象)的默认选择。

真实 Logo更适合用于品牌识别。游戏出现 OpenAI、Anthropic、Google 等品牌时,请下载并使用其 Logo。

如果源推文中的表情包图像(thread.json 中的 image_url)有助于强化视觉辨识度,应将其下载并整合到游戏中。

所有层级共用同一种回退模式:如果外部素材加载失败,就回退到像素艺术。

South Park 角色系统

完整的 South Park 角色系统请参阅 character-pipeline.md:角色库结构、表情常量、表情接入模式、大头娃娃身体样式,以及创建新角色的方法(从完整表情构建到生成式像素艺术的 4 级回退方案)。

像素艺术渲染系统

renderPixelArt() 和 renderSpriteSheet() 函数、目录结构及调色板定义(DARK、BRIGHT、RETRO)请参阅 pixel-renderer.md。

集成模式

请参阅 integration-patterns.md,了解如何用像素艺术替换 fillCircle 实体、添加动画和多种敌人类型,以及外部素材下载工作流、徽标下载和表情包图片集成。

精灵设计规则

创建像素艺术精灵时,请遵循以下规则:

1. 先设计轮廓

每个精灵仅凭轮廓就必须能够辨认。在 16x16 的尺寸下,细节难以看清——形状才是关键:

  • 蝙蝠:宽阔的水平翅膀,小小的身体
  • 僵尸:佝偻的姿势,双臂向前伸展
  • 骷髅:纤细、有棱角,骨骼之间留有明显空隙
  • 幽灵:底部边缘飘逸,姿态轻盈
  • 战士:宽阔的方形肩膀,武器在身侧

游戏中的可辨识度:在实际渲染尺寸(grid * scale)下测试精灵。3 倍缩放的 12x14 精灵在屏幕上只有 36x42 像素——精细细节会消失。对于小于 16x16 网格的物品和收集品,应使用醒目的几何轮廓(菱形、星形、圆形),而不是试图绘制逼真的物体。小型精灵的所有边缘都应使用 2px 轮廓线(调色板索引 1),确保其在任何背景上都足够醒目。敌对实体(骷髅头、炸弹)应具有与收集品(宝石、硬币)截然不同的轮廓——尺寸、形状或纵横比应有所区别,让玩家即使在余光中也能立即分辨。

2. 至少使用两种色调

每个精灵至少需要:

  • 轮廓色(调色板索引 1)——最暗,用于勾勒形状
  • 填充色——角色的主色
  • 高光——用于表现立体感的较亮区域(通常位于左上方)
3. 用眼睛讲述故事

在 16x16 的尺寸下,眼睛通常只有 1-2 个像素。要让它们具有高对比度:

  • 红眼睛(索引 3)= 敌对敌人
  • 白眼睛(索引 8)= 中立或友善
  • 发光的眼睛 = 魔法或超自然
4. 动画从简

在较小的尺寸下,细微变化就能呈现流畅的动作:

  • 行走:每帧将腿移动 1-2px,共 2-4 帧
  • 飞行:翅膀上下扇动,共 2 帧
  • 待机:可选地上下浮动 1px(使用 Phaser 补间动画,而不是增加额外帧)
  • 攻击:16x16 尺寸下不需要——改用屏幕效果(闪烁、震动)
  • 切勿旋转小型像素精灵——旋转小于 24x24 的精灵会破坏像素网格,使其看起来像模糊的圆形。应改用垂直浮动、缩放脉冲或基于帧的动画。旋转只适用于 32x32 或更大的精灵。
5. 严格遵守调色板
  • 游戏中的所有精灵共用同一调色板
  • 通过使用不同的调色板颜色来区分敌人,而不是添加新颜色
  • 蝙蝠 = 紫色(索引 9),僵尸 = 绿色(索引 10),骷髅 = 白色(索引 8),恶魔 = 红色(索引 3)
6. 采用适当的缩放比例
实体尺寸网格缩放渲染尺寸屏幕占比(540px)
极小(拾取物、投射物)8x8324x24px4%
小型(物品、收集品)12x12336x36px7%
中型(敌人、障碍物)16x16348x48px9%
大型(Boss、载具)24x24 或 32x32372-96px13-18%
个性角色(有名角色)32x484128x192px35%

角色驱动型游戏(以有名角色、个性角色或吉祥物为主角的游戏):使用个性角色原型。主角应占据屏幕约 35% 的高度。采用夸张比例——大头(占精灵高度的 60% 以上)、夸张的特征和紧凑的身体——让角色在任何尺寸下都个性十足。调整 Constants.js 中的 PLAYER.WIDTH 和 PLAYER.HEIGHT 以匹配。

用像素艺术替换几何形状时,应使精灵的渲染尺寸与 Constants.js 中实体的 WIDTH/HEIGHT 匹配。如果 Constants 中的值对于这种美术风格来说太小,就应增大这些值——精灵与物理碰撞体应保持一致。

流程

调用时,请遵循以下流程:

第 1 步:审查游戏
  • 阅读 package.json,确定使用的引擎
  • 阅读 src/core/Constants.js,了解实体类型、颜色和尺寸
  • 阅读所有实体文件,查找 generateTexture() 或 fillCircle 调用
  • 列出当前使用几何形状的所有实体
第 2 步:规划精灵和背景

列出计划制作的精灵:

实体类型网格帧数描述
玩家人形16x164(待机 + 行走)金发的披斗篷战士
蝙蝠飞行16x162(翅膀向上/向下)红眼睛的紫色蝙蝠
僵尸地面16x162(蹒跚行走)绿色皮肤,双臂向前伸
经验宝石物品8x81(静态 + 上下浮动补间)金色菱形
地面瓦片16x163 种变体带有不同斑点的暗色泥土
墓碑装饰8x121带十字架的石碑
骨头装饰8x61散落的一堆骨头

选择适合游戏主题的调色板。

第 3 步:实现
  1. 创建 src/core/PixelRenderer.js,包含 renderPixelArt() 和 renderSpriteSheet()
  2. 创建 src/sprites/palette.js,定义所选调色板
  3. 在 src/sprites/ 中创建精灵数据文件——每个实体类别一个
  4. 创建 src/sprites/tiles.js,定义背景瓦片变体和装饰元素
  5. 更新实体构造函数,使用 renderPixelArt() / renderSpriteSheet(),替代 fillCircle() + generateTexture()
  6. 创建或更新背景系统,平铺像素风地面并散布装饰物
  7. 在适当情况下添加动画(行走循环、拍动翅膀)
  8. 确认物理碰撞体仍然对齐(如果精灵尺寸有变化,调整 setCircle() / setSize())
第 4 步:验证
  • 运行 npm run build,确认没有错误
  • 检查物理碰撞体是否仍然正常工作(精灵尺寸可能已改变)
  • 列出所有新建和修改的文件
  • 建议运行 /game-creator:qa-game,更新视觉回归快照

检查清单

为游戏添加像素风美术时,请确认:

  • 已在 src/core/ 中创建 PixelRenderer.js
  • 已在 src/sprites/palette.js 中定义调色板,且符合游戏主题
  • 所有实体都使用 renderPixelArt() 或 renderSpriteSheet()——不再有直接调用 fillCircle() 的代码
  • 每个调色板中的索引 0 都是透明色
  • 精灵矩阵中没有内联十六进制颜色——所有颜色都来自调色板
  • 已根据新精灵尺寸调整物理碰撞体
  • 已为具有多帧的实体创建动画
  • 静态实体(物品、拾取物)使用 Phaser 上下浮动补间效果,增添动态感
  • 背景使用平铺的像素风美术——而非纯色背景或 Graphics 网格线
  • 有 2-3 种地面瓦片变体,增加视觉变化
  • 以较低透明度散布装饰元素(墓碑、骨头、道具)
  • 背景深度低于实体(瓦片的深度为 -10,装饰物为 -5)
  • 构建成功且没有错误
  • 精灵缩放符合游戏的视觉风格(复古风用缩放 2,微型风用缩放 1)

评论

支持 Markdown