Skip to content

Desuq Cafe

문서 메뉴

이 번역은 최신 영어 원문보다 늦을 수 있습니다. 영어 버전 보기

Handlers API

이 플러그인은 OBS 제어를 11개의 도메인 핸들러로 분할하며, 각각은 중앙 UInhyeongOBSWebSocketClient가 소유하는 UInhyeongOBSHandlerBase의 서브클래스입니다. 핸들러는 자체 도메인 상태를 캐시하고, 클라이언트를 통해 요청을 전송하며, 모든 이벤트에 대해 Blueprint에서 할당 가능한 동적 델리게이트(FOBSOn*)와 일치하는 네이티브 C++ 델리게이트(FOBSOn*Native) 양쪽을 모두 발생시킵니다. 아래에 나열된 모든 BlueprintAssignable On* 델리게이트는 이름이 동일한 On*Native C++ 대응 델리게이트(접미사 Native)를 가지며, C++에서 AddSP / AddLambda로 바인딩할 수 있습니다.

핸들러 접근. 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 미러 없음)에는 재생 충돌 방지(Outputs), 영구 데이터(Config), T-Bar(StudioMode), 장치 속성 열거(InputSettings), 게임 이벤트 발생(General)이 포함됩니다. 전체 이벤트 카탈로그와 시그니처는 Events를 참조하세요.

TSharedPtr<FJsonObject>를 받는 메서드는 C++ 전용입니다. *FromString 형제 메서드는 JSON 문자열을 받는 Blueprint 친화적인 등가 메서드입니다.


UInhyeongOBSScenes

장면 전환, 장면 CRUD, 그룹, 장면 항목(소스), z 순서/잠금/블렌드 모드, 그리고 전체 장면 항목 변형을 다룹니다. GetClient()->GetScenes()로 접근합니다. 일반적인 작업은 Subsystem에 미러링되어 있습니다.

함수매개변수설명
GetSceneList없음장면 목록을 요청합니다(OnSceneListUpdated 발생).
SetCurrentProgramSceneSceneName이름으로 프로그램 장면을 전환합니다.
GetCurrentProgramScene없음현재 프로그램 장면을 요청합니다.
CreateSceneSceneName새 장면을 생성합니다(고유한 이름).
RemoveSceneSceneName이름으로 장면을 삭제합니다.
RemoveSceneByUuidSceneUuidUUID로 장면을 삭제합니다.
SetSceneNameSceneName, NewSceneName장면 이름을 변경합니다.
SetSceneNameByUuidSceneUuid, NewSceneNameUUID로 장면 이름을 변경합니다.
GetGroupList없음모든 그룹을 나열합니다.
GetGroupSceneItemListGroupName그룹 내 항목을 나열합니다.
GetCachedGroupsTArray<FString>캐시된 그룹 이름 목록.
GetSceneItemSourceSceneName, SceneItemId장면 항목의 기반 소스를 가져옵니다.
GetSourceActiveSourceName소스의 활성/표시 상태를 가져옵니다.
GetSourceActiveByUuidSourceUuidUUID로 동일한 작업을 수행합니다.
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장면 항목의 z 순서 인덱스를 가져옵니다.
SetSceneItemIndexSceneName, SceneItemId, SceneItemIndex장면 항목의 z 순서 인덱스를 설정합니다.
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 및 정적 도우미 TransformToJson, JsonToTransform, BoundsTypeToString/StringToBoundsType, BlendModeToString/StringToBlendMode.

