创建iPhone/iPad应用程序/游戏的图像/精灵的正确流程是什么?

3
我刚开始使用Xcode开发iPhone/iPad游戏,需要了解正确的创建游戏图像/精灵的过程。目前我已经使用Illustrator创建了我的精灵,并将它们导出为PDF文件。在Xcode中,我创建了单个比例资产并将PDF文件放入其中。如果我正确理解文档,Xcode会自动生成PNG图像文件,分别为@1x、@2x和@3x版本。然后,我创建了一个SKSpriteNode,并设置大小如下:abc.size = CGSize(width: 123, height: 123)。我填写的宽度和高度与我在Illustrator中设置的框架/图像大小相对应。但是,如果我需要在iPhone和iPad上以不同尺寸使用相同的图像,我不能简单地调整大小,因为@1x图像版本不再是矢量图,而是绑定到我在Illustrator中选择的框架大小。那么我该怎么办呢?我必须在Illustrator中调整图像大小并以不同的尺寸导出吗?正确的步骤是什么?我必须在纸上用铅笔画草图,然后用尺子测量吗?然后我会去Illustrator中手动设置框架的宽度和高度吗?这些图片尺寸、分辨率和@1x、@2x和@3x版本让我很困惑。如果它们仍然绑定到我在Illustrator中选择的框架大小,为什么我还要使用矢量文件呢?是否有可能在所有图像之间设置比例,然后只使用矢量PDF文件?该如何设置我的Illustrator呢?希望有人能够解决我的问题。谢谢。

+1000000 乘以一百万。苹果文档对此的解释令人困惑,似乎艺术家和程序员从来没有长时间相处以找出解决方法。 - Confused
2个回答

1
你的pdf应该以点为单位进行大小调整,而不是像素。在手机和iPad上,这些点应该具有相同的物理大小,但如果你想在手机上使它们更小,你需要另一组图像;资源目录允许你基于iPhone/iPad切换图像。Xcode将你的pdf渲染为@1x、@2x和@3x的png,并且你的应用程序会根据设备的分辨率选择正确的png。你说得对,这些不再是矢量资产,将它们放大可能会导致模糊/像素化的图像。你有几个选择:
1)在应用程序中包含一个经过缩放的图像版本,其最大比例尺寸,并仅在需要放大时使用此版本(否则,如果始终呈现一个小得多的图像,则会浪费内存和处理)。这可能是最简单的解决方案。
2)保留你的资产作为矢量,并将它们加载为矢量。你仍然可以以恒定的比例或一系列比例渲染它们为图像以获得性能,但如果需要,你可以随时重新呈现它们。很可能你想要使用SVG库来实现这一点。

3) 您可以使用像paint code这样的程序将您的资产直接导入代码。以前,Illustrator也有类似的插件,但我没有看到适用于Swift 3 / Illustrator CC的插件。显然,这比#2更快,因为无需解码矢量文件。如果您的文件具有大量重叠,则仍可能希望将其栅格化为图像以提高性能。


1
恕我直言,我认为您可能用一般化的回答来回答您认为是一般性问题。这个问题并不像一开始看起来那么泛泛而论。 - Confused
当然,具有讽刺意味的是,应该有一组通用的步骤来回答这些生产工作流程的问题,但似乎并没有,而这些步骤肯定不是它们。 - Confused

1

根据我的经验,我发现以下内容:

1)Xcode不能从.png文件生成@2x和@3x。你需要手动提供@1x、@2x和@3x的尺寸。

2)无论你使用CGSize(...)的大小是什么,那都应该是你的@1x图像,然后从那里生成@2x和@3x。我开始通过场景编辑器设计级别的大小,然后制作了一个通用的SKSpriteNode形状,只是为了得到我想要的大小,然后我开始从我找到的好看的大小制作图像。

3)Xcode支持基于向量的图形(svg、pdf),但你不能将它们用作纹理集的一部分,这使它们在我看来变得不太有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接