结构体参考
本页记录了插件中所有公开的 USTRUCT(BlueprintType)。枚举类型字段在枚举参考中有详细说明。传递这些结构体的事件列于事件页面。
部分结构体还包含仅 C++ 可用的辅助成员(例如 JSON 字符串字段对应的
TSharedPtr<FJsonObject>镜像,或InitFromJson/ToJson辅助方法)。这些内容会在文中注明,但在 Blueprint 中不可见。
核心:请求与批处理
FOBSRequestResult
单次 OBS WebSocket 请求的结果。
| 字段 | 类型 | 描述 |
|---|---|---|
bSuccess | bool | 请求是否成功。 |
StatusCode | int32 | OBS 请求状态码。 |
Comment | FString | 来自 OBS 的状态说明或错误文本。 |
FOBSBatchRequest
批处理请求中的单个请求项。
| 字段 | 类型 | 描述 |
|---|---|---|
RequestType | FString | 请求类型(例如 "SetCurrentProgramScene")。 |
RequestId | FString | 批处理中每个请求的可选 ID。 |
RequestDataJson | FString | JSON 字符串格式的请求数据(适合 Blueprint 使用)。 |
RequestData | TSharedPtr<FJsonObject> | 仅 C++ 可用的已解析请求数据。 |
FOBSBatchRequestResult
批处理响应中单个请求的结果。
| 字段 | 类型 | 描述 |
|---|---|---|
RequestType | FString | 请求类型。 |
RequestId | FString | 请求 ID(若已提供)。 |
RequestStatus | FOBSRequestResult | 单个请求的成功状态、状态码与说明。 |
ResponseData | TSharedPtr<FJsonObject> | 仅 C++ 可用的响应数据。 |
FOBSBatchResult
整个批处理操作的结果。
| 字段 | 类型 | 描述 |
|---|---|---|
RequestId | FString | 批处理请求 ID。 |
bAllSucceeded | bool | 批处理中所有请求是否均成功。 |
Results | TArray<FOBSBatchRequestResult> | 每个请求的结果。 |
输出
FOBSStreamStatus
推流输出的状态。
| 字段 | 类型 | 描述 |
|---|---|---|
bOutputActive | bool | 推流是否处于活动状态。 |
bOutputReconnecting | bool | 推流是否正在重连。 |
OutputTimecode | FString | 当前推流时间码。 |
OutputBytes | int64 | 已发送的总字节数。 |
OutputSkippedFrames | int32 | 输出跳过的帧数。 |
OutputTotalFrames | int32 | 已传输的总帧数。 |
FOBSRecordStatus
录制输出的状态。
| 字段 | 类型 | 描述 |
|---|---|---|
bOutputActive | bool | 录制是否处于活动状态。 |
bOutputPaused | bool | 录制是否已暂停。 |
OutputTimecode | FString | 当前录制时间码。 |
OutputBytes | int64 | 已写入的总字节数。 |
FOBSVirtualCamStatus
虚拟摄像头输出的状态。
| 字段 | 类型 | 描述 |
|---|---|---|
bOutputActive | bool | 虚拟摄像头是否处于活动状态。 |
FOBSReplayBufferStatus
Replay Buffer 的状态。
| 字段 | 类型 | 描述 |
|---|---|---|
bOutputActive | bool | Replay Buffer 是否处于活动状态。 |
FOBSReplayBufferSavedInfo
已保存的 Replay Buffer 片段信息。
| 字段 | 类型 | 描述 |
|---|---|---|
SavedReplayPath | FString | 已保存回放文件的路径。 |
FOBSOutput
通用 OBS 输出的描述信息。
| 字段 | 类型 | 描述 |
|---|---|---|
OutputName | FString | 输出名称。 |
OutputKind | FString | 输出类型。 |
OutputWidth | int32 | 输出宽度(像素)。 |
OutputHeight | int32 | 输出高度(像素)。 |
bOutputActive | bool | 输出是否处于活动状态。 |
OutputFlags | FString | 输出能力标志。 |
FOBSOutputStatus
通用 OBS 输出的详细状态。
| 字段 | 类型 | 描述 |
|---|---|---|
OutputName | FString | 输出名称。 |
bOutputActive | bool | 输出是否处于活动状态。 |
bOutputReconnecting | bool | 输出是否正在重连。 |
OutputTimecode | FString | 当前时间码。 |
OutputDuration | int64 | 持续时长(毫秒)。 |
OutputCongestion | float | 拥塞系数(0 到 1)。 |
OutputBytes | int64 | 总字节数。 |
OutputSkippedFrames | int64 | 跳过的帧数。 |
OutputTotalFrames | int64 | 总帧数。 |
场景与场景项目
FOBSScene
单个 OBS 场景。
| 字段 | 类型 | 描述 |
|---|---|---|
SceneName | FString | 场景名称。 |
SceneUuid | FString | 场景 UUID。 |
SceneIndex | int32 | 该场景在场景列表中的位置。 |
FOBSSceneItem
场景项目(放置在场景中的来源实例)。
| 字段 | 类型 | 描述 |
|---|---|---|
SourceName | FString | 底层来源的名称。 |
SourceUuid | FString | 来源的 UUID。 |
SceneItemId | int32 | 场景项目的数字 ID(OBS 用于标识该项目)。 |
SceneItemIndex | int32 | 场景内的层级顺序索引。 |
bSceneItemEnabled | bool | 该项目是否可见。 |
bSceneItemLocked | bool | 该项目是否已锁定。 |
InputKind | FString | 输入类型。 |
BlendMode | EOBSBlendMode | 合成混合模式。 |
FOBSSceneWithItems
场景及其所有场景项目的集合。
| 字段 | 类型 | 描述 |
|---|---|---|
SceneName | FString | 场景名称。 |
SceneUuid | FString | 场景 UUID。 |
SceneIndex | int32 | 场景列表中的位置。 |
SceneItems | TArray<FOBSSceneItem> | 该场景的项目列表。 |
FOBSSceneItemTransform
场景项目的完整变换信息,包括位置、旋转、缩放、对齐方式、边界框和裁剪。只读的计算字段由 GetSceneItemTransform 填充。
| 字段 | 类型 | 描述 |
|---|---|---|
PositionX | float | X 轴位置(像素)。 |
PositionY | float | Y 轴位置(像素)。 |
Rotation | float | 旋转角度(0 到 360 度)。 |
ScaleX | float | 水平缩放倍数(1.0 = 100%)。 |
ScaleY | float | 垂直缩放倍数(1.0 = 100%)。 |
Alignment | int32 | 对齐位标志(0=居中,1=左,2=右,4=上,8=下)。 |
BoundsType | EOBSBoundsType | 边界框行为模式。 |
BoundsWidth | float | 边界框宽度。 |
BoundsHeight | float | 边界框高度。 |
BoundsAlignment | int32 | 在边界框内的对齐方式(与上方位标志相同)。 |
CropLeft | int32 | 从左侧裁剪的像素数。 |
CropRight | int32 | 从右侧裁剪的像素数。 |
CropTop | int32 | 从顶部裁剪的像素数。 |
CropBottom | int32 | 从底部裁剪的像素数。 |
SourceWidth | float | 来源的原始宽度(只读)。 |
SourceHeight | float | 来源的原始高度(只读)。 |
Width | float | 缩放后的计算宽度(只读)。 |
Height | float | 缩放后的计算高度(只读)。 |
FOBSCreateSceneResult
创建场景的结果。
| 字段 | 类型 | 描述 |
|---|---|---|
bSuccess | bool | 场景是否已成功创建。 |
SceneUuid | FString | 新场景的 UUID。 |
ErrorMessage | FString | 失败时的错误文本。 |
FOBSSourceActiveState
来源是否在直播画面中显示以及是否在界面中显示。
| 字段 | 类型 | 描述 |
|---|---|---|
bVideoActive | bool | 是否在直播画面中显示。 |
bVideoShowing | bool | 是否在界面中显示(预览、投射窗口、属性面板)。 |
FOBSSceneTransitionOverride
逐场景转场覆盖设置。
| 字段 | 类型 | 描述 |
|---|---|---|
TransitionName | FString | 覆盖的转场名称(若无则为空)。 |
TransitionDuration | int32 | 覆盖的时长(毫秒),若无则为 -1。 |
bHasOverride | bool | 是否已设置覆盖。 |
FOBSSceneItemSource
标识场景项目底层来源的信息。
| 字段 | 类型 | 描述 |
|---|---|---|
SourceName | FString | 来源名称。 |
SourceUuid | FString | 来源 UUID。 |
音频
FOBSAudioTracks
高级音频路由中各轨道的启用状态(轨道 1 至 6)。在 C++ 中提供 InitFromJson、ToJson、IsTrackEnabled 和 SetTrackEnabled 辅助方法。
| 字段 | 类型 | 描述 |
|---|---|---|
bTrack1 | bool | 轨道 1 已启用(默认为 true)。 |
bTrack2 | bool | 轨道 2 已启用。 |
bTrack3 | bool | 轨道 3 已启用。 |
bTrack4 | bool | 轨道 4 已启用。 |
bTrack5 | bool | 轨道 5 已启用。 |
bTrack6 | bool | 轨道 6 已启用。 |
FOBSInput
OBS 输入(音频输入)及其音频属性。
| 字段 | 类型 | 描述 |
|---|---|---|
InputName | FString | 输入名称。 |
InputUuid | FString | 输入 UUID。 |
InputKind | FString | 输入类型。 |
VolumeDb | float | 音量(分贝,0 = 单位增益)。 |
VolumeMul | float | 音量倍数(1.0 = 单位增益)。 |
bMuted | bool | 输入是否已静音。 |
bAudioInfoLoaded | bool | 音量与静音信息是否已获取。 |
Balance | float | 立体声平衡(0 = 左,0.5 = 居中,1 = 右)。 |
SyncOffsetMs | int32 | 音频同步偏移(毫秒,可为负值)。 |
MonitorType | EOBSMonitorType | 音频监听类型。 |
AudioTracks | FOBSAudioTracks | 轨道路由(1 至 6)。 |
bAdvancedAudioInfoLoaded | bool | 高级音频信息是否已获取。 |
FOBSSpecialInputs
OBS 中配置的默认音频设备名称(任意字段均可能为空)。
| 字段 | 类型 | 描述 |
|---|---|---|
Desktop1 | FString | 桌面音频输入。 |
Desktop2 | FString | 桌面音频 2 输入。 |
Mic1 | FString | 麦克风/辅助音频输入。 |
Mic2 | FString | 麦克风/辅助音频 2 输入。 |
Mic3 | FString | 麦克风/辅助音频 3 输入。 |
Mic4 | FString | 麦克风/辅助音频 4 输入。 |
FOBSAudioChannelLevel
来自高频率 InputVolumeMeters 事件的单声道音频电平。OBS 发送的是线性倍数(0 到 1),分贝字段由此推导得出。
| 字段 | 类型 | 描述 |
|---|---|---|
MagnitudeMul | float | 平滑后的强度,线性倍数(0 到 1)。 |
PeakMul | float | 衰减峰值,线性倍数(0 到 1)。 |
InputPeakMul | float | 瞬时输入峰值,线性倍数(0 到 1)。 |
MagnitudeDb | float | 强度(分贝,由 MagnitudeMul 推导)。 |
PeakDb | float | 峰值(分贝,由 PeakMul 推导)。 |
FOBSInputVolumeMeter
InputVolumeMeters 事件中单个输入的音量表读数。PeakDb 与 MagnitudeDb 反映最响声道的数值。
| 字段 | 类型 | 描述 |
|---|---|---|
InputName | FString | 输入名称。 |
InputUuid | FString | 输入 UUID。 |
Channels | TArray<FOBSAudioChannelLevel> | 各声道电平。 |
PeakDb | float | 最响声道峰值(分贝)。 |
MagnitudeDb | float | 最响声道强度(分贝)。 |
配置
FOBSVideoSettings
OBS 画布及输出的分辨率与帧率设置。提供 GetFPS() 辅助方法。
| 字段 | 类型 | 描述 |
|---|---|---|
FpsNumerator | int32 | 帧率分子(例如 60,或 29.97 对应的 30000)。 |
FpsDenominator | int32 | 帧率分母(例如 1,或 29.97 对应的 1001)。 |
BaseWidth | int32 | 基础(画布)宽度(像素)。 |
BaseHeight | int32 | 基础(画布)高度(像素)。 |
OutputWidth | int32 | 输出(缩放后)宽度(像素)。 |
OutputHeight | int32 | 输出(缩放后)高度(像素)。 |
FOBSProfileParameter
配置文件参数值及其默认值。
| 字段 | 类型 | 描述 |
|---|---|---|
ParameterValue | FString | 当前值。 |
DefaultParameterValue | FString | 默认值。 |
FOBSStreamServiceSettings
推流目的地设置。提供 InitFromJson/ToJson 方法,以及仅 C++ 可用的 RawSettings 镜像。
| 字段 | 类型 | 描述 |
|---|---|---|
StreamServiceType | FString | 推流服务类型("rtmp_custom"、"rtmp_common")。 |
Server | FString | 服务器 URL(用于 rtmp_custom)。 |
Key | FString | 推流密钥。 |
Service | FString | rtmp_common 的服务名称(例如 “Twitch”)。 |
bUseAuth | bool | 是否使用身份验证。 |
Username | FString | 身份验证用户名。 |
Password | FString | 密码。 |
RawSettings | TSharedPtr<FJsonObject> | 仅 C++ 可用的原始设置,用于高级场景。 |
转场
FOBSTransition
OBS 场景转场。
| 字段 | 类型 | 描述 |
|---|---|---|
TransitionName | FString | 转场名称。 |
TransitionUuid | FString | 转场 UUID。 |
TransitionKind | FString | 转场类型(例如 "fade_transition"、"cut_transition")。 |
bTransitionConfigurable | bool | 是否支持设置。 |
bTransitionFixed | bool | 是否为固定时长(如切割转场)。 |
FOBSCurrentTransitionInfo
当前场景转场的详细信息。
| 字段 | 类型 | 描述 |
|---|---|---|
TransitionName | FString | 当前转场名称。 |
TransitionUuid | FString | 当前转场 UUID。 |
TransitionKind | FString | 转场类型。 |
TransitionDuration | int32 | 时长(毫秒,非固定时长时有效)。 |
bTransitionConfigurable | bool | 是否支持设置。 |
bTransitionFixed | bool | 是否为固定时长。 |
TransitionSettingsJson | FString | JSON 字符串格式的设置(适合 Blueprint 使用)。 |
TransitionSettings | TSharedPtr<FJsonObject> | 仅 C++ 可用的已解析设置。 |
滤镜
FOBSSourceFilter
来源上的滤镜。
| 字段 | 类型 | 描述 |
|---|---|---|
FilterName | FString | 滤镜名称。 |
FilterIndex | int32 | 在来源滤镜链中的位置。 |
FilterKind | FString | 滤镜类型(例如 "color_filter"、"chroma_key_filter")。 |
bFilterEnabled | bool | 滤镜是否已启用。 |
FilterSettingsJson | FString | JSON 字符串格式的设置(适合 Blueprint 使用)。 |
FilterSettings | TSharedPtr<FJsonObject> | 仅 C++ 可用的已解析设置。 |
FOBSFilterKind
可用的滤镜类型。
| 字段 | 类型 | 描述 |
|---|---|---|
FilterKind | FString | 滤镜类型的内部名称或标识符。 |
截图
FOBSScreenshotRequest
GetSourceScreenshot / SaveSourceScreenshot 的参数。
| 字段 | 类型 | 描述 |
|---|---|---|
SourceName | FString | 要截图的来源(输入或场景)。 |
SourceUuid | FString | 来源 UUID(可替代名称使用)。 |
ImageFormat | FString | 图像格式(png、jpg、bmp、webp 等,默认为 png)。 |
ImageWidth | int32 | 缩放宽度(-1 = 原始尺寸)。 |
ImageHeight | int32 | 缩放高度(-1 = 原始尺寸)。 |
ImageCompressionQuality | int32 | 有损格式的质量(0 到 100,-1 = OBS 默认值)。 |
ImageFilePath | FString | OBS 机器上的绝对路径(仅保存时使用)。 |
FOBSScreenshotResult
GetSourceScreenshot 的结果(Base64 图像数据)。
| 字段 | 类型 | 描述 |
|---|---|---|
bSuccess | bool | 截图是否成功。 |
ErrorMessage | FString | 失败时的错误文本。 |
SourceName | FString | 已截图的来源。 |
ImageData | FString | Base64 编码的图像数据(包含 data-URI 前缀,可能较大)。 |
FOBSScreenshotSavedResult
SaveSourceScreenshot 的结果。
| 字段 | 类型 | 描述 |
|---|---|---|
bSuccess | bool | 保存是否成功。 |
ErrorMessage | FString | 失败时的错误文本。 |
SourceName | FString | 已截图的来源。 |
FilePath | FString | 截图保存的绝对路径。 |
通用
FOBSStats
来自 GetStats 的 OBS 性能与运行时统计信息。帧计数器使用 double 类型,因为 OBS 以 JSON 数字形式报告这些值,在长时间运行的会话中可能超出 int32 范围。
| 字段 | 类型 | 描述 |
|---|---|---|
CpuUsage | double | CPU 使用率百分比(0 到 100)。 |
MemoryUsage | double | OBS 使用的内存(MB)。 |
AvailableDiskSpace | double | 录制设备上的可用磁盘空间(MB)。 |
ActiveFps | double | 当前渲染线程帧率。 |
AverageFrameRenderTime | double | 平均帧渲染时间(毫秒)。 |
RenderSkippedFrames | double | 渲染线程跳过的帧数。 |
RenderTotalFrames | double | 渲染线程处理的总帧数。 |
OutputSkippedFrames | double | 输出线程跳过的帧数。 |
OutputTotalFrames | double | 输出线程传输的总帧数。 |
WebSocketSessionIncomingMessages | double | 本次会话收到的消息总数。 |
WebSocketSessionOutgoingMessages | double | 本次会话发出的消息总数。 |
FOBSPropertyItem
OBS”列表”属性的单个条目(例如采集设备来源的设备下拉菜单),来自 GetInputPropertiesListPropertyItems。
| 字段 | 类型 | 描述 |
|---|---|---|
ItemName | FString | 下拉菜单中显示的可读标签。 |
bItemEnabled | bool | 该条目是否可选。 |
ItemValue | FString | 条目的值(设备 ID 或路径,数字和布尔值均以字符串形式表示)。 |
媒体输入
FOBSMediaInputStatus
媒体输入(媒体源、VLC 源等)的状态。
| 字段 | 类型 | 描述 |
|---|---|---|
InputName | FString | 媒体输入名称。 |
MediaState | EOBSMediaState | 当前播放状态。 |
MediaDuration | int64 | 总时长(毫秒)。 |
MediaCursor | int64 | 当前游标位置(毫秒)。 |
Trigger Volume(游戏玩法)
以下结构体用于配置 Trigger Volume Actor。
FOBSTriggerAction
触发器触发时执行的单个动作。大多数字段仅与特定的 ActionType 值相关(在编辑器中通过编辑条件控制)。
| 字段 | 类型 | 描述 |
|---|---|---|
ActionType | EOBSTriggerActionType | 要执行的动作类型。 |
SceneName | FString | 场景名称(用于 SwitchScene,或包含 SetSceneItemEnabled 来源的场景)。 |
InputName | FString | 音频与媒体动作的输入名称。 |
SourceName | FString | SetSceneItemEnabled / SetSourceFilterEnabled 的来源。 |
FilterName | FString | SetSourceFilterEnabled 的滤镜名称。 |
HotkeyName | FString | TriggerHotkeyByName 的热键名称(例如 "OBSBasic.StartRecording")。 |
MediaAction | EOBSMediaInputAction | TriggerMediaInputAction 的媒体操作动词。 |
bMuted | bool | SetInputMute 的静音(true)或取消静音(false)状态。 |
bEnabled | bool | SetSceneItemEnabled / SetSourceFilterEnabled 的启用状态。 |
VolumeDb | float | SetInputVolume 的音量(分贝,范围限制为 -100 到 26)。 |
DelaySeconds | float | 执行动作前的可选延迟时间(秒)。 |
FOBSAudioThresholdCondition
条件:OBS 输入当前正在说话或处于静默状态(经过防抖处理的麦克风活动检测)。
| 字段 | 类型 | 描述 |
|---|---|---|
InputName | FString | 要检测的输入(空值 = 忽略该条件)。 |
Mode | EOBSAudioConditionMode | 要求说话或静默状态。 |
ThresholdDb | float | 自动注册检测器的峰值分贝阈值(范围限制为 -100 到 0,默认 -40)。 |
FOBSSourceVisibleCondition
条件:指定名称的场景项目(来源)当前是否可见/隐藏。读取实时 bSceneItemEnabled 缓存。缓存未命中时条件判定失败。
| 字段 | 类型 | 描述 |
|---|---|---|
SceneName | FString | 包含该来源的场景(空值 = 忽略该条件)。 |
SourceName | FString | 要检测可见性的来源(空值 = 忽略该条件)。 |
Mode | EOBSVisibilityConditionMode | 要求可见或隐藏状态。 |
FOBSTriggerConditions
触发器执行所需的所有条件(AND 逻辑)。与 OBS 的连接始终是必要条件,并在内部进行检查。
| 字段 | 类型 | 描述 |
|---|---|---|
RecordingRequirement | EOBSOutputStateRequirement | 以录制状态为门控条件。 |
StreamingRequirement | EOBSOutputStateRequirement | 以推流状态为门控条件。 |
RequiredCurrentScene | FString | 仅在当前场景匹配时触发(空值 = 任意场景)。 |
ExcludedCurrentScene | FString | 仅在当前场景不匹配时触发(空值 = 禁用)。 |
AudioConditions | TArray<FOBSAudioThresholdCondition> | 音频阈值条件,所有条件均须满足(空值 = 不设门控)。 |
SourceVisibleConditions | TArray<FOBSSourceVisibleCondition> | 来源可见性条件,所有条件均须满足(空值 = 不设门控)。 |
Sequencer
FOBSSequencerActionParams
OBS Sequencer 动作的参数。所需字段取决于具体动作,详见 Sequencer 动作。
| 字段 | 类型 | 描述 |
|---|---|---|
Action | EOBSSequencerAction | 要执行的动作。 |
TargetName | FString | 主要目标(场景/输入/来源名称)。 |
SecondaryTarget | FString | 次要目标(滤镜名称、场景项目 ID 等)。 |
StringValue | FString | 字符串值(文本、URL、文件路径、字幕、设置名称等)。 |
NumericValue | float | 主要数值(X 坐标、音量分贝、时长毫秒等)。 |
NumericValue2 | float | 次要数值(Y 坐标等)。 |
NumericValue3 | float | 第三数值(右侧裁剪等)。 |
NumericValue4 | float | 第四数值(底部裁剪等)。 |
BoolValue | bool | 布尔值(启用/可见性)。 |
辅助方法:GetCategory()、GetTriggerType()、GetDisplayName() 和 IsValid(FText& OutError),均查询动作注册表。
FOBSSequencerActionMetadata
编辑器端的元数据,描述某一动作的参数、标签、范围、触发类型及目标选择器类型,由 FOBSSequencerActionRegistry::GetMetadata 返回。非 BlueprintType,因此仅供 Sequencer UI 和验证逻辑使用。关键字段包括 Action、Category、TriggerType、DisplayName、Description、TargetPickerType、各参数的 bRequires* 标志及对应的 *Label 文本,以及数值类型的 *Min/*Max 范围。