언리얼 엔진/개념 정리

개념 정리 - 블루프린트(2)

journey46110 2026. 6. 14. 23:09

I. 블루프린트 흐름 제어 (Flow Control)

1) Branch (If-Else)

① 정의

- 조건(Boolean)에 따라 실행 흐름을 두 갈래로 나누는 노드

- 프로그래밍의 if-else 문과 동일한 역할

Branch

② 구성

- Condition : 판단할 조건

- True : 조건이 참일 때 실행

- False : 조건이 거짓일 때 실행

 

③ 예시

Branch 예시

Max HP >= 0

- 참이면 True 출력

- 거짓이면 False 출력

 

2) Sequence

① 정의

- 여러 작업을 순서대로 실행하는 노드

- 복잡한 블루프린트를 정리할 때 사용

Sequence

② 특징

- Then 0 → Then 1 → Then 2 순서로 실행

- 핀 추가를 통해 실행 순서를 늘릴 수 있음

 

③ 예시

Sequence 예시

 

Then 0 실행 → 1 출력 → 2 출력 → 3 출력

→ Then 1 실행 → 4 출력 → 5출력 → 6출력

 

3) Flip Flop

① 정의

- 실행될 때마다 A와 B를 번갈아 실행하는 노드

Flip Flop

② 실행 순서

1번째 실행 → A

2번째 실행 → B

3번째 실행 → A

4번째 실행 → B

...

 

③ 예시

Flip Flop 예시

키보드에서 1 입력 → A 출력 → B 출력 → A 출력 → B 출력 → ...

 

 

II. 텍스트 슈팅 게임 제작

목표

- 기본 총알 수 : 30발

- 마우스 좌클릭 시 발사

- 발사 시 Bullet 1 감소

- R 키 입력 시 재장전

 

1) 총알 발사 로직

① Bullet 변수 생성

- Integer 타입 변수 생성

- 기본값 : 30

Bullet 변수

 

② 좌클릭 이벤트 생성

Left Mouse Button 입력 이벤트

 

③ 총알 감소

- 좌클릭 시 Bullet - 1

총알 감소 블루프린트

 

④ 남은 총알 수 출력

- 시작 시 남은 총알 수 출력

- 좌클릭 시 남은 총알 수 출력

남은 총알 수 출력

 

마우스 좌클릭 → Bullet - 1 → Set Bullet → Format Text → Print Text

 

⑤ 결과

결과

 

2) 재장전 로직

① R 키 이벤트 생성

R 키 입력 이벤트

② 총알 30발로 초기화

- R 키 입력 시 Set Bullet = 30

남은 총알 30발로 초기화

③ 재장전 결과 출력

재장전된 총알 수 출력

R 키 입력 → Set Bullet = 30 → Format Text → Print Text

 

3) 결과

- 마우스 좌클릭 시 남은 총알 출력

- R 키 입력 시 재장전

최종 블루프린트
결과

 

 

III. 블루프린트 흐름 제어 (Flow Control) - 반복문

반복문

- 특정 작업을 여러 번 반복 실행하는 기능

 

1) While Loop

① 정의

- 조건이 참(True)인 동안 계속 반복

While Loop

② 구성

- Condition: 조건

- Loop Body: 조건이 참이면 반복 실행

- Completed: 조건이 거짓이면 실행

예시

③ 예시

Count > 0일 경우 반복
결과

Count > 0 ?  True  Loop Body 실행  Count 감소 → Count 출력 → 다시 조건 검사

Count > 0 ? → False → Completed 실행 → End 출력

 

2) For Loop

① 정의

- 정해진 횟수만큼 반복

For Loop

② 구성

- First Index: 인덱스 시작값

- Last Index: 인덱스 종료값

- Loop Body: 인덱스 범위 내에서 반복 실행

- Index: 현재 인덱스값

- Completed: 인덱스 범위 탈출 시 실행

 

③ 예시

- Last Index 값도 포함 0 ~ 5이면, 총 6번 실행

인덱스 0에서 5까지 실행
결과

Index  0 ~ 5 → Loop Body 실행 → Index 출력 → Index + 1

Index > 5 → Completed 실행 → End 출력

 

3) 구구단 구현

목표

- 2단부터 9단까지의 결과 출력

 

① 바깥 For Loop

- 단은 2단부터 9단까지 있음

② 단 출력

단 출력
결과

③ 안쪽 For Loop

- 곱할 숫자는 1부터 9까지 있음

곱할 숫자

④ 숫자를 담을 변수 생성

A - 단

B - 곱할 숫자

변수 생성 및 노드 연결

⑤ 계산 및 출력

* 연산자 사용

A x B = AB

Format Text 사용

- Foramt에 {A} X {B} = {AB} 입력
- 입력 핀 A, B, AB에 노드 연결

결과

 

 

IV. 블루프린트 열거형 (Enum)

1) Enum이란?

① 정의

- 관련된 상수들을 하나의 묶음으로 관리하는 데이터 타입

 

② 예시

장비 슬롯

0 = Helmet
1 = Armor
2 = Weapon

보다

Helmet
Armor
Weapon

으로 관리하는 것이 훨씬 직관적이다.

 

2) 열거형 생성

① Enumeration 생성

콘텐츠 브라우저 → 우클릭 → 블루프린트 → 열거형

열거형 생성

② 값 추가

이너머레이터 추가 → 열거기에 상수값 입력

예시

③ Enum 변수 생성

- 변수 타입에서 생성한 Enum 선택

변수 항목 → 타입 검색

④ 기본값 지정

- 열거기에 지정한 값 선택 가능

디테일 - 기본값 지정

장점

숫자 사용

Slot = 2

무슨 의미인지 알기 어려움

 

Enum 사용

Slot = Weapon

의미가 명확함

 

⑤ Switch on Enum

- Enum 값에 따라 다른 로직 실행 가능

Switch on Enum

예시

Switch on EEquipmentType

Helmet → 방어력 증가
Armor → 체력 증가
Weapon → 공격력 증가

 

 

V. 추가로 연습하기

1) 텍스트 슈팅 게임 버그 개선

① 총알 발사 제한

- 총알이 0발 이하일 때 발사 불가

Bullet > 0 조건으로 Branch 사용

마우스 좌클릭 → Bullet > 0 → True 실행 → Bullet - 1 → Set Bullet → Format Text → Print Text

마우스 좌클릭 → Bullet <= 0 → False 실행 → Print Text

Bullet <= 0, 발사 불가

② 불필요한 재장전 방지

- 이미 총알이 30발이면 재장전 불가

Bullet >= 30, 재장전 불가

R 키 입력  Bullet < 30 → True 실행 → Set Bullet 30 → Format Text → Print Text

R 키 입력  Bullet >= 30 → False 실행 → Set Bullet 30 → Print Text

Bullet == 30, 재장전 불가

 

2) 구구단 구현 - While Loop 사용

- For Loop 대신 While Loop 사용

- A 기본 값 2

- B 기본 값 1

구구단 - While Loop 사용
구구단 결과