언리얼 엔진 5/개발 일지

[UE5] 블루아카이브 TPS게임 개발일지 (19) - 총알 투사체 제작 (Projectile Movement)

ciel45 2023. 12. 30. 00:10

본론에 앞서, 칸나의 헤일로가 딱 붙어있기보다는 자연스럽게 캐릭터를 따라가게 했으면 좋겠다는 의견이 있었다.

 

원래는 칸나의 머리에 소켓(Halo_Socket)을 만들어 헤일로를 그대로 넣었었는데, 이제 헤일로를 별도의 액터로 만들고 칸나 블루프린트에서는 헤일로를 삭제했다.

BP_Halo

 

헤일로가 칸나의 머리로 천천히 따라가게 하는 것은 다음 포럼의 글을 참고했다.

https://forums.unrealengine.com/t/how-to-make-objects-follow-the-player/468227/4

 

How to make objects follow the player?

The problem you’ve got is you have to either use AI or tick, you can’t use both, they’re screwing with each other. Try this:

forums.unrealengine.com

 

해당 글에 나온 블루프린트는 따라가는 목적지를 캐릭터의 정면 벡터에 -150을 곱한 것으로 하였다.

 

헤일로의 경우 목적지는 여전히 칸나의 헤일로 소켓이어야 한다. 또한 각도도 칸나의 방향에 계속해서 맞춰주어야한다.

이러한 점을 감안하여 블루프린트 노드를 짰다.,

BeginPlay에서는 헤일로의 초기 위치를 설정한다.

 

이벤트 틱마다, VInterp To 노드를 사용하여 칸나의 Halo_Socket으로 천천히 이동한다.
마찬가지로 이벤트 틱 마다, 헤일로 소켓의 각도에 맞추어 헤일로를 천천히 회전시킨다.

 

적용 결과는 포스팅 후반부 영상에서 확인할 수 있다.

 

 

 

적이 쏘는 총알은 날아오는 것을 볼 수 있도록 투사체로 만들기로 결정한 바가 있다.

따라서 투사체의 블루프린트 BP_Projectile을 만들었다.

BP_Projectile

총알은 Sphere 기본 메시를 적절히 찌그러뜨린 타원형이다.

언리얼 엔진의 액터 블루프린트에는 해당 액터를 투사체로 쓸 수 있도록 해주는 Projectile Movement 컴포넌트가 이미 내장되어있다.

좌측 상단 Components 탭의 +Add 버튼을 눌러 Projectile Movement를 추가할 수 있다.

 

Projectile Movement를 가져왔다면, 디테일 패널에서 여러 정보를 설정할 수 있다.

 

 

총알로 사용할 것이라면 설정할 것은 많지않다. 어차피 사물에 부딪히는 순간 사라지게 할 것이기에, Projectile 탭의 Initial Speed, Max Speed, Projectile Gravity Scale만 잘 설정해주면 된다.

 

 

위의 이미지에서는 6000, 6000, 0으로 각각 설정해둔 것을 볼 수 있다.

 

 

총알이 아닌 유탄의 경우에는 스피드를 줄이고, 중력 스케일은 늘려야 할 것이다. 이렇게 상황에 맞게 잘 설정해주면 된다.

Sphere, 즉 총알이 충돌을 감지했을 때는 단순히 액터가 사라지게 하였다. 물론 임시용이다.

 

BP_Projectile에 사용된 머티리얼이다. 주황색으로 밝게 빛나도록 하였다.

 

 

 

총알은 콜리전 설정을 확실히 해주어야 하기 때문에, 별도의 콜리전 타입을 만들었다.

 

Project Setting의 Collision 탭에 들어가서,

Projectile 오브젝트 채널, Projectile 프리셋을 만들어주었다.

상단의 Object Channels, 하단의 Preset 탭에 각각 Projectile이 추가된 것을 볼 수 있다.

 

 

Projectile Preset은 기본적으로 모든 요소를 Block하도록 했다.

총알(Sphere)의 콜리전 프리셋을 Projectile로

 

단, 총알이 칸나의 캡슐 컴포넌트와 충돌을 감지하길 원하지는 않는다.

따라서 캡슐은 총알을 무시하도록 하였다.

Ignore Projectile

 

 

테스트를 위해 적이 2초 간격으로 이동 후 총을 발사하도록 하였다. (정정: 1초)

BP_Enemy 이벤트 그래프

 

그리고 총알이 부딪힌 액터가 칸나일 경우 메시지를 출력하게 했다.

 

 

테스트 영상:

https://youtu.be/XE15N0VYpaE

 

 

이제 비헤이비어 트리를 사용하여 본격적으로 적 AI를 제작할 것이다.