OSC插件概览

概述开放音效控制(OCS)插件在虚幻引擎中的工作方式。

Windows
MacOS
Linux

开放音效控制OSC)是众多音频行业领域常用开放协议。其主要用于客户端之间的网络泛型音频数据,但也可用于非音频数据。

OSC插件提供直观、类型安全的蓝图库,开发者可利用其快速迭代 虚幻引擎 中的网络音频(及潜在的其他域)数据。启用该插件后,通过 C++蓝图 中的简单API发送和接收OSC事件。其支持发送和接收消息和束,或者两者的组合。

必须启用 OSC 插件才能使用此功能。前往 编辑(Edit)> 插件(Plugins)> 输入设备(Input Devices),然后选中 OSC(开发音效控制) 选项进行启用。

根类型

OSC服务器

OSC服务器(OSC Server)UOSCServer)充当消息的聆听终端,此类消息将被发送至虚幻引擎的本地实例。其支持组播回路,同时解析OSC消息和束。同时还允许服务器明确声明将聆听的IP地址(白名单)。

用户可绑定事件以接收使用给定地址模式的所有OSC地址中的消息(参见下方 将事件绑定到地址模式),聆听所有消息(参见下方 将事件绑定到所有消息),或聆听所有束(与下方 将事件绑定到所有消息 类似,但需解包接收的束)。

OSC客户端

OSC客户端(OSC Client)UOSCClient)提供发送OSC消息和束的方式。

FOSC地址

OSC地址(OSC Address)FOSCAddress)是可为有效或无效模式的类型化路径。作为有效路径,可将其作为消息数据包的一部分创建、发送和接收。

其包含一组容器排列以及形式为 /Container1/Container2/Method 的方法,可作为路径或模式查询其有效性,同时还可与字符串相互转换,并使用蓝图调用进行操作。其还可根据另一OSC地址进行过滤,将该地址绑定到事件 BindEventToOnOSCAddressPatternMatchesPath 时同样为模式。

OSC束/消息

OSC消息FOSCMessage)和 OSC束FOSCBundle)均为OSC客户端中接收的或通过OSC服务器发送的数据包类型。

OSC消息包含地址,该地址也是有效路径且具有支持的OSC协议类型的负载。

OSC束包含一组数据包,数据包包含其他OSC束或OSC消息或者两者皆有。

资源类

OSC插件无需资源类。它需要的所有类型都是暂时性的,需通过蓝图创建、管理和销毁。

蓝图API

OSC服务器

OnOsc(Bundle/Message)Received

接收OSC束/消息时所调用的事件。

SetWhitelistClientsEnabled

设为true时,服务器将仅处理白名单客户端中接收的消息。

(UnbindEvent/UnbindAllEvents/BindEventTo/Get)OnOSCAddressPattern(s)

OSCAddressPattern匹配时,取消绑定、绑定、移除或获取事件以调度。

(Add/Remove/Clear/Get)WhitelistedClient(s)

将白名单中的客户端IP地址集作为字符串(IPv4)进行添加、删除、清除或获取。

OSC客户端

(Get/Set)SendIPAddress

获取OSC客户端的IP地址和端口。

SendOSC(Bundle/Message)

向特定地址发送OSC束/消息。

OSC束/消息

Add(Bundle/Message)ToBundle

向束添加提供的束/消息。

Get(Bundles/Messages)FromBundle

返回束中找到的束/消息。

(Add/Get) OSC Message (Strings/String at Index, Integer/Integer at Index, and so on)

将POD类型添加到OSCMessage,或获取OSCMessage中的POD类型。(可在此处 找到支持类型列表。)

Clear OSC (Message/Bundle)

清除消息/束的负载。

资源/范例

OSC实现基于OSC 1.0协议,可在OpenSoundControl.org website 上找到该协议。

点击下方每张图片上的 复制节点图表(Copy Node Graph) 按钮,并将文本粘贴到蓝图图表即可查看示例。

发送OSC消息

Copy Node Graph

SendingOSCMessage.png

将事件绑定到所有消息

Copy Node Graph

BindingToAnyMessage.png

将事件绑定到所有地址模式

Copy Node Graph

BindToAddressPattern.png

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback