본문 바로가기
[ Unreal5 ]/- 언리얼엔진5 실습

언리얼엔진5 AI TakeDamage

by MRG 2024. 5. 11.
728x90
반응형

 

▣ 먼저 대미지를 줄 플레이어 c++에서 ApplyDamage() 함수를 사용하기 위해 필요한 #include "Kismet/GameplayStatics.h" 헤더를 추가하고 ApplyDamage() 매개변수에 맞게 코드를 작성합니다. 

 

https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Kismet/UGameplayStatics/ApplyDamage?application_version=5.3

 

U Gameplay Statics/Apply Damage | Unreal Engine 5.4 Documentation | Epic Developer Community

Hurts the specified actor with generic damage.

dev.epicgames.com

 

 

▣ 대미지를 받을 c++ 헤더파일로 가서 TakeDamage() 함수를 선언하고 cpp파일에서 TakeDamage를 받는 경우에 대한 코드를 작성합니다.

ApplyDamage로 대미지를 줄 때 TakeDamage()가 호출됩니다. 블루프린트와 C++에서 사용하는 방법이 다릅니다.

 

▣  ApplyDamage : 기본 대미지 함수.


▣  ApplyPointDamage : 대미지를 대미지를 주는 위치의 정보를 얻고 주는 위치마다 다르게 대미지를 줄 수 있는 함수


▣  ApplyRadialDamage : 범위 대미지를 주는 함수

 

 

https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Game/GetInstigatorController/

 

Get Instigator Controller

Get Instigator Controller

docs.unrealengine.com

 

https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/GameFramework/AActor/TakeDamage?application_version=5.3

 

A Actor/Take Damage | Unreal Engine 5.4 Documentation | Epic Developer Community

Apply damage to this actor.

dev.epicgames.com

 

 

▣ 저장 및 컴파일 후 플레이해 보면 위에 이미지처럼  LineTrace를 대미지를 주고 사라지는 효과를 확인할 수 있습니다.

 

 

 

▣ 이번에는 ApplyPointDamage() 함수로 변경하여 코드를 작성하고 

대미지를 받는 헤더에 필요한 #include "Engine/DamageEvents.h" 헤더를 추가하고 cpp코드에서 TakeDamage() 함수 안에서 FPointDamageEvent로 ApplyPointDamage()로 호출했는지에 대한 여부를 확인하는 코드 후 충돌한 BoneName()이 맞으면 그 부위에 맞게 대미지를 주는 코드를 완성합니다. 

 

https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Kismet/UGameplayStatics/ApplyPointDamage?application_version=5.3

 

U Gameplay Statics/Apply Point Damage | Unreal Engine 5.4 Documentation | Epic Developer Community

Hurts the specified actor with the specified impact.

dev.epicgames.com

 

 

▣ 저장 및 컴파일 후 부위에 맞게 Trace를 발사하면 위에 이미지처럼 head에 대한 TEXT가 출력되는 걸 확인할 수 있습니다. 

728x90
반응형

댓글