DMX插件 中包括一系列自定义蓝图节点,这些节点可简化C++之外的DMX发送和接收。此外,插件中包含一系列getter和setter函数,这些函数反映了常见的虚幻引擎体系架构和逻辑,从而使DMX编程的学习曲线变得较短。这些函数提供对参数的访问,例如属性名称、标签名称、活动域、信道、灯具参考等。
所有蓝图都可以全局访问,并且可以在UMG中完全实现。场景中不需要Actor。出于组织目的,节点在自定义DMX子系统下构建,旨在提供清晰的组织结构,且便于搜索DMX相关节点。
DMX子系统
DMX子系统 充当在代码和用户体验上下文中用于整理蓝图属性的定位系统。对于子系统中包含的每个节点,用户需要将 DMXSubsystem 节点作为目标输入。
发送DMX BP
该蓝图针对给定灯具补丁以及输入映射中定义的给定属性名称和值,通过指定的协议发送DMX。对于此蓝图,用户必须具有有效的DMX库资产,并至少具有一个已注册控制器、灯具类型和灯具补丁。该协议由输入灯具补丁定义。
引脚 |
说明 |
---|---|
Target |
DMX子系统引用。 |
Fixture Patch |
要发送的灯具补丁引用。 |
Address |
属性名称和每个属性要发送的值的贴图(密钥=属性名称,值=要发送的值)。 |
Return |
EDMXSendResult |
DMX发送原始BP
若已给定了协议规范和地址/值贴图,则此蓝图将DMX发送到相关协议域。该蓝图独立于DMX库,并发送特定协议和域的原始DMX数据。SendDMX 是典型的蓝图,而 SendDMXRaw 主要用于在灯具补丁不存在或不可用的情况下进行快速调试和原型设计。
该蓝图不需要DMX库。
引脚 |
说明 |
---|---|
Target |
DMX子系统引用。 |
Selected Protocol |
你想要采用的发送协议。 |
Universe |
要发送到的远程域。 |
Address |
要发送的地址和值的贴图(密钥=地址,值=要发送的值)。 密钥必须大于0。 |
Return |
EDMXSendResult |
接收DMX
接收协议(4.26中弃用)
借助 Bind Event to On Protocol Received 节点,用户可以将自定义事件绑定到其事件图表中,该事件将侦听任何传入DMX。如果成功接收事件,则该事件将执行并提供有关已接收数据包的信息,包括协议、域和字节数组。
基于收到的调用数量,此事件的触发速度可能比更新函数快,因此请注意你执行的操作,确保有效的CPU使用率。建议在运行逻辑执行之前检查你的传入数据。
要使用此节点,只需将该节点绑定到自定义事件。
引脚 |
说明 |
---|---|
Protocol |
接收协议。 |
Remote Universe |
已接收的远程域。 |
DMXBuffer |
已接收域的完整字节数组。 |
On Fixture Patch Received
借助 On Fixture Patch Received 节点,用户可以侦听DMX组件中分配的特定灯具补丁的任何传入DMX。如果成功接收事件,则将执行并提供有关已接收数据包的信息,包括灯具补丁接收以及灯具补丁的所有信道值。仅当收到DMX组件中分配的灯具补丁的新值时,才执行此事件。
引脚 |
说明 |
---|---|
Fixture Patch |
接收DMX的补丁。 |
Value Per Attribute |
DMX组件中分配的灯具补丁中属性的所有规范化值。 |
为了在虚幻引擎中接收传入的DMX,必须将发送方传送到正确的IP地址。该IP应该是用于项目的IP。此IP在 项目设置(Project Settings) > 插件(Plugins) > DMX插件(DMX Plugin) > 接口IP地址(Interface IP Address) 中设置。默认情况下,此IP设置为0.0.0.0,它将选择由操作系统确定的主网络接口卡。
如果你想从备用源接收,请找到你的IP地址,并确保DMX发送源在网卡的IP子网中广播。
例如,如果你的网络IP地址为192.168.1.100,则发送方应在192.168.1.255上广播,以便虚幻引擎能够接收。注意末尾的 255,表示在网络接口卡IP子网广播。
获取DMX属性值
获取DMX属性值 蓝图将返回一个贴图,其中包含属性名称及其输入灯具类型的当前值。这是现有蓝图属性的示例,这些属性允许从给定的DMX灯具补丁中获取当前DMX值。
结合使用 GetDMXFixturePatch 和 GetDMXAttributeValues,用户可以使用细节面板中的 公开属性(Expose Attributes) 按钮公开所选补丁的属性。这将列出指定灯具补丁的所有可用属性,并输出其当前值。
或者,如果用户要输入动态设置的灯具补丁,则他们将无法像以前那样公开属性,但是可以通过调用 外部属性贴图(Out Attributes Map) 中的 查找(Find) 属性指定他们想要获取的属性值。请参阅以下示例。