0. 발단
며칠 전 저는 게임패스에서
A game about digging a hole이라는 게임을 발견한 후
흥미를 갖게되어 플레이합니다
특출난 구석은 없지만 왠지 모르게 사람을 빠져들게 하는 게임성에 의해
앉은 자리에서 엔딩까지 보게 되었고
본인도 언젠가 땅파는 게임을 만들어보고 싶다는 생각을 하게되었습니다
그로부터 얼마 뒤 오늘
작업중이던 토이프로젝트를 여는 순간
형용할 수 없는 수치심과 한심함에
내겜구려병이 398457134905871349857번째 재발하게되어
프로젝트를 단숨에 삭제하고
마음 한 켠에 자리잡은 땅파는 게임을 만들며 일지를 써볼까 합니다
---------------------------------------------------------------------------------------------
1. 기획
그 동안 프로젝트를 폐기했던 이유는 항상 제 분수에 맞지 않는 기획이었습니다
좋게쳐줘도 입문자를 막 넘어선 초보수준의 프로그래밍 실력을 갖고있기때문에
이번 프로젝트는 정말 간단한 목표를 잡겠습니다
-목표
특정좌표까지 땅파기 ex) y = -1000
-시스템
1인칭 시점
블록에 데미지를 누적시키는 방식 (마크처럼 채광도중에 에임이 벗어나도 초기화되지않음)
곡괭이 파워, 곡괭이 속도 업글 가능
땅파서 광물 얻기
광물팔아서 업글하기
깊이갈수록 단단하고 비싼광물 등장
------------------------------------------------------------------------------------------------
2. 기본 시스템 구현
먼저 카메라 시점과, 플레이어의 이동을 구현해보겠습니다
시네머신을 사용하면 편할 것 같습니다
Tracking target을 추적할 오브젝트로 설정
Position Control을 Hard Lock To Target으로 설정
Rotation Control을 Pan Tilt로 설정
맨 위, 맨 아래를 볼 수 있게 하고싶어 Tilt Axis의 range값을 -90~90으로 바꾸겠습니다
또한 add input controller를 누르면 알아서 input을 설정해줍니다
잘 작동합니다
--------------------------------------------------------------------------------------------------------------------
플레이어의 이동은 시네머신 카메라의 pantilt의 회전값을 이용해서 플레이어 오브젝트를 회전시키고
리지드바디의 linearvelocity를 통해 움직임을 제어하도록 했습니다
이때 인풋은 유니티에서 기본제공하는 new input system의 Player/Move 액션을 이용해
Vector2값을 Vector3로 전환해 사용했습니다
잘 작동합니다
지터링 문제가 있었지만
이동관련 로직을 fixed업데이트에서 처리하고
플레이어 리지드바디의 interpolate를 설정해주니 해결되었습니다
다음 시간에는 채광가능블록에 대한 기능을 구현해보겠습니다
댓글 1