블루프린트


레벨 블루프린트 & 블루프린트 클래스


Difference between level blueprint and blueprint

프로토타입 개발에 있어서 블루프린트를 사용할 때 개발 방법론적인 선택이 필요하다. 플레이 로직을 구성할 때 레벨 블루프린트를 활용할지, 또는 블루프린트 클래스를 생성하여 레벨에 모듈식으로 부착할지 고민하게 된다.

레벨 블루프린트와 블루프린트 클래스는 각각 고유한 장점을 가지고 있으며, 용도에 따라 적절히 선택하여 사용하는 것이 중요하다. 두 시스템 간의 기능 이전도 간단히 수행할 수 있어, 프로토타입에서 실제 구현으로의 전환이 용이하다.

레벨 블루프린트

블루프린트 클래스

아래 표에서 각 기능을 비교해볼 수 있다.

레벨 블루프린트 블루프린트 클래스
사용 범위 해당 레벨에만 한정 모든 레벨에서 사용 가능
재사용성 제한적 (해당 레벨에서만) 높음 (여러 레벨에서 재사용 가능)
적합한 용도 프로토타입 제작, 레벨 특정 기능 구현 재사용 가능한 컴포넌트, 일반적인 게임플레이 기능
장점 빠른 구현, 직관적인 오브젝트 선택 재사용성, 모듈화, 유지보수 용이
예시 트리거 기반 시네마틱, 레벨 특정 이벤트 캐릭터, 아이템, 상호작용 가능한 오브젝트

함수(Functions) & 매크로(Macros)


image.png

블루프린트에서 접하게 되는 주요 개념인 함수(Functions)와 매크로(Macros)이다. 이들은 C++의 함수(Function)와 매크로(define)에서 이름을 빌려왔지만, 실제로는 그 특징과 동작 방식이 상당히 다르다.

블루프린트 매크로

블루프린트 함수

일반적으로 간단하고 재사용이 필요한 기능은 매크로로 구현하는 것이 좋다. 하지만 블루프린트 자손에서 수정이 필요하거나 다른 블루프린트에서 직접 접근이 필요한 경우에는 함수를 사용하는 것이 좋다.

특징 C++ 매크로 C++ 함수 언리얼 매크로 언리얼 함수
처리 단계 전처리 단계 컴파일 단계 런타임 런타임
타입 검사 없음 있음 없음 있음
디버깅 어려움 쉬움 쉬움 쉬움
실행 핀 해당 없음 해당 없음 여러 개 가능 하나만 가능
지연 노드 지원 해당 없음 해당 없음 지원 지원 불가
재사용성 제한적 높음 제한적 (블루프린트 내) 높음 (다른 블루프린트 가능)