使用色度键(或绿屏)技巧在您的电脑游戏中设置图像的透明度。无论您是使用Python还是Lua编写游戏或应用程序,您都有可能在游戏资产中使用PNG图像。PNG格式图像的一个优点是能够存储alpha通道,这在JPEG格式图像中是不可能的。alpha本质上是一种不可见或透明的“颜色”。alpha是图像的不可见部分。例如,如果你要画一个甜甜圈,甜甜圈上的洞会被alpha填充,你将能够看到它后面的任何东西。一个常见的问题是如何找到图像的alpha部分。有时您的编程框架,无论是PythonArcade、Pygame、L?VE还是其他,都会检测到alpha通道并(在适当调用函数后)将其视为透明。这意味着它不会在alpha部分渲染新像素,留下圆环孔。100%是透明的,0%是不透明的,在功能上是“隐形”的。有时您的帧在alpha通道放置方面与您的图像资产不一致(或者,alpha通道根本不存在),并且您在需要透明度的地方获得像素。这篇文章描述了我所知道的解决透明度问题的最可靠方法。色度键在计算机图形学中,有一些值可以帮助确定每个像素的渲染方式。色度(或色度),描述像素的饱和度或强度。色度键技术(也称为绿屏)最初是作为一种化学过程开发的,在该过程中,特定的哑光颜色(最初是蓝色,后来是绿色)允许使用另一个图像代替蓝色或绿色屏幕。这是一个简化的解释,但它说明了计算机图形学中所谓的alpha通道的起源。Alpha通道是存储在图像中的信息,用于识别要透明的像素。例如,RGB图像具有红色、绿色和蓝色通道。RGBA图像包含红色、绿色和蓝色通道,以及一个alpha通道。alpha值的范围可以从0到1,小数也有效。因为alpha通道可以用几种不同的方式表示,所以依赖嵌入的alpha通道可能会有问题。作为替代方案,您可以在游戏框架中选择一种颜色并将其转换为0的alpha值。为此,您必须知道图像中的颜色值。准备图像要准备为色度键保留明确颜色的图形,请在您喜欢的图像编辑器中打开图像。我会推荐GIMP或Glimpse,但mtPaint或Pinta,甚至Inkscape都可以,这取决于您的图像的性质,以及您将这些操作方法转换为不同的图片编辑器工具的能力。首先打开Tux企鹅的图像:TuxPenguin选择图像打开图像后,转到“窗口”菜单,选择“可停靠对话框”,然后选择“图层”。右键单击“图层”面板中的Tux图层。从弹出菜单中,选择AlphaToSelection。如果您的图像没有内置的alpha通道,则您必须手动创建自己的选区。选择的Alpha要手动创建选择,请单击工具箱中的路径工具。GIMP的路径工具要使用路径工具,请在图像周围移动鼠标,在其轮廓的每个主要交叉点单击并释放(不要拖动)。不要担心跟随曲线;只需找到主要的十字路口和拐角即可。这将在每个点创建一个节点并在节点之间绘制一条线段。你不需要关闭你的路径,所以当你最终到达你开始的十字路口时,你就完成了。在GIMP中创建路径创建轮廓路径后,转到“窗口”菜单,选择“可停靠对话框”,然后选择“工具选项”。在工具选项面板中,选择编辑(Ctrl)。激活此操作后,您可以通过单击线条或节点来编辑刚刚绘制的路径,并调整它们以更好地适合您的图像。你甚至可以弯曲直线。编辑路径现在从“窗口”>“可停靠”对话框菜单中选择“路径”面板。在“路径”面板中,单击“选区路径”按钮。现在您的绘图已被选中。扩大你的选区如果你觉得你的选区太紧,你可以通过扩大它给你自己的选区一些松弛。当我想采用或加厚图像周围的边框时,我有时会像这样扩展选区。要展开选择,请单击“选择”菜单并选择“展开”。输入像素值并单击“确定”。InvertSelection您已经选择了图形,但您真正要选择的内容不包括您选择的图像。这是因为您正在创建一个alpha蒙版来定义图像中的某些内容将被其他内容替换。换句话说,您需要标记将变为不可见的像素。要反转选择,请单击“选择”菜单并选择“反转”。现在除了你的图像之外的所有东西都被选中了。填充alpha选择除图像以外的所有内容,选择要用于指定alpha蒙版的颜色。最常用的颜色是绿色(您可能已经从术语“绿屏”中猜到了)。绿色不是某种神奇的颜色,甚至不是特定的绿色阴影。之所以使用它,是因为人们经常处理不含绿色颜料的图像,因此可以轻松地隔离绿色而不会意外地隔离图像的重要部分。当然,如果您的图像是绿色外星人或祖母绿或实际包含绿色的东西,那么您应该使用不同的颜色。只要您选择的颜色是单一的单色,您就可以使用任何您想要的颜色。如果您处理大量图像,则您的选择应该在所有图像中保持一致。工具箱中的前景色使用您选择的颜色值来设置前景色。为确保您的选择准确无误,请使用HTML或HSV颜色表示法。例如,如果您使用纯绿色,它可以在GIMP(和大多数开源图形应用程序)中表示为00ff00(00是红色,FF是绿色,00是蓝色,F是最大值)。设置颜色值无论您选择什么颜色,一定要记下HTML或HSV值,这样您就可以为每个图像使用完全相同的颜色。要填充您的alpha蒙版,请单击“编辑”菜单并选择“使用前景色填充”。拼合和导出如果您在图像周围留下边框,请设置背景颜色以着色您要使用的边框画笔。这通常是黑色或白色,但也可以是适合您游戏审美的任何颜色。设置背景颜色后,单击“图像”菜单并选择“拼合图像”。无论您是否添加了边框,这样做都是安全的。此过程将从图像中删除alpha通道,并用背景色填充任何“透明”像素。平面化图像您现在已经为您的游戏引擎准备好了图像。将图像导出为您的游戏引擎喜欢的任何格式,然后使用您的游戏引擎需要的每个功能将图像导入您的游戏。在您的代码中,将alpha值设置为00ff00(或您使用的任何颜色),然后使用游戏引擎的图像转换器将该颜色作为alpha通道进行处理。其他方法这不是获得游戏图形透明度的唯一方法。查看您的游戏引擎的文档,了解默认情况下它如何尝试处理alpha通道,如果您不确定,请尝试让您的游戏引擎自动检测图像中的透明度,然后对其进行编辑。有时,你的游戏引擎的期望值和你的图像的默认值恰好匹配,你可以直接获得透明度而不需要做任何额外的工作。尽管如此,当这些尝试失败时,请尝试使用色度键。它为电影业工作了将近100年,它也可以为您工作。
