Unreal Engine
240521 언리얼 엔진 - 블루프린트 클래스1
오혜린
2024. 5. 22. 08:58
블루프린트란 무엇인가?
- 언리얼 엔진의 비주얼 스크립팅 시스템인 Blueprint (블루프린트)는 언리얼 에디터 안에서 노드 기반 인터페이스를 사용하여 게임플레이 요소를 만드는 개념을 토대로 한 비주얼 스크립팅 시스템. 일반적인 스크립팅 언어와 마찬가지로, 엔진 내 객체 지향형 클래스 또는 오브젝트를 정의하는 데 사용됨.
- UE4를 사용하다 보면 블루프른티를 사용하여 정의된 오브젝트를 그냥 일상적으로 "블루프린트"라 하는 경우가 많다.
블루프린트의 종류
- 레벨 블루프린트 - 게임이 아니면 잘 안씀.
- 레벨 블루프린트란 레벨 단위의 글로벌 이벤트 그래프 역할을 하는 특수한 형태의 블루프린트.
- 프로젝트 내 각 레벨에는 기본적으로 자체적인 레벨 프린트가 있어 언리얼 에디터 안에서 편집할 수 있으나, 에디터 인터페이스를 통해 새로운 레벨 블루프린트를 생성할 수는 없습니다.
- 레벨 전체적으로 관련된 이벤트 또는 레벨 내 특정 액터 인스턴스가 함수 호출이나 흐름 제어 연산 형태로 일련의 동작을 발동시키는데 사용됨. - 블루프린트 클래스(액터)
- 블루프린트 클래스란 종종 그냥 블루프린트는 콘텐츠 제작자가 기술 클래스 위에 다른 함수성을 쉽게 추가할 수 있도록 해 주는 에셋. 블루프린트는 언리얼 안에서 코드 작성 방식이 아닌 시각적인 방식으로 생성되며, 콘텐츠 패키지에 에셋으로 저장됨. 새로운 클래스 또는 액터 유형을 정의하는 것으로, 나중에 이블루프린트를 맵에 인스턴스로 배치하면 다른 액터 유형처럼 작동됩니다. - 애니메이션 블루프린트(애님블프)
- 애니메이션 블루프린트는 스켈레탈 메시의 애니메이션을 제어하는 블루프린트다. 그래프는 애니메이션 블루프린트 에디터에서 편집하며 여기서 애니메이션 블렌딩 - 시퀀서 블루프린트
- 시퀀서에서 사용할 수 있는 블루프린트.
블루프린트의 기본 요소들
- 이벤트/노드/변수/set,get/레퍼런스 등
라면을 끓이는 단계 - 블루프린트(프로그래밍)으로 생각하기
- 시작점 (이벤트) - Begin Play
- 배고프면 - 행동들 (노드)
- 냄비를 꺼낸다 (에셋 혹은 액터)
- 물을 받는다 - 어디에? 냄비에 (타겟) 얼마나? 550mm or 1200mm (변수)
- 냄비를 올려놓는다. - 어디에? 인덕션에 (타겟)
- 물을 붙인다. --> 인덕션에 불을 붙인다. / 혹은 브루스타에.
- 라면을 넣는다 - 언제? 물이 끓으면 (True/false를 통한 분기)
- 불을 끈다 - 언제? 시간(변수)이 되면
- 맛있게 먹는다.
이벤트
이벤트 노드(Event Node)는 시작점이라고 이해하면 됩니다. 어떨때 시작할지에 따라서 이벤트 노드의 이름이 정해지고, 제일 대표적인게 아래 두개입니다. 보통 노드가 실행될때 '호출된다' 라는 용어를 씁니다.
이벤트 종류
- Begin Play 이벤트 : 게임이 시작될 때
- End play 이벤트 : 게임이 끝날 때
- Actor Begin Overlap 이벤트 : 충돌(꼅침)이 시작될 때
- Actor End Overlap 이벤트 : 충돌(꼅침)이 끝날 때
- 왼쪽 마우스 버튼 이벤트 : 버튼을 누르거나 놓을 때
- 왼쪽 컨트롤 이벤트 : 키를 누르거나 놓을 때
- 틱 이벤트 : 매프레임마다
- 커스텀 이벤트 : 사용자 정의 이벤트




블루프린트가 작동하는 상태
- 언리얼 엔진은 크게 2가지의 상태로 나누어진다.
- 플레이 상태와 에디터 상태
- 플레이는 플레이버튼 (혹은 시뮬레이션 버튼) 을 눌러서 게임(레벨)이 실행된 상태이고, 에디터 상태는 정지되어 있는 상태이다.
- 블루프린트는 기본적으로 플레이 상태에서 작동한다. 하지만 일부 블프는 에디터 상태에서 작동한다.
예) 에디터 유틸리티 위젯은 플레이 상태에서는 작동하지 않는다. - 블프가 어떤 상황에서 작동되는지 아는 것도 중요하다.
- 시퀀서를 이용해서 애니메이션을 만들고 시퀀서 플레이를 하면 대부분의
노드
- 노드란 그래프에서 사용할 수 있는 이벤트, 함수 호출, 흐름 제어 동작, 변수 등과 같은 오브젝트로 특정 그래프의 함수성이나 그 함수성이 들어있는 블루프린트를 정의하는 데 사용됩니다.
- 쉽게 말하면 동작할 수 있는 '하나의 기능' 이라고 생각하면 됩니다.
변수란?
- Variable (변수)는 월드에 있는 Object 나 Actor에 대한 값이나 주소(reference)를 담는 프로퍼티입니다. 이 프로퍼티는 내부적으로는 그를 담고있는 Blueprint에서 접근 가능하며, 외부적으로는 접근 가능하게 하여 레벨에 놓은 블루프린트 인스턴스 작업을 하는 디자이너가 그 값을 변경하도록 할 수도 있습니다.
- Variable (변수)는 변수 이름이 들어간 둥근 박스로 표시됩니다.



블프의 실행 순서
- 블루프린트는 하얀색 선을 따라서 왼쪽에서 오른쪽으로 실행됩니다.
- 이때 노드안에 있는 변수를 만났을 때 3번과 같이 노드안에 변수값이 지정되어있으면 그걸 실행하고, 만약에 핀이 연결되어 있으면 뒤로 가서 변수를 확인하고 다시 돌아오게 됩니다.