Skip to content

Desuq Cafe

文档菜单

此翻译可能落后于最新的英文版本。 查看英文版

处理器 API

本插件将 OBS 控制拆分为 11 个域处理器,每个处理器均为 UInhyeongOBSHandlerBase 的子类,由中央 UInhyeongOBSWebSocketClient 持有。处理器会缓存自身域的状态、通过客户端发送请求,并为每个事件同时触发一个可在 Blueprint 中赋值的动态委托(FOBSOn*)和对应的原生 C++ 委托(FOBSOn*Native)。下方列出的每个 BlueprintAssignable On* 委托,都有一个同名的 On*Native C++ 对应版本(后缀 Native),可通过 AddSP / AddLambda 在 C++ 中绑定。

访问处理器。 在 C++ 或 Blueprint 中,获取客户端后调用其类型化访问器:

UInhyeongOBSScenes* Scenes = Subsystem->GetClient()->GetScenes();
Scenes->SetCurrentProgramScene(TEXT("Gameplay"));

客户端访问器包括 GetScenes()GetAudio()GetOutputs()GetInputSettings()GetMediaInputs()GetStudioMode()GetTransitions()GetFilters()GetScreenshots()GetConfig()GetGeneral()。处理器在首次访问时按需创建。

最常用的操作也作为便捷方法镜像到了 Subsystem API(例如场景切换、录制、静音/音量),因此 Blueprint 无需直接接触处理器。凡是存在 Subsystem 镜像的地方,均在各处理器下方注明。仅在处理器上可用(无 Subsystem 镜像)的方法包括:Replay Buffer 碰撞保护(Outputs)、持久化数据(Config)、T-Bar(StudioMode)、设备属性枚举(InputSettings)以及游戏事件发送(General)。完整的事件目录与签名,请参阅事件

接受 TSharedPtr<FJsonObject> 的方法仅限 C++ 使用。其 *FromString 兄弟方法是接受 JSON 字符串的 Blueprint 友好等价版本。


UInhyeongOBSScenes

场景切换、场景增删改查、分组、场景项目(来源)、层级顺序/锁定/混合模式,以及完整的场景项目变换。通过 GetClient()->GetScenes() 访问。常用操作已镜像到 Subsystem。

