개요
컬렉션 매니저 스크립팅 서브시스템(Collection Manager Scripting Subsystem)은 블루프린트를 통해 컬렉션 시스템에 대한 액세스를 제공하도록 만들어졌습니다. 여기에는 컬렉션을 생성하고 삭제하는 기능과 더불어 지정된 컬렉션 내에 에셋을 추가하고 제거하고 검색하는 기능도 포함됩니다.
컬렉션 관리는 현재 에셋 태그 서브시스템(Asset Tags Subsystem)을 통해 블루프린트에 노출되어 있습니다. 이 시스템은 컬렉션을 위한 에디터 및 게임 함수 기능을 모두 제공합니다. 에디터 함수 기능에는 컬렉션 생성, 삭제, 수정 기능이 포함되어 있지만, 게임 함수 기능은 컬렉션을 읽고 검색하는 기능만 제공합니다.
컬렉션 매니저 서브시스템이 해결한 한계
에셋 태그 서브시스템에는 두 가지 한계가 있었는데 새로운 시스템 덕분에 해결되었습니다.
콘텐츠 컨테이너
언리얼 엔진 5.6 이전에는 모든 컬렉션이 베이스 게임 프로젝트에 저장되고 연결되었습니다. 모듈형 워크플로(예: 메타버스 워크플로 프로젝트)를 강화하기 위해, 컬렉션 컨테이너(Collection Container)가 도입되었습니다. 컬렉션 컨테이너는 컬렉션 세트를 베이스 게임 프로젝트가 아닌 다른 프로젝트와 연결하는 기능을 제공합니다. 컬렉션 매니저 스크립팅 서브시스템을 사용하면 블루프린트가 이러한 컨테이너에 액세스할 수 있으므로 블루프린트 작성자는 여러 프로젝트에 걸쳐 컬렉션에 액세스할 수 있습니다.
컬렉션 접근성
내부적으로 컬렉션에는 세 가지 접근성 레벨이 있습니다.
로컬(Local): 소스 컨트롤이 불가합니다. 사용자 컴퓨터에 로컬로 저장되며 해당 사용자만 액세스할 수 있습니다.
프라이빗(Private): 소스 컨트롤이 가능하지만 작성한 사용자만 액세스할 수 있습니다.
공유(Shared): 소스 컨트롤이 가능하며 팀원 모두가 액세스할 수 있습니다.
에셋 태그 서브시스템은 이러한 공유 타입을 블루프린트에 노출하지 않습니다. 따라서 이름은 같지만 공유 타입이 다른 컬렉션을 서로 구분할 수 없습니다. 현재 형태에서는 컬렉션 이름이 제공되면 시스템에서 이름이 같은 항목 중 가장 먼저 발견된 항목을 반환합니다. 이 경우 두 컬렉션의 이름은 같으나 공유 타입이 다른 경우 문제가 될 수 있습니다. 블루프린트 작성자가 실수로 잘못된 컬렉션을 타깃으로 지정할 수 있기 때문입니다.
컬렉션 매니저 스크립팅 서브시스템은 공유 타입을 노출하므로 작성자는 타기팅한 컬렉션을 명시적으로 지정해야 합니다.
추가 개선 사항
에셋 태그 서브시스템의 기능을 확장하는 방법도 있었지만, 그보다 다음과 같은 두 가지 주요 이유 때문에 서브시스템을 새로 만들기로 했습니다.
| 개선 사항 | 설명 |
|---|---|
더 명확한 이름 지정으로 검색 기능 향상 | 기본 기능과 일치하는 이름을 지정하면 블루프린트 작성자가 더 쉽게 시스템을 발견하고 용도를 파악할 수 있습니다. |
에디터 전용 구현 | 에셋 태그 서브시스템은 에디터와 게임 모두를 위해 컴파일하는 반면, 컬렉션 매니저 스크립팅 서브시스템은 에디터를 위해서만 컴파일하므로 사용 방법에 대한 모호함이 없어집니다. |
함수 기능 변경사항
다음 에셋 태그 서브시스템 에디터 전용 함수는 이제 지원 중단되며, 컬렉션 매니저 스크립팅 서브시스템에 해당하는 함수로 전환될 것입니다.
| 지원 중단 함수: | 현재 함수: |
|---|---|
| 에셋 태그 서브시스템 | 컬렉션 매니저 스크립팅 서브시스템 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
| |
| |
| |
|
다음 게임 내 함수는 계속해서 런타임 때 지원됩니다.
CollectionExistsGetCollectionsGetAssetsInCollectionGetCollectionsContainingAssetGetCollectionsContainingAssetDataGetCollectionsContainingAssetPtr