카테고리 없음

20260225 TIL

pp4037 2026. 2. 25. 21:57

새 레벨 만들기

 

Content Browser > Content 우클릭 > New Folder

 

File > New Level 클릭.
원하는 레벨 종류 선택

 

 

레벨 저장 위치 폴더 지정 및 저장
언리얼 에디터 최상단 > Edit 클릭 Project Settings 클릭.
Project Settings > Maps & Modes > Editor Startup Map, Game Default Map을 PlayGround로 지정.

 

 

 

블루프린트(Blueprint)란 언리얼 엔진에서 제공하는 비주얼 스크립팅 시스템

 

 

 

레벨 블루프린트 열기

 

언리얼 에디터 > PIE 버튼 옆옆 버튼 클릭. Open Level Blueprint 클릭시 열 수 있음.
PlayGround 레벨의 레벨 블루프린트. Event Graph에서 우클릭은 드래그, 좌클릭은 그래프 이동 가능.

 

이벤트 함수: 어떤 사건(Event)이 발생하면 호출되는 함수.

  • BeginPlay : “게임 플레이의 시작”이라는 사건이 발생하면 호출되는 함수
  • Tick: “매 게임 프레임”마다 호출되는 함수

블루프린트 수정 할 때마다 하단의 과정을 거쳐야 적용이 됨

 

1. Compile 버튼 클릭. 2. 저장 버튼 클릭.

 

 

 

변수(Variable)

상수(값, Constant)를 저장할 수 있는 그릇.

언리얼에서는 멤버변수를 “속성(Property)”이라고 많이 부름.

 

 

종류

 

  • 부울(Boolean) : 참/거짓 두 가지 상태만 가짐
  • 바이트(Byte) : 정수. 가장 크기가 작음(0~255)
  • 인티저(Integer) : 정수. 일반적인 정수(-21억~21억)
  • 인티저64(Integer64) : 정수. 가장 크기가 큼
  • 플로트(Float) : 실수. 정밀도가 더 우월함(double-precision)
  • 이름(Name) : 문자열. 엔진 내부에서 사용, 불변인 경우
  • 스트링(String) : 문자열. 일반적인 문자열 (ex. 플레이어명)
  • 텍스트(Text) : 문자열. 퀘스트 설명같이 다국어 변환이 필요한 경우

 

보통 언리얼에선 대부분 변수 이름을 대문자로 시작함.

부울(Boolean) 타입 같은 경우 소문자 b를 앞에 붙임.

 

 

비교 연산 노드

블루프린트에서 비교 연산자는 두 값을 비교하여 참 또는 거짓을 반환하는데 사용. 노드 생성 방법은 사칙 연산과 동일하게 레벨 블루프린트 화면에서 우클릭 후 기호를 검색.

 

연산자 설명
== 두 값이 같은지 비교
!= 두 값이 다른지 비교
< 첫 번째 값이 두 번째 값보다 작은지 비교
> 첫 번째 값이 두 번째 값보다 큰지 비교
<= 첫 번째 값이 두 번째 값보다 작거나 같은지 비교
>= 첫 번째 값이 두 번째 값보다 크거나 같은지 비교

 

논리 연산 노드

블루프린트에서 논리 연산은 여러 조건을 조합하거나 반전하여 복잡한 논리적 흐름을 처리할 때 사용.

 

연산자 설명
AND 두 조건이 모두 참일 때만 결과가 True가 됩니다.
OR 두 조건 중 하나라도 참이면 결과가 True가 됩니다.
NOT 조건의 결과를 반대로 만듭니다.
XOR 두 조건 중 하나만 참일 때 True가 됩니다.
→ true(1) 1의 개수가 홀수개면 true. 짝수개면 false

 

 

 

Branch와 Sequence

 

 

Branch(브랜치) : 매개변수가 True냐 False냐에 따라 실행 흐름을 나눌 수 있는 노드.

예시 : 지정된 숫자(10) 보다 작으면 False, 크면 True

 

 

Sequence(시퀀스) : 실행 흐름을 순차적으로 실행시켜주는 노드.

블루프린트 작업물이 가로로 너무 길어지는 걸 방지하는 용도로도 쓰임

 

 

함수
유사한 코드를 별도의 재구성 과정 없이 매크로 형식으로 재사용 할 수 있게 해주는 기능.

 

 

만드는 과정

 

MyBlueprint > FUNCTIONS 추가 > “SetTemperature” 언리얼에서 함수를 정의할 때 보통 동사로 시작함.

 

 

MyBlueprint > FUNCTIONS > SetTemperature 클릭 > Details ”InIncrement” 매개변수 추가. 언리얼에서 매개변수를 정의할 때 보통 In- 혹은 Out- 접두사를 붙힘.

 

 

 

