변수(Variables) 는 값을 가지거나 월드 내 오브젝트나 액터를 참조하는 프로퍼티입니다. 이러한 프로퍼티는 내부적으로는 해당 프로퍼티가 포함된 블루프린트(Blueprint) 에서 액세스 가능하며, 외부적으로 액세스 가능하도록 만들어 레벨에 배치된 블루프린트의 인스턴스로 작업하는 디자이너가 해당 값을 변경할 수도 있습니다.
변수는 변수 이름이 포함된 둥근 모서리의 박스로 표시됩니다.

변수 타입
변수는 부울, 인티저, 플로트와 같은 데이터 타입뿐만 아니라 오브젝트, 액터, 특정 클래스 등을 보관하기 위한 레퍼런스 타입을 비롯해 다양한 타입으로 생성할 수 있습니다. 각 변수 타입의 배열도 생성 가능하며, 각 타입은 쉽게 식별할 수 있도록 컬러 코딩되어 있습니다.
변수 타입 | 컬러 | 예시 | 값 |
---|---|---|---|
부울(Boolean) | 밤색 | ![]() |
True 또는 False 값입니다( bool ). |
바이트(Byte) | 청록색 | ![]() |
0~255 사이의 정수 값입니다( unsigned char ). |
인티저(Integer) | 어두운 청록색 | ![]() |
-2,147,483,648~2,147,483,647 사이의 정수 값입니다( int ). |
인티저64(Integer64) | 황록색 | ![]() |
-9,223,372,036,854,775,808~9,223,372,036,854,775,807 사이의 정수 값입니다( long ). |
플로트(Float) | 연두색 | ![]() |
0.0553, 101.2887, -78.322와 같은 소수 값입니다( float ). |
이름(Name) | 연보라색 | ![]() |
게임 내 요소를 식별하는 데 사용되는 텍스트입니다. |
스트링(String) | 자홍색 | ![]() |
Hello World 와 같은 영숫자 문자 집합입니다( string ). |
텍스트(Text) | 분홍색 | ![]() |
사용자에게 표시할 텍스트입니다. 현지화하고자 하는 텍스트의 경우 이 타입을 사용합니다. |
벡터(Vector) | 금색 | ![]() |
3개 숫자(X, Y, Z) 세트입니다. 이 타입은 3D 좌표 및 RGB 컬러 데이터에 유용합니다. |
로테이터(Rotator) | 연한 파란색 | ![]() |
3D 스페이스 내 회전을 정의하는 숫자 집합입니다. |
트랜스폼(Transform) | 주황색 | ![]() |
이동(3D 위치), 회전, 스케일을 결합한 데이터 세트입니다. |
오브젝트(Object) | 파란색 | ![]() |
라이트, 액터, 스태틱 메시, 카메라, 사운드 큐 등의 블루프린트 오브젝트입니다. |
내 블루프린트 탭의 변수
내 블루프린트(My Blueprint) 탭을 통해 커스텀 변수를 블루프린트에 추가하고, 컴포넌트 목록에 추가된 컴포넌트 인스턴스 변수나 그래프에서 값을 변수로 승격하여 생성된 변수를 비롯한 기존 변수를 나열할 수 있습니다.

퍼블릭 변수
블루프린트 외부에서 변수를 수정할 수 있으려면 퍼블릭으로 설정해야 합니다.

기본적으로 눈 모양 아이콘은 감겨 있으며(프라이빗), 눈 모양 아이콘을 선택하여 눈을 뜬 상태가 되면 퍼블릭으로 설정됩니다. 인스턴스 편집가능 박스를 선택하거나 지워서 변수를 프라이빗 또는 퍼블릭으로 설정할 수도 있습니다.
변수를 퍼블릭으로 설정한 후에는 메인 에디터 창의 디테일 패널에서 값을 수정할 수 있습니다.

위의 변수 LightColor 가 편집가능으로 설정되어, 이제 이 값을 레벨 에디터의 디테일 패널에서 설정할 수 있습니다.
변수 툴팁
에디터에서 변수 위에 커서를 올리면 나타나는 툴팁 을 변수에 추가할 수도 있습니다.

