내일배움캠프-언리얼

TIL - 90

이시보 2026. 6. 15. 21:48

인벤토리 닫을 때 화면 흰색 번쩍 현상

증상

  • 인벤토리를 닫는 순간 땅·랜드스케이프 등 라이팅 받는 면이 한 프레임 하얗게 번쩍 → 곧 정상 복귀
  • 하늘·HUD는 정상, 인벤토리가 열려 있는 동안엔 정상
  • 모든 레벨에서 발생, 인벤토리만 발생(맵 패널은 정상)

원인

  • 인벤토리 3D 프리뷰 액터를 닫을 때 Destroy Actor (Preview Actor Ref)로 파괴
  • 프리뷰의 SceneCapture2D가 파괴되는 순간 메인 뷰 렌더(노출/캡처 공유 상태)를 한 프레임 교란 → 흰색 번쩍
  • 조명 누출 아님(누출이면 여는 내내 밝아야 함), 닫는 시점의 파괴(teardown) 타이밍 문제
  • 렌더 옵션 전부 꺼도 재현되어 포스트 효과 아님으로 확인
    • r.EyeAdaptationQuality 0, r.DynamicGlobalIlluminationMethod 0, r.AntiAliasingMethod 0, r.ReflectionMethod 0, r.Shadow.Virtual.Cache 0, r.BloomQuality 0 → 전부 여전히 번쩍, 프레임 스파이크(히치) 없음

확정 테스트 (10초)

  • 인벤토리 WBP Event Destruct에서 Destroy Actor를 임시로 Set Actor Hidden In Game (true)로 교체 후 닫기
  • 번쩍임이 사라지면 → 파괴가 원인 확정

해결: 파괴하지 말고 숨겨서 재사용

  • 닫을 때(Destruct): SceneCapture Set Capture Every Frame = false(또는 컴포넌트 Deactivate) → Set Actor Hidden In Game (true)
  • 열 때(Construct): 프리뷰 액터 없으면 1회 스폰, 있으면 Set Actor Hidden In Game (false) + 캡처 재활성
  • 파괴 이벤트 자체가 없어져 번쩍임 제거 + 매번 스폰/캡처 셋업 비용 절감

꼭 파괴해야 할 경우

  • 캡처부터 끄고(bCaptureEveryFrame=false / Deactivate) → 패널 사라진 다음 프레임(Delay 0 / 타이머)에 Destroy Actor
  • 캡처가 살아있는 채로 액터를 destroy하면 그 프레임에 메인 뷰가 튐

참고

  • 프리뷰 SceneCapture2D의 PostProcess 노출을 Manual로 고정해 메인 뷰 eye-adaptation과 분리 권장

'내일배움캠프-언리얼' 카테고리의 다른 글

TIL - 92  (0) 2026.06.17
TIL - 91  (0) 2026.06.16
TIL - 89  (0) 2026.06.11
TIL - 88  (1) 2026.06.10
TIL - 87  (0) 2026.06.09