언리얼+블루프린트

언리얼 + 블루프린트로 3D 게임 개발 -2

dkuen 2026. 1. 29. 18:09

해당 사진에서 레벨 블루프린트를 열어줍니다.


해당 팝업이 열렸습니다. 내 블루프린트의 항목을 알아보겠습니다.

 

그래프

- 그래프는 일종의 구조도로, 어떠한 상황이 벌여졌을 때, 어떠한 행동을 할지 구조를 표현한 것입니다.

함수

- 여러 행동을 하나의 행동으로 묶어주는 역할을 합니다.

매크로

- 어떠한 값이 들어왔을 때, 그 값에 여러가지 처리를 해 다른 값으로 바꾸어 주는 역할을 수행합니다.

변수

- 프로그램에서 사용되는 저장공간의 일종으로, 우리가 새로운 값을 할당 할 때 사용할 수 있습니다.

이벤트 디스패쳐

- 우리가 만들어 둔 상황에 따른 행동을 연결해 주는 것입니다.

 

변수 옆 + 버튼을 눌러 이름을 Var1으로 설정합니다.

 

 

Var1 옆 부울을 클릭하면 해당 창이 나옵니다

이는 변수의 자료형을 의미하며 자료형은 해당 변수가 어떠한 형태로 사용되는지를 의미합니다.

 

부울(bool)

참과 거짓입니다. 보통 0과 1, True, False로 표현합니다.

인티저(int)

정수를 표현합니다 ex) 1, 2, 100, ...

플로트(float)

실수를 표현합니다 ex)1.0, 2.0, 100.0, ...

스트링(string)

문자열입니다 문자는 A, 가, O 등 하나씩을 의미하고 문자열은 Hello, 안녕하세요 등 문자 여러개를 의미합니다.

벡터(vector)

플로트(float) 3개로 구성되어 있습니다. X, Y, Z를 대입합니다.

배열(Array)

여러가지 변수를 가질 수 있는 변수를 의미합니다.

 

 

그래프 탭을 보겠습니다.

EventGraph는 어떠한 상황이 발생했을 때 어떠한 행동양식을 취할 것인지 정해주는 구조입니다.

쉽게 말해서, 테트리스에서 한 줄이 전부 블록으로 채워졌으면(이벤트 발생) 어떻게 처리해야할지 정하는 곳입니다.

 

Event BeginPlay는 플레이 시작될 때 이벤트를 발생합니다

Event Tick은 매 프레임 이벤트를 발생합니다.

 

Event BeginPlay 노드를 끌고와서 Print String을 입력합니다.

 

 

후 컴파일 > 저장을 해줍니다. 이름은 Map1으로 저장하겠습니다

 

Print String밑 개발 전용이라는 말은 말 그대로 개발과정에서만 보여지는 것입니다.

 

 

왼쪽위에 안녕하세요가 출력되는 모습입니다.

 

이번에는 변수를 출력해보겠습니다.

 

 

Var1을 인티저형으로 바꿔서 Var1을 이벤트 그래프로 끌어옵니다.

Set Var1 을 클릭합니다.

- Var1의 값을 바꾸겠다.

Get Var1

-  Var1을 가져와 쓰겠다.

 

 

Event BeginPlay와 Set노드를 이어주고 PrintString 노드를 이어줍니다

Get Var1을 가져와서 In String과 이어줍니다.

 

꼭  Get Var1을 가져와서 Print String과 이어주셔야 합니다.

 

이유는 변수의 형변환에 있습니다.

변수는 위에서 설명한 것처럼 자신의 형태를 가지고 있는데

Print String은 스트링(String)형을 취급하기 때문에 해당 과정을 통해서 인티저(Int) 변수를 스트링(String) 변수로 형변환 해줬다고 생각하시면 됩니다.

 

함수 연결에 대해 배우겠습니다.

 

함수 생성입니다. 함수 옆에 + 버튼을 누른뒤 이름을 NewFunction으로 만들어줍니다. 이후 노드를 끌어와 Print String을 연결해주면 됩니다.

 

 

newfuction을 검색해서

 

 

연결해줍니다.

 

흐름제어노드에 대해 배우겠습니다.

Sequence노드 입니다.

Then 0번 노드 실행 뒤 Then 1번 노드가 실행됩니다

Sequence노드 기존에는 가로로 길게 만들어 줘야함

 

WhileLoop

불 변수가 참이면 루프를 계속 실행, 거짓이면 루프를 빠져나옵니다.

새로운 변수 condition을 불형태로 만들어서,

한번 만들어 보겠습니다.

 

먼저 이런 형태입니다. Event BeginPlay(게임이 시작되면 이벤트 발생) > Set condition을 참으로 설정 > while loop 조건은 참

 

이렇게 되면 While Loop를 무한으로 반복하기 때문에 빠져나올 방법을 추가하겠습니다.

Branch는 조건이 맞으면 True(참), 조건이 틀리면 False(거짓)를 실행시킵니다.

< 선택

 

va1이 3보다 작으면 이라는 조건을 넣어줬습니다.

Add선택

 

해당 사진처럼 추가한다면, 이제 흐름은

게임시작 > 이벤트 발생 >  Val1에 숫자 0 저장 > Condition을 true로 저장 > WhileLoop의 조건을 condition 변수가 결정(참) >

WhileLoop는 Branch를 실행 > Branch는 Val1의 값을 조건으로 받아옴 > 조건이 참일경우 Val1 + 1 > 거짓일경우 condition을 거짓으로 저장 > whileloop 종료

라는 흐름이 만들어집니다.

이제 printString을 추가해서 게임 안에서 확인해보겠습니다.

 

Branch > Set > print(반복중), whileloop complete > print(끝) 두 곳에 출력이 되게끔 만들었고, 컴파일 후 확인하면

 

밑에서부터 반복중x3 후 끝을 확인 할 수 있습니다.

 

Forloop 및 ForLoopWithBrake 살펴보겠습니다

 

위와 같은 모습으로 만들겠습니다.

forloop는 first index의 숫자부터 last index 숫자에 도달할 때 까지 반복합니다.

 

forloopwihtbrake는 forloop와 같지만 중간에 brake 즉 루프를 일찍 빠져나오는 조건을 만들 수 있습니다.

forloop 와 같이 만들되 index에서 노드를 하나 더 끌고와 == 검색

위와 같이 만들면 됩니다.

== 는 같다라는 것을 의미하고 해당 흐름은 index가 0부터 3까지 증가하지만, 중간에 2가 되었다면 branch 조건을 충족하게 되어  forloop문을 brake 하는 것입니다.