Skip to content

Desuq Cafe

문서 메뉴

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

장면 및 소스

이 가이드에서는 장면 전환 및 관리, 장면별 전환 재정의, 그리고 장면 항목(장면 안의 소스 인스턴스) 작업을 다룹니다. 변형, 순서 지정, 잠금, 블렌드 모드도 포함됩니다.

장면 관리

함수설명
SetCurrentScene(Name)장면으로 전환
GetSceneList()OBS에서 장면 목록 새로 고침
GetGroupList()모든 장면 그룹 가져오기
GetCachedScenes()로컬에 캐시된 장면 목록 가져오기
GetCachedScenesWithItems()소스 항목이 포함된 장면 가져오기
SetSceneItemEnabled(Scene, ItemId, Enabled)소스 표시/숨기기

장면 CRUD

함수설명
CreateScene(Name)새로운 빈 장면 생성
RemoveScene(Name)장면 삭제 (현재 장면이면 실패)
SetSceneName(Name, NewName)장면 이름 변경

이벤트:

  • OnSceneCreated(SceneName, SceneUuid, bIsGroup): 장면이 생성됨
  • OnSceneRemoved(SceneName, SceneUuid, bIsGroup): 장면이 삭제됨
  • OnSceneNameChanged(SceneUuid, OldName, NewName): 장면 이름이 변경됨

참고: 현재 활성 장면은 삭제할 수 없습니다. 먼저 다른 장면으로 전환하세요.

장면 전환 재정의

장면별 전환 재정의를 사용하면 특정 장면으로 전환할 때 다른 전환 효과를 적용할 수 있습니다.

함수설명
GetSceneTransitionOverride(SceneName)장면의 재정의 설정 가져오기 (비동기)
SetSceneTransitionOverride(SceneName, TransitionName, DurationMs)재정의 설정 (-1 지속 시간 = 현재 유지)
ClearSceneTransitionOverride(SceneName)재정의 제거, 기본 전환 사용
GetCachedTransitionOverride(SceneName, OutOverride)로컬에 캐시된 재정의 데이터 가져오기
FetchAllTransitionOverrides()캐시된 모든 장면의 재정의 가져오기

이벤트:

  • OnTransitionOverrideReceived(SceneName, Override): 재정의 데이터를 가져옴

재정의 구조체 (FOBSSceneTransitionOverride):

필드타입설명
TransitionNameFString재정의 전환의 이름 (비어 있으면 재정의 없음)
TransitionDurationint32지속 시간(ms) (-1 = 재정의 없음)
bHasOverridebool재정의가 설정된 경우 true

장면 항목 변형

함수설명
GetSceneItemTransform(Scene, ItemId)OBS에서 변형 속성 가져오기
SetSceneItemTransform(Scene, ItemId, Transform)모든 변형 속성 설정
SetSceneItemPosition(Scene, ItemId, X, Y)위치만 설정
SetSceneItemScale(Scene, ItemId, ScaleX, ScaleY)스케일만 설정
SetSceneItemRotation(Scene, ItemId, Rotation)회전 각도 설정 (도 단위)
SetSceneItemCrop(Scene, ItemId, L, T, R, B)자르기 설정 (픽셀 단위)
SetSceneItemBounds(Scene, ItemId, Type, W, H, Align)바운딩 박스 설정
GetSceneItemId(Scene, SourceName)소스 이름을 장면 항목 ID로 변환
GetCachedSceneItemTransform(Scene, ItemId, OutTransform)캐시된 변형 데이터 가져오기

변형 속성:

  • 위치: 픽셀 단위 X/Y 좌표
  • 스케일: X/Y 배율 (1.0 = 100%)
  • 회전: 각도 (0~360)
  • 자르기: 각 가장자리에서 제거되는 픽셀
  • 바운딩 박스: 바운딩 박스 유형, 크기, 정렬
  • 정렬: 비트 플래그 (0=가운데, 1=왼쪽, 2=오른쪽, 4=위쪽, 8=아래쪽)

바운딩 박스 유형:

