我最近一直在学习关于精灵和精灵图生成的更多知识。
我想分享一下我测试并发现的非常方便的方法。有没有人已经在做这个并且想和我分享他们的经验呢?如果有,请告诉我。
基本上,当我的游戏发展到了一定阶段时,我想实现一个稀有度系统 —— 通常的普通、稀有、史诗、传奇 —— 以及我们都知道的标准颜色。
对我来说的挑战是,在重新绘制我的艺术之前,我已经有了我的原始精灵,正在测试游戏,基本上有 32 个独特的精灵动画:
- 8 个方向的静止状态
- 8 个方向的运动状态
- 8 个方向的阻塞状态
- 8 个方向的死亡状态
一旦我完成了初步测试并准备好细化我的主角,我就想找到一种方法来将稀有度颜色烘焐到我的艺术中,而不必重新生成 32 个独特的精灵图,以适应每种盾牌稀有度(在我的游戏中,盾牌是唯一可以改变实际精灵外观的可装备物品,其他武器的使用都是通过 SVG 动画实现的)。
话虽如此,我和 ClaudeBoy 聊了起来,问他是否可以生成一个基准版本,我的盾牌颜色是闪亮的霓虹色(与其他艺术作品完全不同),并且添加逻辑来替换这些像素基于玩家装备的盾牌。
长话短说,我生成了那个基准资产(第二个图像上方),并在 Lovable(我正在建造这个当前游戏的)中测试了它,结果非常不错(见第一个图像上方)。
如果有任何人有类似的用例并想尝试一下,请提供以下提示:
```
实现一个盾牌颜色交换系统,使用标记颜色像素替换。
基本精灵上画有三个标记颜色,不在艺术作品的任何其他地方出现:紫红色(盾牌区域)、亮绿色(边框)和黄色(徽章)。
实现一个重绘函数,实现以下功能:
-
扫描精灵的像素数据(通过 canvas getImageData/putImageData 或等效技术)。
-
检测与每个标记颜色相近的像素。
-
根据当前活动的稀有度级别,替换它们,使用一个目标调色板,如下所示:
稀有度 | 边框(原为亮绿色) | 盾牌区域(原为紫红色) | 徽章(原为黄色)
普通 | 石灰色 | 深灰色 | 淡银色
稀有 | 冰蓝色 | 深蓝灰色 | 淡青色
史诗 | 金色 | 皇室紫色 | 白金色
传奇 | 烟橙色 | 烟黑色 | 金色
重要的是,这应该是一个保留每个像素原始亮度值的色调饱和度替换,而不是一个固体颜色的填充 —— 已经绘制在标记颜色的区域中的阴影和高光应该保留下来,只是颜色不同。
让这个重绘反应当前选择的/装备的稀有度级别,如此一来,切换级别时,精灵的颜色会实时更新。
评论 (0)