[UE5] Assassin24 - Boss Enemy(2)

윤정민·2023년 8월 9일
0

[Unreal Project]Assassin

목록 보기
26/26

1. 개요

이전 시간에 Boss의 근접공격을 구성했다. 좀 더 다채로운 게임을 위해 보스 주변에 폭발물을 생성하고 플레이어를 밀어내는 기술을 구현해보자

2. 구현내용

2.1. Launch Skill

melee 부분을 구현하다보니 boss ai가 공격시 움직이게 되는데 이때, 플레이어가 boss 바로앞에 위치하게 되면 collision이 겹치게 되어 플레이어가 튕겨져나가는 오류가 발생하게 된다. 이를 어떻게 해결할지 고민을 했고 그냥 플레이어가 가까히 다가왔을때 날려버리는 기능의 스킬을 넣기로 했다.

근데 사실이렇게 해결하지말고 보스 애니메이션 루트 모션의 움직임이 적은 모션으로 구성하는 방식으로 고치는게 더 좋다. 나도 이 방식과 칼의 콜리전을 더 빨리 활성화하여 공격이 움직임보다 빠르게 실행되어 플레이어가 뒤로 밀려나게하여 문제를 고쳤다.

  • 스킬시 주변의 적을 탐지하여 해당 적을 뒤로 밀려나게함

    • notify로 작성하는게 타이밍 맞추기 좋음
    • 적절한 effect를 추가해주면 좋음
  • 뒤로 밀려나가게 할 때 지형에 따라 바로 XY좌표만 고려해서 미는 방법보다 Z축의 양의 방향으로 조금 민 뒤에 XY축으로 밀어주는걸 추천함

  • 적이 밀려나갈 땐, 밀려나가는 애니메이션을 출력

    • 밀려나갈 땐 Controller를 비활성화 하여 stun상태로 만듦
  • boss가 공격시 target과의 거리가 240이하일 때 해당 스킬 사용

    • boss가 다가가는 거리가 250이기 때문에 이 보다 더 가까워지다면 밀어냄

2.2. Explosion Skill

행동이 다양하긴 하지만 모두 근접에서 이루어지는 기능들이라 일반 적과 비슷한 느낌이난다. 보스라는 느낌이 더 강하도록 보스와 플레이어의 거리가 멀때, 주변에 폭발물이 터지도록 해주자

  • Weapon클래스를 상속받은 BossExplosionSkill이라는 클래스를 만듦

    • 데칼을 사용해 폭발 범위를 시각적으로 보여줌
    • 5초 뒤 해당 범위에 폭발물이 터지도록 만듦
      • 나이아가라 이펙트를 사용해 시각적 효과를 줌
      • 범위 내 캐릭터를 탐색해 해당 캐릭터에 데미지를 줌
  • Boss클래스에서 BossExplosionSkill액터를 생성하는 함수를 작성

  • 해당 함수를 BT에서 실행시키기 위한 Task 작성

  • BT에서 Target과의 거리가 600보다 멀다면 strafe를 멈추고 스킬을 사용하도록 구성

    • 공격 위치를 선택하기 위해 EQS를 사용

    • 무한 공격을 방지하기 위해 5초마다 공격하도록 구성(Cooldown사용)

3. 최종 결과

profile
그냥 하자

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기