본문 바로가기
게임 개발/[D2D_Portfolio] DirectX2D 포트폴리오 작업일지

51. 몬스터 피격 이벤트 처리 & 침식된 기사 Dead 이벤트 처리

by 헛둘이 2023. 5. 19.

몬스터 피격 이벤트 처리

- 몬스터가 피격당했을 때 일어나는 일은 아래와 같다.

1. 피격 애니메이션 실행

2. 플레이어의 데미지만큼 몬스터 체력 감소

3. 몬스터가 죽었는지 확인하고 죽었다면 몬스터의 상태 변경

 

- 위 조건을 염두에 두고 비헤이비어 트리 작업을 진행했고, 피격 시 Hit 상태로의 전이를 통해 피격 애니메이션을 실행시켰다.

- 그리고 피격 후 IsAlive 함수를 통해 HP가 남았는지 확인하고 남아있지 않다면 Dead 상태로 전이되며, 씬에서 제거된다.

- 원작에서는 피격 시 일정 시간동안 경직되며 Hit Animation을 n초간 유지하는데, 이는 TimerCondition이라는 비헤이비어 노드를 만들어서 해결했다.

- TimerCondition은 n초가 지나기 전에는 FAILURE를 반환해서 다음 노드로 진행할 수 없게 하고, n초가 지난 후에는 SUCCESS를 반환하게 된다.

 

침식된 기사 Dead 이벤트 처리

- 침식된 기사는 HP를 모두 소모하면 일반 몬스터처럼 그냥 사라지는 게 아니라, 털썩 주저앉으며 1.5초간 Dead 애니메이션을 실행하고, 1.5초가 지나면 폭발하여 주변 오브젝트에 데미지를 입히도록 설계되어 있다ㅣ

- 플레이어 뿐만 아니라 몬스터들도 데미지를 입기 때문에 원작에서는 이를 이용한 전략적인 플레이가 가능하다.

- 이를 구현하기 위해 비헤이비어 트리에서 해당 몬스터의 DeadEvent를 실행하라고 명령하면 침식된 기사의 경우는 Dead Trigger를 올리게 되고, Dead Trigger가 올라가면 털썩 주저앉는 애니메이션과 주의하라는 느낌표 모양의 HUD를 띄운 후 1.5초 후에 폭발 애니메이션을 출력하고 몬스터를 지움으로써 구현할 수 있었다.

 

내일 할 일

- 친척 결혼식에 참석해야 해서 작업을 많이 진행하지 못할 예정 

댓글