이벤트매개변수설명
OnSceneListUpdatedScenes장면 목록이 변경됨.
OnAllTransformsFetchedScenesFetchAllSceneItemTransforms 완료.
OnCurrentSceneChangedSceneName프로그램 장면이 변경됨.
OnSceneItemTransformChangedSceneName, SceneItemId, Transform장면 항목의 변형이 변경됨(SetTransformEventsEnabled(true) 필요).
OnSceneItemCreated장면 항목 세부 정보소스가 장면에 추가됨.
OnSceneItemRemoved장면 항목 세부 정보장면 항목이 삭제됨.
OnSceneItemLockStateChanged잠금 세부 정보장면 항목의 잠금 상태가 변경됨.
OnSceneItemEnableStateChanged활성화 세부 정보장면 항목의 표시 여부가 변경됨.
OnSceneItemListReindexedSceneName장면 항목이 재정렬됨.
OnSceneCreated장면 세부 정보장면이 생성됨.
OnSceneRemoved장면 세부 정보장면이 삭제됨.
OnSceneNameChanged이름 변경 세부 정보장면 이름이 변경됨.
OnTransitionOverrideReceived재정의 데이터장면의 전환 재정의가 수신됨.

UInhyeongOBSAudio

입력, 음소거, 볼륨(dB 및 배율), 고급 오디오(오디오 밸런스, 동기화 오프셋, 모니터링 유형, 오디오 트랙), 특수 입력, 입력 CRUD, 음성 활동 감지 구독을 다룹니다. GetClient()->GetAudio()로 접근합니다. 음소거/볼륨 및 입력 목록 도우미는 Subsystem에 미러링되어 있습니다.

함수매개변수설명
GetInputListInputKind=""입력 목록을 가져옵니다(입력 종류로 필터링 가능).
GetCachedInputsTArray<FOBSInput>캐시된 입력 목록.
GetCachedInputInputName, OutInputbool이름으로 캐시된 입력 하나를 가져옵니다.
RefreshAllAudioInfo없음캐시된 모든 오디오 입력의 볼륨/음소거를 가져옵니다.
SetInputMuteInputName, bMuted음소거 상태를 설정합니다.
ToggleInputMuteInputName음소거를 토글합니다.
GetInputMuteInputName음소거를 조회합니다(캐시 업데이트 및 이벤트 발생).
SetInputVolumeInputName, VolumeDb볼륨을 dB 단위로 설정합니다.
SetInputVolumeMultiplierInputName, VolumeMul볼륨을 배율로 설정합니다.
GetInputVolumeInputName볼륨을 조회합니다(캐시 업데이트 및 이벤트 발생).
AdjustInputVolumeInputName, DeltaDbdB 단위 상대적 볼륨 변경.
RefreshAllAdvancedAudioInfo없음캐시된 모든 입력의 오디오 밸런스/동기화/모니터/트랙을 가져옵니다.
SetVolumeMetersEnabledbEnable대용량 InputVolumeMeters 스트림을 구독합니다(OnInputVolumeMeters 구동).
SetInputActiveStateEventsEnabledbEnableInputActiveStateChanged 이벤트를 구독합니다(OnInputActiveStateChanged 구동).
GetLastVolumeMetersTArray<FOBSInputVolumeMeter>가장 최근 볼륨 미터 프레임.
GetInputAudioBalanceInputName스테레오 밸런스를 조회합니다.
SetInputAudioBalanceInputName, Balance오디오 밸런스를 설정합니다(0=좌, 0.5=중앙, 1=우).
GetInputAudioSyncOffsetInputNameA/V 동기화 오프셋을 조회합니다(ms).
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

방송, 녹화(일시 정지/재개, 분할, 챕터 포함), 가상 카메라, Replay Buffer(충돌 방지 포함), 녹화 디렉터리, 일반 출력, 방송 자막을 다룹니다. GetClient()->GetOutputs()로 접근합니다. 방송/녹화 제어는 Subsystem에 미러링되어 있지만, 재생 충돌 방지는 핸들러 전용입니다.

