Skip to content

Desuq Cafe

문서 메뉴

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

Subsystem API

UInhyeongOBSSubsystem은 OBS WebSocket 연결을 소유하고 100개 이상의 Blueprint 호출 가능 메서드를 제공하는 UGameInstanceSubsystem입니다. 레벨 로드 사이에서도 유지되며, OBS 제어를 위한 기본 파사드 역할을 합니다.

C++에서 접근하려면:

UInhyeongOBSSubsystem* OBS = GetGameInstance()->GetSubsystem<UInhyeongOBSSubsystem>();

Blueprint에서는: Get Game Instance → Get Subsystem (InhyeongOBSSubsystem).

참고: OBS Component(UInhyeongOBSComponent)는 이 메서드들 대부분을 액터별로 미러링하며, 장면 감시 기능을 추가로 제공합니다(OBS Component 참조). 여기에 노출되지 않은 핸들러 수준 메서드는 GetClient()->GetXxx()를 통해 접근합니다(Handlers API 참조).

이 페이지 전반에서, BlueprintPure 게터(GetCached* / Is* / 상태 읽기)는 **(Pure)**로 표시됩니다. 그 외 나머지는 BlueprintCallable입니다. Pure가 아닌 게터 대부분은 비동기로 동작합니다. OBS에 요청을 보내고 결과는 델리게이트 이벤트를 통해 도착합니다(Events 참조).


연결

함수시그니처 / 파라미터설명
Connect(FString Host = "localhost", int32 Port = 4455, FString Password = "", bool bAutoReconnect = true)OBS WebSocket 서버에 연결하고 인증합니다.
SetAutoReconnect(bool bAutoReconnect)자동 재연결을 활성화/비활성화합니다.
Disconnect()연결을 닫고 대기 중인 요청을 지웁니다.
IsConnected() → bool(Pure) 완전히 연결되어 식별된 상태이면 true입니다.
GetConnectionState() → EOBSConnectionState(Pure) 현재 연결 상태(Disconnected/Connecting/Authenticating/Connected)입니다.
GetClient() → UInhyeongOBSWebSocketClient*(Pure) 고급 사용 및 핸들러 접근을 위한 직접 클라이언트 접근입니다.

장면 모음

함수시그니처 / 파라미터설명
GetSceneCollectionList()장면 모음 목록을 가져옵니다.
SetCurrentSceneCollection(FString SceneCollectionName)활성 장면 모음을 전환합니다.
CreateSceneCollection(FString SceneCollectionName)새 장면 모음을 만듭니다.
GetCachedSceneCollections() → TArray<FString>(Pure) 캐시된 장면 모음 이름 목록입니다.
GetCurrentSceneCollectionName() → FString(Pure) 캐시된 현재 활성 장면 모음입니다.

프로필

함수시그니처 / 파라미터설명
GetProfileList()프로필 목록을 가져옵니다.
SetCurrentProfile(FString ProfileName)활성 프로필을 전환합니다.
CreateProfile(FString ProfileName)새 프로필을 만듭니다.
RemoveProfile(FString ProfileName)프로필을 삭제합니다.
GetCachedProfiles() → TArray<FString>(Pure) 캐시된 프로필 이름 목록입니다.
GetCurrentProfileName() → FString(Pure) 캐시된 현재 활성 프로필입니다.

비디오 설정

함수시그니처 / 파라미터설명
GetVideoSettings()현재 비디오 설정을 가져옵니다.
SetVideoSettings(FOBSVideoSettings Settings)전체 비디오 설정을 지정합니다.
SetBaseResolution(int32 Width, int32 Height)기본(캔버스) 해상도를 설정합니다.
SetOutputResolution(int32 Width, int32 Height)스케일된 출력 해상도를 설정합니다.
SetFPS(int32 FpsNumerator, int32 FpsDenominator = 1)출력 프레임 레이트를 설정합니다.
GetCachedVideoSettings() → FOBSVideoSettings(Pure) 캐시된 비디오 설정입니다.

방송 서비스 설정

