변수 유형과 기본 활용법
이제 블루프린트의 기본적인 개념과 에디터 사용법을 익히셨으니, 블루프린트의 가장 핵심적인 요소 중 하나인 변수(Variables) 에 대해 깊이 있게 알아보겠습니다. 변수는 게임 내에서 변하는 데이터를 저장하고 관리하는 공간입니다. 예를 들어, 플레이어의 현재 체력, 점수, 캐릭터의 이름, 문의 열림/닫힘 상태 등 게임의 모든 동적인 정보는 변수를 통해 다루어집니다.
변수를 이해하는 것은 블루프린트를 통해 복잡한 게임 로직을 구현하는 데 있어 필수적입니다. 마치 수학에서 미지수를 사용하여 문제를 풀듯이, 블루프린트에서도 변수를 통해 다양한 데이터를 유연하게 처리할 수 있습니다.
변수란 무엇인가?
변수는 특정 데이터(Data) 를 담는 이름표가 붙은 상자라고 생각할 수 있습니다. 이 상자 안에는 숫자, 텍스트, 참/거짓 등의 다양한 종류의 데이터가 들어갈 수 있으며, 필요에 따라 이 데이터는 변경될 수 있습니다. 언리얼 엔진의 블루프린트에서는 이러한 변수를 직관적으로 생성하고 관리할 수 있습니다.
변수의 주요 유형
블루프린트에서 사용할 수 있는 변수의 종류는 매우 다양하지만, 크게 몇 가지 기본 유형으로 나눌 수 있습니다. 각 유형은 저장할 수 있는 데이터의 형태가 정해져 있습니다. 올바른 유형의 변수를 선택하는 것이 데이터를 효율적으로 관리하는 첫걸음입니다.
불리언 (Boolean)
- 개념: 가장 간단한 변수 유형으로, 참(True) 또는 거짓(False) 두 가지 상태만을 가집니다.
- 사용 예시: "문이 열렸는가?(True/False)", "적군을 발견했는가?(True/False)", "불이 켜져 있는가?(True/False)"
- 색상: 빨간색
정수 (Integer)
- 개념: 소수점 없는 정수 값을 저장합니다. 양수, 음수, 0을 포함합니다.
- 사용 예시: "플레이어의 점수", "남은 탄약 수", "몬스터의 수"
- 색상: 하늘색
부동 소수점 (Float)
- 개념: 소수점을 포함하는 실수 값을 저장합니다. 정수보다 더 정밀한 수치를 표현할 때 사용됩니다.
- 사용 예시: "캐릭터의 이동 속도", "남은 시간(초)", "아이템의 가격"
- 색상: 초록색
텍스트 (Text) / 문자열 (String) / 이름 (Name)
- 개념: 글자들을 저장합니다.
- String: 변경 가능한 문자열 (예: 채팅 메시지).
- Text: 현지화(Localization)에 유리한 텍스트 (예: UI에 표시되는 문구).
- Name: 불변하며 빠르게 비교 가능한 식별자 (예: 에셋의 이름, 소켓의 이름).
- 사용 예시: "플레이어 이름", "아이템 설명", "NPC 대화 내용"
- 색상: 보라색 (Text), 주황색 (String), 밝은 노란색 (Name)
벡터 (Vector)
- 개념: 3차원 공간에서의 위치(X, Y, Z 좌표) 나 방향, 크기를 나타내는 데 사용됩니다. 각각 Float 값을 가집니다.
- 사용 예시: "오브젝트의 현재 위치", "목표 지점의 좌표", "발사체의 이동 방향"
- 색상: 연두색
로테이터 (Rotator)
- 개념: 3차원 공간에서의 회전(Roll, Pitch, Yaw 값) 을 나타냅니다. 각각 Float 값을 가집니다.
- 사용 예시: "카메라의 시점 회전", "문의 열린 각도", "캐릭터의 바라보는 방향"
- 색상: 빨간색과 파란색이 섞인 색 (회색 바탕에 빨간색 선)
트랜스폼 (Transform)
- 개념: 3차원 공간에서의 위치(Location), 회전(Rotation), 크기(Scale) 정보를 모두 포함합니다.
- 사용 예시: "오브젝트의 전반적인 상태 저장", "새로운 오브젝트를 생성할 위치와 방향, 크기 지정"
- 색상: 분홍색
이 외에도 다양한 오브젝트 참조(Object Reference), 구조체(Struct), 열거형(Enum) 등 고급 변수 유형이 있지만, 위의 기본 유형들을 먼저 숙지하는 것이 중요합니다.
변수 생성 및 활용 기본법
블루프린트에서 변수를 생성하고 사용하는 과정은 매우 직관적입니다.
변수 생성하기
- 블루프린트 에디터의 좌측에 있는 변수 패널(Variables Panel) 로 이동합니다.
- 패널 상단의
+ 변수(+ Variable)
버튼을 클릭합니다. - 새로운 변수가 생성되면, 변수의 이름을 입력합니다. (예:
PlayerScore
) - 변수 이름 옆의 드롭다운 메뉴를 클릭하여 원하는 변수 유형을 선택합니다. (예:
Integer
) - 변수 유형을 선택하면 오른쪽에 디테일 패널에서 해당 변수의 기본값을 설정하거나,
Editable
(외부에서 편집 가능),Blueprint Read Only
(블루프린트에서 읽기만 가능) 등의 옵션을 조절할 수 있습니다.
변수 값 설정하기 (Set 노드)
- 이벤트 그래프의 빈 공간에서 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 엽니다.
Set PlayerScore
(여러분이 생성한 변수 이름)를 검색하여 선택합니다. 또는, 변수 패널에서 해당 변수를 드래그하여 그래프에 놓은 후Set
을 선택합니다.Set
노드의 입력 핀에 원하는 값을 연결하거나 직접 입력하여 변수의 값을 설정할 수 있습니다.
변수 값 가져오기 (Get 노드)
- 이벤트 그래프의 빈 공간에서 마우스 오른쪽 버튼을 클릭하여
Get PlayerScore
를 검색하여 선택합니다. 또는, 변수 패널에서 해당 변수를 드래그하여 그래프에 놓은 후Get
을 선택합니다. Get
노드는 해당 변수가 현재 가지고 있는 값을 출력 핀으로 내보냅니다. 이 값을 다른 노드의 입력으로 연결하여 사용할 수 있습니다.
예시: 플레이어 점수 관리
간단한 예시를 통해 변수 PlayerScore
를 활용해 봅시다.
Integer
타입의 PlayerScore
변수를 생성하고 기본값을 0
으로 설정합니다.
Event BeginPlay
노드에 연결하여 Print String
노드를 추가합니다. In String
핀에 Get PlayerScore
노드를 연결하여 현재 점수를 출력합니다. (컴파일 후 실행하면 "0"이 출력될 것입니다.)
이제 PlayerScore
를 100점 증가시키는 로직을 만들어봅시다.
Event BeginPlay
노드 뒤에Set PlayerScore
노드를 추가합니다.Get PlayerScore
노드를 추가하고, 이 노드의 출력 핀을Integer + Integer
노드의 첫 번째 입력 핀에 연결합니다.Integer + Integer
노드의 두 번째 입력 핀에100
을 입력합니다.Integer + Integer
노드의 출력 핀을Set PlayerScore
노드의 입력 핀에 연결합니다.- 마지막으로,
Set PlayerScore
노드 뒤에 또 다른Print String
노드를 연결하고,Get PlayerScore
를 다시 연결하여 변경된 점수를 출력합니다.
컴파일하고 게임을 실행하면, "0"이 출력된 후 잠시 뒤 "100"이 출력되는 것을 볼 수 있습니다. 이처럼 변수를 통해 게임의 상태를 저장하고 변경하며, 이를 로직에 활용할 수 있습니다.
이번 절에서는 블루프린트의 가장 기본적인 요소인 변수의 개념, 주요 유형, 그리고 생성 및 활용법에 대해 알아보았습니다. 변수는 앞으로 여러분이 만들 모든 블루프린트 로직의 근간이 될 것입니다.