[Part 16] 프로젝트 마무리 및 최종 보고서, Git
프로젝트의 모든 기능을 구현하여 한이음 공모전에 제출하였다. (아쉽게 공모전에 탈락하는 굉장히 충격적인 결과를 받았지만...) 프로젝트 시현 영상은 아래와 같다. https://www.youtube.com/watch?v=D9rMlxR0AeM git 주소는 아래와 같다. git에 논문 주소와 시현 동영상 URL 설계 보고서 URL이 모두 합쳐져있다. https://github.com/ddl06024/VR-based-driving-simulation GitHub - ddl06024/VR-based-driving-simulation: 2021 Hanium Project 2021 Hanium Project. Contribute to ddl06024/VR-based-driving-simulation develop..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 15.
![[Part 15] VR 기기 Oculus quset2 의 핸들러로 입력 받기](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/cPlhl3/btrCdIVLiRV/mfjStWtBkmhpMxtSNassqK/img.png)
[Part 15] VR 기기 Oculus quset2 의 핸들러로 입력 받기
로그인, 난이도 맵 선택 등 사용자로부터 VR 핸들러로 입력을 받기 위해 Keyboard 패키지를 다운로드 받아 사용하였다. (패키지: VR Keyboard) 문제: VR 핸들러로 Keyboard를 입력받는 예시 모두가 Text Field 예시로 우리가 사용하는 Input Field와 다른 예제였다. Input Field는 Text Field와 달리 사용자의 입력을 받는 이벤트가 발생하여야 하는데 EventSystem에 XRUI Input Modules로 VR Input을 받게 했음에도 입력되지 않았다. 해결: 따라서 Keyboard 패키지가 제공하는 코드의 일부분을 수정 1. 사용자의 입력을 받아야하는 Input Field부분이 ID 부분인지 비밀번호 부분인지를 알 수 있도록 아래의 InputField..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 15.
![[Part 14] 3D 게임과 2D 화면 합치기: Canvas의 Render Mode](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/diLKIF/btrB8XNpA4T/lDJo6Qi000H6Bk5Bn6emc1/img.png)
[Part 14] 3D 게임과 2D 화면 합치기: Canvas의 Render Mode
문제: 이전에 2D로 이뤄진 로그인, 메인 화면, 등의 GUI에서는 이전 방식으로만 하면 VR 기기에서 2D 게임 화면이 보였지만, 실제 맵, 운전을 하는 시뮬레이션 게임에서는 사용자에게 계속적으로 보여줘야하는 2D 화면도 있어야하는데 이전과 같은 방식으로 Canvas를 설정해놓으니 VR 기기 화면에서 2D GUI가 보이지 않는 문제가 발생하였다. 처음 Canvas를 생성하면 Render Mode가 자동적으로 Overlay로 설정된다. 이 상태로 VR기기 연동하여 게임을 실행하면 VR 기기 화면에서 계속 보여야하는 2D 화면이 보이지 않는다. 하지만, 아래와 같이 Unity Game 화면에서는 2D 화면이 잘 보인다. 계속 VR 기기로 테스트를 하다보니 VR 화면 속 어딘가에 위의 2D 화면이 둥둥 떠있..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 15.
![[Part 13] VR 기기(Oculus Quest2)와 Unity 연동](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/eilzlk/btrB6Q9cGOh/7s1K4LYlIH8AMW763Vj2pK/img.png)
[Part 13] VR 기기(Oculus Quest2)와 Unity 연동
이제 대강의 기능을 어느정도 구현한 후, Oculus Quset2와 Unity를 연동하기로 하였다. 아래의 자료를 참고하여 연동하였다. 유니티에 오큘러스VR을 연동하는 방법 | How to set up Oculus in Unity - YouTube 1. 케이블 문제 Oculus quset2와 Uniyt를 연동하기 위해서는 우선 PC와 VR 기기를 연동해야한다. 다음 사이트를 참고하여 ㅇ연동을 하였는데 굉장히 많은 문제가 발생하였다. (https://thetip.co.kr/%EC%98%A4%ED%81%98%EB%9F%AC%EC%8A%A4-%ED%80%98%EC%8A%A4%ED%8A%B82-pc-%EC%97%B0%EA%B2%B0/) 오큘러스 퀘스트2 PC 연결 방법, 유선 무선 차이와 장단점 - 오늘의 소식..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 15.
![[Part 12] 주차 성공에 대한 추가 코드](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/Gf54h/btrB68Bj5N3/1facVp6lHoCGzlKHKuGxrk/img.png)
[Part 12] 주차 성공에 대한 추가 코드
문제 다른 일반 도로, 어린이 보호 구역, 산간 S자 도로와 같이 끝이 있는 맵과는 다르게 주차장 맵은 주차를 성공해야만 게임이 종료된다. 이를 위해 다시한번 Collider 기능을 사용 해결 Empty Object를 4개를 만들어서 아래와 같이 Box Collider 기능을 추가한다. 각각의 Object의 tag를 Park1, Park2, Park3, Park4로 한다. PlayerScore에 아래의 코드를 추가한다. 즉, 네개의 Box Collider가 감지되면 주차에 성공한 것이고 하나라도 벗어나면 주차에 실패한 것이다. private void OnTriggerStay(Collider other) { switch (other.gameObject.tag) { case "Park1": ParkFlag[..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 15.
![[Part 11] 채점 알고리즘 & Trigger, Collsion](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/8Cmj3/btrB8YrrAjI/XXVu7zkeJNNrASlle0K5d1/img.png)
[Part 11] 채점 알고리즘 & Trigger, Collsion
그 다음 요소는 본 프로젝트에서 사용자에게 운전 점수를 알려주기 위한 중심 로직인 채점 알고리즘을 구현하였다. 이전에 채점표를 기준으로 구현: https://mineral-mine.tistory.com/55 문제 아래와 같은 초기 채점 알고리즘에서 감점 요인을 감지하는 부분과 점수를 관리하는 부분이 합쳐져 있었다. 코드의 구분이 어렵고 나중에 사용자에게 어떤 요인에서 감점 횟수를 알려주기 어려웠다. public class ScoreTest_hj : MonoBehaviour { public int stagePoint = 100; public PlayerTest_hj playcar; //한번충돌시 한번 점수 감점 private bool onetimededuction = false; //시간 private s..
- Project/VR 기반 운전 시뮬레이션: 안전 "안전 운전만해" 프로젝트
- · 2022. 5. 14.