함수시그니처 / 파라미터설명
GetStreamServiceSettings()현재 방송 서비스 설정을 가져옵니다.
SetStreamServiceSettings(FOBSStreamServiceSettings Settings)방송 서비스 설정을 지정합니다.
SetSimpleRTMPSettings(FString Server, FString StreamKey)커스텀 RTMP 서버와 스트림 키를 구성합니다.
GetCachedStreamServiceSettings() → FOBSStreamServiceSettings(Pure) 캐시된 방송 서비스 설정입니다.

장면

함수시그니처 / 파라미터설명
GetSceneList()장면 목록을 가져옵니다.
SetCurrentScene(FString SceneName)활성 프로그램 장면을 전환합니다.
GetCurrentSceneName() → FString(Pure) 캐시된 현재 활성 장면 이름입니다.
GetCachedScenes() → TArray<FOBSScene>(Pure) 캐시된 장면 목록입니다.

장면 항목 변형

함수시그니처 / 파라미터설명
GetSceneItemTransform(FString SceneName, int32 SceneItemId)장면 항목의 변형을 가져옵니다.
SetSceneItemTransform(FString SceneName, int32 SceneItemId, FOBSSceneItemTransform Transform)장면 항목의 전체 변형을 설정합니다.
SetSceneItemPosition(FString SceneName, int32 SceneItemId, float X, float Y)위치만 설정합니다.
SetSceneItemRotation(FString SceneName, int32 SceneItemId, float Rotation)회전(도 단위)만 설정합니다.
SetSceneItemScale(FString SceneName, int32 SceneItemId, float ScaleX, float ScaleY)스케일만 설정합니다.
SetSceneItemCrop(FString SceneName, int32 SceneItemId, int32 Left, int32 Top, int32 Right, int32 Bottom)자르기 경계를 설정합니다.
SetSceneItemBounds(FString SceneName, int32 SceneItemId, EOBSBoundsType BoundsType, float BoundsWidth, float BoundsHeight, int32 BoundsAlignment = 0)바운딩 박스 동작을 설정합니다.
GetSceneItemId(FString SceneName, FString SourceName)소스 이름을 숫자 장면 항목 ID로 변환합니다.

장면 항목 CRUD

함수시그니처 / 파라미터설명
CreateSceneItem(FString SceneName, FString SourceName, bool bEnabled = true)기존 소스를 장면에 추가합니다.
RemoveSceneItem(FString SceneName, int32 SceneItemId)장면에서 항목을 제거합니다.
DuplicateSceneItem(FString SceneName, int32 SceneItemId, FString DestinationSceneName = "")항목을 복제합니다(선택적으로 다른 장면으로).

장면 항목 잠금 / Z 순서 / 블렌드

함수시그니처 / 파라미터설명
GetSceneItemLocked(FString SceneName, int32 SceneItemId)잠금 상태를 가져옵니다.
SetSceneItemLocked(FString SceneName, int32 SceneItemId, bool bLocked)잠금 상태를 설정합니다.
GetSceneItemIndex(FString SceneName, int32 SceneItemId)z 순서 인덱스를 가져옵니다(0 = 뒤).
SetSceneItemIndex(FString SceneName, int32 SceneItemId, int32 ItemIndex)z 순서 인덱스를 설정합니다(0 = 뒤).
GetSceneItemBlendMode(FString SceneName, int32 SceneItemId)블렌드 모드를 가져옵니다.
SetSceneItemBlendMode(FString SceneName, int32 SceneItemId, EOBSBlendMode BlendMode)블렌드 모드를 설정합니다.

녹화

함수시그니처 / 파라미터설명
StartRecord()녹화를 시작합니다.
StopRecord()녹화를 중지합니다.
ToggleRecord()녹화를 토글합니다.
PauseRecord()진행 중인 녹화를 일시 정지합니다.
ResumeRecord()일시 정지된 녹화를 재개합니다.
ToggleRecordPause()일시 정지/재개를 토글합니다.
GetRecordStatus()녹화 상태를 가져옵니다.
GetRecordDirectory()녹화 디렉터리를 가져옵니다(OnRecordDirectoryReceived 발생).
SetRecordDirectory(FString Directory)녹화 디렉터리를 설정합니다(다음 녹화부터 적용).
GetCachedRecordDirectory() → FString(Pure) 캐시된 녹화 디렉터리입니다.
SplitRecordFile()진행 중인 녹화를 새 파일로 분할합니다.
CreateRecordChapter(FString ChapterName = "")챕터 마커를 추가합니다(Hybrid MP4, OBS 30.2.0 이상 전용).

