되감기 디버거

되감기 디버거를 사용하면 디버깅 워크플로 용도로 프로젝트의 리얼타임 세그먼트를 녹화하고 데이터를 보존할 수 있습니다.

Choose your operating system:

Windows

macOS

Linux

되감기 디버거(Rewind Debugger) 를 사용하면 런타임 중에 프로젝트의 게임플레이 세그먼트를 녹화하고 시뮬레이션을 되감아서 애니메이션 행동 및 인터랙션 관련 정보를 관찰할 수 있습니다. 되감기 디버거는 애니메이션 인사이트(Animation Insights) 파운데이션을 토대로 빌드되어 언리얼 엔진 에서 애니메이션 콘텐츠를 디버그하는 새 비주얼 인터페이스를 제공합니다.

전제조건

  • 애니메이션 인사이트 플러그인을 활성화해야 합니다. 메뉴 바(Menu Bar) 로 이동하여 편집(Edit) > 플러그인(Plugins) 에서 애니메이션 인사이트애니메이션(Animation) 섹션에서 찾거나 검색창(Search Bar) 을 사용합니다. 플러그인을 활성화하고 에디터를 재시작합니다.

애니메이션 인사이트 플러그인

개요

언리얼 엔진의 캐릭터 애니메이션 시스템으로 작업할 때, 버그의 원인을 파악하기 어려울 때가 있습니다. 되감기 디버거를 사용하면 게임플레이 세그먼트를 녹화하고, 녹화한 세그먼트를 스크러빙하여 더 기능적이고 안정적인 작업 환경에서 애니메이션 콘텐츠를 디버깅할 수 있습니다.

![되감기 디버거 데모](DebugDemo.gif)(convert:false)

애니메이션 데이터는 타깃 오브젝트를 선택한 후 되감기 디버거 타임라인(Rewind Debugger Timeline) 을 채우는 트랙에 시각적으로 표현됩니다. 되감기 디버거 트랙에는 애니메이션 블루프린트, 시퀀스 재생, 애니메이션 변수, 노티파이 등에 대한 정보가 포함될 수 있습니다.

![되감기 디버거 타임라인의 애니메이션 데이터 트랙](Tracks.png)(convert:false)

되감기 디버거 창을 열려면 메뉴 바 에서 툴(Tools) > 디버그(Debug) > 되감기 디버거(Rewind Debugger) 로 이동합니다.

![메뉴 바에서 툴, 디버그로 이동하여 되감기 디버거를 선택하고 열기](MenuBarRewindDebuggerDetails.png)(convert:false)

되감기 디버거 타임라인에서 트랙을 선택하면 되감기 디버거 디테일(Rewind Debugger Details) 패널에서 더 정확한 애니메이션 데이터를 확인할 수 있습니다. 되감기 디버거 디테일 패널을 열려면 메뉴 바 에서 툴(Tools) > 디버그(Debug) > 되감기 디버거 디테일 로 이동합니다.

![되감기 디버거 디테일 패널을 열기 위하여 메뉴 바 > 툴 > 디버그 > 되감기 디버거 디테일 패널로 이동](MenuBarRewindDebuggerDetails.png)(convert:false)

되감기 디버거 인터페이스

되감기 디버거 패널은 녹화된 게임플레이 세그먼트를 탐색하는 동안 애니메이션 데이터의 확인에 사용할 수 있는 고유 인터페이스로 채워져 있습니다.

![영역이 하이라이트된 되감기 디버거 창 개요](Overview.png)(convert:false)

기능

이미지

설명

1. 프로젝트 시뮬레이션 컨트롤(Project Simulation Controls)

프로젝트 시뮬레이션 컨트롤 재생 일시정지 중지 탈출

프로젝트 시뮬레이션을 재생, 일시정지, 중지 등의 기능으로 제어합니다. 보다 자세한 정보는 언리얼 에디터 인터페이스 문서를 참조하세요.

2. 되감기 디버거 카메라 메뉴(Rewind Debugger Menu)

![카메라 모드 및 사용 가능한 데이터 탭의 뷰 옵션을 갖춘 되감기 디버거 메뉴](Hamburger.png)(convert:false)

게임플레이 녹화를 재생할 때의 카메라 동작을 선택합니다. 카메라 모드(Camera Modes) 는 다음과 같습니다.

  • 비활성화됨(Disabled) : 카메라 이동을 비활성화하고 카메라가 어떤 게임 오브젝트에도 어태치되거나 연결되지 않도록 설정합니다.

  • 타깃 액터 따라가기(Follow Target Actor) : 카메라를 사전 지정된 위치의 선택 오브젝트에 고정합니다. 카메라는 레벨 어디에든 배치할 수 있으며, 선택 오브젝트와 동일한 트랙을 따라 이동합니다.

