블루프린트 디버깅 기초
어떤 프로그래밍이든 개발 과정에서는 예상치 못한 문제가 발생하기 마련입니다. 블루프린트 역시 예외는 아니죠. 우리가 만든 로직이 의도대로 작동하지 않을 때, 무엇이 문제인지 찾아내고 해결하는 과정을 디버깅(Debugging) 이라고 합니다. 언리얼 엔진은 블루프린트의 문제를 효율적으로 찾을 수 있도록 다양한 디버깅 도구를 제공합니다. 이번 절에서는 블루프린트 디버깅의 가장 기본적인 방법들을 알아보겠습니다.
Print String 노드를 활용한 값 확인
가장 간단하면서도 강력한 디버깅 방법 중 하나는 앞서 사용했던 Print String
노드를 활용하는 것입니다. 특정 시점에 변수의 값이 올바른지, 특정 로직이 예상대로 실행되는지 등을 화면에 출력하여 확인할 수 있습니다.
-
사용 방법
- 확인하고 싶은 변수나 노드의 출력 핀에서 드래그하여
Print String
노드를 추가합니다. Print String
노드의In String
핀에 변수를 연결하거나, 직접 출력하고 싶은 메시지를 입력합니다.Print String
노드의Duration
핀을 조절하여 메시지가 화면에 얼마나 오래 표시될지 설정할 수 있습니다. (기본값 2초)
- 확인하고 싶은 변수나 노드의 출력 핀에서 드래그하여
-
활용 예시
- "캐릭터의 현재 체력:
CurrentHealth
"와 같이 변수 값을 함께 출력하여 실시간으로 변화를 확인합니다. - 특정 조건문(예:
Branch
노드)의True
또는False
경로에Print String
을 연결하여, 어떤 조건이 만족되었는지 확인합니다.
- "캐릭터의 현재 체력:
Print String
은 마치 요리 중간에 간을 보듯이, 블루프린트 로직의 특정 지점을 맛보는 것과 같습니다. 간단하지만, 문제의 원인을 좁혀나가는 데 매우 효과적입니다.
브레이크포인트(Breakpoint) 사용하기
Print String
이 특정 지점의 값을 확인하는 방법이라면, 브레이크포인트는 블루프린트의 실행을 특정 지점에서 일시 정지시켜, 그 순간의 모든 정보를 상세히 들여다볼 수 있게 해주는 강력한 도구입니다.
-
사용 방법
- 블루프린트 에디터의 이벤트 그래프에서 실행 흐름을 멈추고 싶은 노드의 실행 핀(Execution Pin) 을 마우스 오른쪽 버튼으로 클릭합니다.
- 컨텍스트 메뉴에서
토글 브레이크포인트(Toggle Breakpoint)
를 선택합니다. - 브레이크포인트가 설정된 노드의 실행 핀이 빨간색으로 변하는 것을 확인할 수 있습니다.
- 게임 월드에서
플레이(Play)
버튼을 클릭하여 게임을 실행합니다.
-
디버깅 과정
- 블루프린트의 실행 흐름이 브레이크포인트가 설정된 노드에 도달하면, 게임이 일시 정지되고 블루프린트 에디터가 활성화됩니다.
- 블루프린트 에디터에서 실행이 멈춘 노드는 노란색으로 강조됩니다.
- 디버그 필터(Debug Filter) 패널이나 콜 스택(Call Stack) 패널을 통해 현재 어떤 블루프린트의 어떤 함수가 실행 중인지 확인할 수 있습니다.
- 가장 중요한 것은 변수 패널(Variables Panel) 입니다. 실행이 멈춘 시점에서 모든 변수들의 현재 값을 확인할 수 있습니다. 이 값을 통해 로직이 잘못된 방향으로 흘러간 원인을 파악할 수 있습니다.
- 블루프린트 에디터 상단의
계속(Continue)
버튼(녹색 재생 버튼 모양)을 클릭하면 다음 브레이크포인트까지 또는 게임 종료 시까지 실행이 다시 진행됩니다. 단계별 실행(Step Over)
버튼(파란색 화살표 모양)을 클릭하면 현재 노드만 실행하고 다음 노드에서 다시 일시 정지합니다. 이를 통해 한 노드씩 실행 흐름을 따라가며 문제를 세밀하게 추적할 수 있습니다.
브레이크포인트는 마치 정밀 검사를 위해 컨베이어 벨트를 멈추는 것과 같습니다. 특정 시점의 모든 상태를 파악하여 복잡한 문제를 해결하는 데 필수적인 기능입니다.
디버그 오브젝트 선택 (Debug Object)
특정 액터 블루프린트가 여러 개 존재하거나, 특정 액터의 인스턴스에서만 발생하는 문제를 디버깅하고 싶을 때 유용한 기능입니다.
- 사용 방법
- 블루프린트 에디터가 열린 상태에서, 게임 월드의 뷰포트(Viewport) 나 월드 아웃라이너(World Outliner) 에서 디버깅하고 싶은 해당 액터 블루프린트의 인스턴스를 선택합니다.
- 블루프린트 에디터 상단 툴바에 있는
디버그 오브젝트(Debug Object)
드롭다운 메뉴를 클릭합니다. - 드롭다운 목록에서 현재 월드에 선택된 블루프린트 인스턴스의 이름을 선택합니다.
- 이제 이 블루프린트 인스턴스에서 발생하는 실행 흐름과 변수 값만 디버깅 정보에 표시됩니다.
이 기능을 사용하면 특정 대상에 대한 디버깅에 집중할 수 있어, 복잡한 환경에서 불필요한 정보를 걸러내고 문제 해결에 집중할 수 있습니다.
디버깅은 블루프린트 개발의 필수적인 부분입니다. 처음에는 어렵게 느껴질 수 있지만, 이 기본적인 도구들을 꾸준히 활용하면서 문제 해결 능력을 키워나가는 것이 중요합니다. 다음 장부터는 블루프린트의 핵심 구성 요소인 변수에 대해 더 자세히 알아보겠습니다.
이제 블루프린트 입문 과정을 마무리했습니다. 다음 장부터는 블루프린트의 핵심 요소들을 하나씩 깊이 있게 파고들 예정입니다.