반응형 Unreal179 Unreal Spawn Actor시 Owner을 설정합시다. [Unreal/C++] Spawn Actor시 Owner을 설정합시다. 언리얼에서 무기를 Spawn 시키고 충돌 처리를 하던 중 Fatal Error를 만났다. 무기에 BoxCollision을 붙이고 PrimitiveComponent에서 받아온 OnComponentBeginOverlap 이벤트를 성공적으로 설정하였다.void Actor::OnComponentBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult) UGameplayStatics에 있는.. 2024. 1. 7. Unreal AI Controller Class 가져오기 [Unreal/C++] AI Controller Class 가져오기 언리얼 엔진에서 적을 컨트롤하는 AIControllerPawn 클래스에서 정의되어 있으며 TSubclassOf 형식으로 정의되어 있다. 적에서 Ai Controller 클래스를 가져와 블랙보드(Blackboard)의 값을 수정하려 했는데 AIController 클래스를 가져오는데에 애를 썼다. Pawn 클래스에서는 아래와 같이 정의되어 있는데 이 클래스를 그대로 사용하면 될 줄 알았다. 그래서 Cast(AIControllerClass->GetDefaultObject())->Something() 형식으로 사용하려 했지만 실패했다.그 이유는 CDO(Class Default Object)와 관련이 있는데 TSubclassOf는 그냥 기본 클래.. 2024. 1. 5. Unreal Launch Character 동작 하지 않는 이유 [Unreal/C++] Launch Character 동작 하지 않는 이유 언리얼 엔진에서 캐릭터의 넉백 효과를 구현할 때 Launch Character 함수를 자주 사용한다.이를 통해서 적들이 밀려나는 효과를 줄 수 있는데 BehaviorTree에서나 다른 경우에 MoveTo 함수가 실행되고 있을 경우동작을 하지 않는다. LaunchCharacter(GetActorForwardVector() * 1000, false, false) 2024. 1. 2. Unreal UDamageType 구현 [Unreal/C++] UDamageType 구현 언리얼 엔진에서는 데미지를 주고 받을 수 있도록 기능을 제공한다. 기본적으로 데미지를 주는 것은 Apply Damage 함수들을 사용하고Apply DamageHurts the specified actor with generic damage. Target is Gameplay StaticsApply Point DamageHurts the specified actor with the specified impact. Target is Gameplay StaticsApply Radial DamageHurt locally authoritative actors within the radius. Will only hit components that block the.. 2024. 1. 2. Unreal Did you leave off a prefix? [Unreal/C++] Did you leave off a prefix? Unreal Engine C++ 컴파일시 발생하는 에러,정리할 필요는 느끼지 못했지만, 언리얼 엔진에 대한 자료가 너무 적어서 고생하는 사람들을 위해 정리합니다. When compiling class definition for '', attempting to strip prefix results in an empty name. Did you leave off a prefix? 언리얼 엔진에는 접두사 시스템이 있습니다.Actor는 A, UObject 는 U 등 클래스 이름 앞에 접두사가 붙어다닙니다. 예를 들어 Actor - > Pawn -> Character를 차례로 상속받아 만든 클래스는 Actor의 접두사인 'A'가 앞에 붙습니.. 2023. 12. 29. Unreal 적 사망 상태 유지, Animation 상태 유지 [Unreal] 적 사망 상태 유지, Animation 상태 유지 언리얼 엔진에서 적 체력이 0이되면 사망 애니메이션을 재생한다.이 때 사망 애니메이션이 다 재생된 후에 Animation Blueprint에 의해 Walk상태로 되돌아가거나 특정 Animation이 재생된다. 이러한 문제는 ABP에서 자동으로 Blend를 설정해왔기 때문이다.Bone별로 레이어를 구분하거나 FullBody Slot을 이용해 재생할 것이다. 여러가지 정지하는 방법이 있겠지만 유용하게 사용할 수 있는 옵션이 있다. 애니메이션 몽타주에서 Auto Blend Out 기능을 비활성화 해주면 된다. 2023. 12. 28. Unreal 게임이 실행중인지 에디터에서 편집중인지 확인하기 [Unreal/C++] 게임이 실행중인지 에디터에서 편집중인지 확인하기 Unreal 엔진에서 작업하다보면 현재 상태가 궁금한 적이 있을 것이다.실행중이 아닌데 Unreal Editor가 Fatal Error를 내며 꺼진다거나 Montage 실행 중 Notify에 의해 null을 만나 종료된 적도 있을 것이다. 이러한 현상은 언리얼 엔진의 실행 프로세스가 꽤나 복잡하기 때문이다.에디터에서는 실행중이 아니지만 엔진 내부에서 여러가지 프로세스가 실행된다.초기화는 물론 생성자, 애니메이션, Preview 등 여러가지 기능들을 계속 감시하고 있는데 Editor에서 실행중이 아님에도 에러가 나는 현상은 꽤나 번거롭다.매번 다시 키는 일도 쌓이면 한숨만 나오기 쉽다. 이러한 현상을 조금은 줄여줄 수 있는 방법이 있다.. 2023. 12. 28. 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. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음 반응형