函数参数描述
GetSceneList请求场景列表(触发 OnSceneListUpdated)。
SetCurrentProgramSceneSceneName按名称切换直播场景。
GetCurrentProgramScene请求当前直播场景。
CreateSceneSceneName创建一个新的(唯一命名的)场景。
RemoveSceneSceneName按名称删除场景。
RemoveSceneByUuidSceneUuid按 UUID 删除场景。
SetSceneNameSceneName, NewSceneName重命名场景。
SetSceneNameByUuidSceneUuid, NewSceneName按 UUID 重命名场景。
GetGroupList列出所有分组。
GetGroupSceneItemListGroupName列出分组内的项目。
GetCachedGroupsTArray<FString>已缓存的分组名称。
GetSceneItemSourceSceneName, SceneItemId获取场景项目对应的来源。
GetSourceActiveSourceName获取来源的激活/显示状态。
GetSourceActiveByUuidSourceUuid同上,按 UUID。
GetSceneTransitionOverrideSceneName获取场景的转场覆盖。
SetSceneTransitionOverrideSceneName, TransitionName, TransitionDuration=-1设置场景的转场覆盖(名称为空则清除)。
ClearSceneTransitionOverrideSceneName清除场景的转场覆盖。
GetCachedTransitionOverrideSceneName, OutOverridebool读取已缓存的转场覆盖。
FetchAllTransitionOverrides获取所有已缓存场景的覆盖。
GetCurrentSceneNameFString已缓存的当前直播场景名称。
GetCachedScenesTArray<FOBSScene>已缓存的场景列表。
GetCachedScenesWithItemsTArray<FOBSSceneWithItems>已缓存的场景及其项目。
GetSceneItemListSceneName列出场景中的场景项目(来源)。
SetSceneItemEnabledSceneName, SceneItemId, bEnabled显示/隐藏场景项目。
GetSceneItemIdSceneName, SourceName将来源名称解析为其数字场景项目 ID。
CreateSceneItemSceneName, SourceName, bEnabled=true将已有来源添加到场景。
RemoveSceneItemSceneName, SceneItemId移除场景项目(仅移除引用)。
DuplicateSceneItemSceneName, SceneItemId, DestinationSceneName=""复制场景项目(引用)。
GetSceneItemLockedSceneName, SceneItemId获取场景项目的锁定状态。
SetSceneItemLockedSceneName, SceneItemId, bLocked锁定/解锁场景项目。
GetSceneItemIndexSceneName, SceneItemId获取场景项目的层级顺序索引。
SetSceneItemIndexSceneName, SceneItemId, SceneItemIndex设置场景项目的层级顺序索引。
GetSceneItemBlendModeSceneName, SceneItemId获取场景项目的混合模式。
SetSceneItemBlendModeSceneName, SceneItemId, BlendMode设置场景项目的混合模式(EOBSBlendMode)。
GetSceneItemTransformSceneName, SceneItemId获取场景项目的变换。
SetSceneItemTransformSceneName, SceneItemId, Transform应用完整的 FOBSSceneItemTransform
SetSceneItemPositionSceneName, SceneItemId, X, Y仅设置位置。
SetSceneItemRotationSceneName, SceneItemId, Rotation仅设置旋转(度)。
SetSceneItemScaleSceneName, SceneItemId, ScaleX, ScaleY仅设置缩放。
SetSceneItemCropSceneName, SceneItemId, Left, Top, Right, Bottom仅设置裁剪。
SetSceneItemBoundsSceneName, SceneItemId, BoundsType, BoundsWidth, BoundsHeight, BoundsAlignment=0设置边界框属性。
GetCachedSceneItemTransformSceneName, SceneItemId, OutTransformbool读取已缓存的变换。
FetchSceneItemTransformsSceneName缓存某场景中所有项目的变换。
FetchAllSceneItemTransforms缓存所有场景中所有项目的变换(触发 OnAllTransformsFetched)。
IsTransformCachedSceneName, SceneItemIdbool变换是否已缓存。
SetTransformEventsEnabledbEnable启用高频 SceneItemTransformChanged 事件订阅。
AreTransformEventsEnabledbool是否已订阅变换事件。
RefreshAllSceneData刷新所有场景数据。
GetCachedTransformCountint32已缓存变换数量(诊断用)。
GetCachedTransitionOverrideCountint32已缓存覆盖数量(诊断用)。

仅限 C++:SetSceneItemTransformFromJson 以及静态辅助函数 TransformToJsonJsonToTransformBoundsTypeToString/StringToBoundsTypeBlendModeToString/StringToBlendMode

事件参数描述
OnSceneListUpdatedScenes场景列表已更改。
OnAllTransformsFetchedScenesFetchAllSceneItemTransforms 已完成。
OnCurrentSceneChangedSceneName直播场景已更改。
OnSceneItemTransformChangedSceneName, SceneItemId, Transform场景项目的变换已更改(需调用 SetTransformEventsEnabled(true))。
OnSceneItemCreated场景项目详情来源已添加到场景。
OnSceneItemRemoved场景项目详情场景项目已移除。
OnSceneItemLockStateChanged锁定详情场景项目的锁定状态已更改。
OnSceneItemEnableStateChanged启用详情场景项目的可见性已更改。
OnSceneItemListReindexedSceneName场景项目已重新排序。
OnSceneCreated场景详情场景已创建。
OnSceneRemoved场景详情场景已删除。
OnSceneNameChanged重命名详情场景已重命名。
OnTransitionOverrideReceived覆盖数据场景的转场覆盖已到达。

UInhyeongOBSAudio

输入、静音、音量(dB 与乘数)、高级音频(平衡、同步偏移、监听类型、音轨)、特殊输入、输入增删改查以及语音活动检测订阅。通过 GetClient()->GetAudio() 访问。静音/音量及输入列表辅助方法已镜像到 Subsystem。