함수매개변수설명
StartStream / StopStream / ToggleStream없음방송 제어.
GetStreamStatus없음방송 상태를 요청합니다.
IsStreamingbool캐시된 방송 중 여부.
GetLastStreamStatusFOBSStreamStatus마지막 방송 상태.
StartRecord / StopRecord / ToggleRecord없음녹화 제어.
PauseRecord / ResumeRecord / ToggleRecordPause없음녹화 일시 정지 제어.
GetRecordStatus없음녹화 상태를 요청합니다.
IsRecordingbool캐시된 녹화 중 여부.
GetLastRecordStatusFOBSRecordStatus마지막 녹화 상태.
StartVirtualCam / StopVirtualCam / ToggleVirtualCam없음가상 카메라 제어.
GetVirtualCamStatus없음가상 카메라 상태를 요청합니다.
IsVirtualCamActivebool캐시된 가상 카메라 활성 여부.
StartReplayBuffer / StopReplayBuffer / ToggleReplayBuffer없음Replay 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, JsonSettingsJSON으로 출력 설정을 지정합니다.
StartOutput / StopOutput / ToggleOutputOutputName특정 출력을 제어합니다.
GetCachedOutputsTArray<FOBSOutput>캐시된 출력 목록.
SendStreamCaptionCaptionTextCEA-608 자막 텍스트를 전송합니다(방송 중이어야 함).

C++ 전용: SetOutputSettings(JSON 객체) 및 정적 도우미 BuildReplayFilename, SanitizeReplayLabel.

이벤트매개변수설명
OnStreamStateChanged상태방송 상태가 변경됨.
OnRecordStateChanged상태녹화 상태가 변경됨.
OnRecordingStopped출력 경로녹화가 중지됨(파일 경로 포함).
OnVirtualCamStateChanged상태가상 카메라 상태가 변경됨.
OnReplayBufferStateChanged상태Replay Buffer 상태가 변경됨.
OnReplayBufferSaved저장 경로리플레이가 저장됨(이름 변경 후 최종 경로).
OnRecordFileChanged새 경로녹화 출력이 새 파일로 교체됨(분할).
OnRecordDirectoryReceived디렉터리녹화 디렉터리가 조회됨.
OnOutputListReceived출력 목록출력 목록이 조회됨.
OnOutputStatusReceived상태출력 상태가 조회됨.

UInhyeongOBSInputSettings

텍스트/브라우저/이미지/미디어/색상 소스의 소스 설정, 기본 설정, 캡처 장치 속성 접근을 다룹니다. GetClient()->GetInputSettings()로 접근합니다. 버튼 누르기 및 목록 속성 열거는 핸들러 전용입니다.

함수매개변수설명
GetInputSettingsInputName입력의 설정을 가져옵니다(OnInputSettingsReceivedNative 발생).
GetInputSettingsByUuidInputUuidUUID로 동일한 작업을 수행합니다.
SetInputSettingsFromStringInputName, InputSettingsJson, bOverlay=trueJSON으로 설정을 적용합니다.
GetInputDefaultSettingsInputKind해당 종류의 기본 설정을 가져옵니다.
PressInputPropertiesButtonInputName, PropertyName버튼형 속성을 누릅니다(예: 캡처 장치 활성화/비활성화).
GetInputPropertiesListPropertyItemsInputName, PropertyName목록 속성의 항목을 열거합니다(장치 드롭다운). OnInputPropertyItemsReceived 발생.
GetCachedInputSettingsStringInputNameFStringJSON으로 캐시된 설정.
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, ActionEOBSMediaInputAction을 수행합니다.
PlayMedia / PauseMedia / StopMedia / RestartMediaInputName재생 단축 메서드.
NextMedia / PreviousMediaInputName재생 목록 탐색.
SetMediaInputCursorInputName, CursorMs절대 위치(ms)로 탐색합니다.
OffsetMediaInputCursorInputName, OffsetMs상대적 탐색(ms).
SeekToPercentInputName, Percent재생 시간의 특정 비율(0.0~1.0)로 탐색합니다.

정적 도우미: MediaInputActionToString, MediaInputActionFromString, ParseMediaState.

