icon
2장 : 블루프린트 기본 요소

변수 유형과 기본 활용법


이제 블루프린트의 기본적인 개념과 에디터 사용법을 익히셨으니, 블루프린트의 가장 핵심적인 요소 중 하나인 변수(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"이 출력되는 것을 볼 수 있습니다. 이처럼 변수를 통해 게임의 상태를 저장하고 변경하며, 이를 로직에 활용할 수 있습니다.


이번 절에서는 블루프린트의 가장 기본적인 요소인 변수의 개념, 주요 유형, 그리고 생성 및 활용법에 대해 알아보았습니다. 변수는 앞으로 여러분이 만들 모든 블루프린트 로직의 근간이 될 것입니다.