본문 바로가기
반응형

unreal74

Unreal 검 궤적 Sword Trail 만들기 [Unreal] 검 궤적 Sword Trail 만들기 Trail은 자취, 꼬리, 끌고 간 자국 등의 의미로 쓰입니다.검날의 시작부터 끝 부분까지 공기를 가르는 듯한 효과는 게임의 퀄리티를 높여줍니다.이제 Trail 효과를 쓰지 않는 게임은 찾아보기 힘든데 이를 언리얼 엔진에서 Material과 Particle System으로 제작할 수 있습니다. 먼저 필요한 머티리얼과 파티클 시스템을 만들어줍니다.머티리얼 이름은 접두사 'M'을 붙여 "M_SwordTrail" 로 만들고 파티클 시스템은 접두사 'PS'를 붙여 "PS_SwordTrail"로 만듭니다. MaterialMaterial 에서는 그래프에 조금 조작이 필요합니다. 왼쪽 하단 디테일 패널에서 설정을 변경합니다.- 블렌드 모드 : Translucent.. 2024. 1. 8.
Unreal 아군, 적군 구별하기 [Unreal/C++] 아군, 적군 구별하기 언리얼에서 아군과 적군을 구별하기 위해 AActor의 Tags를 활용할 수 있습니다. Tag는 충돌대상 여부 판단, 아군 적군 구별, 오브젝트 찾기 등 여러 상황에서 사용됩니다.  Tag를 지정한 후 필요에 따라 Actor에 정의되어 있는 ActorHasTag함수를 이용하여 Tag를 포함하고 있는지 쉽게 찾을 수 있습니다.위 함수를 사용하여 쉽게 예외처리가 가능합니다.if (OtherActor->ActorHasTag("TagName")) return;   Tag를 지정하는 것은 어렵지 않습니다.Actor에는 Tags가 정의되어 있으니 Actor를 상속받은 하위 클래스라면 어느 곳에서든 사용할 수 있습니다.Tags.Add(FName("TagName")); AMy.. 2024. 1. 8.
Unreal 캐릭터 충돌 프리셋 설정 Character Collision Preset [Unreal/C++] 캐릭터 충돌 프리셋 설정 Character Collision Preset 캐릭터에는 캡슐 컴포넌트가 기본적으로 지정되어 있습니다.GetCapsuleComponent()로 캡슐 컴포넌트를 가져올 수 있고Collision에는 ProfileName을 설정하는 것이 있습니다.콜리전 프리셋을 변경하는 방법은 다음과 같습니다.아래는 참고용 이미지 입니다. AMyCharacter::AMyCharacter(){ GetCapsuleComponent()->SetCollisionProfileName(TEXT("CollisionPresetName"));} 콜리전 프리셋은 편집->프로젝트셋팅->엔진->콜리전->프리셋에서 설정 가능합니다. 2024. 1. 8.
Unreal 아군, 적군 충돌 구별하기 Collision Channel [Unreal] 아군, 적군 충돌 구별하기 Collision Channel 언리얼에서 아군과 적군을 구현할 때 충돌이 되지 말아야 할 오브젝트들이 있습니다.이들을 항상 코딩으로 제외하는 것은 귀찮은 일이라 생각합니다. 언리얼 엔진에서는 오브젝트, 트레이스 채널 등으로 충돌 가능 여부를 미리 지정해줄 수 있습니다.충돌 설정은 언리얼 엔진 편집 -> 프로젝트 셋팅 -> 엔진 -> 콜리전 탭에서 설정할 수 있습니다. 오브젝트 별로 구별하기 위해 Object Channel에서 새 오브젝트 채널을 만듭니다. 이름은 Enemy로 설정하였고 기본 반응은 Block로 설정했습니다. 필요하다면 Player 채널도 추가해줍니다.여기서 기본 반응은 프리셋에서 따로 설정을 하지 않았을 때 적용되는 기본 값입니다.아래 Pres.. 2024. 1. 8.
Unreal Apply Radial Damage 범위 공격 [Unreal/C++] Apply Radial Damage 범위 공격 UGameplayStatics::ApplyRadialDamage반경 내에서 지역적 피해를 줍니다. 최소 1개의 액터에 피해가 적용되면 True를 반환합니다.  - Syntaxstatic bool ApplyRadialDamage( const UObject * WorldContextObject, // 월드 float BaseDamage, // 기본 데미지 const FVector & Origin, // 데미지 근원지 float DamageRadius, // 데미지 범위 TSubclassOf DamageTypeClass, // 데미지 타입 const TArray & IgnoreActors, // 피해 제외 액.. 2024. 1. 8.
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 적 사망 상태 유지, Animation 상태 유지 [Unreal] 적 사망 상태 유지, Animation 상태 유지 언리얼 엔진에서 적 체력이 0이되면 사망 애니메이션을 재생한다.이 때 사망 애니메이션이 다 재생된 후에 Animation Blueprint에 의해 Walk상태로 되돌아가거나 특정 Animation이 재생된다. 이러한 문제는 ABP에서 자동으로 Blend를 설정해왔기 때문이다.Bone별로 레이어를 구분하거나 FullBody Slot을 이용해 재생할 것이다. 여러가지 정지하는 방법이 있겠지만 유용하게 사용할 수 있는 옵션이 있다. 애니메이션 몽타주에서 Auto Blend Out 기능을 비활성화 해주면 된다. 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.
반응형