이벤트매개변수설명
OnMediaInputPlaybackStartedInputName재생이 시작됨.
OnMediaInputPlaybackEndedInputName재생이 종료됨.
OnMediaInputActionTriggeredInputName, Action미디어 동작이 발생됨.
OnMediaInputStatusReceivedStatus미디어 상태가 수신됨.

UInhyeongOBSStudioMode

Studio Mode 토글, 미리보기 장면, T-Bar 스크럽을 포함한 전환을 다룹니다. GetClient()->GetStudioMode()로 접근합니다. SetTBarPosition은 핸들러 전용입니다.

함수매개변수설명
GetStudioModeEnabled없음Studio Mode 상태를 조회합니다.
SetStudioModeEnabledbEnabledStudio Mode를 활성화/비활성화합니다.
IsStudioModeEnabledbool캐시된 Studio Mode 여부.
GetCurrentPreviewScene없음미리보기 장면을 조회합니다.
SetCurrentPreviewSceneSceneName이름으로 미리보기 장면을 설정합니다.
SetCurrentPreviewSceneByUuidSceneUuidUUID로 미리보기 장면을 설정합니다.
GetPreviewSceneNameFString캐시된 미리보기 장면 이름.
GetPreviewSceneUuidFString캐시된 미리보기 장면 UUID.
TriggerStudioModeTransition없음미리보기를 프로그램으로 전환합니다.
TriggerStudioModeTransitionWithOptionsTransitionName, TransitionDurationMs=-1특정 전환/시간으로 전환합니다.
SetTBarPositionPosition, bRelease=trueT-Bar를 스크럽합니다(0=미리보기, 1=전환 완료). 예를 들어 Sequencer 플로트 트랙에서 잠금 상태로 유지하려면 bRelease=false를 전달합니다.
이벤트매개변수설명
OnStudioModeStateChangedbEnabledStudio Mode가 토글됨.
OnCurrentPreviewSceneChanged장면미리보기 장면이 변경됨.

UInhyeongOBSTransitions

현재 전환, 전환 시간과 설정, 그리고 실시간 전환 진행 상황을 다룹니다. GetClient()->GetTransitions()로 접근합니다.

함수매개변수설명
GetSceneTransitionList없음사용 가능한 전환 목록을 가져옵니다(OnTransitionListUpdated 발생).
GetCachedTransitionsTArray<FOBSTransition>캐시된 전환 목록.
GetCurrentSceneTransition없음현재 전환을 조회합니다.
SetCurrentSceneTransitionTransitionName현재 전환을 설정합니다.
GetCurrentTransitionInfoFOBSCurrentTransitionInfo캐시된 현재 전환 정보.
GetCurrentTransitionNameFString캐시된 현재 전환 이름.
SetCurrentSceneTransitionDurationDurationMs전환 시간을 설정합니다.
GetCurrentTransitionDurationint32캐시된 전환 시간(ms).
SetCurrentSceneTransitionSettingsFromStringSettingsJson, bOverlay=trueJSON으로 전환 전용 설정을 지정합니다.
GetCurrentSceneTransitionCursor없음진행 중인 전환의 커서를 조회합니다.
GetCachedTransitionCursorfloat마지막 커서 값(0.0~1.0, 또는 -1).
IsTransitionActivebool전환이 진행 중인지 여부.

C++ 전용: SetCurrentSceneTransitionSettings(JSON 객체).

이벤트매개변수설명
OnCurrentTransitionChanged이름현재 전환이 변경됨.
OnTransitionDurationChanged시간전환 시간이 변경됨.
OnTransitionStarted이름전환이 시작됨.
OnTransitionEnded이름전환이 종료됨(컷 포인트).
OnTransitionVideoEnded이름전환의 비디오가 종료됨(스팅어 전환).
OnTransitionListUpdated목록전환 목록이 변경됨.

UInhyeongOBSFilters

