컨텐츠 검색
[UE5 BP] _#5. 언리얼 엔진 블루프린트 완전 정복 1편: 구조 · 유형 · 그래프 시스템 총정리

2025. 11. 17. 11:35Unreal Engine/개념

📘 1. 언리얼 엔진의 스크립팅 구조 개요

🧩 1.1. Blueprint(블루프린트)란 무엇인가?

언리얼 엔진의 블루프린트(Blueprint)는 노드 기반 인터페이스로 게임플레이 로직을 구성하는 비주얼 스크립팅 시스템이다.
오브젝트 지향 구조를 가진 언리얼 엔진에서 클래스와 오브젝트를 정의·확장하는 데 활용되며,

프로그래머는 시스템을 만들고, 디자이너는 이를 확장할 수 있는 구조 덕분에

빠른 프로토타이핑, 강력한 확장성, 시각적 디버깅이 가능하다.


📘 2. 블루프린트의 작동 방식

🧩 2.1. 기본 개념

  • 노드(Node): 기능 단위(함수, 이벤트 등)를 시각적으로 표현한 요소
  • 핀(Pin): 노드 간 연결점을 통해 데이터·실행 흐름 전달
  • 그래프(Graph): 노드들을 배치하고 연결하여 로직을 구성하는 공간
  • 변수/함수/이벤트: 일반 프로그래밍과 동일한 로직 구성 요소

📉 2.2. 동작 흐름

  • 이벤트(Event) → 실행 흐름(Exec Flow) → 함수 호출(Function) → 변수 처리
  • 각각의 블루프린트 인스턴스는 고유한 그래프 로직을 가질 수 있음
  • 게임 내 오브젝트 생성, 함수 실행, 게임 이벤트 처리를 모두 담당

📘 3. 블루프린트 유형(Types of Blueprints)

📕 3.1. 레벨 블루프린트(Level Blueprint)

🧩 개념

  • 각 레벨에 1개만 존재하는 레벨 단위의 글로벌 이벤트 그래프
  • 레벨 전체에서 발생하는 이벤트를 처리하기 위한 특수 블루프린트

🔍 주요 역할

  • 레벨에 배치된 액터의 이벤트 제어
  • 시네마틱(마티네/시퀀서) 제어
    • 시네마틱(Cinematic) 제어: 언리얼 엔진에서 컷신(카메라 연출, 애니메이션, 이벤트)을 시퀀서로 재생하거나 멈추는 기능
    • 마티네(Matinee): 언리얼 3~4 초기에 사용하던 구식 시네마틱 제작 도구로, 현재 거의 사용 X
    • 시퀀서(Sequencer): 현재 언리얼 엔진의 표준 시네마틱 제작 도구
      • 블루프린트에서 Play / Pause / Stop / Finished 같은 노드로 제어
      • 주로 레벨 블루프린트에서 “특정 시점에 컷신을 언제 재생할지” 관리 (예: 시작 컷신, 보스 등장 연출, 영역 진입 시 카메라 연출)
시나리오  트리거 방식 시퀀서 동작 대표 예시
4.1 게임 시작 시
자동 컷신 재생
BeginPlay 이벤트 Sequencer → Play 인트로 시네마틱
4.2 Trigger Volume 진입 시
컷신 재생
Overlap 이벤트 Sequencer → Play 보스전 시작 연출
4.3 상호작용(Interact)으로
컷신 실행
버튼/레버/문 등 Interact() Sequencer → Play 엘리베이터 탑승 연출
4.4 컷신 종료 후 로직 전환 Sequencer On Finished 다음 게임 로직 실행 조작 활성화,
NPC 등장 후 대화
4.5 레벨 스트리밍과 연계 시네마틱 재생 중
Sublevel Load/Unload
맵 전환을 자연스럽게
이어줌
동굴 → 외부로
자연스럽게 전환
  • 레벨 스트리밍, 체크포인트 등 환경 관련 시스템 처리
  • 다른 블루프린트의 커스텀 이벤트 호출, 변수 읽기/쓰기 가능

📄 구성 파일

  • DefaultGame.ini에서 기본 레벨 블루프린트 클래스를 지정할 수 있음

 

📕 3.2. 블루프린트 클래스(Blueprint Class)

🧩 개념

엔진의 기존 C++ 클래스(Actor, Pawn 등)를 상속받아
개발자가 직접 기능을 확장한 게임플레이 오브젝트용 블루프린트 에셋.

📄 예시

  • 문, 스위치, 상호작용 오브젝트
  • 몬스터, 아이템 등 게임플레이 요소

🔍 대표적인 부모 클래스

  • Actor: 월드에 배치되는 오브젝트의 기본 단위
  • Pawn: 컨트롤러가 빙의(Possess)할 수 있는 Actor
  • Character: 이동/점프/중력 등 기본 이동 기능이 포함된 Pawn
  • PlayerController: Player의 입력을 처리하는 특수 Actor
  • GameMode: 게임 규칙·플레이 방식·승패 조건 등을 정의

 

📕 3.3. 데이터 전용 블루프린트(Blueprint Data-Only)

  • 부모 클래스의 기존 로직과 컴포넌트를 수정만 가능
  • 새로운 노드 그래프나 변수/함수 추가는 불가능
  • 필요 시 전체 블루프린트로 변환하여 확장 가능
  • 주로 값만 바꾸어 오브젝트를 다양하게 생산할 때 사용
    (예: 문 높이/색/속성만 다른 Variants)

 