函数参数描述
GetInputListInputKind=""列出输入,可按输入类型过滤。
GetCachedInputsTArray<FOBSInput>已缓存的输入列表。
GetCachedInputInputName, OutInputbool按名称获取单个已缓存输入。
RefreshAllAudioInfo获取所有已缓存音频输入的音量/静音信息。
SetInputMuteInputName, bMuted设置静音状态。
ToggleInputMuteInputName切换静音。
GetInputMuteInputName查询静音(更新缓存并触发事件)。
SetInputVolumeInputName, VolumeDb以 dB 为单位设置音量。
SetInputVolumeMultiplierInputName, VolumeMul以乘数方式设置音量。
GetInputVolumeInputName查询音量(更新缓存并触发事件)。
AdjustInputVolumeInputName, DeltaDb以 dB 为单位进行相对音量调整。
RefreshAllAdvancedAudioInfo获取所有已缓存输入的平衡/同步/监听/音轨信息。
SetVolumeMetersEnabledbEnable启用高频 InputVolumeMeters 流(驱动 OnInputVolumeMeters)。
SetInputActiveStateEventsEnabledbEnable启用 InputActiveStateChanged 订阅(驱动 OnInputActiveStateChanged)。
GetLastVolumeMetersTArray<FOBSInputVolumeMeter>最近一帧的音量表数据。
GetInputAudioBalanceInputName查询立体声平衡。
SetInputAudioBalanceInputName, Balance设置平衡(0=左,0.5=中,1=右)。
GetInputAudioSyncOffsetInputName查询音视频同步偏移(毫秒)。
SetInputAudioSyncOffsetInputName, OffsetMs设置同步偏移(-950..20000,可为负数)。
GetInputAudioMonitorTypeInputName查询监听类型。
SetInputAudioMonitorTypeInputName, MonitorType设置监听类型(EOBSMonitorType)。
GetInputAudioTracksInputName查询音轨启用状态。
SetInputAudioTracksInputName, Tracks设置所有音轨(FOBSAudioTracks,音轨 1-6)。
SetInputAudioTrackInputName, TrackNumber, bEnabled设置单条音轨(1-6)。
GetSpecialInputs获取默认桌面/麦克风输入名称。
GetCachedSpecialInputsFOBSSpecialInputs已缓存的特殊输入。
CreateInputFromStringSceneName, InputName, InputKind, InputSettingsJson="", bSceneItemEnabled=true创建新输入并添加到场景。
RemoveInputInputName删除输入(仍在使用中则失败)。
SetInputNameInputName, NewInputName重命名输入。
GetInputKindListbUnversioned=false列出可用的输入类型。
GetCachedInputKindsTArray<FString>已缓存的输入类型。
SupportsAdvancedAudioPropertiesInputKindbool(静态)该类型是否支持平衡/同步/音轨/监听。
IsAudioInputKindInputKindbool(静态)该类型是否为音频类型。

仅限 C++:*ByUuid 变体(GetInputAudioBalanceByUuid 等)、CreateInput 以及 RemoveInputByUuid

事件参数描述
OnInputListUpdatedInputs输入列表已更改。
OnInputMuteStateChangedInputName, bMuted输入的静音状态已更改。
OnInputVolumeChangedInputName, VolumeDb, VolumeMul输入的音量已更改。
OnInputVolumeMetersMeters高频逐输入电平数据(需调用 SetVolumeMetersEnabled(true))。
OnInputActiveStateChangedInputName, bVideoActive输入的视频激活状态已更改(需订阅)。
OnInputCreated输入详情输入已创建。
OnInputRemoved输入详情输入已删除。
OnInputNameChanged重命名详情输入已重命名。
OnInputKindListReceived输入类型列表输入类型列表已到达。
OnInputAudioBalanceChanged平衡平衡已更改/已获取。
OnInputAudioSyncOffsetChanged偏移同步偏移已更改/已获取。
OnInputAudioTracksChanged音轨音轨已更改/已获取。
OnInputAudioMonitorTypeChanged监听类型监听类型已更改/已获取。
OnSpecialInputsReceived特殊输入特殊输入已获取。

