관리 메뉴

기억을 위한 기록들

[UnrealEngine] 데이터 테이블(DataTable) vs 데이터 애셋(Data Asset) 본문

UnrealEngine

[UnrealEngine] 데이터 테이블(DataTable) vs 데이터 애셋(Data Asset)

에드윈H 2023. 12. 26. 14:16

언리얼엔진을 이용한 개발 하다 보면, 다양한 데이터들을 런타임에 불러와서 사용할 때가 있는데, 언리얼 엔진 에디터를 통해서 다양한 데이터들을 다루고, 관리를 해야 한다.

 

프로그래머 혼자 뿐만 아니라 같이 작업하는 디자이너나 기획자들도 이런 언리얼 엔진 데이터를 수정하여 작업을 하게 되는데, 언리얼엔진에는 크게 데이터 테이블과 데이터 애셋이 존재한다.

 

어떤 경우에는 데이터 테이블을 통하고, 어떤 경우에는 데이터 애셋을 통해 관리하는 게 좋을지 궁금해서 찾아보았다.

 

그러다가 언리얼 에픽 온라인 러닝에 해당 주제로 강의

 

데이터 테이블

- CSV, JSON 등 데이터 파일 활용 가능 -> 이러한 외부 파일을 사용하여 데이터 채울 수 있음, 에디터를 통해서도 내부 작성도 가능

- 언어 팩과 같은 대용량의 단순 데이터에 적합.

- 중첩된 정보를 사용하여 작업하기가 더욱 어려워짐.

- 원하는 정보를 쉽게 검색 가능

- 로딩 시간이 길어질 수가 있다.

 

 

데이터 애셋 

- 내부 데이터 타입으로 채워진다 -> 에디터를 통해 작성됨.

- 작은 정보에 적합하다 -> 계층을 처리하고, 중첩된 정보를 잘 표시한다.

- 더 작은 정보에 이상적이다. -> 싱글 아이템들이지만, 쉽게 확장 가능하다.

- 정보들의 집합이 작일수록 로딩 속도가 빨라진다. 

 

 

사용 예

 

데이터 테이블

- 다이얼로그, 퀘스트 시스템

- 언어 시트(번역팩들)

- 게임 설정 관련.

- 레벨링과 진행 시스템

 

데이터 애셋

- 단일의 정보 (ex 적 A의 정보, 적 B의 정보 등)

-  작은 그룹의 정보 (ex 적들의 정보, 무기들의 정보 등)

 

 

정리하자면..

 

데이터 테이블을 통해, 주로 텍스트 기반 단순 데이터들에 적합하지 않을까 싶다. 이유로는 외부파일(csv, json)을 통해서 수정이 가능하기 때문이다.

데이터 애셋은 반대로 외부 파일을 통해 작업을 할수 없고 에디터 내부를 통해서만 데이터 수정이 가능하기에, 직접적인 영향을 주는 아이템, 아이템들의 정보, 적들의 정보 등을 처리하기에 적합하지 않을까 싶긴 한다. 정답은 없기 때문에 상황과 조건에 맞게 선택적으로 적합하게 진행해야 한다.

 

 

참고 : 

https://dev.epicgames.com/community/learning/courses/19G/unreal-engine-c/jO8J/unreal-engine-vs

 

데이터를 사용하여 C++ 워크플로 향상 | Course

이 강좌에서는 언리얼 엔진에서 데이터 에셋 및 테이블을 사용하여 C++ 워크플로의 속도를 높이는 방법을 배웁니다.

dev.epicgames.com

 

 

https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/DataDriven/

 

데이터 주도형 게임플레이 요소

외부 저장 데이터를 사용하여 게임플레이 요소를 구동시키는 법입니다.

docs.unrealengine.com

https://docs.unrealengine.com/5.3/ko/data-assets-in-unreal-engine/

 

데이터 에셋

언리얼 엔진의 데이터 에셋에 대한 정보입니다.

docs.unrealengine.com