본문 바로가기

언리얼엔진163

언리얼엔진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 뷰포트에서 마우스 커서 사라지는 버그 해결법 ▣ 마우스 장치에서 마우스 포인트 클릭  마우스 포인터 스타일을 변경하고 언리얼 뷰포트에서 확인하면 해결 2024. 11. 27.
언리얼엔진5 c++ Input Hold ▣ .h, .cpp 파일에는 꼭 헤더를 추가해야 합니다.  ▣ HoldStartTime: 키를 누르기 시작한 시점을 기록하는 변수입니다. GetWorld()->GetTimeSeconds()를 사용하여 게임이 시작된 후 경과된 시간을 가져옵니다. 이 값은 HandleInputStarted 함수에서 초기화됩니다. IsShortActionTriggered: 짧은 누름 액션(EatFood) 또는 긴 누름 액션(UseMedicine)이 중복 실행되지 않도록 관리하는 플래그입니다. HandleInputCompleted에서 초기화됩니다. ▣ ETriggerEvent::Started: Q키를 누르는 순간 한 번만 호출됩니다. 이때, 누르기 시작한 시간을 HoldStartTime에 저장하고, IsShortActionTr.. 2024. 11. 26.
언리얼엔진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++ GEngine->AddOnScreenDebugMessage ▣ GEngine GEngine: Unreal Engine의 전역 엔진 객체입니다. 이를 통해 다양한 엔진 기능(로그 출력, 디버깅 메시지 출력, 상태 정보 등)에 접근할 수 있습니다. 화면 디버깅 메시지를 출력하려면 GEngine 객체를 통해 AddOnScreenDebugMessage 함수를 호출합니다.  ▣  AddOnScreenDebugMessage 이 함수는 디버깅 메시지를 화면에 출력합니다. 주요 매개변수는 다음과 같습니다: Key: 출력 메시지의 고유 키입니다. -1로 설정하면 메시지가 누적 출력됩니다. TimeToDisplay: 메시지가 화면에 표시될 시간(초 단위). 여기서는 1.5f로 설정해, 메시지가 1.5초 동안 표시됩니다. DisplayColor: 메시지의 색상입니다. 여기서는 FC.. 2024. 11. 23.
언리얼엔진5 c++ Widget Image 투명도 설정 ▣ UImage를 사용하기 위해서는 헤더에 Compoents/Image.h를 추가해야 합니다.  ▣ BloodEffect"라는 이름의 위젯 가져오기GetWidgetFromName(TEXT("BloodEffect"))는 UMG 위젯 내부에 있는 "BloodEffect"라는 이름의 컴포넌트를 찾습니다. 컴포넌트를 가져온 후 UImage로 형변환(Cast)하여 BloodImage 변수에 저장합니다. ▣ SetColorAndOpacity이미지의 색상(Color)과 투명도(Opacity)를 설정하는 함수입니다. FLinearColor는 4개의 float 값을 사용하여 색상을 정의합니다: (R, G, B, A). R, G, B: 색상 (빨강, 초록, 파랑) A: 투명도 (1.0은 불투명, 0.0은 완전히 투명) F.. 2024. 11. 22.
언리얼엔진5 c++ OpenLevel ▣ UGameplayStatics::OpenLevel을 사용하여 현재 맵을 다시 로드  ▣  API https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Kismet/UGameplayStatics/OpenLevel?application_version=5.5 2024. 11. 20.
언리얼엔진5 c++ Montage 함수 ▣ Montage_Play를 호출하면 해당 애니메이션이 처음부터 재생됩니다.Montage_Pause는 재생한 애니메이션을 멈춤니다.Montage_Resume는 이미 Montage_Pause된 애니메이션을 재개합니다.  하지만 Montage_Resume 전에 Montage_Play를 호출하면 의미가 없어집니다. 따라서 Montage_Resume과 Montage_Play는 동시에 호출하지 않아야 합니다. 2024. 11. 19.
언리얼엔진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++ GetMapName ▣  GetWorld()->GetMapName() 역할: 현재 로드된 맵의 이름을 반환. 반환 값: FString 타입으로 맵 이름을 반환합니다. 예: YourProjectName_Chapter0_Intro GetMapName은 현재 맵의 이름(예: YourProjectName_Chapter0_Intro)을 반환합니다. 이름은 프로젝트 이름과 맵 이름이 _로 연결된 형태로 반환됩니다. ▣  CurrentMapName.Contains(TEXT("Chapter0")) 역할: CurrentMapName 문자열에서 지정한 텍스트("Chapter0")를 포함하고 있는지 확인합니다. 반환 값: true: 문자열에 Chapter0이 포함된 경우. false: 문자열에 Chapter0이 포함되지 않은 경우. Conta.. 2024. 11. 16.
언리얼엔진5 c++ Ragdoll State ▣ 코드 설명 - AIController 중지 StopMovement() :  AIController의 모든 이동 명령을 중지합니다. AI가 다른 목적지로 가고 있을 경우 멈추게 합니다.UnPossess() :  AIController가 캐릭터와의 연결을 끊습니다. 이렇게 하면 AIController가 더 이상 캐릭터를 제어하지 않으며, 캐릭터는 자유로운 상태가 됩니다. 이 두 개의 함수 호출로 인해 캐릭터가 죽으면 AI가 완전히 중지되어 추가 명령이 캐릭터에 전달되지 않게 됩니다. - Character Movement 중지 DisableMovement(): 캐릭터의 이동 기능을 비활성화하여 움직임이 멈추도록 합니다.- Physics Simulation 활성화 및 Collision Profile 변경 S.. 2024. 11. 15.
언리얼엔진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++ Hit Niagara 재생 ▣ NiagaraFunctionLibrary를 사용하기 위해서는 Niagara 모듈을 프로젝트에 추가해야 합니다. Niagara 모듈이 포함되지 않으면 해당 헤더 파일을 찾을 수 없다는 오류가 발생할 수 있습니다. 이를 해결하려면 프로젝트의 Build.cs 파일에 Niagara 모듈을 추가해야 합니다. ▣ UNiagaraSystem 타입을 사용하여 Niagara FX를 HitFXArray에 추가합니다.UNiagaraFunctionLibrary::SpawnSystemAtLocation을 사용하여 충돌 위치(HitLocation)에서 Niagara FX를 재생합니다.각 Niagara FX는 /Game/Effects/NS_Hit1와 같은 경로에 위치한다고 가정합니다. 필요에 따라 경로 했습니다. ▣ Const.. 2024. 11. 8.
언리얼엔진5 c++ LightingChannels ▣ SetLightingChannels(true, true, false)와 LightingChannels.bChannel 설정은 Unreal Engine5에서 라이트의 영향을 받는 채널을 설정하는 기능으로, 특정 오브젝트가 어떤 채널의 라이트를 수신할지를 제어할 수 있습니다. ▣  SetLightingChannels() 함수는 오브젝트가 어떤 채널의 라이트를 수신할지 한 번에 지정하는 함수입니다. 이 함수는 다음과 같은 파라미터를 가집니다. bChannel0: 기본 채널(채널 0)을 활성화할지 여부를 설정합니다. bChannel1: 채널 1을 활성화할지 여부를 설정합니다. bChannel2: 채널 2를 활성화할지 여부를 설정합니다. ▣ LightingChannels 구조체는 개별 채널의 활성화 여부를 설.. 2024. 11. 1.