UInhyeongOBSOutputs

推流、录制(含暂停/恢复、分割、章节标记)、Virtual Camera、Replay Buffer(含碰撞保护)、录制目录、通用输出,以及推流字幕。通过 GetClient()->GetOutputs() 访问。推流/录制控制已镜像到 Subsystem,但 Replay Buffer 碰撞保护仅在处理器上可用

函数参数描述
StartStream / StopStream / ToggleStream推流控制。
GetStreamStatus请求推流状态。
IsStreamingbool已缓存的推流标志。
GetLastStreamStatusFOBSStreamStatus上次推流状态。
StartRecord / StopRecord / ToggleRecord录制控制。
PauseRecord / ResumeRecord / ToggleRecordPause录制暂停控制。
GetRecordStatus请求录制状态。
IsRecordingbool已缓存的录制标志。
GetLastRecordStatusFOBSRecordStatus上次录制状态。
StartVirtualCam / StopVirtualCam / ToggleVirtualCam虚拟摄像头控制。
GetVirtualCamStatus请求虚拟摄像头状态。
IsVirtualCamActivebool已缓存的虚拟摄像头标志。
StartReplayBuffer / StopReplayBuffer / ToggleReplayBufferReplay Buffer 控制。
SaveReplayBuffer保存当前 Replay Buffer。
GetReplayBufferStatus请求 Replay Buffer 状态。
IsReplayBufferActivebool已缓存的 Replay Buffer 标志。
GetLastReplayPathFString上次保存的回放路径(重命名后)。
SetReplayCollisionProofingbEnable为每次保存的回放添加唯一时间戳后缀(仅限处理器)。
IsReplayCollisionProofingEnabledbool是否启用了碰撞保护。
SetNextReplayContextLabelLabel嵌入到下一个保存回放文件名中的一次性标签。
SaveReplayBufferWithContextContextLabel设置下一个回放标签并立即保存。
GetRecordDirectory请求录制目录。
SetRecordDirectoryDirectory设置录制目录(下次录制时生效)。
GetCachedRecordDirectoryFString已缓存的录制目录。
GetLastRecordedFilePathFString上次录制文件的路径。
SplitRecordFile将录制拆分到新文件。
CreateRecordChapterChapterName=""添加章节标记(OBS 30.2.0+,Hybrid MP4)。
GetOutputList列出所有输出。
GetOutputStatusOutputName获取某个输出的状态。
GetOutputSettingsOutputName获取某个输出的设置。
SetOutputSettingsFromStringOutputName, JsonSettings从 JSON 设置输出设置。
StartOutput / StopOutput / ToggleOutputOutputName控制指定输出。
GetCachedOutputsTArray<FOBSOutput>已缓存的输出列表。
SendStreamCaptionCaptionText发送 CEA-608 字幕文本(推流必须处于激活状态)。

仅限 C++:SetOutputSettings(JSON 对象)以及静态辅助函数 BuildReplayFilenameSanitizeReplayLabel

事件参数描述
OnStreamStateChanged状态推流状态已更改。
OnRecordStateChanged状态录制状态已更改。
OnRecordingStopped输出路径录制已停止(含文件路径)。
OnVirtualCamStateChanged状态虚拟摄像头状态已更改。
OnReplayBufferStateChanged状态Replay Buffer 状态已更改。
OnReplayBufferSaved保存路径回放已保存(重命名后的最终路径)。
OnRecordFileChanged新路径录制输出已滚动到新文件(分割)。
OnRecordDirectoryReceived目录录制目录已获取。
OnOutputListReceived输出列表输出列表已获取。
OnOutputStatusReceived状态输出状态已获取。

UInhyeongOBSInputSettings

文本源/浏览器源/图像源/媒体源/色源的来源设置、默认设置,以及采集设备属性访问。通过 GetClient()->GetInputSettings() 访问。按钮按下与列表属性枚举仅在处理器上可用。