이 옵션은 선택한 오브젝트를 트래킹하지 않고 캐릭터와 동일한 무브먼트 데이터를 바탕으로 카메라를 움직입니다.

  • 녹화된 카메라 리플레이(Replay Recorded Camera) : 시뮬레이션에서 카메라가 차지한 위치에 카메라를 고정하고 동일한 움직임이 있는 경우 이를 따르게 합니다.

카메라 컨트롤 모드를 변경하기 전에 플레이어 컨트롤을 프로젝트 시뮬레이션 컨트롤에서 탈출시키세요.

3. 오브젝트 아웃라이너(Object Outliner)

![드로퍼 및 필터 툴이 하이라이트된 되감기 디버거 오브젝트 아웃라이너](Outliner.png)(convert:false)

게임플레이 세그먼트를 녹화한 후, 오브젝트 아웃라이너 드롭다운 메뉴에서 게임 오브젝트를 선택하여 되감기 디버거 패널을 채울 수 있습니다.

게임 오브젝트를 선택하면 오브젝트 아웃라이너가 선택된 오브젝트와 모든 자손 오브젝트 및 컴포넌트를 나열합니다. 여기에는 런타임 도중 생성 및 소멸되는 오브젝트와 어태치된 컨트롤러도 포함됩니다.

오브젝트 아웃라이너에 있는 다음과 같은 툴을 사용하면 디버그할 게임 오브젝트를 선택하고 해당 오브젝트와 연결된 컴포넌트를 필터링할 수 있습니다.

  1. 드로퍼 툴(Dropper Tool) : 드로퍼 툴을 사용하면 뷰포트에서 디버그할 게임 오브젝트를 수동으로 선택할 수 있습니다.

  2. 필터 메뉴(Filter Menu) : 필터 메뉴를 사용하면 오브젝트 아웃라이너의 컴포넌트 목록과 선택한 게임 오브젝트의 자손 오브젝트를 필터링할 수 있습니다.

일부 게임 오브젝트는

[무브먼트 컴포넌트](understanding-the-basics\components\movement-components)
, 애니메이션 블루프린트와 같은 다양한 컴포넌트로 구성되어 있습니다. 이러한 각 컴포넌트는 되감기 디버거 타임라인에 관련된 트랙과 함께 오브젝트 아웃라이너에 자손 오브젝트로 나열되며, 되감기 디버거 디테일 패널 안에서 각각의 데이터를 확인하려면 개별적으로 선택해야 합니다.

4. 재생 컨트롤(Playback Controls)

되감기 디버거 재생 컨트롤 재생 일시정지 앞으로 뒤로 녹화 하이라이트됨

녹화된 게임플레이 세그먼트의 재생을 제어할 수 있습니다. 녹화 버튼 으로 녹화를 시작 하거나 중지 할 수 있으며, 되감기 디버거 타임라인 을 통해 재생, 일시정지, 스크러빙 할 수도 있습니다.

5. 되감기 디버거 타임라인

![빨간색 플레이헤드 및 애니메이션 데이터 트랙이 있는 되감기 디버거 타임라인](Timeline2.png)(convert:false)

디버그할 게임 오브젝트를 선택하면 되감기 디버거 타임라인은 선택한 게임 오브젝트의 컴포넌트와 자손 오브젝트로 채워집니다. 각 컴포넌트나 자손 오브젝트에는 녹화된 게임플레이 세그먼트 동안에 변경된 데이터, 변수, 커브 값을 시각적으로 확인할 수 있는 트랙이 제공됩니다.

되감기 디버거 타임라인에서 트랙을 선택하고 되감기 디버거 디테일 패널에서 더 정확한 애니메이션 데이터 값을 확인할 수 있습니다.

빨간색 플레이헤드를 클릭하고 드래그하여 수동으로 타임라인을 스크러빙하면서 되감기 디버거 디테일 패널과 뷰포트에서 동시에 애니메이션 데이터의 변경사항을 확인할 수 있습니다.

**6. 되감기 디버거 디테일 패널

![데이터 탭과 뷰 옵션이 하이라이트된 되감기 디버거 디테일 패널](Details2.png)(convert:false)

되감기 디버거 디테일 패널에는 되감기 디버거 타임라인에서 선택한 트랙과 타임라인에서의 위치에 따라 사용할 수 있는 모든 데이터가 표시됩니다. 표시된 정보에는 변수 값, 부울 상태 등이 포함될 수 있습니다.

