반응형 분류 전체보기424 Unreal Editor Preview에서 Notify 실행 중지 방법 [Unreal/C++] Editor Preview에서 Notify 실행 중지 방법언리얼 엔진에서 Animation Montage를 작업하다보면 Notify를 반 필수적으로 사용하게 된다.AnimNotify나 AnimNotifyState를 사용하다 보면 에디터 프리뷰에서 실행시 에러가 나는 것을 쉽게 경험할 수 있다. 이는 단순하게 에디터상에서 플레이중인지 체크를 하면 된다.쉬운 예외처리 방법은 EWorldType의 Preview인지 확인하는 것이다. if (MeshComp->GetWorld()->WorldType == EWorldType::Type::EditorPreview) return; EWorldType::TypeSpecifies the goal/source of a [UWorld](API\R.. 2023. 12. 28. Unreal Widget Component TextBlock 사용하기 [Unreal/C++] Widget Component TextBlock 사용하기 Unreal Engine (UE) TextBlock Widget Change Text WidgetComponent 이 글에서는 언리얼 엔진에서 텍스트박스를 적 위에 두고 이름을 표시합니다. 먼저 위젯 블루프린트를 만들어 줍니다.SizeBox와 TextBlock를 차례로 추가합니다.SizeBox는 너비와 높이를 오버라이드 하여 크기를 설정해줍니다.TextBlock는 이름을 설정해 줍니다. 이 이름은 C++ 코드에서 변수의 이름으로 사용할 예정이기 때문에 변수 여부에 체크해주고 적절한 이름으로 정합니다.가운데 정렬을 해주고 필요시 컬러와 폰트 크기를 설정해줍니다. 클래스가 만들어지면 위젯 블루프린트에서 부모 클래스를 생성한.. 2023. 12. 28. Unreal Pure virtual function being called [Unreal/C++] Pure virtual function being called virtual 함수가 실행되고 있습니다.먼저 이 정보는 온갖 구글링에서 해결 방법이 나오지 않았습니다.단순히 UE_LOG에서 Fatal 을 Warning으로 바꿔 경고로 바꾸는 것 정도의 기능은 할 수 있습니다. 엔진 내부에서 일어나는 버그이므로 해결되기 전까지 저장을 잘 하는 방법으로 사용해야 할 것 같습니다.Pure virtual function being called while application was running (GIsRunning == 1).Fatal error: [File:F:\UnrealEngine-5.0\Engine\Source\Runtime\Core\Private\Windows\WindowsPla.. 2023. 12. 28. Unreal ApplyDamage, TakeDamage 데미지 전달 [Unreal/C++] ApplyDamage, TakeDamage 데미지 전달 Unreal Engine 5 언리얼 엔진에서 데미지를 주고 받는 기본적인 형식입니다. UGameplayStatics::ApplyDamage()AActor::TakeDamage() ApplyDamage를 사용하기 위해서 헤더파일을 필요로합니다.#include "Kismet/GameplayStatics.h"데미지를 가할 경우 보통 BeginOverlap 등 충돌과 연관되는 것이 많기에 BeginOverlap 안에 정의했습니다.void MyActor::OnBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* Othe.. 2023. 12. 27. Unreal WidgetComponent가 활성화 되지 않음 [Unreal] WidgetComponent가 활성화 되지 않음 Unreal Engine5 WidgetComponent hide in Screen 언리얼 엔진에서 위젯 컴포넌트가 보이지 않는 현상EWidgetSpace::Screen 에서 보이지 않으며, World에서 위치가 업데이트 되지 않음EWidgetSpace::World에서는 보이지만 Screen 모드에서는 보이지 않는다. HPWidget = CreateDefaultSubobject(TEXT("HelthWidget")); HPWidget->SetupAttachment(GetMesh()); ConstructorHelpers::FClassFinder hpWidget(L"WidgetBlueprint'/Game/Enemies/Widgets/WB_Enemy.. 2023. 12. 27. Unreal WidgetComponent ProgressBar 추가, 적 체력 UI [Unreal/C++] WidgetComponent ProgressBar 추가, 적 체력 UI 언리얼 엔진에서 Actor 위에 UI를 띄우고 싶은 경우 사용할 수 있는 컴포넌트입니다.아래 이미지와 같이 UI를 띄우려면 위젯 블루프린트를 생성하여 위젯 컴포넌트에 연결해야합니다.WidgetComponent를 추가하여 사용할 수 있습니다.위치를 조정하고 Space 모드를 Screen으로 설정해야 합니다.World는 3D UI를 보여줄 때 용이하고 Screen모드는 카메라를 정면으로 바라봐야할 때 유용합니다.위젯 클래스를 생성한 위젯 블루프린트로 설정해줄 수 있습니다.위젯 블루프린트를 생성하고 사이즈 박스와 ProgressBar를 차례로 생성합니다.SizeBox는 Width 와 Height를 Override하여.. 2023. 12. 27. C++ Error C2011 : Class, Struct, Enum 형식 재정의 [C++] Error C2011 : Class, Struct, Enum 형식 재정의 문제 원인1) 클래스, 구조체, 열거형 이름이 중복2) 헤더파일이 중복으로 추가되서 나오는 에러 다른 클래스에 같은 이름을 사용하는 것이 없는지 확인할 필요가 있다. 언리얼에서 델리게이트 작업 도중 중복된 이름이 있어서 오류를 발견했다. 1>F:\Projects\MainProject\Source\MainProject\Enemy\Components\EnemyStateComponent.h(17): error C2011: '_Script_MainProject_eventStateTypeChanged_Parms': 'struct' 형식 재정의1>F:\Projects\MainProject\Source\MainProject\Chara.. 2023. 12. 22. Unreal 몽타주 슬롯 변경시 애니메이션 재생 [Unreal] 몽타주 슬롯 변경시 애니메이션 재생 언리얼 엔진Animation Montage Slot Change애니메이션 몽타주 슬롯 변경시 애니메이션이 재생되지 않는 현상이 있습니다.이는 프리뷰 대상이 DefaultSlot으로 설정되어 있기 때문입니다. 슬롯 그룹이나 이름(UpperBody, FullBody 등)을 변경했을 때 프리뷰 슬롯 버튼을 한 번 더 눌러주면 재생이 됩니다. Animation SlotsInsert entry-points within your Anim Graph to play animation from using Slots.docs.unrealengine.com 2023. 12. 21. Unreal AnimMontage Slot 추가하기 [Unreal] AnimMontage Slot 추가하기 언리얼 엔진 5 애니메이션 슬롯 DefaultGroup.SlotName 추가 방법 애니메이션 스켈레톤에 저장된 애니메이션 슬롯 이름이 많은 애니메이션들이 있습니다. 하지만 에셋들 중 슬롯 이름이 없는 경우가 있는데, 이 슬롯은 추가가 가능합니다. 애니메이션 몽타주 화면에서 Window->Anim Slot Manager 슬롯 추가가 가능합니다. Animation SlotsInsert entry-points within your Anim Graph to play animation from using Slots.docs.unrealengine.com 2023. 12. 21. Unreal IGameplayTaskOwnerInterface Link Error [Unreal/C++] IGameplayTaskOwnerInterface Link Error 언리얼 엔진 5에서 AI Controller와 UBTService 등에서 IGameplayTaskOwnerInterface인터페이스를 상속 받아 사용할 때 나타나는 문제점이다. 이는 모듈 추가가 되지 않아서 파일을 찾지 못하는 문제가 있다.CompilerResultsLog: Error: BTS_Corpse.cpp.obj : error LNK2001: "public: virtual void __cdecl IGameplayTaskOwnerInterface::OnGameplayTaskActivated(class UGameplayTask)" OnGameplayTaskActivated@IGameplayTaskOwnerIn.. 2023. 12. 20. Unreal GenericTeamID 설정하기 [Unreal/C++] GenericTeamID 설정하기 Unreal에서 AI를 구현하거나 아군, 적군, 중립을 설정하기 위해 TeamID라는 것이 필요하다.AIController를 상속받는 클래스라면 크게 신경쓰지 않아도 되지만 상속받지 않는 클래스는 인터페이스를 상속받고 구현해야한다. #include "GenericTeamAgentInterface.h" 헤더를 추가하고IGenericTeamAgentInterface 인터페이스를 상속받는다.일반 클래스는 다중 상속이 불가능하지만 인터페이스는 다중상속이 가능하다. #include "CoreMinimal.h"#include "GameFramework/Character.h"#include "GenericTeamAgentInterface.h" // ge.. 2023. 12. 18. Unreal UseBlackboard TObjectPtr 문제 [Unreal/C++] UseBlackboard TObjectPtr 문제 Unreal Engine5에서 나타나는 문제점이다.먼저 UE4 에서는 Blackboard Component가 UBlackboardComponent* 자료형으로 선언되어 있다.하지만 UE5에서는 TObjectPtr로 선언되어 있는데,UseBlackboard 함수를 사용할 때에는 UBlackboardComponent*& 형식으로 받기 때문에 전달할 수 없는 문제가 생긴다.AAIController::UseBlackboard(UBlackboardData* BlackboardAsset, UBlackboardComponent*& BlackboardComponent) UE4 강의 자료로 학습하고 UE5로 공부하고 있는 사람들이 많이 겪는 문제이.. 2023. 12. 18. 이전 1 ··· 14 15 16 17 18 19 20 ··· 36 다음 반응형