函数参数描述
GetInputSettingsInputName获取输入的设置(触发 OnInputSettingsReceivedNative)。
GetInputSettingsByUuidInputUuid同上,按 UUID。
SetInputSettingsFromStringInputName, InputSettingsJson, bOverlay=true从 JSON 应用设置。
GetInputDefaultSettingsInputKind获取某类型的默认设置。
PressInputPropertiesButtonInputName, PropertyName按下按钮类型属性(例如采集设备的激活/停用)。
GetInputPropertiesListPropertyItemsInputName, PropertyName枚举列表属性的项目(设备下拉菜单)。触发 OnInputPropertyItemsReceived
GetCachedInputSettingsStringInputNameFString已缓存的设置(JSON 格式)。
HasCachedSettingsInputNamebool是否已缓存设置。
ClearCachedSettingsInputName清除某输入的缓存。
ClearAllCachedSettings清除整个设置缓存。
SetTextSourceTextInputName, NewText设置文本源的文本。
SetBrowserSourceUrlInputName, NewUrl设置浏览器源的 URL。
SetImageSourceFileInputName, NewFilePath设置图像源的文件。
SetMediaSourceFileInputName, NewFilePath, bLooping=false设置媒体源的文件。
SetColorSourceColorInputName, Color设置色源的颜色(ABGR int64)。

仅限 C++:SetInputSettings / SetInputSettingsByUuid(JSON 对象)以及 GetCachedInputSettings(JSON 对象出参)。

事件参数描述
OnInputSettingsChanged输入详情输入的设置已更改。
OnInputPropertyItemsReceived属性项目列表属性的项目(设备下拉菜单)已到达。

仅限原生:OnInputSettingsReceivedNativeGetInputSettings 调用返回后传递实际的设置 JSON。


UInhyeongOBSMediaInputs

媒体源(VLC、Media Source)的播放控制、跳转及状态查询。通过 GetClient()->GetMediaInputs() 访问。定义了 EOBSMediaInputActionEOBSMediaState 枚举和 FOBSMediaInputStatus 结构体。

函数参数描述
GetMediaInputStatusInputName查询状态/时长/游标。
GetCachedMediaInputStatusInputName, OutStatusbool上次缓存的状态。
TriggerMediaInputActionInputName, Action执行 EOBSMediaInputAction
PlayMedia / PauseMedia / StopMedia / RestartMediaInputName播放快捷操作。
NextMedia / PreviousMediaInputName播放列表导航。
SetMediaInputCursorInputName, CursorMs跳转到绝对位置(毫秒)。
OffsetMediaInputCursorInputName, OffsetMs相对跳转(毫秒)。
SeekToPercentInputName, Percent按时长比例跳转(0.0-1.0)。

静态辅助函数:MediaInputActionToStringMediaInputActionFromStringParseMediaState

事件参数描述
OnMediaInputPlaybackStartedInputName播放已开始。
OnMediaInputPlaybackEndedInputName播放已结束。
OnMediaInputActionTriggeredInputName, Action媒体动作已触发。
OnMediaInputStatusReceivedStatus媒体状态已到达。

UInhyeongOBSStudioMode

Studio Mode 切换、预览场景,以及包含手动 T-Bar 拖拽预览的转场控制。通过 GetClient()->GetStudioMode() 访问。SetTBarPosition 仅在处理器上可用。

函数参数描述
GetStudioModeEnabled查询 Studio Mode 状态。
SetStudioModeEnabledbEnabled启用/禁用 Studio Mode。
IsStudioModeEnabledbool已缓存的 Studio Mode 标志。
GetCurrentPreviewScene查询预览场景。
SetCurrentPreviewSceneSceneName按名称设置预览场景。
SetCurrentPreviewSceneByUuidSceneUuid按 UUID 设置预览场景。
GetPreviewSceneNameFString已缓存的预览场景名称。
GetPreviewSceneUuidFString已缓存的预览场景 UUID。
TriggerStudioModeTransition将预览场景切换到直播画面。
TriggerStudioModeTransitionWithOptionsTransitionName, TransitionDurationMs=-1使用指定转场/时长进行切换。
SetTBarPositionPosition, bRelease=true拖拽预览 T-Bar(0=预览,1=已切换)。传入 bRelease=false 可保持不释放,例如在 Sequencer 浮点轨道上使用。
事件参数描述
OnStudioModeStateChangedbEnabledStudio Mode 已切换。
OnCurrentPreviewSceneChanged场景预览场景已更改。

