블루프린트 소개

블루프린트가 처음이신 분들에게 블루프린트란 무엇이며 어떠한 것을 할 수 있는가에 대한 하이 레벨 개요입니다.

Windows
MacOS
Linux

언리얼 엔진의 비주얼 스크립팅 시스템인 Blueprint (블루프린트)는 언리얼 에디터 안에서 노드 기반 인터페이스를 사용하여 게임플레이 요소를 만드는 개념을 토대로 한 비주얼 스크립팅 시스템입니다. 일반적인 스크립팅 언어와 마찬가지로, 엔진 내 객체 지향형(OO) 클래스 또는 오브젝트를 정의하는 데 사용됩니다. UE4 를 사용하다 보면, 블루프린트를 사용하여 정의된 오브젝트를 그냥 일상적으로 "블루프린트" 라 하는 경우가 많습니다.

이 시스템은 매우 유연하고 강력해서, 보통은 프로그래머가 없으면 힘들었던 개념 구현이나 툴 작업 거의 전부를 디자이너 스스로 해낼 수 있게 되었습니다. 게다가, 언리얼 엔진의 C++ 구현에서 가능한 블루프린트 전용 마크업을 통해 프로그래머가 어떤 기반 시스템을 제작하면, 디자이너가 그것을 확장하는 것도 가능합니다.

블루프린트 해부도, UE3 의 키즈멧이나 언리얼 스크립트와의 비교 등 블루프린트 관련 상세 정보는 블루프린트 개요 문서를 참고하세요.

블루프린트 작동방식

기본적인 형태의 블루프린트는 시각적인 스크립팅으로 게임에 추가되는 것입니다. 노드, 이벤트, 함수, 변수 등을 선으로 연결하여 복잡한 게임플레이 요소를 만드는 것이 가능합니다.

블루프린트는 오브젝트 생성, 개별 함수, 일반적인 게임플레이 이벤트 등 각각의 블루프린트 인스턴스에 고유한 여러가지 목적의 노드 그래프를 사용하는 식으로 작동합니다.

흔히 사용되는 블루프린트 유형

가장 흔히 작업하게 되는 블루프린트 유형은 레벨 블루프린트블루프린트 클래스 입니다.

이 둘 외에 다른 블루프린트 유형 에는 블루프린트 매크로, 블루프린트 인터페이스 가 있습니다.

레벨 블루프린트

레벨 블루프린트는 언리얼 엔진에서 키즈멧의 역할을 대체하는 것으로, 기능 역시 똑같습니다. 각 레벨마다 별도의 레벨 블루프린트가 있으며, 여기서 레벨에 있는 액터를 가리키고 조작하며, 마티네 액터를 사용해서 시네마틱을 제어하고, 레벨 스트리밍, 체크포인트, 기타 레벨 관련 시스템같은 것들을 관리합니다. 레벨 블루프린트는 레벨에 배치된 블루프린트 클래스와의 상호작용을 통해 들어있는 커스텀 이벤트를 발동시키거나 변수를 읽고 설정하는 등의 작업도 가능합니다 (예제는 다음 섹션을 참고해 주세요).

블루프린트 클래스

블루프린트 클래스는 문, 스위치, 수집가능 아이템, 파괴가능 배경과 같은 상호작용형 애셋을 만드는 데 좋습니다. 위 그림에서 버튼과 문짝은 각각 별도의 블루프린트로, 거기에는 플레이어 오버랩 이벤트에 반응, 애니메이션, 사운드 이펙트 재생, 머티리얼 변경 (즉 버튼을 누르면 불이 켜지는) 등에 필요한 스크립트가 들어있습니다.

이 경우 버튼을 누르면 문 블루프린트 안에서 이벤트를 활성화시켜 열리게 만들지만, 문 자체는 다른 블루프린트 유형이나 레벨 블루프린트 시퀀스로도 쉽게 활성화시킬 수 있습니다. 블루프린트의 자립적인 특징때문에 별다른 설정 없이 레벨에 그냥 끌어 놓기만 해도 작동되도록 만들 수 있습니다. 즉 프로젝트에 사용중인 블루프린트를 편집하면 그 인스턴스 전부가 업데이트된다는 뜻이기도 합니다.

블루프린트로 또 어떠한 작업이 가능한가요?

레벨 블루프린트와 블루프린트 클래스에 대한 설명 다음에는 블루프린트 시스템으로 가능한 작업에 대한 예제를 알아보겠습니다.