방송

함수시그니처 / 파라미터설명
StartStream()방송을 시작합니다.
StopStream()방송을 중지합니다.
ToggleStream()방송을 토글합니다.
GetStreamStatus()방송 상태를 가져옵니다.
SendStreamCaption(FString CaptionText)CEA-608 방송 자막 텍스트를 전송합니다(방송이 활성화된 상태여야 합니다).

가상 카메라

함수시그니처 / 파라미터설명
StartVirtualCam()가상 카메라를 시작합니다.
StopVirtualCam()가상 카메라를 중지합니다.
ToggleVirtualCam()가상 카메라를 토글합니다.
GetVirtualCamStatus()가상 카메라 상태를 가져옵니다.
IsVirtualCamActive() → bool(Pure) 캐시된 가상 카메라 활성 상태입니다.

Replay Buffer

함수시그니처 / 파라미터설명
StartReplayBuffer()Replay Buffer를 시작합니다.
StopReplayBuffer()Replay Buffer를 중지합니다.
ToggleReplayBuffer()Replay Buffer를 토글합니다.
SaveReplayBuffer()현재 Replay Buffer 내용을 디스크에 저장합니다.
GetReplayBufferStatus()Replay Buffer 상태를 가져옵니다.
IsReplayBufferActive() → bool(Pure) 캐시된 Replay Buffer 활성 상태입니다.

일반 출력

함수시그니처 / 파라미터설명
GetOutputList()모든 출력 목록을 가져옵니다.
GetOutputStatus(FString OutputName)특정 출력의 상태를 가져옵니다.
GetOutputSettings(FString OutputName)특정 출력의 설정을 가져옵니다.
SetOutputSettings(FString OutputName, FString JsonSettings)JSON으로 출력 설정을 지정합니다.
StartOutput(FString OutputName)특정 출력을 시작합니다.
StopOutput(FString OutputName)특정 출력을 중지합니다.
ToggleOutput(FString OutputName)특정 출력을 토글합니다.
GetCachedOutputs() → TArray<FOBSOutput>(Pure) 캐시된 출력 목록입니다.

오디오

함수시그니처 / 파라미터설명
GetInputList(FString InputKind = "")입력 목록을 가져옵니다. 선택적으로 종류별로 필터링합니다.
SetInputMute(FString InputName, bool bMuted)입력의 음소거 상태를 설정합니다.
ToggleInputMute(FString InputName)입력의 음소거를 토글합니다.
SetInputVolume(FString InputName, float VolumeDb)입력의 볼륨을 dB 단위로 설정합니다.
SetVolumeMetersEnabled(bool bEnable)고빈도 InputVolumeMeters 이벤트를 구독합니다(기본값: 비활성화).
SetInputActiveStateEventsEnabled(bool bEnable)InputActiveStateChanged 이벤트를 구독합니다(기본값: 비활성화).

고급 오디오

함수시그니처 / 파라미터설명
GetInputAudioBalance(FString InputName)스테레오 밸런스를 가져옵니다(0=L, 0.5=C, 1=R).
SetInputAudioBalance(FString InputName, float Balance)스테레오 밸런스를 설정합니다.
GetInputAudioSyncOffset(FString InputName)동기화 오프셋(ms)을 가져옵니다.
SetInputAudioSyncOffset(FString InputName, int32 OffsetMs)동기화 오프셋을 설정합니다(-950~20000 ms).
GetInputAudioMonitorType(FString InputName)오디오 모니터 유형을 가져옵니다.
SetInputAudioMonitorType(FString InputName, EOBSMonitorType MonitorType)오디오 모니터 유형을 설정합니다.
GetInputAudioTracks(FString InputName)트랙별 활성화 상태를 가져옵니다.
SetInputAudioTracks(FString InputName, FOBSAudioTracks Tracks)모든 트랙 활성화 상태를 설정합니다.
SetInputAudioTrack(FString InputName, int32 TrackNumber, bool bEnabled)특정 트랙(1~6) 하나의 활성화 상태를 설정합니다.
GetSpecialInputs()기본 데스크톱/마이크 오디오 장치를 가져옵니다.
GetCachedSpecialInputs() → FOBSSpecialInputs(Pure) 캐시된 특수 입력입니다.