UInhyeongOBSTransitions

当前转场、其时长和设置,以及实时转场进度。通过 GetClient()->GetTransitions() 访问。

函数参数描述
GetSceneTransitionList列出可用的转场(触发 OnTransitionListUpdated)。
GetCachedTransitionsTArray<FOBSTransition>已缓存的转场列表。
GetCurrentSceneTransition查询当前转场。
SetCurrentSceneTransitionTransitionName设置当前转场。
GetCurrentTransitionInfoFOBSCurrentTransitionInfo已缓存的当前转场信息。
GetCurrentTransitionNameFString已缓存的当前转场名称。
SetCurrentSceneTransitionDurationDurationMs设置转场时长。
GetCurrentTransitionDurationint32已缓存的转场时长(毫秒)。
SetCurrentSceneTransitionSettingsFromStringSettingsJson, bOverlay=true从 JSON 设置转场特定参数。
GetCurrentSceneTransitionCursor查询当前激活转场的游标。
GetCachedTransitionCursorfloat上次游标值(0.0-1.0,或 -1)。
IsTransitionActivebool是否有转场正在进行中。

仅限 C++:SetCurrentSceneTransitionSettings(JSON 对象)。

事件参数描述
OnCurrentTransitionChanged名称当前转场已更改。
OnTransitionDurationChanged时长转场时长已更改。
OnTransitionStarted名称转场已开始。
OnTransitionEnded名称转场已结束(切换点)。
OnTransitionVideoEnded名称转场的视频已结束(Stinger 转场)。
OnTransitionListUpdated列表转场列表已更改。

UInhyeongOBSFilters

来源滤镜的增删改查、启用/重排,以及对输入、场景和分组上各滤镜的逐项设置。通过 GetClient()->GetFilters() 访问。

函数参数描述
GetSourceFilterKindList列出可用的滤镜类型。
GetCachedFilterKindsTArray<FString>已缓存的滤镜类型。
GetSourceFilterListSourceName列出某来源的所有滤镜。
GetSourceFilterListByUuidSourceUuid同上,按 UUID。
GetCachedFiltersForSourceSourceNameTArray<FOBSSourceFilter>某来源的已缓存滤镜。
HasCachedFiltersForSourceSourceNamebool滤镜是否已缓存。
ClearCachedFiltersForSourceSourceName清除某来源的滤镜缓存。
ClearAllCachedFilters清除整个滤镜缓存。
GetSourceFilterSourceName, FilterName获取单个滤镜的信息。
GetSourceFilterDefaultSettingsFilterKind获取某滤镜类型的默认设置。
CreateSourceFilterFromStringSourceName, FilterName, FilterKind, FilterSettingsJson=""创建滤镜(JSON 设置)。
RemoveSourceFilterSourceName, FilterName删除滤镜。
SetSourceFilterNameSourceName, FilterName, NewFilterName重命名滤镜。
SetSourceFilterIndexSourceName, FilterName, FilterIndex在链中重新排列滤镜顺序。
SetSourceFilterEnabledSourceName, FilterName, bEnabled启用/禁用滤镜。
SetSourceFilterSettingsFromStringSourceName, FilterName, FilterSettingsJson, bOverlay=true从 JSON 设置滤镜参数。

仅限 C++:CreateSourceFilterSetSourceFilterSettings(JSON 对象)。

事件参数描述
OnSourceFilterCreated滤镜详情滤镜已创建。
OnSourceFilterRemoved滤镜详情滤镜已删除。
OnSourceFilterNameChanged重命名详情滤镜已重命名。
OnSourceFilterSettingsChanged滤镜详情滤镜的设置已更改。
OnSourceFilterEnableStateChanged启用详情滤镜的启用状态已更改。
OnSourceFilterListReindexedSourceName来源的滤镜列表已重新排序。

