Sprite生产的几个阶段。即草图,线条图,底纹,区域上色和索引。
上面的图片来自Trajes Fatais:Feats of Fate游戏,我作为首席开发者从事该游戏的制作。长话短说,每个精灵要绘制大约一小时,每个角色平均要绘制五百个精灵。在“游戏的机器学习辅助资料生成:像素绘画Sprite表格研究”中,我们探索了Pix2Pix架构来自动生产Sprite的流程,将每个Sprite花费的平均时间减少了15分钟(〜25%)。这是我们首次发表的有关精灵生成的工作,我们希望在将来进一步改进它。
该论文获得了2019年巴西游戏与数字娱乐研讨会(SBGames 2019)的最佳论文奖。
像素绘画是视频游戏中最受欢迎的美学之一。它致力于重现任天堂和Arcade旧游戏的外观。在90年代,像素绘画是大多数游戏机的唯一选择。屏幕分辨率有限,并且大多数设备无法实时执行高级技术。如今,像素绘画已成为一种选择-一种昂贵的选择。
为了实现街机游戏的外观和感觉,绘画者必须受颜色数量限制。最初的Game Boy只有四种绿色。它的继任者Game Boy Color可同时显示多达56种不同的颜色。后来的设备称为16位生成器,每个像素点最多允许256种颜色,这是美学上的重大突破。在我们的游戏中,我们限制为每个角色256个颜色。
每个像素点都有自己的256种颜色
通常,像素点是“索引精灵”与“调色板”的混合体。绘画时,绘画者使用与调色板的256种颜色之一相关的“索引”对每个像素进行着色。在游戏中,每个索引精灵都用其关联的颜色替换,从而构成最终图像。此过程使设计人员可以为每个角色创建不同的“皮肤”,从而允许用户自定义其体验并为角色创建“邪恶”版本。下图描绘了索引精灵,调色板和渲染的混合。
索引精灵,调色板和渲染
将绘画者的颜色选择限制为256种是不科学的。这使得选择阴影很难。为了简化此任务,在语义上对工作进行了划分。在我们的通道中,生成了两个中间的精灵:“阴影”精灵和“区域”精灵。前者最多使用6个选择来表示“灯光”,而后者最多使用42个选择来表示精灵的“区域”,例如手臂,头发,腿等。将两个精灵像素相乘 -之后我们获得了索引精灵,它最多可以支持252种颜色(6 * 42)。下图显示了阴影,区域和索引精灵的示例。此过程将256色问题转换为两个简单的子问题,每个子问题分别具有6和42色。
从左到右,阴影,区域和索引精灵。
最终,每个角色都是由一个人设计的,他将为其所有动画进行绘制。它们以“草图”子图形显示,后来又被精炼为“艺术线条”子图形。前者用于在游戏中快速制作新动画的原型,后者用于与其他绘画者交流最终精灵的外观。这样,设计人员可以在几天内概念化整个角色,并将其余工作外包给绘图团队。以下是草图和艺术线条精灵的示例:
草图和艺术线条
设计师将所有动画放在一起,通过绘制每个动画的草图,然后制作各自的艺术线条来创建角色。这些线型精灵将按顺序传递给绘图团队,后者将绘制它们的着色和区域。最后,使用脚本将两者结合起来以生成可用于游戏的索引精灵。
总共大约需要一个小时。草图,线条图和区域精灵的制作平均需要10分钟,而阴影则需要花费其余时间才能完成。跟踪每个图纸花费的确切时间几乎是不可能的。为了计算它们,我们检查了生产日志,采访了团队,并以可控的方式测量了12个精灵的绘制步骤。
假设使用机器学习模型可以生成阴影和彩色图片,那么生成的精灵必须足够好,以至于人类绘画者可以用比从头开始绘制更少的时间来完善它。
生成对抗网络入门
在这项工作中,我们解决了两个图像映射问题:线条到阴影和线条到区域。形式上,我们必须创建一个生成器G(x),该生成器从线条艺术中接收输入,并在阴影/区域中生成输出。此问题也称为图像翻译。
为了保证G(x)是有用的映射,我们将创建一个鉴别器D(x,y),该鉴别器查看x和y并说明y是否是一个优质子画面。换句话说,G是我们的“虚拟艺术家”,D是我们的“虚拟鉴赏家”。如果我们能让G使D开心,那么我们就有一个有用的映射。
更详细地说,考虑一下我们有几个线条艺术精灵(x)以及已经绘制的人类绘画者的阴影和区域精灵(y)。我们知道这些通过了质量控制,因此D(x,y)将很高兴。现在我们的任务是训练G给定x产生ŷ(对真实y的模仿)。如果复制良好,D将批准ŷ;否则,它将予以谴责。最后,我们会修正D的对与错,并要求D提供有建设性的反馈。
我刚刚描述的过程称为对抗训练。从某种意义上说,两种模式“竞争”,一种正在试图击败另一种。在我们的案例中,G试图击败D使其认为ŷ是y,而D则拼命试图说出什么是真实的,什么是假的。随着时间的流逝,G将成为成功的艺术家,而D可能会被解雇。
通过使用神经网络实现G和D,我们得到了所谓的生成对抗网络。将标题分解为“条件”是因为G接受x而不是随机噪声作为输入,“对抗”是因为它训练对手成为输入器,而“网络”则是(神奇!)神经网络 。
从算法上来说,对于每个线条艺术x和阴影/区域精灵y:
- 使用G从x生成ŷ
- 使用D评估ŷ是否看起来逼真
- 使用y和D的反馈来训练G
- 训练D认识到ŷ是假的而y是真的。
多次对整个数据集重复执行此过程,最终将融合为一个G网络(创建逼真的绘画)和一个D网络(无法分辨出图像是真实的或伪造的)。
Pix2Pix架构
Pix2Pix体系结构为基于U-Net生成器和基于补丁(Patch)的鉴别器。下图显示了组合的体系结构。鉴别器经过训练,可将每个32x32图片分类为真实或伪造,并经过交叉熵损失训练。反过来,训练生成器以使y和ŷ之间的L1损失最小,并使鉴别器损失最大。
高级Pix2Pix架构。
U-Net模型是基于编码器-解码器思想的全卷积神经网络。对于每个编码器层,将跳过全连接添加到解码器层。这允许网络利用来自编码层的“原始”信息和通过解码器层的“已处理”信息。这里给出了该体系结构及其相应出版物的全面概述。
鉴别器是一个截断的网络,输出对多个补丁图像的判断,而不是对整个图像的判断。因此,鉴别器向生成器提供详细的反馈,指出哪些区域看起来是真实的,哪些区域看起来是伪造的。可以在此处找到该体系结构内部细节的完整概述。
与原始网络相比,我们进行了以下更改:
- 我们使用了Y型网络。一个编码器,两个解码器和两个鉴别器。这样一来,即可解决阴影和区域问题。
- 使用分叉架构,每个分支都有两个损失。同样,我们使用L2范数代替L1范数,因为它显示出更好的结果。
- 原始论文使用LeakyReLU单位。我们使用了ELU单位。
- 在编码器中,我们对每次下采样使用了两次卷积运算,而不是一次卷积。