시작하며 언리얼 엔진에서 문자열을 다루어야할 경우가 종종 발생한다. 그 중 자주 쓰는 문자열 나누기와 공백(스페이스) 제거하는 방법을 기록하고자 한다. 문자열 나누기 파일의 경로에서 폴더명이나 파일명을 구하는 상황등에서 문자열을 특정 단어로 나누어야 할때가 있다. C++에서는 strtok 함수를 통해서 문자열을 나눴었는데, 언리얼 엔진에서는 ParseIntoArray 함수로 나눌수 있다. FString AssetPath = TEXT("Project/Content/Game//UI/HUD/HUD_Main.uasset"); TArray Paths; AssetPath.ParseIntoArray(Paths, TEXT("/")); for (FString& Element : Paths) { UE_LOG(LogClas..
개요 UE4(Unreal Engine)의 UPROPERTY에는 여러 메타데이터 지정자가 있다. 그 중 EditCondition(EditConditionHides) 지정자를 사용하여 UPROPERTY 값에 따라 에디터에서 속성을 선택적으로 활성화, 비활성화 및 숨기는 방법을 기록하고자 한다. 기본 사용 일반적으로 bool 타입을 지정하여 활성화, 비활성화 할 수 있다. UPROPERTY(EditAnywhere, Category = "Move") bool bCanMove = true; UPROPERTY(EditAnywhere, Category = "Move", meta = (EditCondition = "bCanMove")) int MoveSpeed = 100; 숨김 옵션 EditConditionHides ..
UE4 - Enum to String 로그 출력을 위해 Enum의 이름을 출력하고자 하는 경우가 있다. Enum을 다음과 같이 설정한다고 할때 UENUM(BlueprintType) enum class ECharState : uint8 { None = 0, Idle = 1, Run = 10, Jump = 100, }; 다음과 같이 FString 또는 FName으로 값을 얻어올 수 있다. void AStudyPlayerController::PrintEnumString() { static ECharState State = ECharState::Run; FName EnumToName = FName(TEXT("Invalid")); FString EnumToString = TEXT("Invalid"); const ..
UMG 사용 UMG 코드를 사용하기 위해서는 UMG 모듈을 프로젝트에 포함하도록 해야한다. 에러 UMG 모듈을 포함하지 않을 경우 UMG 클래스를 코드에서 작성하게 되었을때 다음과 같이 빌드 에러가 발생한다. UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = Collision) class UWidgetComponent* HPBarWidget; error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class UClass * __cdecl UWidgetComponent::StaticClass(void)"... 후략 UMG 모듈 등록 프로젝트명.build.cs 파일에서..
언리얼 서밋 2021년 10월 13일 오늘 시청했던 세션 중 언리얼 엔진 최적화 관련된 내용이 있어 기록해 두고자 한다. 나중에 최적화 이슈가 있을때 참고해 보면 좋을 듯 하다 권장 최적화 기법 공식문서 > 퍼포먼스와 프로파일링 언리얼 서밋 다시보기 (최적화로 검색하여 관련 세션 시청) 언리얼 엔진 유튜브 채널 최적화 관련 영상들 Unreal Engine 4 Optimization Tutorial 참조 (화면 보여짐 여부로 최적화) Actor & Component Tick dumpticks로 시작 최대한 필요 없을 때는 Tick을 돌지 않도록 하자 Significance Manager Significance Value에 기반하여 뷰 프러스트럼에 들어오는지 확인하고 차등 표현 URO 화면에 보이는 메시들의..
개요 언리얼 엔진(Unreal Engine)에서 기본적으로 제공되는 콘솔 명령어도 있겠지만, 이번에 할 이야기는 개발을 하다보면 테스트를 위한 함수호출이나 인게임에서의 특정 수치 변경이 필요할 때가 발생할 경우, 직접 지정한 콘솔 명령어(Console Command)와 콘솔 변수(Console Variable)를 통해 해결하는 방법을 기록하고자 한다. 콘솔명령어 콘솔 명령어는 FAutoConsoleCommand 클래스를 이용하여 지정 가능하다 생성자의 파라미터로는 (명령어 이름 / 명령어 설명 / 함수호출시 실행될 델리게이트 / 플래그 값)으로 구성되어있다. 델리게이트중에는 Argument를 받을수 있는 것도 있어 명령어에 인자값을 넣는것도 가능하다 FAutoConsoleCommand CCmd_Hello..
Unreal Engine Ragdoll Physics 1. 래그돌(Ragdoll) 이란? 래그돌 물리(Ragdoll Physics)는 캐릭터가 힘없이 날라가는 모습이 "봉제인형(Ragdoll)"처럼 연출되서 유래된 이름이며, 게임에서 캐릭터의 사망 연출을 할때 사용이 많이 된다. 2. 래그돌 적용 캐릭터에 Skeletal Mesh 에 Physics Asset이 있는지 확인 Mesh의 CollisionProfile 설정 SetSimulatePhysics(true); 함수 호출 void ARagdollTestCharacter::DoRagdoll() { //기본으로 제공해주는 Ragdoll용 CollisionProfile로 설정 GetMesh()->SetCollisionProfileName(TEXT("Ragd..