되감기 디버거 타임라인에서 선택한 트랙에 따라 상황에 맞는 데이터가 패널에 채워집니다.

되감기 디버거 디테일 패널을 열려면 메뉴 바에서 툴(Tools) > 디버그(Debug) > 되감기 디버거 디테일 로 이동합니다.

되감기 디버거 사용하기

  1. 되감기 디버거를 사용하려면 우선 프로젝트 시뮬레이션 컨트롤에서 녹색 플레이 버튼 을 클릭하여 게임 시뮬레이션을 시작합니다.

  2. 되감기 디버거 재생 컨트롤의 녹화(Record) 를 클릭하여 프로젝트 시뮬레이션 녹화를 시작합니다.

    시뮬레이션을 중지하거나 일시정지하지 않고 시뮬레이션에서 커서를 연결 해제하려면 Shift + F1 단축키를 사용합니다.

  3. 게임플레이 세그먼트를 녹화한 뒤 프로젝트 시뮬레이션 컨트롤을 사용하여 시뮬레이션을 일시정지하고 카메라를 탈출시킵니다.

    시뮬레이션 컨트롤 일시정지 후 게임 컨트롤러 탈출

  4. 시뮬레이션이 일시정지되면 녹화가 자동 중단됩니다.

이제 녹화된 게임플레이 섹션을 이용할 준비가 되었습니다. 오브젝트 아웃라이너 에서 게임 오브젝트를 선택하거나 드로퍼 툴을 사용하여 뷰포트에서 게임 오브젝트를 선택하면 게임 오브젝트 디버깅을 시작할 수 있습니다.

게임 오브젝트를 선택하면 되감기 디버거 타임라인 이 상황에 맞게 게임 오브젝트의 컴포넌트 및 자손 오브젝트와 관련된 애니메이션 데이터의 트랙으로 채워집니다. 플레이헤드나 재생 컨트롤로 되감기 디버거 타임라인을 스크러빙하여 뷰포트에서 녹화된 애니메이션 데이터가 게임 오브젝트를 어떻게 업데이트하는지 확인할 수 있습니다.

타임라인에서 빠르게 애니메이션 데이터 값을 읽으려면 타임라인 트랙 위로 마우스를 가져갑니다. 그러면 녹화된 세그먼트의 해당 시간 위치에서 애니메이션 트랙의 현재 값을 확인할 수 있습니다.

![애니메이션 데이터 트랙 위로 마우스를 가져가 애니메이션 데이터 값을 빠르게 읽기](DebugTimelineDataDemo.gif)(convert:false)

되감기 디버거 메뉴 내에서 다른 카메라 모드 를 선택하여 디버깅 도중 서브젝트의 다른 뷰를 얻을 수도 있습니다. 예를 들어 비활성화됨 옵션으로 카메라를 디태치하고 자유롭게 배치하면서 게임 오브젝트를 원하는 각도에서 관찰하여 워크플로를 개선할 수 있습니다.

다른 카메라 각도에서 재생 스크러빙

게임 오브젝트나 애니메이션 시스템을 편집한 다음에는 프로젝트 시뮬레이션 컨트롤러에서 컨트롤러 아이콘을 사용하여 간단하게 게임 컨트롤러를 다시 어태치하거나 게임을 재개하여 디버깅을 계속할 수 있습니다. 게임 시뮬레이션이 재개되면 수동으로 중단시키지 않는 한 되감기 디버거는 계속해서 게임플레이를 녹화합니다.

애니메이션 블루프린트

녹화된 게임플레이 세그먼트를 얻은 다음에는 오브젝트 아웃라이너에서 애니메이션 블루프린트 컴포넌트를 더블클릭 하여 새 창에서 애니메이션 블루프린트 에디터를 열고 어태치할 수 있습니다. 녹화된 세그먼트를 스크러빙하는 동안 애니메이션 블루프린트 에디터는 게임 오브젝트를 녹화한 순간에 해당하는 선택된 애니메이션 블루프린트의 녹화된 스테이트를 표시합니다.

![어태치된 애니메이션 블루프린트 데모 동시 디버깅](DebugBPDemo.gif)(convert:false)

이 기능을 통해 애니메이션 블루프린트가 녹화된 게임플레이 세그먼트에서 원하는 순간의 최종 애니메이션 포즈를 생성하는 방법을 확인할 수 있습니다. 애니메이션 블루프린트 노드, 변수, 스테이트 머신 위치 등을 확인할 수 있습니다.

포즈 감시