仅限原生:OnSourceFilterListReceivedNativeGetSourceFilterList 响应缓存后触发(供编辑器组合框刷新使用)。


UInhyeongOBSScreenshots

将截图捕获为 base64 或保存到 OBS 机器的文件系统,以及纹理转换工具。通过 GetClient()->GetScreenshots() 访问。此处理器没有 OBS 事件,为纯请求/响应模式。其 On* 委托仅在处理器层级,不镜像到 Subsystem。

函数参数描述
GetSourceScreenshotSourceName, ImageFormat="png"捕获为 base64(触发 OnScreenshotCaptured)。
GetSourceScreenshotByUuidSourceUuid, ImageFormat="png"同上,按 UUID。
GetSourceScreenshotWithOptionsRequest使用完整的 FOBSScreenshotRequest 进行捕获。
GetSourceScreenshotScaledSourceName, ImageFormat, Width, Height, CompressionQuality=-1捕获缩放后的截图。
SaveSourceScreenshotSourceName, FilePath, ImageFormat="png"保存到 OBS 机器上的文件(触发 OnScreenshotSaved)。
SaveSourceScreenshotByUuidSourceUuid, FilePath, ImageFormat="png"同上,按 UUID。
SaveSourceScreenshotWithOptionsRequest完全控制地保存(需设置 Request.ImageFilePath)。
SaveSourceScreenshotScaledSourceName, FilePath, ImageFormat, Width, Height, CompressionQuality=-1保存缩放后的截图。
CreateTextureFromBase64Base64ImageDataUTexture2D*(静态)将 base64 解码为纹理。
CreateTextureFromScreenshotResultResultUTexture2D*(静态)从 FOBSScreenshotResult 生成纹理。
DecodeBase64ImageDataBase64ImageData, OutBytes, OutFormatbool(静态)将 base64 解码为原始字节。
CreateTextureFromBytesImageBytesUTexture2D*(静态)从原始字节生成纹理。
GetLastScreenshotResultFOBSScreenshotResult上次捕获的结果。
GetLastSavedResultFOBSScreenshotSavedResult上次保存的结果。
IsCapturePendingbool是否有捕获正在进行中。
事件参数描述
OnScreenshotCaptured结果Base64 截图已就绪。
OnScreenshotSaved结果截图已保存到文件系统。

UInhyeongOBSConfig

场景集合、配置文件、配置文件参数、推流服务设置、视频设置,以及插件自有的持久化键值存储。通过 GetClient()->GetConfig() 访问。持久化数据方法仅在处理器上可用。

函数参数描述
GetSceneCollectionList列出场景集合(触发 OnSceneCollectionListChanged)。
SetCurrentSceneCollectionSceneCollectionName切换场景集合(会导致重载暂停)。
CreateSceneCollectionSceneCollectionName创建并切换到新的场景集合。
GetCachedSceneCollectionsTArray<FString>已缓存的场景集合名称。
GetCurrentSceneCollectionNameFString已缓存的当前场景集合。
GetProfileList列出配置文件(触发 OnProfileListChanged)。
SetCurrentProfileProfileName切换配置文件。
CreateProfileProfileName创建并切换到配置文件。
RemoveProfileProfileName删除配置文件(不能删除当前激活的)。
GetCachedProfilesTArray<FString>已缓存的配置文件名称。
GetCurrentProfileNameFString已缓存的当前配置文件。
GetProfileParameterParameterCategory, ParameterName读取配置文件配置参数。
SetProfileParameterParameterCategory, ParameterName, ParameterValue写入配置文件配置参数。
GetStreamServiceSettings获取推流服务设置(触发 OnStreamServiceSettingsReceived)。
SetStreamServiceSettingsSettings设置推流服务设置(FOBSStreamServiceSettings)。
SetStreamServiceSettingsFromStringServiceType, JsonSettings从 JSON 设置推流服务设置。
SetSimpleRTMPSettingsServer, StreamKey快速设置自定义 RTMP 推流。
GetCachedStreamServiceSettingsFOBSStreamServiceSettings已缓存的推流服务设置。
GetVideoSettings获取视频设置(触发 OnVideoSettingsReceived)。
SetVideoSettingsSettings设置视频设置(推流/录制时不可设置)。
SetBaseResolutionWidth, Height设置画布分辨率。
SetOutputResolutionWidth, Height设置缩放后的输出分辨率。
SetFPSFpsNumerator, FpsDenominator=1以分数形式设置帧率。
GetCachedVideoSettingsFOBSVideoSettings已缓存的视频设置。
GetPersistentDataRealm, SlotName读取持久化槽位(触发 OnPersistentDataReceived)。
SetPersistentDataRealm, SlotName, SlotValueJsonbool从 JSON 值写入槽位(空值=null)。无效 JSON 返回 false 且不发送任何内容。
SetPersistentDataStringRealm, SlotName, SlotValue以纯字符串写入槽位。
GetCachedPersistentDataRealm, SlotName, OutSlotValueJsonbool读取已缓存的槽位。

