BP_FireBall 스킬 사용
LineTraceForObjects에서 Branch를 통해서 충돌 여부를 구분하여 Break Hit Result에서 충돌했을 때에는 Location을,
충돌하지 않았다면 TraceEnd를 반환해주었다.
스킬 몽타주(Wizard_Attack_Montage)가 실행되고 중간에 넣어둔 Notify가 호출되는 시점이 FireBall이 날아갈 시점이므로
BP_FireBall 이벤트에서 End Action A 이벤트를 추가해주었다.
FireBall이 나가는 위치를 잡아주기 위해 캐릭터의 bone(hand_r)의 위치를 가져와서 SpawnActorFromClass의 Location에
연결해주었다.
Projectile 만들기
이어서 SpawnActor에서 스폰해줄 클래스 BP_FireBallProjectile(블루프린트 클래스 Actor)을 생성해주었다.
BP_FireBallProjectile 내에서 ParticleSystem과 Sphere Collision을 추가해주었다.
ParticleSystem
ㄴTemplate : P_Shot_Fire
ㄴ스케일 : 0.5
ㄴ회전 z : -90 (월드 기준 x와 방향을 맞추기 위함)
Sphere(Root Component로 올림)
ㄴSphere Radius : 20.0
ProjectileMovement
틱이 도는동안 다른 컴포넌트의 위치를 업데이트해준다. 충돌 후 튕김이나 유도 미사일 같은 작동 방식을 지원해준다.
ㄴInitial Speed : 생성당시 스피드(5000.0 으로 설정함)
ㄴMax Speed : 최대 속력 제한
ㄴRotation Follows Velocity : 날아가는 속도에 따라서 오브젝트의 방향이 회전된다.(사용함)
ㄴRotation Remains Vertical : Pitch 회전이 적용되지 않음. xy축에 대한 회전은 되지만 z축에 대한 회전 적용 안됨
ㄴInital Velocity in Local Space : 초기 속력이 Local Space에 대해서 계산될지의 여부(Local X or World X / 사용함)
ㄴProjectile Gravity Scale : 중력 적용 여부
ㄴShould Bounce : 튕겨져나가는 투사체
ㄴBounce Angle Affects Friction : 튕기면서 마찰이 적용될 것인지 여부
ㄴBounce Velocity Stop Simulating Threshold : 튕긴 후 속도가 해당 값 이하일 경우 종료
ㄴForce Sub Stepping : 프레임 당 이동을 더 잘게 나눌 수 있다. 중력의 영향을 받거나 호밍기능이 있는 경우 사용
* Sweep은 곡선을 처리하긴 어렵다. 따라서 포물선의 경우 이러한 기능 사용
ㄴIs Homing Projectile : 투사체의 유도 여부
* Projectile Movement - Set Homing Target Component를 통해서 충돌 대상 지정 가능
ㄴHoming Acceleration Magnitude : 호밍 타겟을 향해 가속할 때 가속량 증폭
이어서 BP_FireBall에 돌아와 SpawnActorFromClass의 Class에 방금 만든 BP_FireBallProjectile을 지정해준다.
Spawn Rotation을 잡아주기 위하여 Find Look at Rotation을 사용하였는데, Start와 Target의 Location만 가져오면
해당 방향에 맞춘 회전값을 내보내줄 수 있다.
따라서 Start는 소켓으로 받아온 hand_r의 Location이며, Target은 Get Destination Data 함수의 결과로 나온 Location을
넣어주었다.
이후 실행해보면 FireBall이 잘 생성되면서 LineTrace를 그린 방향대로 잘 날아가는 것을 볼 수 있다.
'언리얼엔진' 카테고리의 다른 글
41. Camera의 Zoom In / Out 구현하기 (0) | 2023.07.03 |
---|---|
40. FireBall 스킬 피격처리 / 스플래쉬 데미지 / Actor 삭제 (0) | 2023.07.02 |
38. FireBall(원거리 공격) / LineTraceForObjects (0) | 2023.06.29 |
37. Dot, Cross Product / 삼각함수 atan2 (0) | 2023.06.27 |
36. SetTimerbyEvent / 이벤트 생성 (0) | 2023.06.25 |