유형설명
None바운딩 박스 없음
Stretch맞게 늘리기 (종횡비 무시)
ScaleInner내부에 맞추기 (레터박싱)
ScaleOuter경계 채우기 (잘릴 수 있음)
ScaleToWidth너비에 맞게 스케일
ScaleToHeight높이에 맞게 스케일
MaxOnly최대 크기만 적용 (업스케일 없음)

중요: 장면 항목은 소스 이름이 아닌 SceneItemId로 식별됩니다. 동일한 소스가 서로 다른 ID로 한 장면에 여러 번 나타날 수 있습니다. GetSceneItemId()를 사용하여 소스 이름을 ID로 변환하세요.

장면 항목 관리 (CRUD)

함수설명
CreateSceneItem(Scene, SourceName, Enabled)기존 소스를 장면에 추가
RemoveSceneItem(Scene, ItemId)장면에서 항목 제거 (소스는 삭제되지 않음)
DuplicateSceneItem(Scene, ItemId, DestScene)항목 복제 (대상이 비어 있으면 같은 장면)
GetSceneItemLocked(Scene, ItemId)항목 잠금 여부 조회
SetSceneItemLocked(Scene, ItemId, Locked)OBS UI에서 항목 잠금/잠금 해제
GetGroupSceneItemList(GroupName)그룹 내 모든 항목 가져오기
GetSceneItemSource(Scene, ItemId)장면 항목의 소스 정보 가져오기
GetSceneItemIndex(Scene, ItemId)z 순서 위치 조회
SetSceneItemIndex(Scene, ItemId, Index)z 순서 설정 (0 = 뒤, 높을수록 앞)
GetSceneItemBlendMode(Scene, ItemId)블렌드 모드 조회
SetSceneItemBlendMode(Scene, ItemId, Mode)합성 블렌드 모드 설정

블렌드 모드:

모드설명
Normal기본 블렌딩
Additive밝게 (색상 더하기)
Subtract어둡게 (색상 빼기)
Screen스크린 블렌딩
Multiply곱하기 블렌딩
Lighten밝은 픽셀 유지
Darken어두운 픽셀 유지

참고 사항:

  • CreateSceneItem은 기존 소스를 필요로 하며 새로운 소스를 생성할 수 없습니다.
  • DuplicateSceneItem은 복사본이 아닌 참조를 생성합니다. 소스에 대한 변경 사항은 양쪽 모두에 영향을 미칩니다.
  • RemoveSceneItem은 참조만 제거합니다. 원본 소스는 계속 사용 가능합니다.
  • 인덱스 0은 장면의 뒤쪽(먼저 렌더링됨)이며, 값이 높을수록 앞쪽에 가깝습니다.
  • 블렌드 모드 변경은 OBS 이벤트를 발생시키지 않으므로 필요한 경우 로컬에서 추적하세요.

이벤트

장면

  • OnCurrentSceneChanged(SceneName, SceneUuid): 활성 장면이 변경됨
  • OnSceneListUpdated: 장면 목록이 새로 고침됨
  • OnSceneCreated(SceneName, SceneUuid, bIsGroup): 새 장면이 생성됨
  • OnSceneRemoved(SceneName, SceneUuid, bIsGroup): 장면이 삭제됨
  • OnSceneNameChanged(SceneUuid, OldSceneName, NewSceneName): 장면 이름이 변경됨
  • OnTransitionOverrideReceived(SceneName, Override): 장면 전환 재정의 데이터를 가져옴

장면 항목

  • OnSceneItemTransformChanged(SceneName, SceneItemId, Transform): 장면 항목 변형이 변경됨
  • OnSceneItemCreated(SceneName, SourceName, SceneItemId, SceneItemIndex): 장면에 항목이 추가됨
  • OnSceneItemRemoved(SceneName, SourceName, SceneItemId): 장면에서 항목이 제거됨
  • OnSceneItemEnableStateChanged(SceneName, SceneItemId, bEnabled): 항목 표시 여부가 변경됨
  • OnSceneItemLockStateChanged(SceneName, SceneItemId, bLocked): 항목 잠금 상태가 토글됨
  • OnSceneItemListReindexed(SceneName): 장면의 항목 순서가 변경됨 (z 순서 변경)

모든 OBS 도메인에 걸친 이벤트 전체 목록은 이벤트 레퍼런스를 참조하세요.