📕 3.4. 블루프린트 인터페이스(Blueprint Interface)

  • 구현 없이 함수 이름만 정의된 함수 집합
  • 여러 블루프린트가 공통 인터페이스를 통해 상호작용 가능
  • 다형성(Polymorphism)을 BP에서도 사용하도록 하는 기능
    예: "상호작용 가능한 오브젝트" 인터페이스 → 문, 상자, 스위치 등 모두 동일한 함수로 호출 가능

 

📕 3.5. 블루프린트 매크로 라이브러리(Blueprint Macro Library)

  • 재사용 가능한 노드 시퀀스를 모아둔 컨테이너
  • 컴파일이 필요 없어 빠르게 작업 가능
  • 자주 쓰는 로직(Clamp, 시퀀스, 반복 처리 등)을 매크로로 저장해 효율 향상

📘 4. 블루프린트의 특수 그래프 구조

블루프린트는 목적에 따라 다른 종류의 그래프(Graph)를 제공한다.

📕 4.1. 게임플레이 실행 그래프

게임 플레이 중에 실행되는 로직.

4.1.1. Event Graph (이벤트 그래프)

  • 대부분의 게임플레이 로직이 위치
  • BeginPlay, Tick, Input, Custom Event 구현
  • 모든 Actor/Pawn/Character BP가 보유

4.1.2. Level Blueprint Graph (레벨 그래프)

  • 레벨 전체 단위의 로직 처리
  • 배치된 액터 인스턴스를 직접 제어
  • 시네마틱, 레벨 스트리밍 등 레벨 관리에 특화

 

📕 4.2. 에디터 실행 그래프

게임 중이 아니라 “에디터에서” 실행되는 그래프.

4.2.1. Construction Script (컨스트럭션 스크립트)

🧩 개념

  • 에디터에서 액터가 배치/이동/수정될 때 실행
  • 게임 실행 중엔 실행되지 않음

📌 활용

  • 커스터마이징 가능한 프리팹 제작
  • 파라미터별 자동 메시 생성
  • 폴리지 랜덤 배치
  • 방, 펜스, 구조물 자동 생성
  • 디자인 효율 극대화

예시:
콘텐츠 예제 맵의 긴 데모 룸은
컨스트럭션 스크립트로 원하는 옵션(방 개수, 길이, 높이 등)만 지정하면 완성됨.

 

📕 4.3. 기능 분리형 그래프

코드의 재사용성과 유지보수를 돕는 구조.

4.3.1. Function Graph (함수 그래프)

  • "입력 → 출력"으로 나뉜 독립 실행 단위
  • 명확한 입출력으로 데이터 처리
  • 순수 함수(Pure)로 Side Effect 없는 계산 가능
    (예: 거리, 방향, 보정값 계산)

4.3.2. Macro Graph (매크로 그래프)

  • 자주 반복되는 논리를 묶어두는 구조
  • Loop, Flow 제어에 강함
  • 컴파일 불필요, 빠른 테스트
  • 프로젝트 전체 공유 가능

4.3.3. Interface Graph (인터페이스 그래프)

  • 구현 없이 함수 시그니처만 존재
  • 블루프린트 간 공통 기능 제공
  • 다형성 구현 가능
    (예: Interact, TakeDamage 등)

 

📕 4.4. 비주얼 연산 그래프 (렌더링/머티리얼)

4.4.1. Material Graph (머티리얼 그래프)

  • 셰이더(Shader)를 노드 기반으로 구성
  • 텍스처, 조명, 색상, Emissive, Masking 등 GPU 연산 처리
  • 머티리얼 인스턴스 + BP 제어로 동적 변경 가능
    (예: 피격 시 플래시, 문 열림 시 색 변화)

📘 5. 블루프린트의 대표적 활용 사례

📕 5.1. 플레이 가능한 캐릭터 제작

  • Pawn/Character를 부모로 한 블루프린트 생성
  • 입력(Input) 이벤트 처리
  • 카메라 조작(Spring Arm + Camera Component)
  • 애니메이션 블루프린트(AnimBP) 연동
  • 점프/이동/낙하 등 기본 이동 기능은 CharacterMovementComponent에 이미 구현됨

 

📕 5.2. HUD/UI 제작

HUD 또한 블루프린트 기반으로 구현 가능

  • 체력/마나/경험치 바 표시
  • 점수 업데이트
  • 오브젝트 마커 표시
  • 모바일 터치 박스 구현 가능

하지만 UI 제작은 UMG(언리얼 모션 그래픽스)가 보다 직관적이며
UMG는 결국 블루프린트 기반으로 동작한다.


📘 6. 블루프린트 에디터 구조 이해

블루프린트 에디터는 다음 요소로 구성된다.

  • 그래프(Graph) 탭: 노드를 배치하고 로직을 작성하는 공간
  • 컴포넌트 탭: Actor 구성 요소(StaticMesh, Camera 등) 편집
  • 디테일 패널: 선택된 요소의 속성 변경
  • 뷰포트(Viewport): Actor의 시각적 구조 확인

작업 중인 블루프린트의 유형(Actor, Widget, AnimBP 등)에 따라 에디터 구성이 조금씩 달라진다.


📌 전체 요약

  • 블루프린트는 언리얼 엔진의 비주얼 스크립팅 시스템이며, 클래스/오브젝트 정의까지 가능한 강력한 로직 제작 도구다.
  • Event Graph, Level Graph, Construction Script, Function, Macro, Material Graph 등 다양한 그래프 제공
  • 블루프린트는 레벨 BP / 클래스 BP / 데이터 전용 / 인터페이스 / 매크로 라이브러리 등으로 역할이 구분된다
  • 캐릭터 제작, HUD/UI, 상호작용 오브젝트 등 다양한 시스템을 손쉽게 제작 가능하다.
  • 디자이너가 확장하기 쉬우면서도 프로그래머가 강력하게 제어할 수 있는 구조다.