블루프린트 (EventGraph | 변수 | 함수 | Flow Control)

김여울·2025년 5월 1일

사전캠프

목록 보기
6/24

블루프린트란 코딩 없이 게임 로직을 시각적으로 제작할 수 있는 시스템이다. 블루프린트 노드는 각 레벨마다, 물체마다 가질 수 있다.

메인툴바 > 레벨 블루프린트 열기

  • 그래프 (= 구조도)
    -EventGraph : 상황이 벌어졌을 때 어떤 행동을 취할 것인지
  • 함수: 미리 행동 양식을 정해놓는 것
  • 매크로: 입력을 다른 형태의 출력으로 변환
  • 변수: 컴퓨터가 임시로 저장하는 상자, 그 상자에 무엇을 담을 지 써놓음
    -부울: 참 or 거짓 -> 두 가지를 판별
    -인티저: 정수(자연수 1~8,-1~-8, 0)
    -플로트: 인티저처럼 -,+,0 모두 갖고 소수로 표현
    -스트링: 문자열 (문자 여러 개 이상)
    -백터: 플로트 3개로 구성, XYZ에 하나하나 넣을 수 있음
    -배열: 같은 자료형을 지닌 박스 여러 개를 하나의 박스로 묶음
  • 이벤트 디스패처: 특정한 상황을 만들어줄 수 있음

1. EventGraph

🔻Event BeginPlay: 레벨이 시작될 때 실행됨
🔻Event Tick: 프레임이 갱신될 때마다 실행되는 상황

늦게 실행된 게 레벨에서는 위에 나타난다
안녕하세요 ➡ 반갑습니다

✔ 개발 전용: 실제 게임에는 들어가지 않고 개발할 때만 볼 수 있으므로 실제 게임에서는 UI를 통해 글자를 나타낼 수 있다


2. 변수

🔻 SET 노드 ➡ 변수를 설정(변경)할 때 사용
(예) 변수를 ~로 바꿀 것이다
🔑 Alt + 변수 드래그

🔻 GET 노드 ➡ 변수의 값을 읽어서 사용할 때
(예) 다음과 같이 변수를 가져와 쓰겠다
🔑 Ctrl + 변수 드래그


1) SET 노드 ➡ 변수에 값을 설정
2) GET 노드 ➡ 변수 값을 가져옴
3) 형 변환 ➡ 정수 값을 문자열로 변환 (Int → String)
4) Print String 노드 ➡ 문자열을 화면에 출력



3. 함수


🔻 오버라이드: 기존에 정의되었던 함수들을 덮어 씌우거나 추가하는 역할
(예) 레벨 리셋, 레벨 파괴

🔻 함수 추가하기

여러 행동 양식을 함수로 묶을 수 있다.

이벤트 그래프에서 New Function을 호출하면 함수 New Function이 실행된다.


4. 흐름 제어 노드 (Flow Control)

📎언리얼 엔진의 흐름 제어 링크텍스트

🔻Sequence


이렇게 늘여쓰면 너무 길어지니까 Sequence를 사용한다.

0번 ➡ 1번 ➡ 2번이 순차적으로 실행된다.

🔻While Loop

✔ 부울 변수가 필요하다.
부울 변수가 참이면 Loop Body를 반복해 실행시키고 거짓이 되는 순간 Completed를 실행시켜 밖으로 빠져나온다.

Condition 부울 변수를 놓고 참☑으로 넣으면 Loop Body에서 빠져나올 수 없으므로 Branch 추가하기

🔻Branch


✔ 조건이 맞음 ➡ True 실행
✔ 조건이 틀림 ➡ False 실행

Var 1을 0으로 설정 ➡ Var 1 갖고와서 3보다 작을 때

Var 1에 1을 더하기 ➡ '반복중' 문자열 출력

거짓이면 Condition을 거짓으로 세팅해 While Loop를 벗어나고 '끝' 출력.
💭 Var 1이 4가 될 때까지는 '반복중' 출력되고 4가 되는 순간 False로 넘어가 Condition이 꺼지고 '끝' 출력될 것

Var 1 = 0 ➡ 반복중 (3보다 작으므로 add 1 ➡)
Var 1 = 1 ➡ 반복중 (3보다 작으므로 add 1 ➡)
Var 1 = 2 ➡ 반복중 (3보다 작으므로 add 1 ➡)
Var 1 = 3 ➡ 3보다 작지 않음 ➡ Condition을 True로 ➡ Loop 끊기 ➡ 끝


(While Loop)

☑ Condition은 모든 행동들이 끝난 이후에 들어가기 때문에 중간에 Condition이 False로 바뀌어도 '끝났나요?' Print String 실행된다.


🔻For Loop

First Index 숫자가 Last Index에 있는 숫자에 도달할 때까지 반복


0, 1, 2, 3 도달하고 Completed 끝

🔻For Loop with Break

중간에 멈출 수 있는 For Loop문

중간에 Index=2 되면, True문을 Break에 연결한다.
Break 작동 ➡ 이 함수 멈추기

3까지 못 가고 2에서 함수가 멈춘다.

🔻For each Loop

배열을 받아 생성하는 for문
<배열 만들기>

✔ 여러 개의 부울 변수를 가진 배열 생성하기

✔ For each Loop에 Array 연결

  • Index: 앞의 번호들 [ ]
  • Element: 값들 ☑

0, 2, 4에만 참 ☑

Element가 참 ☑인 경우만 Index 출력

0개의 댓글