함수 예시 SetTemperature > EventGraph
함수 사용 예시 PlayGround > Level Blueprint > Event Graph. 함수를 이용하여 코드 재사용성을 높힐 수 있음.

 

 

While Loop와 For Loop

 

While Loop 노드는 매개변수 Condition의 값이 true이면 Loop Body가 계속해서 실행되는 노드임.

 

While Loop(와일 루프)
조건 만족 시 Loop Body로 조건 종료 시 Completed로 분류
Loop Body는 조건 만족되었을 때 계속 반복 됨

 

While Loop 노드 예시

 

 

For Loop 노드는 매개변수 For Index의 값부터 Last Index까지 Loop Body가 계속해서 실행되는 노드임.

For Loop(폴 루프)
First Index 값이 Last Index 값이 될 때 까지 Loop Body로 계속 반복되는 노드.

조건 종료 시 Completed로 분류됨.

 

 

While Loop 와 For Loop의 차이점
While Loop는 특정 조건을 만족할 때 까지 동작하는 것.
For Loop는 Index(인덱스)의 값 만큼 동작하는 것.

 

인덱스 : 순서 번호” 또는 “위치를 가리키는 숫자”

 

 

 

Array와 ForEach Loop

 


Array

자신 안에 담긴 박스의 개수를 정할 수 있는 것

안에 담겨있는 개수값을 Index(인덱스)라고 부름.

 

예시

My Blueprint > VARIABLES > “Weapons” 추가

 

My Blueprint > VARIABLES > Weapons 클릭 > Details Variable Type에서 Array 자료형으로 만들 수 있음.

 

My Blueprint > VARIABLES > Weapons 클릭 > Details Default Value로 “Rifle”, “Shotgun”, “Pistol” 추가.

 

 

ForEach Loop

 

자료구조에 담긴 요소들을 순회할 때 사용하는 반복문.

예 : Array

 

예시

 

Event Graph > 빈공간 우클릭 > “For Each Loop” 검색

 

For Each Loop 노드는 매개변수로 Array 자료형의 인자를 받음. Array를 처음부터 끝까지 순회하는 반복문 노드.

 

Event Graph. For Each Loop 노드

 

열거형과 구조체 그리고 Switch

 

열거형(Enum)

정수형 상수에 이름을 부여해서 모아둔 것을 열거형이라고 함.

 

예시

const int Zero = 0;
const int One = 1;
const int Two = 2;
const int Three = 3; 
const float PI = 3.141592f;
// … 일일이 선언하기 힘듦.
enum class ECardinalNumber
{
Zero,
One,
Two,
Three,
// 자동으로 0부터 3까지의 값을 가짐. 심지어 메모리도 안먹음.
}

 

만드는 방법 예시

Content Browser > Content > 빈공간 우클릭 > New Folder > “Data”

 

Content Browser > Content > Data > 빈공간 우클릭 > Blueprint > Enumeration > “HeatState”

 

HeatState > Add Enumerator 클릭. 위와 같이 Normal, High, Over 추가.

 

PlayGround > Level Blueprint > My Blueprint VARIABLES > “NewCurrentHeatState” 추가.

 

My Blueprint > VARIABLES > NewCurrentHeatState 클릭 > Details

 

Switch(스위치)

어떤 값이 들어왔냐에 따라서 실행 흐름을 나눌 수 있음.

 

만드는 방법 예시

 

Event Graph > 빈공간 우클릭 > “Switch on HeatState” 검색. Switch 노드를 가져오려면, Switch on + Enum 자료형이름을 검색해야함.

 

Switch on 노드는 매개변수 Selection에 어떤 값이 들어왔냐에 따라 실행 흐름을 분기함.

 

Event Graph. Switch on 노드

 

 

 

구조체(Structure)

언어 스팩 상에 미리 구현되어 있는 네이티브 타입Native type(int, float, double, …)이 아니라 프로그래머가 필요에 따라 자료형을 만들 수도 있음. 이것이 구조체.

네이티브 타입 의외에 커스텀으로 자료형으로 만든 것.

 

만드는 방법 예시

 

Content Browser > Content > Data > 빈공간 우클릭 > Blueprint > Structure > “Weapon”

 

Weapon > Add Variable 클릭. 위와 같이 추가.

 

My Blueprint > VARIABLES > “NewWeapons”

 

My Blueprint > VARIABLES > NewWeapons 클릭 > Details Array 자료형으로 변경

 

My Blueprint > VARIABLES > NewWeapons 클릭 > Details 기본값으로 위와같이 세 개의 요소 추가.