68. 2D 포트폴리오 마무리 및 후기
6/23(금) 시연을 무사히 마치고 포트폴리오를 마무리했다.
시연회 날짜가 다가오면서 더 많은 시간을 포트폴리오 작업에 할애하다보니 포스팅을 하지 못했는데,
그동안 작업했던 내용들과 아쉬웠던 점, 느낀 점 등을 적어보려고 한다.
1. 공백 기간동안 작업한 내용
- 주로 중간보스의 패턴 작업과 새로운 스컬 데빌 버서커를 작업하는데 많은 시간을 할애했다.
1.1 중간보스 패턴 작업
- 중간보스는 비헤이비어 트리로 구성되는데, 총 4가지 패턴을 구현했고 높이 점프해서 내려찍는 패턴과,
순식간에 접근해서 공격하는 패턴 2개, 그리고 검기를 몸에 두르고 플레이어를 향해 돌진하는 패턴으로 구성했다.
- 특히 접근해서 공격하는 패턴의 경우 두 가지 동작을 연속으로 취하게 되는데, 올려베고, 내려베는 구분 동작으로 구성되어 있다.
- BehaviorCondition에서 Token이라는 true/false라는 2개의 상태를 갖는 클래스의 인스턴스를 보유하고 있는데, 올려베는 동작이 끝나고 나서 또 Root노드에서 이 노드를 지날 때 올려베는 애니메이션이 실행되지 않도록 Token의 상태를 변경해서 다른 분기로 넘어갈 수 있도록 했다. (비헤이비어 트리는 매 프레임 처음 Root노드에서 현재 실행될 노드까지 도달하게 되므로 같은 애니메이션이 반복적으로 실행되지 않도록 해줘야 함)
- 이 개념을 생각하고 구현하는데 시간이 꽤 걸렸던 것 같다.
1.2 데빌 버서커 작업
- 데빌 버서커는 사실 초기에 설정할때부터 넣어야지 생각을 하던 스컬이었는데, 이 게임을 모작했을 때 어설프지 않고 보다 재미있게 보이기 위해 갖춰야할 요소들이 많다고 생각했고, 그 부분을 작업하다 뒤로 미뤄졌던 스컬이다.
(인벤토리, 아이템, 바닥에 떨어지는 골드, 파티클 등)
- 이 스컬은 발표 D-3인 6/20일부터 작업을 시작하게 되었는데 당시에는 사운드 시스템도 들어있지 않았던 상태라 할게 많았음에도 불구하고 '이건 무조건 넣어야 해' 라는 생각으로 작업을 시작하게 되었다.
- 데빌 버서커는 PhysX 물리엔진의 유무를 가장 드라마틱하게 보여줄 수 있는 스컬이라고 생각했기 때문이다.
- 이 스컬이 데몬으로 변신하게 되는 순간에 맵의 모든 파티클들이 물리 상호작용을 일으키며, 레이지 태클이라는 스킬을 같이 구현했는데 이 스킬또한 몬스터와 바닥의 파티클들이 검기공격에 맞고 날아다니게 되는 효과를 연출하는 중요한 스킬이다.
- 이 스컬을 작업할 때 수월했던 이유는 공격 방식이 처음에 구현했던 리틀본 스컬과 상당히 비슷했고 그 밖에 스컬이 가져야할 기본적인 요소들을 기존에 다 구현해놓았기 때문에 설계하는 시간을 절약할 수 있어서 거의 이틀만에 스컬을 완성할 수 있었다.
- 22일에 데빌 버서커를 완성하고 22일 저녁 10시(22시)에 사운드 모듈까지 프로젝트에 붙이게 되었다.
2. 아쉬웠던 점
- 이 프로젝트를 위해 프로젝트 시작 전부터 PhysX 공부를 하고 Dx11 강의를 따로 챙겨보는 등 많은 준비를 해왔기 때문에 내가 넣고 싶었던 기능들과 보여드리고 싶었던 것들을 최대한 넣어서 사실 크게 아쉬움은 남지 않는다.
- 그렇지만 '내가 이정도 걸릴 것이다' 라고 생각했던 것들이 내 욕심 때문에 디테일을 더 챙기게 되면서 일정이 딜레이되었고, 그 부분들이 마지막에 이틀남기고 데빌버서커를 작업해야 했던 원인이 되지 않았나 생각이 든다.
3. 느낀 점
- PhysX와 Spine에 집중하면서 이 외부 라이브러리의 사용법이나 응용 방법, Spine의 경우 툴의 사용법 등을 공부하는데 시간을 많이 빼앗겼지만 한편으로는, 이번 프로젝트에서 배운 지식들은 차기 포트폴리오나 작업에서 무리없이 사용할 수 있게 되었으며, 외부 라이브러리의 코딩 스타일에서 배워야 할 점들을 캐치할 수 있는 좋은 경험이 되었다고 생각한다.
- 예를 들어 PhysX의 경우 원래 3D 물리엔진인데 일부 기능을 제한해서 2D에서 사용할 수 있게끔 작업했는데, 다음에 진행할 3D 프로젝트에서 물리 엔진을 사용할 기회가 온다면 아마 지금 배운 지식들을 유용하게 사용할 수 있을 것이다.