본문 바로가기

교재 목차

블루프린트의 노드·클래스·통신·데이터에서 UI·애니메이션·AI·게임플레이 구조까지 시각적 로직으로 구현합니다.

블루프린트는 코드를 몰라도 시작할 수 있다는 장점이 있지만, 흐름을 잘못 잡으면 그래프가 금방 복잡해집니다. 노드를 이어 동작을 만드는 것은 어렵지 않아도, 왜 그 순서로 이어야 하는지와 그 값이 어느 객체에 있는지를 모르면 반응이 없을 때 어디부터 봐야 할지 막막해지기 때문입니다. 그래서 이 교재는 노드를 연결하는 방법과 함께, 이벤트가 어디서 시작되고 값을 어느 객체가 가지고 있는지를 설명하며 다시 읽어도 고치기 쉬운 그래프를 만드는 데 집중합니다.

1–2장에서 그래프의 기본 요소를 익힌 뒤, 클래스와 통신, 데이터 관리, UI, 애니메이션, AI, 게임플레이 프레임워크, 물리와 환경 상호작용으로 넓혀 갑니다. 각 글은 이벤트 입력에서 결과 출력까지의 경로를 문장으로 따라가고, 반응이 없을 때 확인할 곳과 디버깅 방법을 함께 적었습니다. 프로젝트가 커질수록 필요한 그래프 정리 기준과 기능을 나누는 방법도 장을 거치며 차례로 다룹니다.

이 교재의 메뉴, 노드, 설정 이름은 2026년 11월 기준 최신 정식 버전인 언리얼 엔진 5.8(핫픽스 5.8.4)을 따릅니다. 이 교재의 예제는 직접 실행해 옮긴 것이 아니라, Epic Games의 공식 문서에 적힌 노드와 동작을 기준으로 확인해 쓴 것입니다. 본문에 나오는 출력과 수치는 예제의 조건에서 손으로 따라가 얻은 값이므로, 에디터에서 직접 만들어 보고 결과가 다르면 어느 노드에서 갈라졌는지 따라가 보세요. 에디터 버전에 따라 메뉴 위치나 표시 이름이 조금 다를 수 있습니다.


첫 목표: BeginPlay 메시지 하나 출력하기

첫 확인은 첫 번째 블루프린트 생성 및 실행에서 Actor 블루프린트 하나를 레벨에 배치하고, BeginPlay에서 환영 메시지를 출력하는 것입니다. 메시지가 보이면 문구를 바꿔 Compile과 Save를 하고, 플레이를 멈췄다가 다시 시작했을 때 바뀐 문구가 나오는지 확인합니다. 바뀐 문구가 나오면 첫 목표를 마친 것입니다.

이 작은 실습의 목적은 에셋, 배치된 인스턴스, 실행되는 이벤트를 구분하는 것입니다. 콘텐츠 브라우저에 만든 에셋과 레벨에 놓인 인스턴스, 그리고 그 인스턴스에서 BeginPlay가 실행되는 순간은 서로 다른 단계이며, 이 구분이 이후 모든 장의 출발점이 됩니다. 플레이어 입력이나 AI를 붙이기 전에 이 실습부터 마치세요.


시작하기 전에 준비할 것

에디터에서 에셋을 찾고 현재 레벨을 저장하는 작업이 낯설다면, 언리얼 기본 교재의 기본적인 설정 및 프로젝트 생성과 첫 번째 프로젝트 실행을 먼저 읽습니다. 이미 프로젝트가 있고 조작할 수 있는 플레이어가 있다면 그대로 사용하면 됩니다.

2장의 겹침 이벤트처럼 움직이는 플레이어가 필요한 실습도 있습니다. 템플릿 없이 빈(Blank) 프로젝트에서 시작했다면 Character와 카메라, 이동과 상호작용 입력, 그리고 현재 레벨의 게임 모드를 따로 준비해야 합니다. 이때는 게임 모드, 스테이트 블루프린트와 플레이어 컨트롤러, 폰 블루프린트를 먼저 읽고 돌아와도 됩니다. 다만 두 글에서 역할을 설명하는 부분만 읽는다고 조작 가능한 플레이어가 완성되지는 않으므로, 플레이를 시작했을 때 Character가 실제로 생성되고 조종되는지 확인합니다.


세 구간으로 나눈 핵심 경로

교재 전체를 읽지 않더라도, 다음 세 구간을 거치면 플레이어의 요청을 레벨의 대상이 반응하는 작은 기능으로 연결할 수 있습니다.

구간읽을 범위마친 뒤 확인할 것
그래프와 값, 클래스1–3장이벤트의 흐름과 값을 가진 객체를 설명할 수 있는 작은 그래프
객체 사이 연결4–6장통신, 데이터, UI가 가리키는 실제 대상을 확인하는 흐름
프로젝트에 적용9장의 기본 프레임워크와 10장에서 필요한 상호작용같은 레벨에서 플레이어의 요청과 대상의 반응, 실패할 때 확인할 위치를 연결

