본문 바로가기

언리얼5 & C++17

[메모] 언리얼에서 배경을 투명으로 PNG 캡쳐하기 1. 캡쳐 대상의 Skeletal, Static Mesh Component 의 Rendering 섹션에서 Custom Stencil Value 를 지정한다. 2. 프로젝트 설정의 Rendering 섹션에서 Custom Depth-Stencil Pass 를 Enabled with Stencil 로 설정3. Enable alpha channel support 도 Allow through tonemapper 로 설정  4. 머터리얼 생성 5. SceneCapture 액터에서 PostProcess Settings 을 만든 Material 로 지정한다. 6. 코드에서 비트맵을 읽고 PNG 로 저장 2024. 11. 21.
런타임 생성 물체를 Navigation System 에서 인식하는법 1. Project Setting 이나 RecastNavMesh 액터에서 Runtime Generation 옵션을 찾습니다.2. Static, Dynamic, Dynamic Modifiers Only 옵션 중 Dynamic 계열로 변경합니다.3. 생성하는 액터에 NavMesh Modifier 컴포넌트가 부착되어야 합니다.3-1. 원하는 크기에 맞게 extend 가 설정되어 있어야 합니다. 기본값은 (100, 100, 100).  이렇게 하면 물체 생성/삭제 시에 Navigation System 에서 Octree 에 등록/제거 하는 것으로 보입니다.따라서, NPC 들의 길찾기 등이 해당 물체를 고려하여 작동됩니다. 2024. 11. 18.
[언리얼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.