Skip to content

Desuq Cafe

문서 메뉴

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

고급 주제

이 페이지에서는 타임라인에서 OBS를 집중적으로 구동할 때 중요한 동작들을 다룹니다. State 섹션이 어떻게 되돌아가는지, 중지 시 어떤 상태가 복원되는지, 성능 보호 장치, 그리고 전반적인 디버깅 방법을 설명합니다.

Exit Actions (State 유형 전용)

State 유형 동작(섹션 유형 참조)의 경우, 섹션이 끝날 때의 동작을 설정합니다.

  1. 아무것도 하지 않음: 섹션이 끝난 후에도 동작이 유지됩니다.
  2. Auto-revert: 시스템이 역방향 동작을 자동으로 생성합니다 (예: 음소거 → 음소거 해제).
  3. 커스텀 종료 동작: 수행할 다른 동작을 직접 지정합니다.

참고: Auto-reverse 종료 동작은 복원이 활성화되어 있고 명시적인 종료 동작이 설정되지 않은 경우에만 생성됩니다. 역방향 재생은 진입/종료 의미를 반전시킵니다. 역방향에서는 섹션의 “종료” 동작이 섹션 시작 지점에서 실행됩니다.

Pre-Animated State Restoration

bRestoreStateOnTearDown이 활성화되면, 트랙은 재생 전 OBS 상태를 캡처하고 다음의 경우에 복원합니다.

  • 시퀀스 재생이 중지될 때.
  • 섹션에서 벗어나 스크럽할 때.
  • 시퀀스가 닫힐 때.

현재 복원되는 항목:

  • 출력: 녹화 (활성, 일시 정지), 방송, 가상 카메라, Replay Buffer.
  • 장면: 현재 프로그램 장면.
  • 장면 항목: 표시 여부, 잠금 상태, 블렌드 모드 (Continuous State Track을 통해).
  • 장면 항목 변형: 위치, 스케일, 회전, 자르기 (OBS Transform Track을 통해).
  • 오디오: 입력 음소거 상태, 입력 볼륨 (dB) (OBS Volume Track을 통해), 입력 밸런스 (OBS Balance Track을 통해).
  • 전환: 현재 전환, 전환 시간 (OBS Transition Duration Track을 통해).
  • Studio Mode: 스튜디오 모드 활성화 여부, 미리보기 장면.
  • 필터: 필터 활성화 상태, 필터 설정 값 (OBS Filter Setting Track을 통해).
  • 소스: 텍스트 내용, 브라우저 URL, 이미지 파일, 미디어 파일 및 반복 설정, 색상 (OBS Color Source Track을 통해).
  • 미디어: 커서 위치 (OBS Media Cursor Track을 통해).

복원되지 않는 항목 (즉시 실행 동작):

  • 녹화 분할/챕터, Replay Buffer 저장, 방송 자막.
  • 미디어 입력 동작 (재생/일시 정지/중지), 미디어 커서 위치.
  • 스튜디오 모드 전환 트리거.
  • 스크린샷 (이미 찍은 사진은 되돌릴 수 없음).

참고: 애니메이션 이전 상태 복원은 디바운스 처리됩니다 (약 150ms 쿨다운, 입력 단위가 아닌 섹션 단위로 적용). 해당 시간 내에 두 섹션이 동시에 끝나면 정상적인 상태 변경이 가려질 수 있습니다. 캡처는 새로운 쿼리가 아닌 마지막으로 캐시된 OBS 상태를 기준으로 하므로 오래된 데이터일 수 있습니다. Keyframeable Track의 대상(InputName/소스)은 섹션이 아닌 트랙에 저장된다는 점을 기억하세요.

성능 기능

Sequencer 연동에는 여러 최적화 기능이 포함되어 있습니다.

기능설명
액션 큐잉33ms 스로틀링 (~30fps)으로 키프레임 애니메이션을 부드럽게 유지하면서 과도한 요청을 방지
중복 제거같은 프레임 내의 중복 동작을 병합
배치 요청여러 동작을 단일 OBS 요청으로 전송 (배치당 최대 48개)
디바운스 복원150ms 쿨다운으로 스크럽 중 빠른 상태 복원 방지
통합 라우팅모든 Keyframeable Track이 일관된 스로틀링/배치 처리를 위해 액션 큐를 통해 라우팅

에디터 알림

동작이 실패하면 에디터에 오류 세부 정보가 담긴 토스트 알림이 표시됩니다. 주요 동작(녹화 시작/중지, 방송 시작/중지)에 대한 성공 알림도 활성화할 수 있습니다.

사용 예시

시네마틱 녹화

[0:00] StartRecord section
[0:05] SwitchScene("CloseUp") section
[0:15] SwitchScene("WideShot") section
[0:30] StopRecord section

라이브 쇼 자동화

[Intro]     SwitchScene("TitleCard") + StartStream
[Main]      SwitchScene("MainCamera") + UnmuteInput("Mic")
[Outro]     SwitchScene("EndCard") + MuteInput("Mic")
[End]       StopStream

리플레이 하이라이트

[Boss Defeated]  SaveReplayBuffer section
[Victory Screen] SwitchScene("Victory") section

C++ 접근

// The Sequencer system uses these key classes:
#include "Sequencer/MovieSceneOBSTrack.h"
#include "Sequencer/MovieSceneOBSSection.h"
#include "Sequencer/InhyeongOBSSequencerTypes.h"

// Action metadata is available via the registry
const FOBSSequencerActionMetadata* Meta = FOBSSequencerActionRegistry::GetMetadata(EOBSSequencerAction::SwitchScene);
if (Meta && Meta->bRequiresTargetName)
{
    // This action needs a target name (scene name)
}

// Get all actions in a category
TArray<EOBSSequencerAction> RecordingActions =
    FOBSSequencerActionRegistry::GetActionsForCategory(EOBSSequencerActionCategory::Recording);

EOBSSequencerAction 값의 전체 목록은 동작 참조를 참고하세요.

Sequencer 문제 해결

문제해결 방법
동작이 실행되지 않음트랙이 음소거 상태가 아닌지 확인하세요. 스크럽 중이라면 bFireActionsWhenScrubbing도 확인하세요.
트랙 헤더에 빨간 점이 표시됨OBS가 연결되어 있지 않습니다. Editor Subsystem 또는 OBS Component를 통해 연결하세요.
상태가 복원되지 않음트랙에서 bRestoreStateOnTearDown이 활성화되어 있는지 확인하세요.
동작이 여러 번 실행됨빠른 스크럽 중에는 정상적인 동작입니다. 큐는 최소 33ms로 스로틀링됩니다.
토스트 알림 오류OBS가 실행 중인지, 동작 파라미터가 유효한지 확인하세요.