⭐ Unreal Engine/UE Plugin - Custom Editor Tool
[UE] Actor 복제 및 SRT 변경하는 Tool 만들기
[UE] Actor 복제 및 SRT 변경하는 Tool 만들기
2023.12.11언리얼 엔진 에디터에서 Actor를 배치하거나 위치를 조작하는 경우는 흔하다. 예를 들어, 맵에 몬스터 100마리를 배치한다고 가정했을때 몬스터 한마리 한마리 배치하기 시작하면 시간이 너무 많이 소요된다. 이 때, 몬스터 100마리를 각각 X, Y좌표로 1000 간격으로 배치하고 바라보는 방향으로 랜덤으로 돌리면 빠르게 맵에 배치할 수 있고 테스트하기도 좋다. 이런 기능을 담당하는 툴을 만들었다. 목차 Actor SRT Tool 만들기 UEditorSubsystem 기능을 사용할 것이다 UEditorActorSubsystem TArray GetSelectedLevelActors() TArray GetAllLevelActors() QuickActorActionWidget 생성 새 C++ 클래스 - Edit..
[UE] Texture로 Material 생성하기
[UE] Texture로 Material 생성하기
2023.12.07언리얼 엔진에서는 Material과 Material Instance를 사용해서 Texture들을 묶어서 관리한다. Texture의 종류로는 Metalic, Roughness, Normal, Ambient Occulution, BaseColor 등 다양하다. 이번에는 이런 다양한 Texture들을 선택한 후 버튼 클릭 하나로 Material를 생성하고 Material 내의 Texture들의 노드를 자동으로 이어주도록 할 것이다. 목차 Material 생성 버튼 WBP로 만들기 UEditorUtilityWidgets를 상속받는 위젯클래스 QuickMaterialCreationWidget UEditorUtilityWidgets를 상속받는 위젯클래스를 만들어 사용할 것이다 UEditorUtilityWidgets..
[UE] Content Browser Extender Menu에 아이콘 등록하기
[UE] Content Browser Extender Menu에 아이콘 등록하기
2023.12.07Content Browser Extender Menu에 아이콘 등록하기 아이콘 등록하기 구현방법 1. Custom FSlateStyle Set에서 할 일 Custom FSlateStyle Set으로 사용할 SWManageStyle 클래스를 만들고 아래 작업들을 수행한다. Style set 이름 설정하기 static FName StyleSetName; Custom Style set 생성하기: static TSharedRef CreateSlateStyleSet(); 파일 경로를 가져와서 Icon 이미지를 로드 TSharedRef CustomStyleSet = MakeShareable(new FSlateStyleSet(StyleSetName)); const FString IconDirectory = IPlug..
[UE] Slate UI 2: 제거 마법사 - 에셋 리스트 띄우기
[UE] Slate UI 2: 제거 마법사 - 에셋 리스트 띄우기
2023.12.01Content Menu Extender에 제거 마법사를 만들어 선택한 폴더에 들어있는 에셋들을 한 눈에 볼 수 있도록 만들것이다. 이번시간에는 Slate UI 내에 에셋리스트를 띄울 것이다. 다음 시간에는 띄운 에셋 리스트를 삭제할 수 있는 기능을 추가할 것이다. 목차 Widget을 생성하여 탭에 텍스트 띄우기 AdvanceDeletionWidget 생성 AdvanceDeletionWidget.h 더보기 #pragma once #include "Widgets/SCompoundWidget.h" /** Slate Widget을 위해 빈 클래스가 필요 * */ class SAdvanceDeletionTab : public SCompoundWidget { SLATE_BEGIN_ARGS(SAdvanceDeleti..
[UE] Slate UI 1: Tab 띄우기
[UE] Slate UI 1: Tab 띄우기
2023.12.01Slate UI를 사용하여 탭을 생성하고 폴더 내에 있는 에셋 목록을 한번에 보여주게 만들 것이다. 에셋 목록을 조작하여 필요시 선택한 에셋들을 지우는 기능을 추가할 것이다. 일단, 탭을 생성하고 띄워주는 것부터 하겠다. 목차 Smart Pointer Smart Pointer 스마트 포인터 객체를 소유 삭제 예방 Unique Property TSharedPtr O O Reference Counting 메서드 사용 NULL을 가리킬 수 있음 TSharedRef O O NULL을 가리킬 수 없음 무조건유효한 객체를 가르켜야 함 TWeakPtr X X Reference cycle을 부순다 TSharedRef타입의 함수는 return 값이 무조건 NULL이 아닌 유효한 값이다. 이 점을 알고 있으면 코드 파악이..
[UE] ContentBrowser Menu: 사용하지 않는 에셋/빈 폴더 제거
[UE] ContentBrowser Menu: 사용하지 않는 에셋/빈 폴더 제거
2023.11.25Content Browser Menu에 사용하지 않는 에셋과 폴더를 제거하는 기능을 추가하였다. 폴더를 우클릭하여 해당 기능을 눌러 실행한다. 해당 에셋이 사용하고 있는지 체크하고 사용하지 않을 경우에만 삭제를 진행한다. 폴더 역시 빈 폴더인지 체크 후에 빈 폴더이면 삭제한다. 목차 사용하지 않는 에셋 제거 Delegate 선언 정리 DECLARE_DELEGATE( DelegateName ) void Function() ex. DECLARE_DELEGATE( OnDelegateButtonClicked ) DECLARE_DELEGATE_OneParam( DelegateName, Param1 Type ) void Function( Param1 ) ex. DECLARE_DELEGATE_OneParam( OnD..
[UE] Asset Editor Tool 3: 사용하지 않는 Asset만 제거하기
[UE] Asset Editor Tool 3: 사용하지 않는 Asset만 제거하기
2023.11.25선택한 에셋들 중 사용하지 않는 에셋만 삭제하는 기능을 추가하였다. 이 기능으로 에셋을 삭제하면 의도치않게 에셋을 삭제하는 불상사를 방지할 수 있다. 목차 1. 사용되지 않는 Asset만 제거하기 .Build.cs 에 "UMG", "Niagara" 추가하기 SWManager.Build.cs 더보기 using UnrealBuildTool; public class SWManager : ModuleRules { public SWManager(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; PrivateIncludePaths.AddRange( new string[] { S..
[UE] Asset Editor Tool 2: Asset 접두어 넣기
[UE] Asset Editor Tool 2: Asset 접두어 넣기
2023.11.25언리얼에서 작업을 할때 Asset을 보기좋게 찾기 위해 접두어를 넣는 경우는 흔하다. Material의 경우 M_, Blueprint는 BP_와 같은식이다. 매번 이 과정을 하는것은 귀찮은 일이기 때문에 자동으로 접두어를 붙여주는 기능을 만들었다. 목차 1. Asset 접두어 넣기 언리얼 공식문서에서 제시한 추천 접두어 모듬 https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/AssetNaming/ Recommended Asset Naming Conventions A recommended naming convention to help organize your Assets. docs.unrealengine.com .Build.cs 에 "UMG", "..
[UE] Asset Editor Tool 1: Asset 복제 기능의 Editor 만들기
[UE] Asset Editor Tool 1: Asset 복제 기능의 Editor 만들기
2023.11.23언리얼 에디터 내에서 Asset을 원하는 숫자만큼 한 번에 복제하는 툴 기능을 구현하였다. 만약 0이하의 숫자를 기입하는 경우, 경고 문구를 띄우고 복제가 진행되지 않는다. 해당 기능을 사용해서 좀 더 편리하게 언리얼 작업을 진행해보자. 목차 Asset 복제 기능의 Editor 만들기 Plugin 생성 후 .uplugin 설정 변경하기 SWManager.uplugin Game에는 영향을 안 주고 Editor에서만 영향을 주므로 Runtime이 아닌 Editor로 설정. Plugin Module이 로드되는 시점 PreDefault로 변경 QuickAssetAction 생성 QuickAssetAction.h 더보기 #pragma once #include "CoreMinimal.h" #include "Asse..