어느 한 병사가 있었습니다. 이번에 사격훈련을 가는데, 만발을 맞히면 포상을 준다고 합니다. 분명 좋은 소식일텐데도 이 사람은 고민에 빠졌습니다. '어떻게 하면 사격을 연습할 수 있을까?'
실제로 총을 쏴볼 수도 없고, 그렇다고 빈 총의 방아쇠를 당겨봤자 내가 잘 쏘고 있는지도 모릅니다. 결국 사격훈련 당일에서야 자신의 실력을 확인하고 그때에만 연습을 하는 수밖엔 없죠.
그러자 우리 모두가 가지고 있는 휴대폰으로 사격 연습을 하면 좋겠다는 생각이 들었습니다. 퍼펙트샷 : 만발의 법칙은 이를 실현시키기 위해 시작한 프로젝트입니다. 시공간의 제약 없이, 안전하게 저비용으로 우리 모두가 사격 연습을 할 수 있도록 도움을 주는 앱을 만들고 있습니다.
우선, 총에 휴대폰을 매달아서 진행합니다.
앱에 있는 표적을 쏘아 맞히는 것이 목표입니다.
(진동 모듈을 부착한 사진) (진동모듈을 부착한 채 반동을 제어하는 사진)
진동 모듈을 통해서 반동 제어를 연습할 수 있습니다.
블루투스 컨트롤러가 없으시다구요? 걱정마세요. 그런 당신을 위해 응시모드가 있습니다. 조준하고 있으면 발사가 됩니다! 오조준 시에도 발사되기 때문에 잘 보고 있어야겠죠? |
다음은 영점사격과 실거리사격입니다. 사격실력에 최대한 많은 도움을 주기 위해 노력하였습니다. 사격을 그 자체로 연습할 뿐만 아니라 사용자 스스로를 피드백시키기 위해서 탄착 지점을 표시합니다.
영점사격 | 실거리사격 |
---|---|
탄착지점을 확인하고 크리크 수정을 할 수 있습니다 | 자신이 몇 발을 어떻게 어디를 맞혔는지 다 나옵니다🙆♂️ |
가늠쇠 동기화라 함은, 게임 내의 카메라 중앙 지점을 현실 총의 가늠쇠에 맞추는 것을 말합니다. 이러한 카메라의 움직임을 반영하기 위해, 카메라 렌즈 시프트 값을 저장하여 사용합니다. |
탄도학을 구현하였습니다. 총알 오브젝트를 920m/s로 발사합니다. 총구는 가늠쇠 오브젝트의 0.055유닛(현실의 5.5cm에 해당합니다) 밑에 있으며, 아주 미세하게 위쪽을 향하고 있습니다. 덕분에 25m 지점에서 아주 조금 밑, 250m에서 정면을 맞히는 완곡한 포물선을 그리게 됩니다. |
크리크 수정은 가늠쇠 동기화를 더 정확하게 교정하는 과정입니다. 현실에서는 총과 사수 간의 오차를 잡는 과정입니다만, 총의 오차를 구현할 수는 없기에 앱 내에서는 카메라 렌즈시프트를 수정하는 과정으로 구현하였습니다. 주의해야 할 점은, 카메라 렌즈시프트 값과 크리크 값은 독립적으로 다루어져야 한다는 것입니다. |
영점 사격은 상술한 크리크 수정을 도와주기 위한 사격 과정입니다. 사격에 대한 피드백도 제공합니다
호흡불량, 격발불량 등을 피드백해주며, 영점사격지를 확인하여 자신의 탄착군이 어디에 형성되어있는지를 알 수 있습니다. |
실거리 사격은 100m, 200m, 250m 표적을 순서에 따라 사격하는 사격 과정입니다. 이 표적들은 실제로 해당 거리에 위치해 있습니다. 이에 유념하여 사격해야겠죠? 또한 결과창을 보여주여 탄착지점을 알려주니 이를 보고 사격 실력을 향상시킬 수 있겠네요. |
블루투스 컨트롤러가 없어도 사격을 실시할 수 있는 모드입니다. 옵션 창에서 활성화시킬 수 있으며, 응시하고 있으면 발사됩니다. |
블루투스 컨트롤러를 연결할 수 있습니다. 블루투스 매니저, 블루투스 컨트롤러로 구성되는데, 아두이노 HC-06, HC-05 모델을 기준으로 제작하였기 때문에 호환성을 위해서 해당 모델을 사용하시길 권장드립니다. |
사로 통제도 구현하였습니다. 사격장에서 실수하지 않을 수 있겠죠? |
해당 프로젝트는 아두이노로 제작한 블루투스 컨트롤러를 이용합니다. 현재로서는 안드로이드 기기만 지원하지만, 추후 iOS를 지원하도록 할 것입니다.
- 최소 사양 : 안드로이드 운영체제 4.4(KitKat) 이상
- 아두이노 블루투스 모듈 hc-05, hc-06 기종 권장
- Unity 3D (C# Script)
- Arduino
✔ 유니티 프로젝트 이어서 하기
$ git clone git주소
유니티 허브에서 프로젝트 추가 버튼 누르기
.\APP (Android)\PerfectShotVR 등록
몇몇 기능은 에셋스토어에서 유료구매하였습니다. 따라서 완전한 개발환경을 갖추기 위해서는 다음 에셋을 구매해주시기 바랍니다.
✔ Releases에서 시험용 앱을 다운로드 받을 수 있습니다
우리는 상상을 현실로 만듭니다. 상상도 못한 방식으로요.
🔨 최성민 : 팀장, 앱 개발, 프로젝트 총괄 (JadenChoi2k, jkya02@gmail.com)
🔧 마승훈 : 팀원, 컨트롤러 개발, 모델링 및 디자인 담당 (sseungh, ink0513@unist.ac.kr)
This project is licensed under the terms of the MIT license.