Unreal

블루프린트란 무엇인가요?

Xerlock 2023. 9. 18. 23:53
반응형

일반적으로 언리얼엔진으로 게임 개발을 할 때, 사용되는 방식은 비주얼 스크립팅 시스템인 블루프린트 와 네이티브 C++ 방식이 있습니다. 오늘은 그 중 블루프린트에 대해 알아보겠습니다.

해당 게시글은 블루프린트소개를 참고하여 작성되었습니다.

비주얼 스크립팅

비주얼 스크립팅이란 말 그대로 코드를 직접 볼 수 있는 형태로 작성한다는 뜻입니다. '코드는 당연히 눈에 보이지 않나요?' 라고 말씀하실 수도 있는데 여기서 보인다는 말은 노드 형식으로 코드 블럭의 세부 구현없이 블럭 쌓기를 할 수 있다는 말입니다. 그 예로 '현재 위치에서 (x,y)까지 움직인다' 를 코드로 작성하면 3~4줄짜리 코드를 입력해야 하지만 비주얼 스크립팅에서는 Move 라는 코드 블럭(사용자는 코드 내부가 어떻게 구현되었는지 알 필요가 없음)을 통해 물체를 움직일 수 있게 되는 것입니다.

장점

  • 이 시스템은 매우 유연하고 강력해서 프로그래머가 없으면 힘들던 개념 구현 혹은 툴 작업 거의 전부를 디자이너 스스로 혼자 해낼 수 있게 됩니다.
  • 또한 프로그래머가 C++로 확장가능한 블루프린트 전용 마크업을 통해 디자이너에게 제공하면 디자이너는 그것을 확장하여 사용할 수도 있습니다.

작동방식

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

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

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

레벨 블루프린트

  • 언리얼 엔진에서 키즈멧(Kismet) 역할을 대체합니다. 기능 역시 똑같습니다.
  • 각 레벨마다 레벨 블루프린트가 존재합니다.
  • 레벨에 있는 액터를 조작하며, 마티네 액터를 사용해서 시네마틱을 제어합니다.
  • 또한 레벨 스트리밍, 체크 포인트, 기타 레벨 관련 시스템 역시 관리합니다.
  • 레벨에 배치된 블루프린트 클래스와 상호작용을 통해 커스텀 이벤트를 발동시키고 변수를 읽고 설정하는 작업도 가능합니다.

블루프린트 클래스

블루프린트 클래스 이미지
블루프린트 클래스

  • 상호작용형 애셋을 만드는데 사용됩니다.
  • 위 그림에서 버튼과 문짝은 각각의 별도의 블루프린트로 구성되어 있습니다.
  • 플레이어 오버랩 이벤트에 반응, 애니메이션, 사운드 이펙트 재생, 머티리얼 변경 등에 필요한 스크립트가 들어 있습니다.

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

그 외에 가능한 작업들

 

그 밖에도 블루프린트 시스템으로 가능한 작업이 있습니다.

  1. 컨스트럭션 스크립트로 커스터마이징 가능한 프리팹 생성
  2. 플레이가능 게임 캐릭터 생성
  3. HUD 생성

등 여러가지 작업이 가능합니다. 각각의 작업들은 추후 게시글을 통해 소개 해드리겠습니다.

부록

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

 

 

반응형