Choose your operating system:
Windows
macOS
Linux
언리얼 엔진 4.15 버전 릴리즈 이후 UE4 의 Blueprint Application Programming Interface (API) 에 Set (세트) 컨테이너 유형이 추가되었습니다. "컨테이너" 라는 것은, 보관 상자같은 것에 아이템 라벨을 붙인 뒤 박스 안에 넣어두고 바로 (아니면 나중에) 사용하는 것을 말합니다. 배열을 사용하여 아이템 컬렉션을 저장 및 작업을 해 봤다면, 이미 UE4 에서 블루프린트 컨테이너 사용을 해 본 것입니다. 예를 들어 배열로 나중에 사용할 아이템을 저장하면 아이템의 라벨은 배열에 있는 것이지만, 세트를 사용하면 라벨이 아이템 자체가 되는 것입니다. 세트로 인해 블루프린트 API 가 강력해 지는 것입니다.
블루프린트 세트는 블루프린트 API 추가 기능 중 흥미로운 것인데, 키를 통한 효율적인 룩업 및 값 구하기를 지원하기 때문입니다. 여기서 키가 곧 아이템 자체 세트의 특징 덕에, 개발자들은 컨테이너에 위치한 아이템을 효율적으로 추가, 검색, 제거할 수 있습니다. 게임에 따라 세트는 대화에 흔히 사용되는 단어를 무시하거나, 독특한 인벤토리 아이템을 저장하는 데도 사용할 수 있습니다. 명확히, 세트로 작업할 수 있는 예는 많이 있지만, 게임에 세트의 막강한 힘을 활용하기 전 UE4 에서 제대로 사용하기 위해 배워야 할 것들이 있습니다.
이 글을 통해 블루프린트 세트 생성 몇 편집 방법에 대해 배우게 될 것입니다. 블루프린트 세트의 프로퍼티에 대한 설명 역시 게임 프로젝트에 세트를 최대한 활용하는 데 도움이 될 것입니다.
세트 생성
블루프린트 세트를 새로 생성하는 방법은 다음과 같습니다.
-
작업할 블루프린트 클래스가 없는 경우, 신규 추가 버튼으로 새 블루프린트 클래스를 프로젝트에 추가합니다.
-
이제 부모 클래스 선택 메뉴에 표시되는 클래스 목록에서 Actor 를 선택합니다.
-
액터 클래스 이름을 지은 후, 계속해서 콘텐츠 브라우저 안에 새로 생성된 액터 클래스를 더블 클릭하여 엽니다.
-
액터의 블루프린트 스크립트 편집을 시작하려면, 이벤트 그래프 탭을 선택합니다.
-
액터의 이벤트 그래프 가 열린 상태로 마우스 커서를 변수 서브메뉴에 올리면 + 변수 버튼이 드러납니다.
-
새로운 String 변수를 생성하고 이름을
MyStringSet
라 합니다. -
현재
MyStringSet
은 단일 String 변수입니다.MyStringSet
를 Set 컨테이너로 변환하려면, 액터의 디테일 패널 내 Variable Type (변수 유형) 라벨 오른편에 위치한 Variable Type (변수 유형) 버튼을 클릭합니다. -
나타나는 드롭다운 메뉴에 네 가지 컨테이너 옵션이 표시됩니다. { } 옵션을 선택하면
MyStringSet
가 블루프린트 세트로 변환됩니다.
좋습니다, 이제 막 새로운 String Set 컨테이너를 만들었습니다 (이름은
MyStringSet
).
세트 편집
새로 생성된 세트 편집을 하려면, Set 변수 컨테이너를 캡슐화시킨 블루프린트를 컴파일해야 합니다.
-
MyStringSet
를 편집하려면, 블루프린트의 컴파일 버튼을 클릭합니다. -
블루프린트를 컴파일한 이후 Set 의 ( 디테일 패널에 위치한) Default Value (기본 값)에
MyStringSet
이 비어 있음을 알 수 있습니다. -
새로운 String 엘리먼트를
MyStringSet
에 추가하려면, 디테일 패널 Default Value 메뉴의 0 Set elements 옆에 위치한 + 버튼을 클릭합니다. -
계속해서 + 버튼을 다시 한 번 누릅니다.
새로운 엘리먼트의 기본 값을 업데이트하기 전 블루프린트 Set 에 엘리먼트를 추가하려 하면 언리얼 에디터에서 경고가 날 것입니다.
-
MyStringSet
에 엘리먼트를 셋 추가하고, 이름을Apple
,Banana
,Cherry
라 합니다. -
이제 엘리먼트를 하나 더 추가하고, 이름을
Banana
라 합니다.기존 값과 같은 값으로 새 엘리먼트를 추가하려 하면 언리얼 에디터에서 경고가 날 것입니다.
-
앞서 말한 경고를 염두에 두고, 계속해서 네 번째 엘리먼트
Date
를 추가합니다.
잘 하셨습니다! 이제 새로운 블루프린트 Set 를 추가하고, 엘리먼트 넷을 추가 및 편집했습니다.
컨테이너 프로퍼티
UE4 에서 블루프린트 Set 사용을 시작하려면 다음 프로퍼티 목록을 참고하세요.
-
세트의 아이템( 또는 엘리먼트)는 고유해야 합니다.
-
세트의 모든 항목은 정의(초기화)되어야 합니다 .
-
내부적으로 세트에 저장된 아이템은 순서가 없습니다.
-
세트의 모든 아이템은 동질성입(유형이 동일합)니다.
-
세트의 아이템 추가, 제거, 검색 작업은 빠릅니다.
-
세트의 아이템 값은 검색에 사용되는 키이기도 합니다.
-
현재 블루프린트 세트는 변경불가(immutable)합니다. 생성한 후에는 변경할 수 없다는 뜻입니다.
블루프린트에서 세트를 생성 및 편집하는 법을 배웠으니, 블루프린트 세트 노드 레퍼런스에서 블루프린트 Set 노드 인터페이스에 대해 더욱 자세히 배워보실 수 있습니다.