애니메이션 블루프린트 내에 있는 동안 애니메이션 블루프린트 노드(Animation Blueprint Nodes) 에서 포즈 감시를 활성화하여 녹화된 게임플레이 동안 각 노드가 출력 애니메이션 포즈(Output Animation Pose) 에 주는 영향을 확인할 수 있습니다. 이는 각 노드가 게임플레이 녹화 동안 오브젝트의 애니메이션에 미치는 영향을 이해하는 데 굉장히 유용합니다.

![포즈 감시 애니메이션 블루프린트 노드와 되감기 디버거 함께 사용](PoseWatchDemo.gif)(convert:false)

되감기 디버거가 게임플레이 세그먼트를 녹화하기 전에 애니메이션 블루프린트 노드포즈 감시를 활성화해야 합니다. 그러면 녹화된 게임플레이 세그먼트를 사용할 때 포즈 감시를 토글할 수 있습니다.

되감기 디버거 세팅

여기에서 되감기 디버거 세팅 을 참조할 수 있으며, 언리얼 엔진의 프로젝트 세팅(Project Settings)에서 내용을 확인할 수 있습니다. 메뉴에서 편집(Edit) > 프로젝트 세팅(Project Settings) 을 선택하여 프로젝트 세팅을 엽니다. 플러그인(Plugins) 카테고리 아래에 되감기 디버거 세팅 섹션이 나열됩니다.

![언리얼 엔진 프로젝트 세팅에서 플러그인 아래에 있는 되감기 디버거 세팅](RewindDebuggerSettings.png)(convert:false)

세팅

설명

카메라 모드

여기서 현재 저장된 카메라 모드 를 볼 수 있습니다. 세팅 안에 또는 되감기 디버거 카메라 메뉴(Rewind Debugger Camera Menu) 안에 저장된 카메라 모드 옵션을 설정할 수 있습니다. 다음 카메라 옵션 중에서 선택할 수 있습니다.

  • 비활성화됨(Disabled) : 카메라 이동을 비활성화하고 카메라가 어떤 게임 오브젝트에도 어태치되거나 연결되지 않도록 설정합니다.

  • 타깃 액터 따라가기(Follow Target Actor) : 카메라를 사전 지정된 위치의 선택 오브젝트에 고정합니다. 카메라는 레벨 어디든 배치할 수 있으며, 선택된 오브젝트와 동일한 트랙을 따라 이동할 것입니다.

이 옵션은 선택한 오브젝트를 트래킹하지 않고 캐릭터와 동일한 무브먼트 데이터를 바탕으로 카메라를 움직입니다.

  • 녹화된 카메라 리플레이(Replay Recorded Camera) : 시뮬레이션에서 카메라가 차지한 위치에 카메라를 고정하고 동일한 움직임이 있는 경우 이를 따르게 합니다.

PIE(에디터에서 플레이 ) 시 자동 녹화(Should Auto Record on PIE(Play In Editor))

활성화 되면 되감기 디버거가 열려 있는 한, 게임 시뮬레이션을 시작할 때 되감기 디버거가 자동으로 게임플레이를 녹화합니다. 비활성화 되면 게임플레이 녹화를 수동으로 활성화해야 합니다.

빈 오브젝트 트랙 표시(Show Empty Object Tracks)

활성화 되면 되감기 디버거 타임라인에 빈 애니메이션 데이터 트랙이 여전히 표시됩니다. 비활성화 되면 빈 트랙이 모두 숨겨집니다.

확장 가능성

되감기 디버거의 용도는 애니메이션 인사이트 플러그인을 사용하여 패키지로 만든 버전에 그치지 않습니다. 사용자는 되감기 디버거에 커스텀 트랙을 빌드하고 추가하여 프로젝트별 컴포넌트나 게임플레이 엘리먼트를 표시할 수 있습니다.

프로젝트의 구체적인 요구에 맞춰 되감기 디버거를 수정하는 방법에 대한 예시는 포즈 검색 애니메이션으로 작업하도록 설계된 고유 디버그 툴이 있는 포즈 검색 플러그인(Pose Search plugin) 에서 확인할 수 있습니다.

![실험단계의 포즈 검색 플러그인](PSPLUG.png)(convert:false)

두 플러그인을 모두 설치한 상태에서 선택한 캐릭터가 포즈 검색 노드를 사용하는 경우 되감기 디버거에 커스텀 포즈 검색 트랙이 추가되며, 여기에는 디버깅을 지원하는 확장된 포즈 검색 애니메이션 데이터가 포함됩니다.

![되감기 디버거 타임라인의 커스텀 포즈 검색 노드 데이터 트랙](PoseSearch.png)(convert:false)

포즈 검색 기능을 시험해볼 수는 있지만 아직 실험단계이므로 프로젝트를 출시할 때는 적용하지 않는 것이 좋습니다.

태그