데이터 레지스트리 퀵스타트

데이터 레지스트리 플러그인을 시작하는 방법을 알아봅니다.

Choose your operating system:

Windows

macOS

Linux

데이터 레지스트리(Data Registry) 를 사용하려면 Data Registry 플러그인을 활성화해야 합니다. 그러면 첫 데이터 레지스트리를 생성하고, 환경설정하고, 채울 수 있습니다.

  1. 편집(Edit) > 플러그인(Plugins) 으로 이동하여 Data Registry 플러그인을 활성화합니다. 플러그인(Plugins) 창이 나타나면 플러그인 이름으로 검색하거나 게임플레이(Gameplay) 카테고리에서 Data Registry 플러그인을 찾습니다. 플러그인을 찾았으면 활성화(Enabled) 체크박스가 체크되어 있는지 확인합니다.

    플러그인 창에 플러그인을 적용하려면 에디터를 재시작하라는 메시지가 표시된다면, 재시작한 뒤 다음 단계를 진행합니다.

    EnablePlugin.png

  2. 편집(Edit) > 프로젝트 세팅(Project Settings) 을 선택하여 프로젝트 세팅 창을 엽니다.

  3. 이제 왼쪽 패널의 게임(Game) 섹션에 Data Registry 라는 카테고리가 보입니다.

    이 카테고리가 보이지 않는 경우 Data Registry 플러그인을 활성화했는지 확인하고, 플러그인 활성화 이후에 에디터를 한 번 이상 재시작했는지 확인합니다.

  4. 오른쪽 패널에서 Directories to Scan 배열에 하나 이상의 엔트리를 추가합니다. 이렇게 하면 데이터 레지스트리 에셋을 찾을 위치가 시스템에 전달됩니다. 일반적인 엔트리는 /Game/DataRegistries 일 수도 있지만, 프로젝트를 구성하려는 방식에 따라 원하는 만큼 디렉터리를 추가할 수 있습니다. 이때 지정한 디렉터리가 모두 있는지 확인하고, 생성한 데이터 레지스트리 에셋이 모두 제자리에 있는지 검증하는 것이 좋습니다.

  5. 콘텐츠 브라우저(Content Browser)에서 Directories to Scan 으로 지정한 디렉터리 중 하나로 이동하여 새로운 데이터 레지스트리 에셋을 추가합니다. 이 작업을 수행하려면 오른쪽 패널의 빈 공간을 우클릭하고 컨텍스트 메뉴에서 기타(Miscellaneous) 를 확장하면 됩니다. 확장된 컨텍스트 메뉴에서 데이터 레지스트리(DataRegistry) 를 선택한 후 나타나는 목록에서 적절한 서브클래스를 선택합니다.

  6. 새로운 데이터 레지스트리 에셋을 명명하고 엽니다.

  7. Registry Type 필드에 전역 고유 이름을 입력합니다. [게임플레이 태그]()를 사용하여 이 데이터 레지스트리에 포함될 에셋을 확인하려면 Id Format 카테고리의 Base Gameplay Tag 필드에 태그를 설정합니다.

  8. Item Struct 필드에는 이 데이터 레지스트리에 포함될 구조체 타입을 설정합니다. 보통은 DataTableRowHandle 또는 SimpleCurve 로 설정하지만, 다양한 데이터 타입 중 무엇이라도 선택할 수 있습니다.

  9. Data Sources 배열에 하나 이상의 데이터 소스를 추가합니다. 엔트리별로 추가할 데이터 타입을 선택하고 데이터 출처를 지정해야 합니다. 내장된 데이터 타입을 사용하거나, 프로젝트 또는 활성화된 플러그인에서 정의한 타입을 추가할 수 있습니다. 이 시점에는 데이터 레지스트리에서 관리할 데이터가 일부 있어야 합니다.

    • 알려진 기존 에셋에서 행 데이터를 수집하는 DataTable 소스 또는 CurveTable 소스 같이 단순한 소스 타입의 경우 읽을 소스 에셋을 선택합니다. 테이블 규칙(Table Rules) 섹션에서는 지정한 에셋에서 제공되는 데이터 행의 캐싱 행동을 설명하므로 각자의 사용 사례에 적합한지 확인합니다.

    • 런타임에 새로운 데이터 소스를 생성하는 DataTable 메타 소스 또는 CurveTable 메타 소스 같은 메타 소스 타입의 경우 처리할 세팅이 몇 가지 더 있습니다. 생성할 소스 타입, 생성된 소스의 액세스 또는 레퍼런스 규칙, 시스템이 에셋을 찾는 방법을 결정하는 스캔 또는 사용 규칙을 선택합니다. 메타 소스는 에셋을 스캔하거나, C++ 코드에서 등록된 에셋을 수락하거나, 둘 다 할 수 있습니다.

    • 예를 들어 검색 경로를 /Game/SearchableDataTables 로 지정하되 *PrivateData* 를 제외할 수 있습니다. 이렇게 하면 'PrivateData' 서브스트링이 포함된 경로가 제거되므로 /Game/SearchableDataTables/PrivateData//Game/SearchableDataTables/SubPath/SomePrivateDataHere/ 등의 경로는 스캔되지 않습니다.

  10. 데이터 소스를 설정했다면 프로젝트의 구체적인 필요 사항에 맞게 캐시 규칙(Cache Rules) 을 환경설정합니다. 환경설정할 수 있는 세팅을 보려면 데이터 레지스트리 에디터의 캐시(Cache) 섹션을 확장합니다.

    데이터 레지스트리 기능은 아직 개발 중이므로 일부 세팅이 예상대로 작동하지 않을 수도 있습니다.

  11. 이때 데이터 레지스트리에 필요한 항목이 포함되어 있는지 확인하는 것이 좋습니다. 툴바의 새로고침(Refresh) 버튼을 클릭하고 레지스트리 프리뷰(Registry Preview) 탭에서 콘텐츠를 검토합니다. 이 탭에서는 현재 데이터 레지스트리에 알려진 모든 항목을 프리뷰할 수 있습니다. 결과가 예상과 다르다면 데이터 소스 규칙을 수정한 후 새로고침 버튼을 다시 클릭합니다.

    여러 소스에서 행을 가져오면 목록에 행이 여러 번 나타날 수 있습니다. 이는 오류가 아니며, 일반적으로 메타 소스가 단순 소스 또는 다른 메타 소스로 같은 데이터를 발견하였음을 나타냅니다. 여러 소스에 나타나는 데이터 항목을 얻으려 할 때는 순서가 중요합니다. 데이터 레지스트리가 처음으로 발견한 인스턴스에만 액세스할 수 있기 때문입니다.

    왼쪽 패널의 Data Sources 아래 있는 Runtime Sources 카테고리에서 데이터 레지스트리 내 각 항목의 인스턴스별 소스가 로드 순서에 따라 나열된 것을 확인합니다.

  12. 모든 것이 올바르면 데이터 레지스트리를 저장합니다. 향후 세션에서는 시작되는 동안 자동으로 로드되고 채워집니다. 데이터 레지스트리를 변경하는 경우 새로고침(Refresh) 버튼을 눌러 데이터 항목을 업데이트합니다.

  13. C++ 코드에서 데이터 레지스트리를 사용하려면 프로젝트의 Build.cs 파일을 엽니다. 실제 파일명에는 프로젝트 이름이 포함됩니다. 예를 들어 프로젝트 이름이 'MyProject'라면 파일명은 MyProject.Build.cs 가 됩니다. PublicDependencyModuleNames 변수를 설정하는 줄을 찾은 후 배열에 "DataRegistry" 를 추가합니다. 마지막 줄은 다음과 같아야 합니다.

    PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "DataRegistry" });

위의 단계를 완료하면 프로젝트가 데이터 레지스트리를 사용하도록 설정됩니다. 데이터 레지스트리의 작동 방식과 관련 이점을 알아보려면 데이터 레지스트리 메인 페이지를 참고하세요.