입력, 장면, 그룹의 소스 필터 CRUD, 활성화/재정렬, 필터별 설정을 다룹니다. GetClient()->GetFilters()로 접근합니다.

함수매개변수설명
GetSourceFilterKindList없음사용 가능한 필터 종류를 나열합니다.
GetCachedFilterKindsTArray<FString>캐시된 필터 종류.
GetSourceFilterListSourceName소스의 필터를 나열합니다.
GetSourceFilterListByUuidSourceUuidUUID로 동일한 작업을 수행합니다.
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=trueJSON으로 필터 설정을 지정합니다.

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, JsonSettingsJSON으로 설정합니다.
SetSimpleRTMPSettingsServer, StreamKey커스텀 RTMP 빠른 설정.
GetCachedStreamServiceSettingsFOBSStreamServiceSettings캐시된 설정.
GetVideoSettings없음비디오 설정을 가져옵니다(OnVideoSettingsReceived 발생).
SetVideoSettingsSettings비디오 설정을 지정합니다(방송/녹화 중에는 불가).
SetBaseResolutionWidth, Height캔버스 해상도를 설정합니다.
SetOutputResolutionWidth, Height스케일 조정된 출력 해상도를 설정합니다.
SetFPSFpsNumerator, FpsDenominator=1FPS를 분수로 설정합니다.
GetCachedVideoSettingsFOBSVideoSettings캐시된 비디오 설정.
GetPersistentDataRealm, SlotName영구 슬롯을 읽습니다(OnPersistentDataReceived 발생).
SetPersistentDataRealm, SlotName, SlotValueJsonboolJSON 값으로 슬롯에 씁니다(비어 있으면 null). 유효하지 않은 JSON은 false를 반환하고 아무것도 전송하지 않습니다.
SetPersistentDataStringRealm, SlotName, SlotValue슬롯에 일반 문자열로 씁니다.
GetCachedPersistentDataRealm, SlotName, OutSlotValueJsonbool캐시된 슬롯을 읽습니다.

RealmEOBSDataRealm(Global 또는 Profile)입니다. C++ 전용: SetStreamServiceSettingsRaw(JSON 객체).

이벤트매개변수설명
OnStreamServiceSettingsReceived설정방송 서비스 설정이 조회됨.
OnVideoSettingsReceived설정비디오 설정이 조회됨.
OnPersistentDataReceived슬롯 값영구 슬롯이 조회됨.
OnCurrentSceneCollectionChanging이름장면 모음이 변경되려 함.
OnCurrentSceneCollectionChanged이름장면 모음이 변경됨.
OnSceneCollectionListChanged목록장면 모음 목록이 변경됨.
OnCurrentProfileChanging이름프로필이 변경되려 함.
OnCurrentProfileChanged이름프로필이 변경됨.
OnProfileListChanged목록프로필 목록이 변경됨.

UInhyeongOBSGeneral

도메인 간 작업: 성능 통계, 단축키, 벤더(서드파티 플러그인) 요청, 커스텀/종료 이벤트, 아웃바운드 게임 이벤트 발생을 다룹니다. 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"EmitGameEvent를 위한 맵 기반 편의 메서드.
이벤트매개변수설명
OnStatsReceived통계성능 통계가 수신됨.
OnHotkeyListReceived단축키단축키 목록이 수신됨.
OnExitStarted없음OBS가 종료 중.
OnVendorEvent벤더 페이로드벤더(플러그인) 이벤트가 수신됨.
OnCustomEvent커스텀 페이로드다른 클라이언트에서 커스텀 이벤트가 수신됨.
OnVendorResponseReceived벤더 응답CallVendorRequest 응답이 수신됨.

참고 항목

  • Subsystem API: 이 핸들러들을 래핑하는 ~100개의 편의 메서드를 가진 GameInstance 퍼사드.
  • Events: 전체 이벤트 카탈로그, 페이로드 구조체, 델리게이트 시그니처.