첫 적용 목표는 언리얼 기본 교재의 환경과 상호작용하는 오브젝트 설정에 나오는 문 열기처럼, 준비된 플레이어의 요청을 지금 레벨에 있는 대상의 반응에 연결하는 작은 기능입니다. 상호작용 입력이 어디서 시작되는지, 지금 저장한 문 참조가 어느 인스턴스인지, 그리고 플레이어가 범위 안에 있는지를 나누어 보면, 반응이 없을 때 입력과 참조와 범위 가운데 어디부터 확인할지도 정할 수 있습니다.

7장의 애니메이션, 8장의 AI, 9장의 게임플레이 능력 시스템(GAS)은 필요한 목표가 생겼을 때 돌아와 읽어도 되는 확장입니다. 이 핵심 경로를 마치는 데 C++이나 나이아가라까지 모두 익힐 필요는 없습니다.


학습 경로

교재 전체를 차례로 읽는다면 다음 다섯 단계로 따라가세요.

1단계 · 그래프의 기본 요소(1–2장)에서는 블루프린트가 무엇이고 C++과 어떻게 일을 나누는지에서 시작해, 노드와 핀, 실행 선과 데이터 선을 읽는 법, 블루프린트 에디터의 패널, 첫 Actor 블루프린트와 디버깅 도구를 익힙니다. 이어 변수의 타입, 함수, 이벤트, Branch와 Loop 같은 흐름 제어 노드, 매크로로 그래프를 이루는 기본 요소를 다룹니다.

2단계 · 클래스와 블루프린트 통신(3–4장)에서는 액터와 컴포넌트, 상속과 인터페이스, 액터가 생성되고 사라질 때의 이벤트로 블루프린트를 클래스로 설계합니다. 그리고 직접 참조, 이벤트 디스패처, 블루프린트 인터페이스, 게임 인스턴스, 레벨 블루프린트로 블루프린트끼리 값을 주고받는 방법을 비교합니다.

3단계 · 데이터와 UI(5–6장)에서는 구조체와 열거형, 데이터 테이블, 저장과 불러오기, 에셋 레퍼런싱, 함수 라이브러리로 데이터를 다룹니다. 이어 위젯 블루프린트로 UI를 만들고, 동적으로 요소를 생성하고 애니메이션을 더한 뒤, 게임플레이와 연결해 간단한 인벤토리를 완성합니다.

4단계 · 애니메이션과 AI(7–8장)에서는 애님 그래프와 스테이트 머신, 블렌드 스페이스, 애님 몽타주와 노티파이, 프로시저럴 애니메이션으로 캐릭터의 움직임을 제어합니다. 그리고 비헤이비어 트리, EQS, 내비게이션, 시각과 청각 감지로 AI가 스스로 판단하고 움직이게 만듭니다.

5단계 · 게임플레이 프레임워크와 환경(9–10장)에서는 게임 모드와 게임 스테이트, 플레이어 컨트롤러와 폰, 리플리케이션, 체크포인트와 세이브 설계, 게임플레이 능력 시스템으로 게임의 뼈대를 세웁니다. 마지막으로 물리 시뮬레이션, 콜리전, 트레이스, 날씨와 시간, 동적 환경 상호작용, 블루프린트 성능 최적화까지 다룹니다.

장마다 예제와 시작 상태가 다르므로, 하나의 게임을 10장 내내 이어서 완성하는 과정으로 보지는 마세요. 관심 있는 기능부터 읽을 때도 그 글에서 필요한 준비물과 앞선 글을 먼저 확인합니다.

다른 교재로 이어 가기

에디터 사용법과 레벨, 조명, 재질처럼 블루프린트 밖의 기초는 언리얼 기본에서 다룹니다. 블루프린트로 만든 기능을 C++ 클래스와 함께 설계하거나 성능이 중요한 부분을 옮기고 싶다면 언리얼 C++을, 10장에서 잠깐 쓰는 파티클 효과를 더 깊이 다루고 싶다면 언리얼 나이아가라를 참고하세요.


장별 목차


만든 그래프를 돌아볼 때

다음 장으로 넘어가기 전에, 지금 만든 그래프에서 네 가지를 짚어 보세요. 첫째는 이벤트의 출발점으로, 이 실행은 어느 이벤트에서 시작되며 누가 그 이벤트를 일으키는가입니다. 둘째는 값을 가진 객체로, 이 값은 어느 인스턴스의 변수이고 다른 블루프린트는 그 값에 어떤 참조로 닿는가입니다. 셋째는 재사용 단위로, 되풀이되는 노드를 함수나 매크로, 컴포넌트 가운데 무엇으로 묶었는가입니다. 넷째는 디버깅을 다시 시작할 위치로, 결과가 다를 때 처음 브레이크포인트를 걸거나 값을 출력할 노드가 어디인가입니다.

예를 들어 문 열기 기능이라면 상호작용 입력이 어디서 시작되는지, 지금 저장한 문 참조가 어느 인스턴스인지, 반응이 없을 때 입력과 참조와 범위 가운데 무엇부터 확인할지를 말로 설명해 봅니다. 교재 전체를 마친 뒤에도 같은 네 질문으로 자신의 그래프를 설명할 수 있다면, 노드를 빨리 잇는 것보다 중요한 이벤트 흐름과 데이터의 위치, 디버깅 기준을 함께 잡은 것입니다.