본문 바로가기

unreal539

언리얼엔진5 일정 시간 후 호출함수 ▣ FTimerHandle HitSoundDelayHandle 타이머 핸들(Handle): 이 변수는 타이머를 식별하는 데 사용됩니다. 특정 타이머를 관리하거나 중지(ClearTimer)하기 위해 필요합니다. FTimerHandle은 FTimerManager와 함께 작동하며, 타이머 설정, 실행, 삭제 등을 처리합니다. ▣ GetWorld()->GetTimerManager() 타이머 매니저(Timer Manager): GetTimerManager()는 타이머를 관리하는 클래스인 FTimerManager에 접근하는 함수입니다. 이를 통해 타이머를 생성, 시작, 정지, 리셋할 수 있습니다. GetWorld() 함수는 현재 월드의 포인터를 반환하며, 이를 통해 타이머 매니저를 사용할 수 있습니다. ▣ SetT.. 2024. 12. 20.
언리얼엔진5 Texture 성능최적화 ▣ LODBias 개념: 텍스처의 LOD(Level of Detail)를 조정하여 해상도를 단계적으로 낮추는 값입니다. 원래 텍스처의 해상도에서 한 단계씩 낮춰서 렌더링에 사용됩니다. 작동 원리 LODBias = 0: 텍스처의 원래 해상도 사용 (기본값). LODBias = 1: 텍스처 해상도를 절반으로 줄임 (예: 2048x2048 → 1024x1024). LODBias = 2: 텍스처 해상도를 4분의 1로 줄임 (예: 2048x2048 → 512x512).효과 메모리 사용량 감소: 해상도를 줄이므로 GPU 메모리 사용량이 줄어듭니다. 성능 향상: 낮은 해상도 텍스처를 사용하면 렌더링 속도가 향상됩니다. 품질 저하: 과도하게 LODBias 값을 높이면 텍스처가 흐릿하게 보일 수 있습니다.  ▣ Maxi.. 2024. 12. 18.
언리얼엔진5 Material Base ▣ Base Color는 Unreal Engine의 PBR(Physically Based Rendering) 머티리얼 시스템에서 사용되는 핵심 속성 중 하나로, 재질의 기본 색상을 정의합니다. 표면의 고유 색상을 나타내며, 조명과 반사광의 영향을 받습니다.  ▣ Metallic은 Unreal Engine의 PBR(Physically Based Rendering) 시스템의 주요 속성 중 하나로, 재질이 금속성을 얼마나 띄는지를 결정하는 파라미터입니다. 이 값은 0.0 ~ 1.0 사이의 값을 가지며, 재질의 시각적 특성에 큰 영향을 줍니다. 0.0 (비금속)재질이 금속적이지 않은 표면입니다. 예시: 나무, 돌, 흙, 플라스틱 등의 재질. 이런 재질은 Diffuse(확산광)와 Specular(반사광)를 모두 .. 2024. 12. 17.
언리얼엔진5 단축키 Gizmo - Translate(이동) : W Gizmo - Rotate(회전) : E Gizmo - Scale(크기) : R Grid Translate(이동) Snap Size 조절 : [ (작게) , ] (크게) Grid Rotate(회전) Snap Size 조절 : Shift + [ (작게) , ] (크게) 선택 오브젝트 숨기기 : H 선택 오브젝트만 보이기 : Shfit + H 오브젝트 모두 보이기: Ctrl + H 선택 오브젝트 카메라 포커스 F 선택 오브젝트 복사 : Ctrl + D , Alt + Gizmo 이동 선택 오브젝트 콘텐츠 브라우저에서 찾기 : Ctrl + B 에셋 탐색기 찾기 : Ctrl + P 선택 오브젝트 에셋 에디터 열기 : Ctrl + E 선택 오브젝트 레퍼런스 뷰어 열기 .. 2024. 12. 17.
언리얼엔진5 c++ Widget Texture 제거 ▣ SetBrush(FSlateBrush())는 UImage의 브러시를 기본값으로 설정하며, 텍스처가 제거됩니다. FSlateBrush 객체는 브러시 설정을 관리하며, 기본값으로 초기화되면 텍스처가 비어 있게 됩니다. ▣ ESlateVisibility 값: Visible: 완전히 보이는 상태. Hidden: 숨겨져 있지만, 레이아웃에서 공간을 차지함. Collapsed: 숨겨지며, 레이아웃에서 공간도 차지하지 않음. 2024. 12. 2.
언리얼엔진5 c++ Sphere Trace ▣ 코드설명 FDamageEvent() 함수를 사용하기 위해서는  Engine/DamageEvents.h 헤더를 추가해야 합니다.  StartLocation: 좀비 메쉬의 hand_r라는 소켓 위치를 가져옵니다. 이는 좀비의 손 위치를 기준으로 충돌을 시작하는 지점을 설정합니다.EndLocation: SphereTrace의 시작과 끝 지점을 동일하게 설정(구체 중심). 여기서는 한 지점에서만 충돌을 검사하기 때문에 동일한 값을 사용합니다.SphereRadius: 충돌 체크를 수행할 Sphere의 반지름을 설정합니다. 여기서는 70.0f로 설정되어 있습니다.Params: 충돌 계산 중에 특정 액터를 무시하도록 설정합니다. 여기서는 NormalZombie(자기 자신)를 무시하도록 추가했습니다. SweepSi.. 2024. 11. 25.
언리얼엔진5 c++ Hit 관련 처리 ▣ 검사 필요:Hit.GetActor()가 nullptr일 가능성이 있으므로 반드시 확인해야 합니다. Actor가 이미 다른 곳에서 Destroy 처리된 경우를 대비해 항상 유효성 검사를 해야 합니다.Destroy로 관리되는 Actor만 가능:Destroy()는 AActor에서만 유효합니다. 컴포넌트나 다른 객체는 이 메서드를 사용할 수 없습니다. 만약 사라지는 대신 Actor를 숨기거나 비활성화하고 싶다면, SetActorHiddenInGame(true) 또는 SetActorEnableCollision(false)와 같은 메서드를 사용할 수도 있습니다.   ▣ API https://docs.unrealengine.com/4.27/en-US/API/Runtime/Engine/GameFramework/AA.. 2024. 11. 18.
언리얼엔진5 c++ 클래스를 접근 ▣ GetAllActorsOfClass 사용:게임 내 특정 클래스의 모든 Actor를 가져옴.  캐스팅 후 값 접근:Cast(Actor)로 원하는 클래스인지 확인. 조건에 따라 멤버 변수나 함수를 호출.   ▣ AIController 가져오기:GetController()를 사용해 현재 Actor의 AIController를 가져옴. 일반적으로 AI 캐릭터의 Controller는 AAIController 타입.Pawn 접근:AIController->GetPawn()으로 Controlled Pawn을 가져옴.캐스팅 후 값 접근:Cast(ControlledPawn)로 AZombieBase인지 확인. 멤버 변수나 함수에 접근 가능. 2024. 11. 17.
언리얼엔진5 c++ SoundAttenuation(소리감쇠) ▣ Attenuation (Volume) Enable Volume Attenuation: 체크하여 거리 기반 볼륨 감쇠를 활성화합니다. Attenuation Function: Logarithmic을 사용하면 거리에 따라 자연스럽게 줄어드는 소리를 구현할 수 있습니다. (사실적인 감쇠에 적합) Attenuation Shape: Sphere로 설정하는 것이 일반적입니다. 구체 형태로 감쇠 범위를 지정하여 주변에 균일하게 소리가 줄어듭니다. Inner Radius: 400.0 이 범위 내에서는 소리가 감쇠 없이 들립니다. 캐릭터의 위치와 가장 가까운 거리를 기준으로 하며, 가까이 있는 소리의 강도를 높이는 데 효과적입니다. Falloff Distance: 3600.0 이 범위까지 소리가 감쇠하며, 거리감이 드.. 2024. 11. 13.
언리얼엔진5 c++ Damage IgnoreHit random ▣ 코드 설명 IgnoreHitChance 설정: IgnoreHitChance 값으로 피격 반응을 무시할 확률을 설정합니다. 예를 들어, 0.3f로 설정하면 30% 확률로 피격 반응을 무시합니다.확률 계산: FMath::FRand()는 0.0에서 1.0 사이의 랜덤 부동소수점 값을 반환합니다. 이 값이 IgnoreHitChance 이하일 경우 피격 반응을 무시합니다.피격 반응 조건: 확률을 통해 피격 반응이 무시된 경우에는 return Damage;로 함수를 종료하여 피격 효과와 애니메이션을 재생하지 않습니다. 확률에 따라 피격 반응이 무시되지 않은 경우, 피격 애니메이션과 효과를 정상적으로 재생합니다. 2024. 11. 12.
언리얼엔진5 c++ AI Damage Stop Move ▣ MovementComponent->StopMovementImmediately() 설명: 이 함수는 모든 현재 이동을 즉시 중지합니다. 캐릭터가 이동 중이든 가속 중이든 상관없이 이동을 멈추며, 위치를 고정시킵니다. 주 용도: 캐릭터의 이동을 멈추고 싶을 때 사용됩니다. 예를 들어, 피격 효과를 구현할 때 캐릭터가 이동 중이라면 이를 멈추게 하는 데 유용합니다. ▣ MovementComponent->SetComponentTickEnabled(false) 설명: 이 함수는 컴포넌트의 틱(Tick) 업데이트를 비활성화합니다. 즉, 컴포넌트가 매 프레임 업데이트되지 않으며, 이를 통해 움직임을 일시적으로 멈출 수 있습니다. 주 용도: 애니메이션과 피격 효과는 유지하면서 이동만 멈추고자 할 때 사용합니다. ▣.. 2024. 11. 11.
언리얼엔진5 c++ SpawnSystemAtLocation(표면에 Effect효과주기) ▣ 코드설명- PointDamageEvent: DamageEvent를 FPointDamageEvent로 변환하여, 지점 충돌에 대한 정보를 가져옵니다.  - HitBone: 충돌된 부위의 본 이름입니다. 피격 부위에 따라 효과나 데미지를 달리할 수 있습니다.  - ImpactPoint: 충돌한 위치를 나타내는 벡터입니다.  - ImpactNormal: 충돌 지점의 표면 노멀 벡터로, 이 벡터를 사용하여 FX의 방향을 표면에 맞춰 설정할 수 있습니다.  ▣ ImpactNormal은 충돌한 표면의 방향을 나타내는 벡터입니다.이 벡터는 표면에 수직한 방향을 의미하며, 표면의 "바깥쪽"을 가리키는 방향이라고 이해할 수 있습니다.예를 들어 설명해보겠습니다: 벽에 총알이 맞을 때:벽 표면이 오른쪽을 향해 있다면, .. 2024. 11. 10.
언리얼엔진5 c++ PlaySoundAtLocation 소리강조 ▣ 매개변수 설명 WorldContextObject (UObject*):사운드가 재생될 월드를 지정하는 객체입니다. 대개 this로 현재 객체를 전달합니다.Sound (USoundBase*):재생할 사운드 에셋입니다. 일반적으로 USoundCue 또는 USoundWave 형식의 사운드를 사용합니다.Location (FVector):사운드가 재생될 월드 좌표입니다. 예를 들어, GetActorLocation()을 사용해 특정 액터의 위치에서 재생할 수 있습니다.VolumeMultiplier (float):사운드의 볼륨을 조정하는 배율입니다. 기본값은 1.0f이며, 2.0f로 설정하면 소리가 두 배 커지고, 0.5f로 설정하면 절반으로 작아집니다.PitchMultiplier (float):사운드의 피치(재생.. 2024. 11. 9.
언리얼엔진5 c++ SetCollisionProfileName ▣ SetCollisionProfileName() 함수는 언리얼 엔진에서 오브젝트의 충돌 프로필을 설정할 때 사용됩니다. 충돌 프로필은 게임 내 오브젝트 간의 충돌 반응을 정의하는 역할을 합니다. 이 함수를 통해 오브젝트가 어떤 충돌 반응을 가져야 할지 지정할 수 있습니다. 충돌 프로필은 일반적으로 프로젝트 설정에서 미리 정의된 이름을 사용하며, 이를 설정하면 오브젝트의 충돌 방식이 자동으로 적용됩니다. ▣ void SetCollisionProfileName(FName InCollisionProfileName, bool bUpdateOverlaps = true); https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/.. 2024. 11. 2.
언리얼엔진5 c++ LightingChannels ▣ SetLightingChannels(true, true, false)와 LightingChannels.bChannel 설정은 Unreal Engine5에서 라이트의 영향을 받는 채널을 설정하는 기능으로, 특정 오브젝트가 어떤 채널의 라이트를 수신할지를 제어할 수 있습니다. ▣  SetLightingChannels() 함수는 오브젝트가 어떤 채널의 라이트를 수신할지 한 번에 지정하는 함수입니다. 이 함수는 다음과 같은 파라미터를 가집니다. bChannel0: 기본 채널(채널 0)을 활성화할지 여부를 설정합니다. bChannel1: 채널 1을 활성화할지 여부를 설정합니다. bChannel2: 채널 2를 활성화할지 여부를 설정합니다. ▣ LightingChannels 구조체는 개별 채널의 활성화 여부를 설.. 2024. 11. 1.
언리얼엔진5 c++ UMETA(DisplayName = " ") ▣ UMETA(DisplayName = "")는 Unreal Engine의 UENUM에서 각 열거형 값(enum value)에 특정한 디스플레이 이름(Display Name)을 지정할 때 사용됩니다.UMETA는 Unreal의 메타데이터 표기로, DisplayName은 엔진 에디터에 표시될 이름을 지정할 수 있는 메타 데이터 필드입니다.이를 사용하면 에디터에서 더 직관적이고 사용자 친화적인 이름으로 열거형 값을 표시할 수 있습니다. ▣ UMETA가 유용한 이유 UMETA(DisplayName = "Work")와 같은 메타데이터를 활용하면 다음과 같은 장점이 있습니다:에디터에서 더 직관적인 이름 제공: DisplayName을 통해 C++ 변수명 대신 더 직관적이고 보기 좋은 이름을 제공할 수 있습니다. 다국.. 2024. 10. 26.
언리얼엔진5 c++ 순수 가상 함수(Pure Virtual Function) ▣ 코드설명 PURE_VIRTUAL()은 Unreal Engine에서 순수 가상 함수를 선언하는 매크로입니다. C++의 "순수 가상 함수(pure virtual function)"는 추상 클래스를 정의할 때 사용됩니다. 추상 클래스는 특정 메서드가 자식 클래스에서 반드시 구현되어야 한다는 규칙을 정하는 데 사용됩니다.- Unreal Engine에서는 PURE_VIRTUAL() 매크로를 사용해 더 쉽게 정의할 수 있습니다.PURE_VIRTUAL()을 사용하면, 함수가 호출될 때 에러 메시지를 출력하도록 하고,해당 함수는 반드시 자식 클래스에서 구현되어야 함을 명시하게 됩니다.  ▣ 순수 가상 함수(Pure Virtual Function)란? 순수 가상 함수(pure virtual function)는 C++.. 2024. 10. 24.
언리얼엔진5 c++ 카메라 상하 이동(총기 반동) ▣ AddPitchInput(float Val) 설명: 카메라의 피치(Pitch)를 조정하는 함수로, 카메라를 상하로 움직입니다. 입력 값(Val)이 양수이면 카메라가 아래로 향하고, 음수이면 위로 향하게 됩니다. 1인칭 게임에서는 위아래 시점 조절, 3인칭 게임에서는 카메라 높이 조절로 사용됩니다. API :https://docs.unrealengine.com/5.0/en-US/API/Runtime/Engine/GameFramework/APlayerController/AddPitchInput/  ▣ AddYawInput(float Val) 설명: 카메라의 야우(Yaw)를 조정하는 함수로, 카메라를 좌우로 회전시킵니다. 입력 값(Val)이 양수이면 카메라가 오른쪽으로 회전하고, 음수이면 왼쪽으로 회전합니.. 2024. 10. 1.
언리얼엔진5 c++ GetLocation() 함수들 차이 ▣ GetComponentLocation() 설명: SceneComponent의 월드 좌표를 반환합니다. 즉, 현재 게임 세계에서 해당 컴포넌트가 위치한 절대적인 좌표를 의미합니다.언제 사용해야 하는가? 다른 객체와의 거리나 방향을 구할 때. 물리적 계산이나 충돌 판정 등에서 정확한 월드 위치가 필요할 때. ▣ GetActorLocation() 설명: Actor의 월드 좌표를 반환합니다. Actor의 루트 컴포넌트(Root Component)의 위치를 기반으로, 월드에서의 절대 좌표를 제공합니다.언제 사용해야 하는가? 특정 Actor의 전체 위치를 얻고 싶을 때. 다른 Actor와의 상대적 위치나 방향을 계산할 때. ▣ GetRelativeLocation() 설명: SceneComponent의 상대 좌표.. 2024. 9. 16.
언리얼엔진5 c++ ConstructorHelpers::FClassFinder와 LoadClass<>, LoadObject<> 차이 ▣ ConstructorHelpers::FClassFinder 역할: 클래스를 찾는 데 사용되며, 주로 객체(액터, 컴포넌트 등)의 생성자(Constructor)에서 사용됩니다. 사용 시점: 객체가 생성될 때, 자산이나 클래스를 미리 로드하여 사용할 때 주로 사용됩니다. 특징: 주로 생성자 안에서 사용되며, 클래스나 자산을 즉시 로드합니다. 하드 리퍼런스를 사용하기 때문에 로드 경로에 있는 자산이나 클래스가 반드시 존재해야 합니다. 잘못된 경로나 존재하지 않는 클래스가 있을 경우 런타임 에러가 발생할 수 있습니다. 로드가 즉시 이루어지기 때문에, 게임 시작 시점 또는 에디터 로드 시점에 성능 저하를 초래할 수 있습니다. 주 사용 사례: 클래스가 반드시 있어야 하는 경우: 즉시 해당 클래스를 찾아서 로드해.. 2024. 9. 14.
언리얼엔진5 c++ PlaySound2D, PlaySoundAtLocation 차이 ▣ UGameplayStatics::PlaySound2D 함수는 2D 사운드를 재생하는 것으로, 공간과 관련된 정보(위치, 거리, 반사 등)를 무시한 채 사운드를 재생합니다. 즉, 이 함수는 게임 내의 모든 위치에서 동일한 볼륨과 음질로 사운드를 들리게 합니다.▣  PlaySoundAtLocation 또는 Audio Component를 사용하여 사운드를 3D 공간에 맞게 처리할 수 있습니다.Unreal Engine에서는 리스너의 위치와 사운드의 위치에 따라 음향효과(반사, 거리 감쇠 등)가 다르게 들리게 할 수 있습니다. ▣ 코드 설명: PlaySoundAtLocation: 이 함수는 사운드를 특정 위치에서 3D 공간에 맞게 재생합니다. 리스너가 사운드로부터 멀어지면 소리가 작아지고, 가까이 있으면 소리.. 2024. 9. 7.