본문 바로가기

분류 전체보기110

[언리얼5] Data Table 로더 만들기 *4부* / 커스텀 에디터 버튼 생성하고 기능연결 전체 소스 코드는 GitHub 에 있습니다. CSV 로 시작하는 것이 Excel 을 번거롭게 다른이름으로 저장할 필요가 있어서,신버전을 만들었습니다. 1. CSV -> DataTableAsset (구버전)https://github.com/Kympy/Unreal_CSV_To_DataTableAsset GitHub - Kympy/Unreal_CSV_To_DataTableAsset: Python tool for unreal 5 / CSV to DataTable Asset and auto generate C++ StructPython tool for unreal 5 / CSV to DataTable Asset and auto generate C++ Struct - Kympy/Unreal_CSV_To_DataTa.. 2024. 6. 13.
언리얼5 C++ | 서브 레벨 스트리밍, 맵 로드 하기 서브 레벨 스트리밍언리얼에서 Level 은 유니티의 Scene 과 유사한 개념이다. 유니티에서도 Scene 을 Additional 모드로 로드가 가능하듯이언리얼에서도 Level 을 Streaming 상태로 로드가 가능하다. 즉, 아트작업자가 A라는 Level을 만들고, 해당 Level 에서 조명, 맵, 등등을 세팅하고세팅된 A 를 사용하게 될 B 라는 실제 빌드용 Level 에서Streaming Level 로 A를 등록해두면A 가 현재 B Level 에 겹쳐서 로드된다. 아트 작업자는 A 레벨에서 작업을 하고코드 작업자는 B 레벨에서 코드를 작성하면작업 간에 충돌이 없을 뿐 더러, 에디터에서도 상시로 A + B 형태로 존재도 가능하다. 사실 근본적인 기술의 용도는https://docs.unrealengi.. 2024. 2. 16.
언리얼5 C++ | 레벨 열기와 특정 게임모드로 레벨 열기 레벨을 여는 방법은 간단하다. UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContextObject", AdvancedDisplay = "2", DisplayName = "Open Level (by Name)"), Category="Game") static ENGINE_API void OpenLevel(const UObject* WorldContextObject, FName LevelName, bool bAbsolute = true, FString Options = FString(TEXT(""))); UGameplayStatics 에 정의된 OpenLevel 함수를 사용하면 된다. const UWorld* World = GetWorld(); check(.. 2024. 2. 16.
[언리얼5] Data Table 로더 만들기 *3부* (CSV) with Python / 에셋 생성하기 Data Table Asset 1. 전체 코드 2부에서 했던 것처럼 asset_generator.py 파일을 생성하고 아래 코드를 작성한다. import unreal import os import csv import sys # 프로젝트 명 project_name = "RottenPotato" # 데이터 테이블 클래스 asset_class = unreal.DataTable # 데이터 테이블 에셋 저장 경로 asset_path = "/Game/Table" # CSV 파일이 존재하는 폴더 경로 csv_folder = unreal.SystemLibrary.get_project_directory() + "CSV" # struct_path : ex) "/Script/RottenPotato.TestTable" # 데.. 2024. 1. 24.
[언리얼5] Data Table 로더 만들기 *2부* (CSV) with Python / C++ 구조체 생성기 작성하기 C++ 테이블 구조체란? 언리얼에서 Data Table Asset 을 만들거나 CSV 혹은 JSON 형태의 데이터를 Import 시키기 위해서는 베이스가 될 구조체를 반드시 고르게 되어 있다. 엔진에서 기본적으로 제공하는 구조체는 원하는 게임 제작 방향에서 대부분 맞지 않을 것이므로 커스텀한 구조체 생성이 필요하다 이 구조체는 C++ 로 작성가능하고, USTRUCT 의 형태로 만들어지며 FTableRowBase 를 상속받는다. 해당 스크립트는 테이블에 선언된 타입의 변수들의 나열로 이루어진다. 먼저 완성본을 보고 시작하자. 1. Python Plugin 설치 먼저 언리얼 엔진에서 Python 플러그인을 설치해야 한다. 설치 방법과 Python 스크립트 작성 시 필요한 자동완성(Intellisense) 설.. 2024. 1. 24.
[언리얼5] Data Table 로더 만들기 *1부* (CSV) with Python / 데이터 작성하기 Data Table 로더 란? CSV 혹은 JSON 형태로 저장된 게임 데이터를 Unreal Engine 에서 사용 가능한 Data Table Asset 으로 전환한다. 이 글에서는 CSV를 기반으로 제작하였다. CSV 혹은 JSON 을 바로 엔진에 Import 도 가능하지만, 테이블이 많고, 자주 추가될 때 번거로움을 줄이고자 이 과정을 자동화하는 것에 의의가 있다. 기본적으로 데이터를 Import 하기 위해서는 Data Table Asset 을 생성하기 위한 'Structure' 가 필요하다. 이 Structure 는 FTableRowBase 라는 언리얼 엔진 스크립트를 상속받아 작성한 구조체여야 한다. 이 구조체를 테이블이 추가될 때 마다 일일히 작성하기 번거로우므로 충분히 자동화할 가치가 있다. .. 2024. 1. 24.