VR

[Dev Log] 아빠의 도전: 아들을 위한 '굴착기 시뮬레이터' 제작기 (1일차)

103105 2026. 5. 6. 14:07

요즘 부쩍 중장비와 변신 로봇에 푹 빠져 있는 아들을 보며 문득 결심했습니다. "시중에 파는 장난감도 좋지만, 아빠가 직접 조종할 수 있는 굴착기 세상을 만들어주면 어떨까?"

기술 행정 업무와 3D 모델링 공부를 병행하며 바쁜 나날을 보내고 있지만, 말로만 "해줘야지" 하고 미뤄두기보다는 지금 당장 실행에 옮기는 것이 진짜 '어른'의 모습이 아닐까 하는 생각이 들었거든요. 그렇게 아빠의 야심 찬 '굴착기 프로젝트'가 시작되었습니다.


1. 첫 단계: 모델 수급과 유니티 입성

가장 먼저 조종할 '몸체'가 필요했습니다. 다행히 오픈소스로 잘 만들어진 굴착기 모델을 구할 수 있었고, 이를 유니티(Unity)로 불러오는 작업을 진행했습니다. 평소 블렌더(Blender)를 만졌던 감각 덕분에 유니티로 데이터를 넘기고 배치하는 과정은 비교적 수월했습니다.

2. 뜻밖의 복병: 새로운 Input System

모델을 배치했으니 이제 움직여야 할 차례. 그런데 여기서 예상치 못한 복병을 만났습니다. 유니티의 New Input System이 그 주인공입니다.

기존의 Input.GetAxis 방식에 익숙해져 있다가, 새로 바뀐 패키지 기반의 시스템을 적용하려니 잠시 머릿속이 하얘지더군요. 액션 맵(Action Map)을 설정하고, 바인딩을 걸어주는 과정이 낯설어 잠시 헤매기도 했지만, 역시 개발의 묘미는 이런 문제를 하나씩 풀어가는 데 있는 것 같습니다.

3. 오늘의 성과: "움직인다!"

잠시의 사투 끝에 드디어 키보드 입력에 반응하는 굴착기를 완성했습니다.

  • WASD 조작: W/S로 앞뒤 이동, A/D로 좌우 회전.
  • 스크립트 로직: 단순히 위치값을 바꾸는 게 아니라, 굴착기 특유의 묵직한 회전 느낌을 살리려 노력했습니다.

아직은 빈 벌판 위를 굴착기가 미끄러지듯 이동하는 수준이지만, 내 입력에 따라 화면 속 중장비가 움직이는 걸 보니 벌써 아들이 좋아할 모습이 그려져 뿌듯함이 밀려옵니다.


4. 다음 과제: 속도 조절(Speed Control)

오늘 만든 이동은 아주 기초적인 단계입니다. 지금은 입력하면 정해진 속도로 일정하게 움직이지만, 실제 굴착기는 지형이나 조작 방식에 따라 속도가 유기적으로 변해야 제맛이죠.

다음 작업에서는 가속도 개념을 도입해 이동 속도를 세밀하게 조절하는 기능을 만들려고 합니다. 정지 상태에서 서서히 속도가 붙고, 조작을 멈추면 관성에 의해 아주 살짝 더 밀려가는 그런 리얼리티를 한 줌 넣어볼 생각입니다.

$$v = v_0 + a \cdot t$$

(이런 물리 공식이 실제 코드에서 부드러운 움직임으로 구현될 때의 쾌감, 개발자라면 다들 아시죠?)


아빠의 한 줄 평

"나이만 먹은 아이가 되지 않기 위해 선택한 오늘의 '실행'. 아들에게 보여줄 근사한 가상 세계를 위해 내일도 엔진을 켭니다."