마이크 / 음성 활동 감지

함수시그니처 / 파라미터설명
EnableMicActivityDetection(FString InputName, float ThresholdDb = -40, float AttackSeconds = 0.05, float ReleaseSeconds = 0.5)디바운스된 발화 중/대기 감지를 시작합니다(볼륨 미터 자동 활성화).
DisableMicActivityDetection(FString InputName)입력에 대한 감지를 중지합니다(미터 구독은 유지).
IsMicActive(FString InputName) → bool(Pure) 현재 디바운스된 발화 상태입니다(등록되지 않은 경우 false).

입력 (CRUD)

함수시그니처 / 파라미터설명
CreateInput(FString SceneName, FString InputName, FString InputKind, FString InputSettingsJson = "", bool bSceneItemEnabled = true)새 입력을 만들고 장면에 추가합니다.
RemoveInput(FString InputName)입력을 제거합니다(사용 중이어선 안 됩니다).
SetInputName(FString InputName, FString NewInputName)입력 이름을 변경합니다.
GetInputKindList(bool bUnversioned = false)사용 가능한 입력 종류를 가져옵니다.
GetCachedInputKinds() → TArray<FString>(Pure) 캐시된 입력 종류 목록입니다.

입력 설정

함수시그니처 / 파라미터설명
FetchInputSettings(FString InputName)입력의 현재 설정을 가져옵니다(핸들러 이벤트 발생).
SetInputSettings(FString InputName, FString SettingsJson, bool bOverlay = true)JSON으로 입력 설정을 지정합니다.
SetTextSourceText(FString InputName, FString NewText)편의 기능: 텍스트 소스의 텍스트를 설정합니다.
SetBrowserSourceUrl(FString InputName, FString NewUrl)편의 기능: 브라우저 소스의 URL을 설정합니다.
SetImageSourceFile(FString InputName, FString NewFilePath)편의 기능: 이미지 소스의 파일 경로를 설정합니다.
SetMediaSourceFile(FString InputName, FString NewFilePath, bool bLooping = false)편의 기능: 미디어 소스의 파일 경로를 설정합니다.
SetColorSourceColor(FString InputName, int64 Color)편의 기능: 색상 소스의 색상을 설정합니다(ABGR, int64).

미디어

서브시스템은 미디어 재생 관련 동작을 직접 노출하지 않습니다. 미디어 재생 제어(재생/일시 정지/중지/재시작, 탐색, 상태)는 미디어 입력 핸들러를 통해 접근하십시오.

OBS->GetMediaInputs()->...

UInhyeongOBSMediaInputs에 대한 자세한 내용은 Handlers API를 참조하십시오.


스튜디오 모드

함수시그니처 / 파라미터설명
GetStudioModeEnabled()스튜디오 모드 활성화 상태를 가져옵니다.
SetStudioModeEnabled(bool bEnabled)스튜디오 모드를 활성화/비활성화합니다.
IsStudioModeEnabled() → bool(Pure) 캐시된 스튜디오 모드 상태입니다.
GetCurrentPreviewScene()미리보기 장면을 가져옵니다.
SetCurrentPreviewScene(FString SceneName)미리보기 장면을 설정합니다.
TriggerStudioModeTransition()미리보기 장면을 프로그램으로 전환합니다.
GetPreviewSceneName() → FString(Pure) 캐시된 미리보기 장면 이름입니다.

전환

