728x90
Data Table 로더 란?
- CSV 혹은 JSON 형태로 저장된 게임 데이터를 Unreal Engine 에서 사용 가능한 Data Table Asset 으로 전환한다.
- 이 글에서는 CSV를 기반으로 제작하였다.
- CSV 혹은 JSON 을 바로 엔진에 Import 도 가능하지만, 테이블이 많고, 자주 추가될 때 번거로움을 줄이고자 이 과정을 자동화하는 것에 의의가 있다.
- 기본적으로 데이터를 Import 하기 위해서는 Data Table Asset 을 생성하기 위한 'Structure' 가 필요하다. 이 Structure 는 FTableRowBase 라는 언리얼 엔진 스크립트를 상속받아 작성한 구조체여야 한다. 이 구조체를 테이블이 추가될 때 마다 일일히 작성하기 번거로우므로 충분히 자동화할 가치가 있다.
- 언리얼 엔진은 Python 스크립트를 통한 에디터 확장을 제공한다. 이를 사용한다.
- 이 툴은 개인의 생각으로 만든 것이기에 부족함이나 오류가 있을 수 있다.
1. 엑셀을 사용한 데이터 작성
엑셀을 사용하였지만, 엑셀이 아닌 어떤 도구를 사용해도 CSV를 만들 수 만 있다면 상관없다.
먼저 아래와 같은 형태로 데이터를 작성할 것이다.
엑셀 작성 규칙은 다음과 같다.
- 데이터가 작성되는 첫 행에는 데이터 타입이 들어간다. (int, float ...)
- 타입이 들어간 다음 행에는 해당 타입을 가질 '열의 이름' 이 들어간다. (Id, Power, Hp, Mp...)
- Id 열은 고유한 Key 값이므로 중복을 제거한다.
- 테이블로 사용할 작성된 영역에서는 빈 셀이 존재하면 안된다. 즉, 위 사진에서 102번 Id 를 가진 행에서 Power 가 비어있으면 안된다. 데이터가 무의미하거나 없다면 숫자 '0' 이라도 적어야 한다.
- 위 사진의 1 ~ 8 행 처럼 빈 공간은 테이블 작성자의 자유로운 메모 영역으로 사용가능하나, 문자열 "Id" 만 있는 셀이 존재해서는 안된다. 'Id' 셀은 항상 고유해야한다.
이 규칙은 본인이 정한 규칙이므로,
사용 목적에 맞게 테이블을 작성하는 사람과 협의를 통해 규칙을 정하면 된다.
단, 이 규칙에 따라 Tool 의 코드 또한 규칙에 맞게 수정해야할 것이다.
데이터가 작성되었다면, 해당 파일을 메모장과 같은 편집기로 열어보면 다음과 같은 형태로 보일 것이다.
콤마 구분을 사용한 CSV 파일이라 열 구분이 콤마로 출력된다.
혹시, 엑셀을 CSV 로 저장하는 법을 모르겠다면 엑셀에서 [다른 이름으로 저장 - CSV] 를 사용하면 된다.
그래도 모르겠다면 검색을 해보고, 이 글에서는 설명하지 않겠다.
여기까지 하면 데이터 준비는 끝났다.
2024.01.24 - [언리얼5 & C++] - [언리얼5] Data Table 로더 만들기 *2부* (CSV) with Python / C++ 구조체 생성기 작성하기
728x90
'언리얼5 & C++' 카테고리의 다른 글
[언리얼5] Data Table 로더 만들기 *3부* (CSV) with Python / 에셋 생성하기 (1) | 2024.01.24 |
---|---|
[언리얼5] Data Table 로더 만들기 *2부* (CSV) with Python / C++ 구조체 생성기 작성하기 (2) | 2024.01.24 |
[언리얼 파이썬 스크립팅] 언리얼 Pycharm 자동 완성하는법 (삽질 노가다 끝에 공유) (0) | 2024.01.22 |
[Unreal 5, C++] 적 AI 생성하기 : 2 / 적이 나를 조준하게 하기 (0) | 2022.06.28 |
[Unreal 5, C++ & Blueprint] 적 AI 생성하기 : 1 (0) | 2022.06.28 |