변수의 디테일 패널에서 툴팁 을 추가할 수 있습니다. 이때 변수가 퍼블릭 으로 설정된 경우, 눈 모양 아이콘이 노란색에서 녹색으로 변경되어 변수에 대한 툴팁이 작성되었음을 나타냅니다.

스폰 시 노출
스폰 시 노출(Expose on Spawn) 을 통해 변수가 포함된 블루프린트 스폰 시점에 해당 변수에 액세스 가능한지 여부를 설정할 수 있습니다.

위의 LightColor 변수는 스폰 시 노출 로 설정된 선형 컬러 프로퍼티입니다. 이 변수는 Set Light Color 노드와 LightColor 변수를 사용하여 라이트의 컬러를 결정하는 포인트 라이트용 블루프린트에서 구현됩니다.
아래 이미지와 같이 다른 블루프린트 내에서 스크립트를 사용하여 포인트 라이트 블루프린트를 스폰하며, LightColor 변수가 스폰 시 노출로 설정되어 있기 때문에 해당 값을 설정하는 옵션이 Spawn Actor from Class 노드에 제공됩니다. 이 옵션으로 게임 월드에서 라이트가 스폰될 때 컬러를 설정할 수 있습니다.

프라이빗 변수
변수의 프라이빗(Private) 옵션이 체크되어 있으면 변수가 외부 블루프린트에서 수정되는 것을 방지합니다.
예를 들어, 아래와 같이 프라이빗으로 설정되지 않은 변수가 있습니다.

또 다른 블루프린트 내에서 해당 변수가 포함된 블루프린트를 스폰한 다음 반환 값(Return Value) 을 통해 변수에 액세스할 수 있습니다.

하지만 아래와 같이 변수를 프라이빗으로 설정한 경우

블루프린트를 다시 스폰하여 해당 변수에 액세스하려고 시도하면 액세스가 불가능합니다.

시네마틱에 노출
변수 값이 시퀀서(Sequencer) 의 영향을 받도록 하려면 시네마틱에 노출 을 선택합니다.
시퀀서에 대한 자세한 내용은 시퀀서를 사용한 리얼타임 컴포짓을 참조하세요.
변수로 승격하기
변수로 승격(Promote to Variable) 을 사용하여 변수를 생성할 수도 있습니다.
블루프린트 노드의 입력 또는 출력 데이터 핀을 우클릭하고 변수로 승격 을 선택합니다.

New Light Color 핀을 우클릭하고 변수로 승격 을 선택하여 변수에 새 라이트 색(New Light Color) 값을 할당할 수 있습니다.

아니면 입력 또는 출력 핀에서 드래그하여 변수로 승격 을 선택해도 됩니다.

블루프린트에서 변수에 액세스하기
블루프린트에서 변수 작업 시 게터라고도 하는 Get 노드를 사용하여 변수 값을 얻거나, 세터라고도 하는 Set 노드를 사용하여 변수 값을 설정하는 두 가지 방식 중 하나로 블루프린트의 변수에 액세스하게 됩니다.

