Skip to main content

첫걸음

언제나 구현의 시작은 이동이다. 단순한 횡스크롤 이동은 여러 유튜브에서 발견할 수 있기 때문에 어렵지 않게 만들 수 있었다. 컴퓨터엔 이동만 만들다가 잊혀진 유니티 프로젝트가 10개가 넘었다. 문제는 이 다음부터다.

애니메이션을 연결하고 대시를 만들었..지만 뭔가 심심하다. 프로그램으로 밀어내는 방식은 내가 원하는 느낌의 속도가 나질 않는다. 더불어서 물리의 영향을 받는 건지 항상 정확한 이동거리를 보장하지 않는다.

애니메이션의 이동값을 그대로 적용하는 루트모션을 이용해보기로 한다. 애니메이션 자체는 제자리에 있고 루트모션을 담당하는 더미의 이동값을 대입하는 방식이다.

뭔가 복잡하긴 하지만 OnAnimatorMove()를 사용하면 된다는 거 같다.

오오 구른다.

무작정 따라하기

그동안 이동을 만들면 멈추게 됐던 원인이 그 다음에 뭘 어떻게 구현해야 하는지 감을 못잡기 때문이라고 판단했다. 그러던 중 에셋 스토어에서 완성된 풀게임을 템플릿 형식으로 파는 것들이 있다는 걸 알게 됐다.

그리고 마침 이런 걸 발견했다. 횡스크롤 액션 게임을 만들기에 딱 좋은 에셋이라는 생각이 들었고, 구매했다. 목표는 뭐가 뭔지 전혀 몰라도 그냥 일단 그대로 따라 만들어보는 것으로 잡았다.

때리고 맞는 부분을 흉내냈다. 유튜브를 보면 타이핑할 때 자동완성처럼 뜨고 함수 참조도 몇개 됐는지 뜨던데, 그걸 코드 인텔리센스라고 부른다고 한다. 비주얼 코드에 확장을 까니까 이것만으로도 코딩이 훨씬 편해졌다. 템플릿을 염두에 둔 코드라서 그런지 참조된 함수들을 더듬어가는 것만으로도 공부가 되고 있다.

완성된 프로젝트의 코드를 흉내내는 것만으로 코딩 자체에 대한 집중도가 올라갔다. 예제를 참고했다고 해도 뭔가 생각한 것이 실제로 움직인다는 것에 만족감이 높다.

몬스터 더미도 만들어서 테스트해봤다. 맞을 때 히트플래시를 추가했다. 예전에 창업했을 때 만들었던 쉐이더에서 히트 플래시를 위한 기능이 있었기 때문에 해당 기능을 제어하는 건 구글링으로 쉽게 해결할 수 있었다. 왜 이렇게 돌아가는지 완벽하게 이해하고 만들고 있는 건 아니지만, 하다보면 익숙해질 것리다.

캐릭터가 때렸으니 이제 몬스터가 움직일 차례다. 완전한 미지의 영역이다. AI라는 말이 거창하지만 일단 자리 잡기부터 만들어보기로 한다.

적들이 플레이어와의 거리를 체크하는 부분이랑 캐릭터와 마주보는지 체크하는 부분이 있길래 이걸로 마주볼 때는 공격거리 바깥에서 대기하고 캐릭터가 뒤돌아보면 쫓아가는 형태를 만들어봤다. 스스로 생각한 것이 될까? 하면서 추가했던 게 제대로 돌아가면 엄청난 희열이 느껴진다. 더불어서 그동안 넘지 못했던 벽을 넘고 있는 것 같아서 더 즐겁다.

와아아아~ 뛰어만 다녀도 신나~~!!

Leave a Reply