낙하산 시뮬레이션 3D/VR 영상 개발

공군 낙하산 훈련용 Unity3D·WPF 통제 SW와 낙하산 동역학·모션캡처 기반 3D/VR 콘텐츠를 개발하며, 조종사 비상탈출·특전교 낙하산 프로토타입과 훈련 설정·리플레이·평가 기능을 포함합니다.

프로젝트 설명을 위한 낙하산 시뮬레이터 영상 Youtube

https://youtu.be/YqSBL0E7qFQ?si=LKPtJN3kd1KkGdqw

01. 프로젝트 구성 (리소스 개발 인력 제외)

팀 구성 : 2인 (팀원으로 참여)

02. 프로젝트 내 본인 작업 내용

  1. Unity 관련
    1. Oculus Rift HMD Unity 통합
    2. GIS 데이터를 활용한 3D 실지형 맵핑
    3. 네트워크를 통한 외부 3D 관제 기능 구현
    4. Mocap 센서 데이터를 통한 실시간 아바타 움직임 구현
  2. WPF 관련
    1. GIS 데이터 맵을 이용한 2D 맵 전시 기능 구현
    2. 실시간 Unity3D 내 3차원 좌표 데이터와 2D GIS 맵 데이터 동기화 기능 구현

03. 담당 기능 개발

Unity 관련

  1. Oculus Rift HMD Unity 통합 관련 작업

    1. HMD 위치 데이터 동기화
      • 개발 방안 : HMD의 움직임을 실제 훈련자의 VR 콘텐츠 내 시점과 일지화
      • 이슈 및 문제점 : 실제 사람은 HW에 연결되어 움직이지 않음. 하지만 아바타는 낙하산 동역학에 의해 움직이고 있음. 따라서, 실제 훈련자가 HMD를 통해 보는 화면과 VR환경 내의 움직임과의 동기화 필요
      • 해결방안 : 초기 생성되는 아바타의 머리 방향을 초기 HMD 카메라의 방향과 동기화
      • 해결 가능 이유 : HMD의 데이터는 부모 객체의 Local 위치 및 회전 데이터로 회전함, 따라서 객체를 아바타의 자식 객체로 두고, 자동 Offset이 지정된 카메라의 월드 값을 재활용하여 아바타와 HMD 카메라간 회전 동기화 가능
  2. GIS 데이터를 활용한 3D 실지형 맵핑

    1. GIS 3차원 지형 데이터와 Unity 좌표계 동기화
      • 개발 방안 : GIS 3차원 지형 맵 데이터를 Unity 환경에 맞춰 좌표계를 동기화
      • 이슈 및 문제점 : 항공 훈련의 특성상 넓은 지역의 훈련 범위를 커버 해야 하는데 Unity는 Float 연산의 특성으로 원점에서 멀어질수록 소수점 연산이 불안정해짐
      • 해결방안 : 초기 훈련 위치를 원점으로 지형의 좌표를 역으로 Offset, 지형 원점이 월드의 원점이 아닌 훈련 아바타의 원점이 월드의 원점이 되도록
      • 해결 가능 이유 : UTM변환 식으로 GIS 좌표 데이터를 변환 가능
  3. 네트워크를 통한 외부 3D 관제 기능 구현

    1. 실시간 데이터 통신을 통한 멀티 클라이언트 데이터 동기화
      • 개발 방안 : 실시간 데이터를 멀티 클라이언트에 연동하여 데이터 시계열 동기화
      • 이슈 및 문제점 : 메인 훈련자를 기준으로 각 훈련자의 실시간 데이터를 서로간에 싱크가 맞도록 구현해야 함
      • 해결방안 : 메인 훈련자를 기준으로 메인훈련자가 서버가 되어, 나머지 훈련자 데이터 처리후 시간 싱크에 맞춰 데이터 재 전송
      • 해결 가능 이유 : 메인 서버에서 데이터 가공 후 재전송으로 데이터가 한 곳에서 처리되어 싱크가 맞춰짐