我是一名独立游戏开发者。过去,我制作过游戏模组、小游戏和工具,让玩家可以与游戏角色聊天。

最近,我正在开发一款2D游戏,使用Codex,我开始研究AI是否可以帮助生产游戏所需的大量像素艺术内容。

我选择2D,因为它的范围相对来说是可管理的,对于独立开发者来说是比较合适的,像素艺术是2D游戏中常见的视觉风格。

我的初始假设是相当乐观的:也许Codex,一个图像生成器,和一个好的提示可以生成可以直接放入游戏中的资产。

但是,当我尝试生成我的角色之一——企鹅的行走动画时,这个假设就破灭了。

https://preview.redd.it/1c2ph5fi7yih1.png?width=752&format=png&auto=webp&s=18d9a74100cf86b55db84fb6df6e6e5e59b3bdba

https://i.redd.it/qna0ipwn7yih1.gif

动画中的移动感觉很别扭,不能真正作为正常的行走循环使用。

这让我对现有的专业像素艺术工具的状态产生了兴趣,所以我测试了五款工具。

我是如何测试它们的

这是一次小规模的实验,不是一个严格的基准测试。

因为我使用了新账户试用的信用额度,所以我每个结果只生成了一次。生成工具可以在每次尝试中产生不同的结果,所以这些示例应该被看作是初步印象,而不是最终排名。

对于静态图像,我要求:

全身像素艺术动画女孩

对于动画,我使用:

行走

我要求128x128的输出,背景透明。每个动画都是使用相同工具生成的角色。

下面的成本是根据每个产品的入门级订阅价格和包含的信用额度计算的估计值。它们不是按用量支付的API价格,价格可能会改变。

结果

| 工具 | 静态图像 | 动画 | 我所观察到的 |

|---|---:|---:|---|

| Retro Diffusion | $0.019 | $0.07 | 真实像素艺术,但它忽略了“全身”指令。在动画中,花朵跳跃在角色头部的左侧和右侧。 |

| PixelLab | $0.006 | N/A | 真实像素艺术,遵循了“全身”指令。试用的信用额度不足以完成动画测试,所以我只能检查其方向输出。 |

| Sprite AI | $0.08 | $1.12 | 静态图像中的像素艺术轮廓清晰。动画流畅,但轮廓在运动中变得模糊,循环转换感觉僵硬。 |

| SpriteLab | $0.02 | $0.40 | 静态图像是真实像素艺术,但在行走动画中,同一只脚在整个循环中都保持在前面。 |

| pixie haus | $0.017 | $0.50 | 似乎生成了一个三视角人物表,但其中两个视角几乎相同。 |

https://preview.redd.it/54nsappx7yih1.png?width=1480&format=png&auto=webp&s=f7f0b30d32c4e809ddd87b7acc44ab3680d63713

https://i.redd.it/tgok10dy7yih1.gif

我所学到的

大多数这些工具现在都可以生成一个看起来像真实像素艺术的静态图像。

但是,生成一个可控的、可靠的、游戏可用的资产的更难的问题。

研究开源方法

测试了商业工具后,我开始研究开源像素处理项目。

我不是试图构建另一个图像模型。我想的是一个独立于供应商的后处理工作流程,可以使用我已经订阅的工具生成的图像和视频。

三个项目对我很有用:

perfectPixel

perfectPixel将AI生成的伪像素艺术视为一个扭曲或不一致放大后的逻辑网格。

它使用2D FFT检测重复结构并估计隐藏网格分辨率。如果结果不靠谱,它可以回退到Sobel边缘检测。然后,它将网格与图像边缘对齐并对每个单元取样以重建一个真实的低分辨率图像。

这个方法给了我最好的起点,尤其是在保留小的面部特征,如眼睛。

Sprite Fusion Pixel Snapper

Sprite Fusion Pixel Snapper采取了一种边缘驱动的方法。

它减少图像调色板,计算水平和垂直梯度-profile,估计像素间距从梯度峰值之间的距离,搜索近似预测网格位置的强边缘。然后,它为恢复的单元分配一个主色。

我发现其网格对齐和调色板控制的方法很有用,但局部边缘可能会对恢复的网格产生影响。

FrameRonin

FrameRonin帮助我超越处理单个图像的想法。

它更广泛的工作流程涵盖了视频帧提取、帧选择、背景处理、像素化、调色板减少和精灵图集创建等。

构建自己的原型

我花了三天的时间学习这些方法并构建一个开源原型,称为[Pixelate](https://pixelate.nickpeanutai.com/)。

[源代码可在GitHub上找到](https://github.com/nickpeanutai/pixelate)。