跳转到内容

游戏开发者快速入门

如果您是游戏开发者,希望为您的用户轻松集成 SignalRGB 效果,欢迎阅读本快速入门指南。我们的开发者专注于使效果与通常不是为我们目的而设计的 UI 协同工作。用户喜欢颜色渐变、透明 UI、可自定义的技能 UI、会弹跳或抖动的 HUD 元素等功能——所有这些不一致性都是我们在效果触发中需要考虑的。UI 越复杂,我们能为游戏和用户体验做的就越少。通过您与我们开发团队的协作,这些问题可以得到解决,游戏集成可以提升到新的水平。

SignalRGB 的 API 为开发者提供了独特而强大的工具来分析视觉信息。简单来说,我们可以从任何像素或像素组捕获精确的 RGB 颜色数据,并使用稳定值的变化来触发效果。例如,血条减少、菜单打开或技能图标去饱和——任何一致的 UI 元素都可以用来在用户的外设上触发效果。

这种方法被视为间接通信,并带来了我们的开发者在每次集成中都需要考虑的几个挑战。以下部分探讨了直接通信的构想,这些构想目前属于理论阶段(游戏开发者们,欢迎联系我们)。

我们最简单的触发器检查特定的颜色范围,如果匹配则返回”是”,否则返回”否”。在数据术语中,这称为位(bit),八个位组成一个字节,可以表示多达 256 种可能的状态。

在实践中,您提供屏幕上固定像素的坐标(在所有分辨率下均可见)。这些像素可以聚集在一起或分散开来,可以是任何颜色——只要每个像素的位置在游戏中永不改变,且其激活颜色保持一致即可。当像素颜色与激活颜色匹配时,它在数组中注册为”1”。如果是任何其他颜色,则注册为”0”。每帧,集成从这个二进制序列计算出相应的整数,并维护您定义的相应状态。

以下是使用三个像素的简化示例,产生六种独特的状态。本例中的 UI 元素是一款热门游戏小地图的角落。

以及我的三个像素:

我选择了原始颜色作为通过颜色,所以这种位的排列等于 111,即”6”。全不通过,即 000,将为”0”。

我们首先需要建立一个游戏中的”空闲”状态,在等待更多输入时只需维持其他所有正在进行的事情。这将是状态”0”,可以由以下像素值表示:

我将每个像素设置为 rgb(0, 0, 0),不通过检测。然而,这样大的差异可能会被用户注意到。在下一个示例中,我们将更加微妙。

那么,假设我们已经确认在游戏中并维持基本状态。您的角色施放了第一个技能,我们想将此变化注册为一个效果。“技能 1 施放”的效果已被指定为状态”1”,将在我们向集成传递状态”1”时激活。为此,我稍微编辑像素 1 和像素 2(从左数)的基础颜色,创建 001。

看起来可能变化不大,但像素 1 的亮度降低了约 30%,像素 2 获得了 50% 的饱和度。由于我们的系统可以轻松检测这些变化,状态将可靠地切换到”1”,并触发技能效果。具有固定持续时间的技能可以自行结束,但我们也假设这个技能通过一次按键激活并通过另一次按键结束。为了维持无限期的效果,状态”1”将激活它,状态”2”可以根据进一步的用户输入结束它。某些效果非常模拟性质,仍然需要由我们的开发者单独处理,但对于其余的效果,这套系统将是可靠的。主要限制是”像素”的可见性——它们必须在游戏状态期间保持不变,且可能应该比状态”1”像素的分辨率更大。