▣ 코드설명
- PointDamageEvent: DamageEvent를 FPointDamageEvent로 변환하여, 지점 충돌에 대한 정보를 가져옵니다.
- HitBone: 충돌된 부위의 본 이름입니다. 피격 부위에 따라 효과나 데미지를 달리할 수 있습니다.
- ImpactPoint: 충돌한 위치를 나타내는 벡터입니다.
- ImpactNormal: 충돌 지점의 표면 노멀 벡터로, 이 벡터를 사용하여 FX의 방향을 표면에 맞춰 설정할 수 있습니다.
▣ ImpactNormal은 충돌한 표면의 방향을 나타내는 벡터입니다.
이 벡터는 표면에 수직한 방향을 의미하며, 표면의 "바깥쪽"을 가리키는 방향이라고 이해할 수 있습니다.
예를 들어 설명해보겠습니다:
벽에 총알이 맞을 때:
벽 표면이 오른쪽을 향해 있다면, ImpactNormal 벡터도 오른쪽을 가리킵니다.
ImpactNormal 벡터는 벽의 표면에서 수직으로 바깥쪽으로 나오는 방향입니다.
지면에 떨어지는 경우:
만약 총알이 지면에 맞았다면, ImpactNormal은 위쪽을 가리키게 됩니다. 이 방향은 지면에서 수직으로 위쪽으로 나오는 방향을 나타냅니다.
Zombie의 몸체에 맞을 때:
총알이 Zombie의 머리에 맞았다면, ImpactNormal은 머리 표면에서 수직으로 나오는 방향입니다. 만약 뒷머리에 맞았다면 뒤쪽을, 이마에 맞았다면 앞쪽을 가리킵니다.
- ShotDirection: 총알의 발사 방향을 나타내며, 피격 후 효과나 반응을 설정하는 데 사용할 수 있습니다.
▣ 코드설명
- HitFXArray: 여러 개의 피격 FX 중 하나를 랜덤으로 선택하여 재생합니다.
- RandomIndex: FMath::RandRange를 사용해 FX 배열에서 임의로 인덱스를 선택합니다. 다양한 효과를 제공하기 위해 랜덤으로 FX를 선택합니다.
- ImpactNormal.Rotation(): ImpactNormal을 회전값(FRotator)으로 변환하여, FX가 표면의 방향에 맞게 재생되도록 합니다.
- UNiagaraFunctionLibrary::SpawnSystemAtLocation: Niagara FX를 지정 위치와 회전으로 재생합니다. 여기서 ImpactPoint와 Rotation을 사용하여 FX가 정확한 위치와 방향에서 재생됩니다.
▣ UNiagaraFunctionLibrary::SpawnSystemAtLocation은 Niagara FX(비주얼 이펙트)를 지정된 위치에서 재생할 때 사용하는 Unreal Engine 함수입니다. 이 함수는 월드 내 특정 위치에서 Niagara 시스템을 생성하고 재생하도록 합니다. Niagara FX가 스폰되는 위치, 방향, 크기 등을 설정할 수 있으며, 주로 폭발, 파티클, 불꽃, 피격 효과 등의 비주얼 효과를 구현하는 데 사용됩니다.
▣ API
https://docs.unrealengine.com/5.0/en-US/API/Runtime/Core/Math/FMath/RandRange/
https://docs.unrealengine.com/5.0/en-US/API/Runtime/Engine/Engine/FPointDamageEvent/
'[ Unreal5 ] > - 언리얼엔진5 실습' 카테고리의 다른 글
언리얼엔진5 c++ Damage IgnoreHit random (0) | 2024.11.12 |
---|---|
언리얼엔진5 c++ AI Damage Stop Move (0) | 2024.11.11 |
언리얼엔진5 c++ PlaySoundAtLocation 소리강조 (0) | 2024.11.09 |
언리얼엔진5 c++ Hit Niagara 재생 (0) | 2024.11.08 |
언리얼엔진5 c++ SetCollisionProfileName (2) | 2024.11.02 |
댓글