본문 바로가기

언리얼599

언리얼엔진5 c++ Damage IgnoreHit random ▣ 코드 설명 IgnoreHitChance 설정: IgnoreHitChance 값으로 피격 반응을 무시할 확률을 설정합니다. 예를 들어, 0.3f로 설정하면 30% 확률로 피격 반응을 무시합니다.확률 계산: FMath::FRand()는 0.0에서 1.0 사이의 랜덤 부동소수점 값을 반환합니다. 이 값이 IgnoreHitChance 이하일 경우 피격 반응을 무시합니다.피격 반응 조건: 확률을 통해 피격 반응이 무시된 경우에는 return Damage;로 함수를 종료하여 피격 효과와 애니메이션을 재생하지 않습니다. 확률에 따라 피격 반응이 무시되지 않은 경우, 피격 애니메이션과 효과를 정상적으로 재생합니다. 2024. 11. 12.
언리얼엔진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++ 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++ 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++ Actor 이름 추출 ▣ GetName() 메서드를 사용하여 Hit.GetActor()의 이름을 가져올 때 이름 뒤에 붙는 "_C_1"와 같은 접미사는Unreal Engine에서 블루프린트 클래스나 인스턴스화된 객체를 나타낼 때 종종 추가됩니다.이 접미사는 Unreal의 객체 관리 시스템에서 객체가 어떤 클래스에서 파생되었는지와 고유한 인스턴스임을 식별하기 위해 자동으로 붙는 것입니다. 예를 들어, 블루프린트로 생성된 액터나 객체는 기본적으로 Unreal의 객체 시스템에서 다음과 같은 형식으로 이름이 변경됩니다: Beteta_C_1 Glock_C_1여기서:"_C": 블루프린트 클래스의 객체임을 나타냅니다. "_1": 해당 클래스의 첫 번째 인스턴스를 나타냅니다. 만약 여러 인스턴스가 있다면 뒤에 숫자가 증가합니다.  ▣  C.. 2024. 10. 11.
언리얼엔진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++ 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.
언리얼엔진5 FlashLightTexture ▣ FlashLightTexture를 다운로드하고 Material로 생성합니다. 그리고 Material Domain을 LightFunction으로 지정하고 위에 노드처럼 연결합니다.    ▣ Sport Light에서 LightFunction Material을 설정합니다.  ▣ Light Function 조명 기능은 빛의 움직임이나 밝기 패턴을 제어할 수 있는 기능입니다. 이것은 실제로 빛이 장면에서 어떻게 비추는지를 변형할 수 있는 일종의 동적 마스크로 작용합니다. Light Function은 주로 Material을 통해 구현되며, 이 Material을 가벼운 기능 소재이라고 부릅니다. ▣ Light Function Material은 특별한 Shader Model을 사용하여 구현됩니다. 이 Materia.. 2024. 8. 15.
언리얼엔진5 Time Remaining ▣ Time Remaining Time Remaining 노드는 현재 활성화된 애니메이션 시퀀스(애니메이션 클립)의 남은 시간을 반환합니다. 이 값은 초 단위로 측정되며, 애니메이션의 끝까지 남은 시간을 나타냅니다. ▣ 사용 예시: 예를 들어, 캐릭터가 공격 애니메이션을 재생하고 있다고 가정하면, Time Remaining 노드를 사용하여 애니메이션이 끝나기 직전(예: 0.2초 남았을 때) 다른 상태로 전환하거나 새로운 애니메이션을 시작할 수 있습니다. ▣  노드 사용 방법: Time Remaining 노드는 상태 머신의 상태나 트랜지션 내에서 사용할 수 있습니다. 애니메이션 시퀀스를 지정한 후, 해당 애니메이션의 남은 시간을 얻을 수 있습니다. 참고 사항: 애니메이션이 종료되면 Time Remainin.. 2024. 8. 14.
언리얼엔진5 Add State Alias, Priority Order ▣ Add State Alias는 특정 상태(State)에 별칭(Alias)을 부여하여, 해당 상태를 다른 이름으로 참조할 수 있도록 합니다. 복잡한 애니메이션 그래프에서 동일한 상태를 여러 곳에서 사용해야 하는 경우, 별칭을 사용하면 상태를 더 쉽게 관리하고 이해할 수 있습니다. ▣ 만약 애니메이션 블루프린트에서 "Run" 상태가 있다면, 이 상태를 "SprintStart"라는 별칭으로 추가하여 사용할 수 있습니다. 이렇게 하면, 동일한 상태를 다양한 상황에서 재사용할 수 있으며, 블루프린트가 복잡해지더라도 직관적으로 상태를 파악할 수 있습니다. ▣ 사용 방법: 상태를 추가하고자 하는 노드를 우클릭합니다. Add State Alias 옵션을 선택합니다. 별칭을 지정한 후, 이 별칭을 사용하여 상태를 참.. 2024. 8. 14.
언리얼엔진5 Rotation 설정 ▣ 플레이한 상태에서 ~ 콘솔 커맨드창에서DisplayAll PlayerController ControlRotation : 해당 속성값이 마우스 입력에 따라서 어떻게 회전하는지 그 값이 나옵니다.  ▣ Use Controller Rotation Pitch, Use Controller Rotation Yaw, Use Controller Rotation Roll는 Unreal Engine에서 캐릭터의 회전에 관련된 설정으로, 각각 캐릭터가 입력 장치(예: 마우스, 컨트롤러 등)의 회전 입력을 따라 움직이도록 제어하는 옵션들입니다. 이 설정들은 특히 캐릭터가 움직일 때 카메라나 플레이어의 입력에 따라 자동으로 회전하도록 만들 때 유용합니다. ▣ Use Controller Rotation Pitch 역할: 이 .. 2024. 8. 9.
언리얼엔진5 c++ 게임입력모드 설정 ▣ FInputModeGameOnly와 SetInputMode 함수는 Unreal Engine 5에서 게임 입력 모드를 설정하는 데 사용됩니다.이 코드의 목적은 플레이어가 게임 내에서만 입력을 받을 수 있도록 설정하는 것입니다.이를 통해 마우스와 키보드 입력이 게임 내 액션에만 반영되고, 다른 UI 요소나 게임 외부에는 영향을 미치지 않도록 할 수 있습니다. ▣  FInputModeGameOnly 클래스의 인스턴스를 생성합니다. 이 클래스는 게임 전용 입력 모드를 정의하는 역할을 합니다.▣ SetInputMode(GameOnlyInputMode);SetInputMode 함수는 입력 모드를 설정하는 함수입니다. 여기서는 GameOnlyInputMode 인스턴스를 입력으로 제공하여 게임 전용 입력 모드를 활.. 2024. 8. 7.
언리얼엔진5 Copyright(저작권 정보) ▣ Unreal Engine 5에서 C++로 게임의 저작권 정보를 설정하려면, 보통 A*GameModeBase 클래스나 주요 게임 설정 클래스에 저작권 정보를 추가할 수 있습니다.▣  Project Settings : Unreal Engine의 프로젝트 설정에서 저작권 정보를 설정할 수 있습니다. 에디터에서 Edit -> Project Settings로 이동합니다. Description 섹션에서 Copyright Notice에 저작권 정보를 입력합니다. 2024. 7. 13.
언리얼엔진5 AnimNotify ▣ Notify를 추가할 애니메이션에서 트랙에 New Notify를 클릭해서 추가합니다.   ▣ 애니메이션 블루프린트에서 Event Graph에서 생성한 Notify Event 이름을 검색하면 Event노드를 찾을 수 있습니다.그리고 해당 이벤트로 함수를 연결하여 Notify가 있는 애니메이션이 실행될 때 Notify를 통해서 해당 함수가 호출할 수 있습니다.   ▣ 플레이어 블루프린트에 추가한 Event를 Notify Event에서 캐스팅해서 해당 함수를 호출할 수도 있습니다. 2024. 7. 3.
언리얼엔진5 c++ AnimNotifyState ▣ c++ AnimNotifyState를 생성합니다. 그리고 3개의 함수를 선언합니다.  virtual void NotifyBegin(USkeletalMeshComponent * MeshComp, UAnimSequenceBase * Animation, float TotalDuration) override; virtual void NotifyTick(USkeletalMeshComponent * MeshComp, UAnimSequenceBase * Animation, float FrameDeltaTime) override; virtual void NotifyEnd(USkeletalMeshComponent * MeshComp, UAnimSequenceBase * Animation) override; ▣ Not.. 2024. 6. 19.
언리얼엔진5 Physics Door ▣ 먼저 Actor를 생성하고 Static Mesh를 추가합니다.   ▣ 해당 Static Mesh에 들어가서 Collstion을 추가합니다.   ▣ Static Mesh에 디테일탭에서 Simulate Physics를 체크합니다.   ▣ Phsics Constraint를 추가합니다. https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Physics/Constraints/ConstraintsReference/ 피직스 컨스트레인트 레퍼런스언리얼 에디터의 피직스 컨스트레인트에서 사용할 수 있는 모든 프로퍼티에 대한 레퍼런스입니다.docs.unrealengine.com  ▣ PhsicsConstraint에 Component Name을 Static Mesh.. 2024. 6. 14.
언리얼엔진5 c++ Timeline(Aim Zoom In Out) ▣ CurveFloat를 생성하고 Time 0, Value 0, Time 0.2, Value 1 각각 Time과 Value를 지정합니다.그리고 시간에 따라 Value 값이 변경되고  그 값을 조절해서 사용하게 됩니다.  ▣ 오브젝트를 애니메이팅 하는 방법을 더 잘 제어하고 싶은 경우, 커브 에디터를 사용하여 키프레임을 수정하고 미세조정할 수 있습니다. 커브 에디터의 그래프를 사용하여 새 키프레임을 생성하고, 탄젠트를 편집하고, 다양한 내장 툴을 사용하여 애니메이션 커브를 조정할 수 있습니다. 커브 에디터는 나이아가라, 커브 에셋 및 애니메이션 커브 같은 언리얼 에디터 전반의 다른 툴에서 사용됩니다. 이 가이드에서는 시퀀서 내에서 커브 에디터를 사용하는 방법에 대해 간략하게 살펴보겠지만, 여기서 설명하는 .. 2024. 6. 13.
언리얼엔진5 ProgressBar ▣ Input Action에 Triggers에 Hold를 추가합니다. 그리고 Hold Time Threshold를 조절하여 Hold 시간을 조절합니다. Is One Shot을 체크하면 Hold 시간이 끝나면 한 번만 Shot을 합니다.   ▣ BP_Player로 가셔서 E키를 누르면 Print 하는 노드를 연결합니다. 그럼 E키를 누르고 Hold Time Threshold 타임이 지나면 Print노드가 한번 출력됩니다.    ▣ 위젯을 생성하고 Text와 ProgressBar를 추가하여 배치하고 ProgressBar에 디테일에 Percent를 바인딩합니다. 그리고 해당 코드에서 BP_Player 변수를 Return Value 하는 노드를 완성합니다.  BP_Player에서 Level 변수를 먼저 생성하고.. 2024. 6. 11.