Skip to content

Desuq Cafe

문서 메뉴

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

스크린샷

임의의 OBS 소스(장면 또는 입력)의 스크린샷을 메모리의 base64 이미지 데이터로 캡처하거나(Unreal에서 사용할 UTexture2D로 변환 가능), OBS 머신의 파일 시스템에 직접 파일로 저장할 수 있습니다.

함수

함수설명
GetSourceScreenshot(Name, Format)스크린샷을 base64 메모리로 캡처
GetSourceScreenshotByUuid(Uuid, Format)소스 UUID로 캡처
GetSourceScreenshotScaled(Name, Format, W, H, Quality)스케일 옵션을 지정하여 캡처
GetSourceScreenshotWithOptions(Request)요청 구조체를 통한 완전한 제어
SaveSourceScreenshot(Name, Path, Format)OBS 머신 파일 시스템에 스크린샷 직접 저장
SaveSourceScreenshotByUuid(Uuid, Path, Format)소스 UUID로 저장
SaveSourceScreenshotScaled(Name, Path, Format, W, H, Quality)스케일 옵션을 지정하여 저장
SaveSourceScreenshotWithOptions(Request)요청 구조체를 통한 완전한 제어
GetLastScreenshotResult()마지막으로 캡처된 스크린샷 결과 가져오기
GetLastSavedResult()마지막으로 저장된 스크린샷 결과 가져오기
IsCapturePending()캡처 진행 중 여부 확인

정적 텍스처 유틸리티

캡처된 base64 이미지 데이터를 엔진 내에서 표시할 수 있는 Unreal 텍스처로 변환합니다.

함수설명
CreateTextureFromBase64(Base64Data)base64 이미지를 UTexture2D로 변환
CreateTextureFromScreenshotResult(Result)스크린샷 결과를 텍스처로 변환
DecodeBase64ImageData(Base64, OutBytes, OutFormat)base64를 원시 바이트로 디코드
CreateTextureFromBytes(ImageBytes)원시 이미지 데이터로 텍스처 생성

이미지 형식

형식유형품질 설정
png무손실무시됨
jpg손실0 ~ 100
webp손실0 ~ 100
bmp무손실무시됨

Sequencer 연동

동작설명
SaveSourceScreenshot특정 타임라인 시점에 스크린샷 저장 (TargetName + FilePath 필요)

타임라인 기반 OBS 동작에 대한 자세한 내용은 Sequencer를 참조하세요.

이벤트

스크린샷 이벤트는 핸들러 수준에서 동작합니다. OBS Component가 직접 바인딩합니다. Subsystem만 단독으로 사용하는 경우에는 GetClient()->GetScreenshots()를 통해 접근하세요.

  • OnScreenshotCaptured(Result): 스크린샷이 메모리에 캡처됨 (base64 데이터 포함)
  • OnScreenshotSaved(SourceName, FilePath): OBS 머신에 스크린샷이 파일로 저장됨

참고 사항

  • 스크린샷은 장면과 입력 모두에서 동작합니다 (모든 OBS 소스).
  • SaveSourceScreenshot은 UE 클라이언트가 아닌 OBS 머신의 파일 시스템에 저장됩니다.
  • UE 머신에 파일이 필요한 경우 GetSourceScreenshot으로 캡처 후 로컬에 저장하세요.
  • 고해상도 이미지의 경우 base64 데이터가 매우 커질 수 있으므로, 미리보기에는 스케일을 적용한 캡처 사용을 권장합니다.
  • WebP 형식은 OBS에서 지원되지만, 텍스처 변환은 PNG, JPEG, BMP만 지원합니다.

예제

// Capture the current program scene and turn it into a texture.
Subsystem->GetSourceScreenshotScaled(TEXT("Gameplay"), TEXT("png"), 640, 360, -1);

// In your OnScreenshotCaptured handler:
UTexture2D* Texture =
    UInhyeongOBSSubsystem::CreateTextureFromScreenshotResult(Result);

참고 항목