如何在不破坏美观的情况下旋转像素艺术精灵?


12

我现在正面临一个巨大的“游戏设计”问题。我正在制作一个像素艺术的游戏,使用双线性插值可以解决很多动画问题。另一方面,它不再是“像素游戏”。

如果我使用“双线性插值”,则动画可以工作,但看起来像“混合式”,并且失去了艺术风格。我要么弄乱动画,要么弄乱艺术风格。我不能拥有两者似乎。

还有其他解决方法吗?

在此处输入图片说明


4
您的决定就是您的游戏:)
Vaillancourt

是否可以选择“单线性”插值(通常简称为“线性插值”)?
菲利普

1
我改写了这个问题,以使它听起来不那么基于意见。
菲利普

等待..什么?我不需要批准吗?:D
OC_RaizW,2016年

1
还存在通过剪切旋转的可能性,该剪切使输入像素四处移动而无需复制/消除/混合它们。
DMGregory

Answers:


14

像素图自动旋转90度以外的角度通常会出错。如果您要保持像素艺术的美感,通常不会无所事事地从各个角度重新绘制艺术。

如果使用伪复古外观,其中的精灵实际上比它们的分辨率要高得多,则有时可以不用整数在不使用图形编辑器进行插值的情况下就将它们放大一个整数倍,然后在运行时以线性插值旋转它们。为避免精灵在原始方向上变得模糊,请始终确保将绘图位置四舍五入到最接近的整数(某些图形引擎/框架/库允许您在浮点坐标上绘制精灵,这通常会导致模糊)。但这通常只是懒惰的替代品,无法达到手动工作所能达到的质量。

这是原始大小的子画面的示例,在没有插值的情况下放大3倍,然后在线性插值的情况下旋转30°:

在此处输入图片说明


1
本质上,每个“像素”都变成10x10像素或类似的像素?
约翰

2
@John是的,这就是我所说的人造复古。10x10可能有点大(当然,这取决于您所针对的硬件平台的分辨率),但这基本上就是这个主意。您有一个精灵,看起来像16x32像素的艺术品,但实际上是48x96的纹理,每个“可见”像素实际上是相同颜色的3x3像素。
菲利普

thaaat与我在想的
差不多。...– OC_RaizW

Starbound中使用了相同的方法,即“可见”像素实际上是3x3真实像素的正方形
trollingchar

16

看看RotSprite

RotSprite是Xenowhirl开发的Sprite的缩放和旋转算法。与最近邻旋转算法相比,它产生的伪像要少得多,并且与EPX一样,它不会在图像中引入新的颜色(与大多数插值系统不同)。

RotSprite的示例

该算法首先使用改进的Scale2x算法将图像缩放到其原始大小的8倍,该算法将相似(而非相同)的像素视为匹配项。然后,通过偏爱不是边界像素的采样点来计算要使用的旋转偏移量。接下来,使用最近邻缩放和旋转算法创建旋转图像,该算法同时将大图像缩小到其原始大小并旋转图像。最后,如果源图像中的相应像素不同并且目标像素具有三个相同的邻居,则将恢复被忽略的单像素细节。

您既可以自己在游戏绘画代码中实现此算法,也可以使用它预先创建旋转的资产。像素艺术工具Aseprite集成了RotSprite作为其Sprite编辑器的一部分。

行动中的腐烂精灵的GIF

另外,请查看此Unity论坛主题中有关如何在Unity中使用RotSprite的信息,以及有关RotSprite的更多常规信息。


哎呀 我下载的团结和测试它-它的结局是远远超过一般的团结像素渲染更糟糕。但感谢
OC_RaizW

@OC_RaizW那不应该发生。您可能要联系Unity资产的开发人员。
Rudey

-4

页面左上方是一个选项:自动选择:组和图层。选择图层选项,然后旋转。那就是没人告诉你的方式。


4
您在谈论哪个图像编辑器?这个问题没有提到任何特定的工具。因此,如果您知道图像编辑器实际上很容易旋转低分辨率精灵且质量损失最小,请告诉我们这些说明适用于哪一个。
Philipp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.