컨스트럭션 스크립트로 커스터마이징 가능한 프리팹 생성

Construction_Script.png

Construction Script(컨스트럭션 스크립트)는 블루프린트 클래스 내 그래프 유형 중 한 가지로, 게임에서는 실행되지 않지만 에디터에서 액터가 배치 또는 업데이트될 때 실행되는 것입니다. 배경 아티스트의 작업 속도를 높일 수 있도록 쉽게 커스터마이징 가능한 소품을 만들기에 좋은데, 이를테면 포인트 라이트 컴포넌트의 색과 밝기에 일치되도록 머티리얼이 자동 업데이트되는 조명기구라든가, 일정 영역에 폴리지 메시를 임의로 흩뿌리는 블루프린트 정도입니다.

콘텐츠 예제 맵에 (위 그림처럼) 각각의 예제가 들어있는 긴 방은 사실 다수의 컴포넌트로 구성된 하나의 블루프린트입니다. 블루프린트의 컨스트럭션 스크립트는 블루프린트의 디테일 패널에 노출된 파라미터에 맞도록 다양한 스태틱 메시와 라이트를 생성 및 배치합니다. 저희가 각 콘텐츠 예제 맵을 제작할 때마다 데모 룸 블루프린트를 끌어 놓은 다음 생성하려는 방의 길이, 높이, 방 갯수(와 몇 가지 추가 옵션) 값을 입력하면 바로 완성된 방 세트를 얻을 수 있었습니다.

이러한 블루프린트 제작은 초기에 시간이 조금 걸릴 수 있지만, 자주 사용할 것이 확실하다면 레벨 제작시 단축되는 시간과 사용 편의성 증대를 고려해 볼때 매우 가치가 높은 일이 될 수 있습니다.

플레이가능 게임 캐릭터 생성

Game_Characters.png

Pawns (폰) 역시도 블루프린트 클래스의 유형 중 하나로, 블루프린트 그래프에서 플레이가능한 캐릭터를 만드는 데 필요한 모든 요소를 한 데 모을 수 있습니다. 카메라 작동방식 조작, 마우스, 컨트롤러, 터치 스크린에 대한 입력 이벤트 셋업, 스켈레탈 메시 애니메이션 처리를 위한 애니메이션 블루프린트 애셋 생성이 가능합니다.

캐릭터 블루프린트를 새로 만들 때 이동, 점프, 수영, 낙하 등에 필요한 동작 대부분이 내장되어 있는 캐릭터 컴포넌트가 딸려오므로, 캐릭터 제어를 어떻게 했으면 좋겠는지 입력 이벤트만 조금 추가해 주면 됩니다.

HUD 생성

Create_HUDs.png

블루프린트 스크립트는 게임의 HUD 를 만드는 데도 사용되는데, 이벤트 시퀀스와 변수가 포함된다는 점에서는 블루프린트 클래스와 비슷하지만, 레벨에 바로 추가되기 보다는 프로젝트의 GameMode 애셋에 할당된다는 차이가 있습니다.

다른 블루프린트에서 변수를 읽어 체력 표시 막대에 사용한다든가, 점수를 업데이트한다든가, 오브젝트 마커를 표시한다든가 하는 식으로 HUD 구성이 가능합니다. 클릭 또는 모바일 게임의 경우 터치 가능한 버튼같은 요소에 들어가는 히트박스를 추가하기 위한 용도로 HUD 를 사용하는 것도 가능합니다.

블루프린트로도 가능하지만, 언리얼 모션 그래픽 (UMG) 시스템이 보다 디자인 친화적인 방식의 UI 레이아웃 작업이 가능하며, 블루프린트 비주얼 스크립팅 기반입니다.

블루프린트 에디터와 그래프

레벨 블루프린트나 블루프린트 클래스를 만들 때는 블루프린트 에디터 레퍼런스 에서 블루프린트 요소 들을 조합하게 됩니다.

작업중인 블루프린트 유형에 따라 사용할 수 있는 블루프린트 에디터 유형이 달라집니다. 블루프린트 에디터 의 가장 핵심적인 기능은 그래프 모드로, 중앙의 그래프 탭은 블루프린트 망의 레이아웃에 사용됩니다.

블루프린트 샘플 & 튜토리얼

블루프린트 시스템에 관해 자세히 배워볼 수 있는 추가 자료입니다.

태그
Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