본문 바로가기

게임 개발101

55. 과학자 몬스터 완료 및 맵 작업 과학자 몬스터 완료 - 어제 완성하지 못한 과학자 몬스터가 특정 프레임에 플라스크를 던지는 로직을 작성 완료했다. - 어떤 기술이 들어갔다기보단 플레이어를 향해 플라스크를 던지는데, 조금 신경쓴 부분은 플레이어가 과학자 몬스터보다 위에 있는 경우 플라스크가 중력에 의해 플레이어에게 도달하지 못하는 경우가 종종 발생해서, 특정 각도 범위에는 던지는 힘을 별도로 적용시켜주었다. - 이 몬스터를 완성하며 내가 이 스테이지에서 만들고자 하는 몬스터들을 다 완성하게 되었고, 이 몬스터들을 통해 맵을 꾸미는 작업을 이어서 진행했다. 맵 작업 - 위에서 만든 이 몬스터들을 맵에 적절히 배치하는 작업과 타일을 찍는 작업 등을 진행했다. - 한 가지 문제는 타일이 너무 많아져서 이 타일들이 프레임 드랍을 발생시킨다는 점.. 2023. 5. 24.
53. 침식된 중보병 완성 & 침식된 앤트 애니메이션 작업 침식된 중보병 완성 - 몬스터의 hp가 0이 되고, 표효한 후 주변을 망치로 내려치고, 플레이어방향으로 태클을 하는 부분을 중점적으로 작업했다. - 이 모든 부분은 비헤이비어 트리로 작업했고 비헤이비어 트리에서 사용할 수 있도록 몬스터의 상태를 간단히 만들어서 처리했다. - 상태를 굳이 만든 이유는 상태에 따른 노드의 분기도 있지만 더 중요한 목적은 디버깅 목적이다. - 몬스터의 상태가 점점 복잡해지다보니 비헤이비어 노드도 점점 많아지게 되고 그러다보니 문제가 생겼을 때 바로 찾아내기 힘들다. - 이 때 BP를 걸어서 현재 몬스터의 상태가 어느 상태인지 빠르게 확인하고 그 부분을 수정하여 보다 효율적으로 작업을 진행할 수 있었다. - 오늘 작업한 내용은 애니메이션과 상태 전이 부분이며, 실질적으로 바닥의.. 2023. 5. 22.
52. 침식된 중보병 애니메이션 작업 침식된 중보병 애니메이션 작업 - 내가 작업 중인 스테이지에서는 침식된 중보병이라는 몬스터가 나오는데, 이 몬스터는 엘리트몬스터가 아님에도 불구하고 여러 패턴을 가지고 있다. - 플레이어 방향으로 태클을 하기도 하고, 가까이 접근하면 손에 든 망치로 내려치기도 한다. - 원작을 플레이하며 가장 괴랄했던 패턴은 이 몬스터가 죽은 후 취하는 액션인데, 포효한 후 망치로 주변을 5번 내려친 후 플레이어 방향으로 태클을 해서 자폭한다... - 이 몬스터에 고통받아 인상깊었던 이 몬스터를 꼭 구현해야겠다고 생각했다. - 일단 오늘 작업한 부분은 태클, 어택에 대한 부분으로, 두 개의 Selector 노드를 둬서 거리에 따라 태클을 할지 공격을 할 지 선택하도록 했다. - 어택을 할 때 타일에 주의하라는 이펙트를 .. 2023. 5. 21.
51. 몬스터 피격 이벤트 처리 & 침식된 기사 Dead 이벤트 처리 몬스터 피격 이벤트 처리 - 몬스터가 피격당했을 때 일어나는 일은 아래와 같다. 1. 피격 애니메이션 실행 2. 플레이어의 데미지만큼 몬스터 체력 감소 3. 몬스터가 죽었는지 확인하고 죽었다면 몬스터의 상태 변경 - 위 조건을 염두에 두고 비헤이비어 트리 작업을 진행했고, 피격 시 Hit 상태로의 전이를 통해 피격 애니메이션을 실행시켰다. - 그리고 피격 후 IsAlive 함수를 통해 HP가 남았는지 확인하고 남아있지 않다면 Dead 상태로 전이되며, 씬에서 제거된다. - 원작에서는 피격 시 일정 시간동안 경직되며 Hit Animation을 n초간 유지하는데, 이는 TimerCondition이라는 비헤이비어 노드를 만들어서 해결했다. - TimerCondition은 n초가 지나기 전에는 FAILURE를 .. 2023. 5. 19.