그래프에서 우클릭하고 Set(변수 이름) 또는 Get(변수 이름) 을 입력하여 변수에 대한 Set 노드(위의 1번) 또는 Get 노드(위의 2번)를 생성할 수 있습니다. 또 다른 방법으로는 내 블루프린트 창의 변수를 Ctrl 을 누른 채로 드래그하여 Get 노드를 생성하거나, Alt 를 누른 채로 드래그하여 Set 노드를 생성할 수 있습니다.
변수 편집하기
변수 값은 블루프린트 노드 네트워크의 일부로 설정하거나, 실행 전의 디폴트값으로 설정할 수 있습니다. 변수 디폴트값을 설정하려면 다음 단계를 따릅니다.
-
블루프린트 에디터 툴바에서 클래스 디폴트(Class Defaults) 를 클릭하여 디테일 패널에 디폴트(Defaults)를 엽니다.
-
디테일 패널에서 변수 이름 오른쪽에 원하는 디폴트값을 입력합니다.
위에 디폴트 컬러를 설정할 수 있는 Color 변수가 하이라이트되어 있습니다.
디폴트 섹션에 변수 목록이 보이지 않으면 컴파일 을 클릭합니다.
변수 이름 변경하기
변수의 이름을 변경하려면 다음 단계를 따릅니다.
-
내 블루프린트(My Blueprint) 탭에서 변수 이름을 우클릭하면 표시되는 메뉴에서 이름 변경(Rename) 을 선택합니다.
-
텍스트 박스에 새 변수 이름을 입력한 다음 Enter 를 누릅니다.
변수 프로퍼티
변수의 모든 프로퍼티는 디테일 패널에서 설정할 수 있습니다. 일부 변수의 경우 벡터의 시네마틱에 노출 또는 인티저나 플로트 같은 숫자 값의 슬라이더 범위 등 여기에 표시된 것보다 많은 프로퍼티가 있을 수 있습니다.
프로퍼티 | 설명 |
---|---|
변수 타입(Variable Type) | 드롭다운 메뉴에서 변수 타입을 설정하고 변수가 배열인지 여부를 결정합니다. |
인스턴스 편집가능(Instance Editable) | 클래스 디폴트 와 블루프린트의 디테일 탭에서 변수 값을 편집할 수 있는지 여부를 설정합니다. |
툴팁(Tooltip) | 변수의 툴팁을 설정합니다. |
프라이빗(Private) | 이 변수가 프라이빗이며 파생된 블루프린트에서 수정되지 않는지 여부를 설정합니다. |
카테고리(Category) | 기존 카테고리에서 선택하거나 새 카테고리 이름을 입력합니다. 카테고리를 설정하면 변수가 클래스 디폴트, 내 블루프린트 탭, 블루프린트 디테일 탭의 어느 위치에 나타나는지 결정됩니다. |
리플리케이션(Replication) | 변수 값이 클라이언트에서 리플리케이트되는지 여부와 값이 리플리케이트된 경우 콜백 함수를 통해 알리는지 여부를 선택합니다. |
고급 변수 프로퍼티
프로퍼티 | 설명 |
---|---|
환경설정 변수(Config Variable) | 환경설정 파일이 있는 경우 이 파일에서 디폴트값을 읽도록 할지 여부입니다. 이 옵션을 사용하여 여러 프로젝트와 환경설정 간의 변수 디폴트값 및 비헤이비어를 커스터마이징할 수 있습니다. |
트랜션트(Transient) | 시리얼라이즈하지 않고 로드 시 0으로 채웁니다. |
세이브게임(SaveGame) | 저장된 게임에 대해 시리얼라이즈됩니다. |
고급 디스플레이(Advanced Display) | 기본적으로 클래스 디폴트 창에 숨겨져 있습니다. |
여러 줄(Multi line) | 여러 줄을 표시할 수 있습니다. 변수 편집 중에 새 줄을 추가하려면 Shift + Enter를 누릅니다. 참고: 이 옵션은 스트링 및 텍스트 변수에만 적용됩니다. |
폐기됨(Deprecated) 폐기 메시지(Deprecation Message) |
폐기됩니다. 이 변수를 참조하는 노드에는 제거 또는 대체되어야 한다는 컴파일러 경고가 표시됩니다. (선택사항) 경고에 포함할 메시지를 지정할 수 있습니다. 예를 들어 다음과 같이 할 수 있습니다. X is no longer supported. Please use Y instead. |
변수 값 얻기 및 설정하기
변수는 Get 및 Set 노드를 통해 블루프린트 네트워크의 일부로 편집할 수 있습니다. 이러한 노드를 생성하는 가장 쉬운 방법은 변수를 변수 탭에서 이벤트 그래프로 직접 드래그하는 것입니다. 작은 메뉴가 나타나 Get 또는 Set 노드를 생성할 것인지 묻습니다.

Get 노드
Get 노드는 네트워크의 일부에 변수 값을 공급합니다. 생성된 Get 노드는 적절한 타입을 받는 모든 노드에 연결할 수 있습니다.

Set 노드
Set 노드를 통해 변수 값을 변경할 수 있습니다. 이 노드를 실행하려면 실행 와이어로 호출해야 합니다.

내 블루프린트 탭에서 드래그 시 단축키 | |
---|---|
Ctrl + 드래그 | Get 노드를 생성합니다. |
Alt + 드래그 | Set 노드를 생성합니다. |