전체 글 311

[UE4] Aimation Montage Play가 동작하지 않는 경우 해결

Anim Blueprint의 노드에 Montage Slot이 추가 되었는지 확인하여 없다면 추가해 주면 해결 됩니다. 다음의 블루프린트와 같이 Animation Montage가 플레이되도록 호출하였지만 아무런 일도 일어 나지 않을 경우, Animation Blueprint의 AnimGraph에 Montage Slot이 추가 되었는지 확인해주어야 겠습니다. 추가 되어 있지 않다면 다음과 같이 Slot을 추가하여 연결 시켜 주면 해결됩니다. 다음과 같이 Slot을 추가하니 정상적으로 플레이가 되었습니다. Anim Montage사용 방법은 다음의 페이지를 참고해 주세요. https://docs.unrealengine.com/4.27/ko/AnimatingObjects/SkeletalMeshAnimation/A..

[UE4] 어셋 이름 규칙(Asset naming conversion)

일반적인 이름 규칙들 [AssetTypePrefix]_[AssetName]_[Descriptor]_[OptionalVariantLetterOrNumber] 접두어 General Asset Prefix HDRI HDR_ Material M_ Material Instance MI_ Physics Asset PHYS_ Physics Material PM_ Post Process Material PPM_ Skeletal Mesh SK_ Static Mesh SM_ Texture T_ OCIO Profile OCIO_ Blueprints Asset Prefix Actor Component AC_ Animation Blueprint ABP_ Blueprint Interface BI_ Blueprint BP_ Cur..

[UE4] UClass, UFunction, UProperty, UEnum UInterface 메타데이터 지정자

메타데이터 지정자 메타데이터 지정자를 사용하려면, UCLASS, UINTERFACE, UFUNCTION, UPROPERTY 매크로에 다음과 같이 meta 를 붙이면 됩니다: {UCLASS/UINTERFACE/USTRUCT/UFUNCTION/UPROPERTY}(meta=(MetaTag1="Value1", MetaTag2, ..)) 자세한 내용은 다음의 글을 참고 합시다. https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/GameplayArchitecture/Metadata/ 메타데이터 지정자 Metadata 키워드는 UClass, UFunction, UProperty, UEnum, UInterface 를 선언할 때 사용되며, 엔진 및 에디터 다양..

[UE4] Assertion - DO_CHECK, DO_GUARD_SLOW, DO_ENSURE

Runtime\Core\Public\Misc\Build.h  DO_GUARD_SLOW 1이면,checkSlow, checkfSlow, verifySlow 실행DO_CHECK 1이면,checkCode, checkf, verify, check, checkNoEntry, checkNoReentry, checkNoRecursion, verifyf, checkf 실행DO_ENSURE 1이면, ensure, ensureAlways, ensureMsgf, ensureAlwaysMsgf 실행  DEBUGDEVELOPMENTTESTSHIPPING SHIPPING EDITORDO_GUARD_SLOW10000DO_CHECK11001DO_ENSURE11001  Build.h에 정의된 코드를 같추려 보면 다음과 같습니다.#de..

[UE4] Assertion 이해하기

Assertion 이해하기 Assertion 코드가 런타임에 실행될때 코드가 원하는 대로 동작하는지 검증하는 도구입니다. 언리얼 엔진은 어려가지 유형의 커스텀 검증 매크로들을 제공합니다. 특정 빌드 환경설정 하에서는 컴파일시 제외시킬 수 있도록 매크로로 되어 있는데, 퍼포먼스 상의 이유거나 최종 빌드에서는 필요치 않기 때문이거나 입니다. 검증 종류 런타임 어서트 매크로는 실행 중지(DO_GUARD_SLOW) checkSlow, checkfSlow, verifySlow 디버그 빌드에서 실행 중지(DO_CHECK) checkCode, checkf, verify, check, checkNoEntry, checkNoReentry, checkNoRecursion, verifyf, checkf 실행 중지하지 않고 ..

[UE4] Enum을 문자로 변환(EnumToString)

다음과 같이 enum이 정의 되어 있고 문자열로 출력하는 방법을 알아 봅시다. UENUM(BlueprintType) enum class ELocomotionState : uint8 { Idle UMETA(DisplayName = "Idle"), Walk UMETA(DisplayName = "Walk"), Jog UMETA(DisplayName = "Jog"), Sprint UMETA(DisplayName = "Sprint"), }; 여러 방법이 있지만 다음의 코드가 가장 간단한 방법입니다. DEFINE_ENUM_TO_STRING 매크로를 작성이후 EnumToString 함수 호출하여 FString으로 출력합니다. DEFINE_ENUM_TO_STRING(ELocomotionState); ... ELocom..

[UE4] 오브젝트 생성 - CreateDefaultSubobject , NewObject, SpawnActor

CreateDefaultSubobject , NewObject, SpawnActor 언리얼 엔진에서의 UObject는 오브젝트 프로토입을 기본으로 합니다. 각 UClass는 UObject와 연관된 CDO(Class Default Object)라고 불리는 디폴트 인스턴스를 갖습니다. 이 인스턴스는 엔진이 초기화 될때 클래스 생성자를 통해 최초로 단 한번 할당됩니다. 이후에 생성자는 절대로 다시 불려지지 않고 새로운 UObject를 생성시 복사를 생성 합니다. 이것이 의미하는 것은 UObject 생성자는 어떠한 런타임 로직을 포함 할수 없다는 것입니다. 만약 Actor Component와 같은 서브 오브젝트들을 포함하고 있는 오브젝트라면, 이러한 디폴트 오브젝트들은 처음에 생성되어져야 합니다. UObject..

[UE4] blueprint의 부모 클래스가 변경되는 현상 해결 방법

blueprint의 부모 클래스가 변경되는 현상 해결 방법 블루프린트를 만들면서 EquippableItem으로 설정하고 저장하였는데 에디터를 다시 구동시키면 이상하게도 부모의 클래스 이름이 PlusItem으로 변경되는 현상이 있었습니다. 인터넷 서칭을 해보니 다음과 같은 글을 찾을 수 있었습니다. My problem is similar. I cannot use File >> Reparent Blueprint (I have renamed the original parent class. But the renamed new class didn't show up). What helped is to add the following line to DefaultEngine.ini below [/Script/Engin..

[UE4] UObject의 참조 카운트(UObject Reference Count)

어떠한 오브젝트의 참조 카운트를 얻을 수 있는 코드입니다. static int32 URamaStaticFunctionLib::GetObjReferenceCount(UObject* Obj, TArray* OutReferredToObjects = nullptr) { if(!Obj || !Obj->IsValidLowLevelFast()) { return -1; } TArray ReferredToObjects;//req outer, ignore archetype, recursive, ignore transient FReferenceFinder ObjectReferenceCollector(ReferredToObjects, Obj, false, true, true, false); ObjectReferenceColl..

반응형