RealmEOBSDataRealmGlobalProfile)。仅限 C++:SetStreamServiceSettingsRaw(JSON 对象)。

事件参数描述
OnStreamServiceSettingsReceived设置推流服务设置已获取。
OnVideoSettingsReceived设置视频设置已获取。
OnPersistentDataReceived槽位值持久化槽位已获取。
OnCurrentSceneCollectionChanging名称场景集合即将切换。
OnCurrentSceneCollectionChanged名称场景集合已切换。
OnSceneCollectionListChanged列表场景集合列表已更改。
OnCurrentProfileChanging名称配置文件即将切换。
OnCurrentProfileChanged名称配置文件已切换。
OnProfileListChanged列表配置文件列表已更改。

UInhyeongOBSGeneral

跨域操作:性能统计、热键、vendor(第三方插件)请求、自定义/退出事件,以及出站游戏事件发送。通过 GetClient()->GetGeneral() 访问。(OBS 版本由客户端通过 GetOBSVersion / IsOBSVersionAtLeast 直接获取。)EmitGameEvent 已在 Subsystem 上转发,其余方法仅限处理器。

函数参数描述
GetStats请求性能统计(触发 OnStatsReceived)。
GetCachedStatsFOBSStats最近一次的统计数据。
GetHotkeyList请求所有热键名称(触发 OnHotkeyListReceived)。
GetCachedHotkeysTArray<FString>已缓存的热键名称。
TriggerHotkeyByNameHotkeyName, ContextName=""按名称触发热键。
TriggerHotkeyByKeySequenceKeyId, bShift=false, bControl=false, bAlt=false, bCommand=false通过按键 ID 加修饰键触发热键。
BroadcastCustomEventEventDataJson向其他 WebSocket 客户端广播自定义事件。
CallVendorRequestVendorName, RequestType, RequestDataJson调用第三方插件请求(触发 OnVendorResponseReceived)。
EmitGameEventEventName, PayloadJson, Realm="inhyeongobs"bool发送命名空间游戏事件(载荷 JSON 无效时返回 false)。
EmitGameEventMapEventName, Payload (TMap), Realm="inhyeongobs"基于 Map 的 EmitGameEvent 便捷方法。
事件参数描述
OnStatsReceived统计数据性能统计已到达。
OnHotkeyListReceived热键列表热键列表已到达。
OnExitStartedOBS 正在关闭。
OnVendorEventvendor 载荷vendor(插件)事件已到达。
OnCustomEvent自定义载荷来自其他客户端的自定义事件已到达。
OnVendorResponseReceivedvendor 响应CallVendorRequest 的回复已到达。

另请参阅

  • Subsystem API:GameInstance 外观接口,提供约 100 个包装上述处理器的便捷方法。
  • 事件:完整的事件目录、载荷结构体及委托签名。