함수시그니처 / 파라미터설명
GetSceneTransitionList()전환 목록을 가져옵니다.
GetCurrentSceneTransition()현재 활성 전환을 가져옵니다.
SetCurrentSceneTransition(FString TransitionName)활성 전환을 설정합니다.
SetCurrentSceneTransitionDuration(int32 DurationMs)전환 시간을 설정합니다.
GetCurrentTransitionName() → FString(Pure) 캐시된 현재 활성 전환 이름입니다.
GetCurrentTransitionDuration() → int32(Pure) 캐시된 전환 시간(ms)입니다.
IsTransitionActive() → bool(Pure) 캐시된 “전환 진행 중” 상태입니다.

필터

서브시스템은 필터 CRUD를 직접 노출하지 않습니다. 소스 필터 관리(생성/제거/이름 변경/순서 변경, 활성화, 설정)는 필터 핸들러를 통해 접근하십시오.

OBS->GetFilters()->...

필터 이벤트는 서브시스템에서 재브로드캐스트됩니다(Events 참조). UInhyeongOBSFilters에 대한 자세한 내용은 Handlers API를 참조하십시오.


스크린샷

서브시스템은 스크린샷 캡처 메서드를 직접 노출하지 않습니다. 스크린샷 핸들러를 통해 접근하십시오.

OBS->GetScreenshots()->...

스크린샷 결과 델리게이트는 서브시스템에서 재브로드캐스트됩니다(OnScreenshotCaptured / OnScreenshotSaved). 단, 캡처 메서드 자체는 핸들러에 있습니다. UInhyeongOBSScreenshots에 대한 자세한 내용은 Handlers API를 참조하십시오.


게임 이벤트 (엔진 → OBS)

함수시그니처 / 파라미터설명
EmitGameEvent(FString EventName, FString PayloadJson, FString Realm = "inhyeongobs") → bool네임스페이스가 지정된 커스텀 이벤트를 OBS에 발생시킵니다. 연결되지 않았거나 페이로드가 유효한 JSON이 아닌 경우 false를 반환합니다.
EmitGameEventMap(FString EventName, TMap<FString,FString> Payload, FString Realm = "inhyeongobs")맵 편의 기능: 각 키/값이 페이로드 아래 JSON 문자열 필드가 됩니다.

핸들러 접근자

BlueprintPure 게터들은 클라이언트가 소유하는 도메인 핸들러를 반환합니다. 서브시스템에 직접 노출되지 않은 핸들러 수준 메서드에 접근할 때 사용하십시오(Handlers API 참조).

함수반환값도메인
GetOutputsUInhyeongOBSOutputs*방송, 녹화, 가상 카메라, Replay Buffer.
GetScenesUInhyeongOBSScenes*장면 전환, 장면 항목.
GetAudioUInhyeongOBSAudio*입력 목록, 볼륨, 음소거, 볼륨 미터.
GetInputSettingsUInhyeongOBSInputSettings*텍스트/브라우저/이미지/미디어 소스 설정.
GetMediaInputsUInhyeongOBSMediaInputs*미디어 소스 재생 제어.
GetStudioModeUInhyeongOBSStudioMode*미리보기 장면, 스튜디오 전환, T-Bar.
GetTransitionsUInhyeongOBSTransitions*장면 전환, 시간, 설정.
GetFiltersUInhyeongOBSFilters*소스 필터 관리.
GetScreenshotsUInhyeongOBSScreenshots*base64 또는 파일로 스크린샷 캡처.
GetConfigUInhyeongOBSConfig*장면 모음, 프로필, 비디오 설정, 영구 데이터.

UInhyeongOBSGeneral 핸들러(성능 통계, 단축키, 벤더 요청)는 서브시스템에 GetGeneral() 접근자가 없으므로 GetClient()->GetGeneral()을 통해 접근하십시오.


이벤트

서브시스템의 모든 이벤트 델리게이트(예: OnConnected, OnCurrentSceneChanged, OnRecordStateChanged, OnMicActivityChanged)는 Events에 문서화되어 있습니다. 모든 Blueprint 이벤트에는 람다 바인딩을 위한 Native 접미사가 붙은 네이티브 C++ 대응 항목이 있습니다(Native Delegates 참조).