1. 서론
VR(virtual reality) HMD(head-mounted display)는 사용자에게 몰 입감 있는 가상현실 체험을 제공할 수 있는 디바이스로 현실을 차폐시키는 장비를 머리에 착용하여 사용한다.(그림 1 참조) [1]. VR HMD는 AR(augmented reality), MR(mixed reality) HMD에 비해 넓은 FOV(field ov view)를 제공하여 VR 디바이스 체험자 는 마치 자신이 가상 세계에 들어와 있는 것처럼 몰입할 수 있다. 또한 손에 쥐는 컨트롤러나 다양한 형태로 제공되는 커스텀 컨트롤러를 사용하여 가상 세계의 물체와 상호작용 할 수 있다 [2]. VR 디바이스의 단점은 일반 사용자가 구매하기에는 비싼 가격, 불편한 착용감, 멀미 등이있는데 기술과 매체의 발달로 VR 디바 이스의 가격이 많은 내려가고 있으며 인체공학적인 디자인으로 착용감이 향상되고 무게는 줄어들고 있다. 또한 디스플레이의 발 전으로 더욱 높은 품질의 콘텐츠를 체험할 수 있게 되었다 [3].
체험자의 모든 시각정보를 활용하여 높은 몰입감을 제공하는 VR은 게임, 교육, 시뮬레이션, 의료를 비롯한 다양한 분야에서 활용되고 있다 [4]. 앞서 설명했듯이 현실에서 학습하기 힘든 경 험이나 환경 등을재현하여 체험자에게 실제와 같이 몰입감 있는 체험할 수 있도록 한다. 이러한 특징으로 VR은 고위험, 고비용 교육훈련 VR 시스템에 활용되고 있다 [5, 6, 7].
본 논문은 VR 기반으로 이미 제작된 콘텐츠를 효율적으로 운 용하고 콘텐츠에서 생성되는 플레이 데이터를 시각적으로 표현 할 수 있는 관리 시스템의 개발 과정과 결과를 소개한다. 본 논문에서 관리 시스템 적용 사례로 사용하는 VR 콘텐츠는 한국원 자력통제기술원(KINAC)1에서 핵 안보 교육을 위해 제작된 교육 훈련 콘텐츠로 훈련 대상은 핵 시설을 방호하는 청원경찰들이다. VR 콘텐츠는 핵 시설을 차량강습 테러를 자행하는 테러 조직을 방어하는 것으로 일정 시간동안 테러리스트를막아내야 한다. 핵 안보 교육훈련 VR 콘텐츠와 하드웨어 시스템은 (주)안드로메다 스튜디오2에서 제작하였으며 실제 원자력 핵 발전소인 고리발전 소를 사실적으로 묘사하여씬을 구성하였다.
교육훈련 콘텐츠는 그림 2와 같이 구성되어 있다. 훈련생은 VR을 구동하기 위해 배낭 형태의 웨어러블 PC를 등에 매고 가상공 간을 디스플레이할 HMD를 머리에 착용한다. 마지막으로 적의 침입시시설을 방호하기 위한 인터페이스인 총을 들게 된다.
사례로든 교육훈련 콘텐츠와 시스템은 넓은 범위를 훈련생이 움직이며 시설을 방호 해야하기 때문에 VIVE사에서 나온 VIVE Pro와 같은 상용 제품은유선의 문제와 트래킹 범위 때문에 사용 할 수 없다. 그렇기에 교육훈련 시스템에서는 트래킹을위해 영화 제작이나, 캐릭터 애니메이션에 많이 사용되는 모션캡처(motion capture) 시스템을 활용하였다 [8]. 모션캡처 장비는 NaturalPoint 사의 OptiTrack의 제품을 사용하였다 [9]. 교육훈련 시스템에는 VR HMD와 사용자 인터렉션을 위한 장비에 특수마커를 부착하고 광학식 카메라를 천장에 설치하여 훈련생의위치를 추적하게 된다. 훈련 공간은 10m × 10m 공간이이며 광학카메라의 성능은 표 1와 같다.
Component | performance |
---|---|
Resolution | 2048 × 2048 |
Frame rate | 180Hz |
Latency | 5.5ms |
3D accuracy | +/- 0.1mm |
광학식 카메라로 사용자의 위치를 추적하면 추적 정보는 OptiTrack에서 제공하는 Motive라는 소프트웨어로 전달되고 여기서 생성된 데이터는 VR 교육 콘텐츠에 전달되어 적용되게 된다 (그림 2 참조). 광학 카메라는 매우 높은 정확도와 빠른 속도를 보장하며 훈련생은이를 통해 어떠한 자세를 취해도 가상 공간에 실시간으로 반영되어 효과적인 훈련을 할 수 있다 [10]. 그림 3은 교육훈련 시스템을 사용하여 훈련을 하고 있는 모습을 보여준다. 그림 3(a)는 훈련생의 화면으로 원자력 시설을 향해 자동차 테러 를 감행하는 테러리스트의 모습을 보여준다. 자동차 테러로 인해 혼란스러운 상황에서 테러리스트들이 원자력 시설 정문을 향해 돌격하게 되고, 테러리스트로 부터 시설을 방호한다. 그림 3(b) 은 VR 장비를 착용한 훈련생의 모습으로 가상 공간을 이동하며 엄폐물에 숨어 테러리스트를막아내야한다.
사례로든 VR 교육훈련 콘텐츠는 관리 시스템을 고려하지 않 고 개발되었기 때문에 교육훈련 중 발생하는 데이터를 파일로 저장하는 기능이 없으며 습득할 수 있는 데이터도 매우 제한적일 수 밖에 없다. 이를 해결하고 제한된 데이터 안에서 훈련 결과 를 효과적으로 분류하고 가시화하기 위해 VR 교육훈련 콘텐츠 내에 훈련 데이터를 저장하는 모듈을 추가하였다. 또한 저장된 훈련 결과의 가시화를 위해 훈련생의 평가 방법을 한국원자력통 제기술원의자문 결과와 수집된 데이터를 기반으로 평가 항목을 정의하였다.
본 논문은 이미 제작이 완료된 교육훈련 콘텐츠를 효과적으 로 관리하기 위해 훈련생의 훈련 정보를 관리하고 훈련 결과를 가시화 할 수 있는 관리 시스템의 구축 방법과 그 결과에 대해 소개한다. 순서는다음과같다.
-
시스템 구성: 교육훈련 콘텐츠와 관리 시스템의 관계를 설명하고 관리 시스템의 구성 방법에 대해 설명
-
시스템 GUI: 교육훈련을 관리하는 관리 시스템의 GUI 구성
-
데이터베이스: 훈련생 정보와 교육훈련 콘텐츠에서 생성되 는 훈련 데이터를 저장하는 데이터베이스 구성 방법
-
훈련결과 가시화: 데이터베이스에 저장되어 있는 훈련생의 훈련 정보를 가시화하는 방법과가시화 결과
관리 시스템은 여러 개의 VR 콘텐츠를 연동할 수 있다. 현재 제작된 교육훈련 콘텐츠는 원자력시설 방호훈련 콘텐츠만 있지만 교육, 게임 등 다양한 VR 콘텐츠를 새로 제작하여 연동할 수 있 으며 기존에 제작된 다른 VR 콘텐츠에도 적용할 수 있다. 각각의 VR 콘텐츠는 관리 시스템을 통해 콘텐츠에서 생성된 데이터를 데이터베이스에 저장하여 관리할 수 있을 것이며 사용자가 정의 할 수 있는 평가 요소 비율을 통해 콘텐츠 플레이 결과를 점수로 가시화할 수 있을 것이다. 관리 시스템에서는 콘텐츠 하나를 시나리오로 정의하며 평가 요소 비율을 변경하여여러 시나리오로 제작할 수 있다(3.5 참조).
2. 시스템 구성
관리 시스템은이미 제작된 VR 콘텐츠에서 활용할 수 있도록 구현되었다. 이로 인해 교육훈련 콘텐츠의 플레이, 정지, 데이터 공유 등 다양한 부분에서 기존 VR 콘텐츠와 연결 되야하는 부분이 있어야한다. 그림 4는 교육훈련 콘텐츠와 관리 시스템 간의 관계 를 표현한 것이다.
사례로든 교육훈련 콘텐츠에는 콘텐츠 서버가 존재하며 훈련 생의 준비 상태와 콘텐츠 플레이, 정지, 이벤트 발생시 데이터 교환 등을 담당한다. 콘텐츠 서버에서 동기화되는 통신 데이터는 따로 저장이 되지 않기 때문에 훈련생 훈련 정보를 저장하기 위해서 콘텐츠 서버에서 사용되는 정보를 저장하는 데이터 컨테이너와 관리 시스템과 콘텐츠 서버간 통신을 할 관리 시스템 서버를 추가 로 제작하였다. 또한 몇명의 훈련생이 준비 상태가 되었는지를 확 인하고 VR 콘텐츠를 자동으로 실행시켜주기 위해 컨트롤 클라이 언트를 제작하였다. 컨트롤 클라이언트는 OS(operating system) 의 백그라운드에서 항상 작동하고 있으며 훈련생이 착용하는 웨 어러블 PC의 부팅이 완료되면 자동으로 실행되어 관리 시스템 서버와 연동되게 된다. 이로 인해 훈련생이 훈련 준비가 되었는 지를 파악할수 있고 관리 시스템에서 어떠한 VR 콘텐츠라도 실 행하거나 종료시킬 수 있게 된다.
관리 시스템은 VR 콘텐츠를 통제관 하에 더욱 효과적이고 직 관적으로 사용하고, 플레이 결과를 관리하기 위한 소프트웨어이다. 관리 시스템 구성은VR 콘텐츠와 통신할 서버, 각종 훈련 데이터를 저장하고 관리하는 데이터베이스, 서버와 데이터베이스를 관리하고 사용자의 인터렉션과 GUI를 포함하는 관리 소프트웨 어 세부분으로 나뉜다(표 2 참조).
관리 시스템의 인터페이스를 제작하기 위해 GUI 프로그램 제작에 사용되는 크로스 플랫폼 프레임워크인 QT를 사용하였 다[11]. 관리 시스템은 C++기반으로 작성되었으며 통신을 위해 Socket을 사용하였다 [12]. 관리 시스템 GUI는 크게 훈련 시작 (VR-NET), 훈련기록 탐색, 훈련생관리, 시나리오관리 네가지로 나뉜다. 이후부터는 사례로든 교육훈련 콘텐츠에 맞춰 설명한다.
3. 시스템 GUI
관리 시스템은 응용프로그램으로 제공되며 윈도우 기반으로 제 작되었다. GUI는 Full HD(1920 × 1080) 해상도에 최적화 되었다. 처음 관리 시스템을 시작하면 해당 프로그램을 외부인이 접속할 수 없게 하기 위해 그림 5(a)와 같은 로그인 창이 나타나고 아이 디와 패스워드를 입력하여 로그인 해야 한다. 로그인에 필요한 아이디와 비밀번호를 입력하지 않으면 메인화면 정보를 열람할 수 없으며, 아이디와 비밀번호가 미리 지정한 것과 다를 경우 팝 업창을 띄워 입력한 정보가 맞는지 다시 확인하게 한다. 로그인 화면에서 적합한 아이디와 비밀번호를 입력하면 그림 5(b)처럼 메인화면이 활성화 된다. 메인화면의 상단은 메뉴 탭과 각 탭에 해당하는 버튼이 존재하고, 그 아래에는 내용을 디스플레이 창이 있다. 메뉴 탭은 총 다섯개의 탭으로 구성되어 있으며 훈련 시작 (VR-NET), 훈련기록, 훈련생관리, 시나리오관리, 도움말로 구분 되어 있다.
VR-NET 탭은 VR 콘텐츠를 시작하기 위해 필요한 시나리오 선 택과 훈련생 인원을 선택하는 과정을 포함하고 있다. 그림 6은 훈련을 시작하기위해 VR-NET 탭을 클릭후 진행해야하는 프로 세스를 순차적으로 보여준다.
처음 VR-NET 탭을 클릭하면 그림 6(a) 같이 시나리오를 선택할 수 있는 테이블이 화면에 표시된다. 시나리오 선택 테이블에는 시나리오명, 최대 훈련생 수, 설명으로 구분되어 있다. 표시되는 시나리오들은 데이터베이스에 존재하는 모든 시나리오이며 시 나리오는 한개만 선택 가능하기 때문에 한 시나리오가 선택된 상태에서 다른 시나리오를 선택하면 기존에 선택된 시나리오는 선택이 해제된다. 시나리오를 선택하게 되면 비활성화되어 있던 교육정보버튼이 활성화된다.
시나리오를 선택한 뒤 활성화된 훈련생 선택 버튼을 누르면 그림 6(b)처럼 디스플레이창에 훈련생을 선택할 수 있는 테이블 두 개가 표시된다. 왼쪽 테이블은 현재 훈련생의 전체 인원목록을 데이터베이스에서 불러와 표시한다. 이름, 소속, 부서명, 직위 생 년월일이 표시되며 등록된 순서대로 표시된다. 오른쪽 테이블의 상단 왼쪽에는 훈련에 참가할 수 있는 총 훈련생 인원의 수가 표 시된다. 오른쪽의 테이블은 훈련에 참가할 인원을 표시할 테이블 이며 폼 형태는 왼쪽에 존재하는 테이블과 같다. 훈련에 참가할 인원들을 왼쪽 테이블에서 선택하면 오른쪽 테이블에 훈련생이 채워진다. 만약 선택된 훈련생을 빼고 싶은 경우 오른쪽 테이블 에서 훈련에 참여하지 않을 인원의 행을 선택하면 해당 인원은 훈련에서 제외된다. 훈련 인원 역시 오른쪽 테이블 상단의 왼쪽에 그 인원이 표시되며, 한 명 이상 선택될 경우 비활성화 되어 있던 훈련시작 버튼이 활성화 된다.
훈련 시작 버튼을 클릭하면 다음 단계로 넘어가게 되는데 만약 선 택된 참여인원과 현재 교육훈련 준비가된 훈련생의 숫자가 맞지 않으면 현재 준비된 훈련생의 수가 맞지 않다는 경고창이 나타나 게된다. 참여인원과 훈련생의 숫자가 일치한 상태에서 훈련시작 버튼을 누르면 그림 6(c)와 같이 시나리오의 이름과 참여인원이 표시되어 있는 훈련 정보 확인 창이 팝업된다. 또한 훈련생의 웨어러블 PC에서 VR 교육훈련 콘텐츠가 실행되고 모든 콘텐츠 실 행이 완료되면 실행 버튼이 활성화 된다. 실행 버튼을 클릭하면 교육훈련이 시작되며 그림 6(d)처럼 훈련 시작 화면이 표시된다. 왼쪽 상단에 디지털 시계로 플레이 된 시간이 표시되고 오른쪽 에는 타이머가 나타난다. 그 아래에 시나리오 이름과 해당훈련에 참가한 훈련생의 명단이 표시된다. 오른쪽에는 훈련중 발생하는 모든 통신 데이터와 이벤트들이 출력되는 로그창이 존재한다. 훈 련중에 훈련생에게 문제가 생기게 되어 훈련에서 이탈한 경우오 류창이 나타나게되고 진행 중인 훈련이 취소된다. 또한 교육훈련 중 훈련을 중지하고 싶다면 훈련중지 버튼을 누르면 된다. 훈련 이 정상적으로 종료되면 훈련 결과를 가시화하여 보여주는 결과 창이 나타나게 된다. 훈련결과 가시화 방법에 대해선 5장에서 자세히 설명한다.
훈련기록 탭은 과거 훈련 기록을 검색하고 훈련 결과를 시각적으로 볼 수 있는 탭이다(그림 7 참조). 훈련기록 탭은 두 창으로 나뉘어져 있으며 왼쪽은 각 훈련생의 훈련 결과를 가시화하여 보 여주는 창이고 오른쪽은 훈련생을 검색할 수 있는 검색창이다. 훈련 결과는 데이터베이스에 있는 데이터를 기반으로 검색하게 되고검색할 수 있는 방법은 총 3가지로 훈련생 이름, 시나리오 이름, 교육명이다. 그림 7(a)의 각각의 검색창 오른쪽을 보면 작은 화살표가 있다. 화살표를 누르면 검색창과 관련된 모든 데이터가 스크롤 뷰 형태로 나타나게 되고 원하는 정보를 선택하여 검색할 수 있다. 만약 아무런 검색 정보도 입력하지 않고 검색하기 버튼을 누르면 데이터베이스에 있는 모든 정보를 읽어와 검색창 아래 에 있는 리스트에 출력하게 된다. 그림 7(b)는 아무런 검색 정보도 넣지 않고검색한 결과로 모든 훈련결과를 보여준다. 테이블에 있는 훈련생을 클릭하면 훈련 정보를 왼쪽 훈련결과 가시화창에서 볼 수 있다. 가시화 창에는 훈련 결과를 프린트로 출력을 하거나, PDF로 저장할 수 있는 버튼이있어 가시화된 훈련 결과를 언제든 저장하거나 프린트 할 수 있다. 훈련 결과는 총 네가지 방법으로 가시화되며 가시화 방법과 결과는 5장에서 살펴보겠다.
훈련생 관리 탭은 교육훈련을 받을 청경들의 정보를 추가하고 관리할 수 있다. 그림 8은 훈련생 관리 탭의 GUI를 보여준다. 훈련생 관리 탭을 누르면 현재 등록되어 있는 모든 훈련생의 정보를 불러와 훈련생 테이블에 리스트 형태로 보여주게 된다. 오른쪽에 는 훈련생을 추가하거나 수정할 수 있는 관리창이 있다. 새로운 훈련생을 추가하기 위해서는 관리창에 추가할 훈련생의인적 사항을 적게된다. 이름, 소속, 부서명, 직위, 생년월일 다섯개 항목을 모두 적어야하며 하나라도 누락될시 훈련생을 등록시킬 수 없게 되고 경고창이 나타나게 된다. 그림 8(a)는 사용자를 추가하는 것 으로 다섯개 항목을 모두 작성하고 추가 버튼을 눌러 훈련생을 추가하고 있다. 추가된 훈련생은 데이터베이스에 저장되고 왼쪽 테이블에서 바로 볼 수 있게 된다.
훈련생의 정보를 수정하거나 삭제하고 싶은 경우에는 왼쪽 테이블의 훈련생 리스트를 클릭한다. 클릭된 훈련생의 정보는 관 리창에 입력되고 거기서 수정한 뒤 편집 버튼을 누르면 데이터 베이스 정보가 업데이트 된다. 삭제하고 싶은 훈련생이 있다면 테이블에서 해당 훈련생을 클릭한 뒤 관리창의 삭제 버튼을 누르 면 데이터베이스에서 훈련생 정보와 관련된 모든 데이터도 삭제 된다.
관리 시스템은 다수의 훈련생을 한꺼번에 추가하기 위해 excel 파일 로드 기능을 포함하고 있다. 관리창에 있는 불러오기 버튼을 누르면 파일 탐색기 창이 나타나고 excel 파일을 찾아 선택하면 그림 8(b)와 같이 엑셀에 저장되어 있는 훈련생 정보를리스트로 읽게되고 업로드 버튼을 눌러 한번에 다수의 훈련생을 추가할 수있다.
메뉴 탭 중 시나리오 관리 탭을 클릭하면 훈련에 사용될 시나리오를 추가 및 편집할 수 있는 시나리오 창이 나타난다(그림 9 참조). 여기서는 콘텐츠에 대한 시나리오를 생성할 수 있으며 생성된 시나리오는 VR-NET 탭에서 사용 가능하다. 시나리오 구성은 시 나리오명, 시나리오 설명, 성공 기준, 최대인원, 평가요소에 대한 비율로 되어있고 모든 구성 요소를 채워넣어야하며 공란이 있으 면 안되고 평가 요소의 경우 합이 100이 되도록해야 한다. 시나리 오의 평가요소는 훈련결과를 채점할때 사용되는 중요한 값이다. 모든 구성 요소를 채워넣으면 등록하기 버튼이 활성화되고 버튼을 누르면 데이터베이스와 아래 시나리오 테이블에 추가가 된다. VR 콘텐츠의 평가 방향에 맞게 평가요소를 수정하여 여러 개의 시나리오로 만들 수도 있다.
4. 데이터베이스
데이터베이스는 VR 콘텐츠에서 생성되는 결과를 효율적으로 저 장하고 빠른 훈련 결과 탐색을 지원하기 위해 MySQL을 사용하 였다 [13, 14]. 관리 시스템의 데이터베이스는 크게 두 부분으로 나뉘는데 VR 콘텐츠에서 생성된 데이터가 저장되는 콘텐츠 데 이터베이스와 시나리오 정보와 훈련생 정보 등이 저장되는 시스템 데이터베이스이다. 그림 10은 콘텐츠에서 생성되는 데이터가 콘텐츠 서버를 거쳐 데이터베이스에 저장되기까지의 흐름을 그 림으로 표현한 것이다. 콘텐츠에서 생성되는 데이터가 점수로 저장되는 과정은 다음과같다.
-
이벤트 로그 저장: 그림 10의 훈련생(클라이언트)들이 생성 하는 데이터를 콘텐츠 서버의 logger가 로컬 디스크에 저장
-
훈련 종료 알림: 교육훈련이 정상적으로 종료되면 관리 시스템에 종료된 사실을 알려줌
-
데이터 분류: 관리 시스템에서 디스크에 저장된 로그 파일을 읽어 이벤트 별로 데이터를 구분
-
평가요소 적용: 해당 훈련 시나리오에 설정된 평가요소를 데이터베이스에서 불러와 분류된 데이터에 적용하여 점수로 변환
-
데이터베이스 저장: 훈련 정보와 결과를 취합하여 데이터베이스에 저장
디스크에 저장되는 로그 데이터는 콘텐츠에서 발생하는 이벤 트를 모두 저장한 텍스트 파일이다. 사례로든 VR 교육훈련 콘텐 츠의 경우 JSON 파일 구조로 구성되어 있으며 적에게가한 피해 량, 훈련생 피격량, 움직인이동거리 등의 정보가 포함되어 있다. 관리 시스템을 고려하지 않은 콘텐츠의 경우 콘텐츠마다다른 포 맷으로 저장이 되게 된다. 그러므로 로그 데이터를 분류하기 위 해 그림 10의 관리 시스템 Log Parser는 포맷을 미리 알고 있어야 한다.
콘텐츠 데이터베이스는 VR 콘텐츠 훈련을 통해 동적으로 생성 되는 데이터의 모음으로 교육훈련 콘텐츠가 정상 종료될 경우 훈련생 평가 정보와 훈련 정보로 구성된다. 훈련 정보(표 3 참조) 는 고유 번호로 교육훈련 번호(ftxID)가 기본키가 된다. 그리고 시나리오 관리 3.5에서 설정한 순서대로 정의되는 훈련 시나리 오 번호(scenarioID)가 외래키로 추가된다. 또한 해당 훈련에서 생성된 로그 파일의 원본(logFile)이 저장된다.
Attribute | Description | Type |
---|---|---|
ftxID | Training number | int |
scenarioID | Scenario number | int |
logFile | Log files | char array |
표 4는 훈련생 평가 정보를 저장하는 테이블의 구성을 나타낸 다. 훈련생 평가 정보는 해당 교육훈련에 참가한 훈련생의 정보 를 저장하는 테이블로 훈련생의이름(userName), 평가 요소 번호 (evaluationFactorID), 점수(score)들로 이루어져 있다. 저장되어 있는 점수는 시나리오 평가요소 테이블(표 7 참조)에 의해 계산 되게 된다.
Attribute | Description | Type |
---|---|---|
ftxID | Training ID | int |
userName | Trainee name | char array |
evaluationFactorID | Evaluation element number | int |
score | Scores | int array |
시스템 데이터베이스는 관리 시스템 관리자에 의해 수동으로 저 장되고 관리되는 정보를 말한다. 관련 테이블로는 훈련생 정보, 훈련 종류, 시나리오 정보, 평가 요소, 각 시나리오 별 평가 비율로 구성된다. 테이블 5은 훈련생의 기본 정보를 저장하는 테이 블로 훈련생의 이름(name)이 기본키로 저장되고 훈련생의 소속 (belongto)이 추가로 저장된다.
표 6은 시나리오 정보를 저장하는 테이블로 3.5에서 정의한 시 나리오 정보가 저장된다. 시나리오 번호(scenarioID)가고유의 번호로 붙여져 기본키가 된다. 시나리오 종류(type)는 type 테이블 에서 외래키로 받아온다. 그리고 시나리오 이름(name), 최대 인원 (maxNumber), 설명(desc)이 추가되어 있다.
Attribute | Description | Type |
---|---|---|
name | Trainee name | char array |
belongto | Trainee affiliation | char array |
시나리오를 설정하면 시나리오에 해당하는 평가요소 비율을 반드시 설정해야 한다. 표 7은 설정된 평가 요소가 저장되는 테이블로 한개의 시나리오에 한개의 시나리오 평가요소 테이블이 생성된다. 표 7의 시나리오 번호(scenarioID)와 평가 요소 번호 (evaluationFactorID)를 외래키로 받아와 두 번호를 기본키로 사용한다. 평가요소 비율(rate)은 시나리오 당 평가요소 별 비율을 의미하며 한 시나리오의 비율을 모두 더하면 100이 되도록 하 였다.
Attribute | Description | Type |
---|---|---|
scenarioID | Scenario number | int |
evaluationFactorID | Evaluation element number | int |
rate | Evaluation factors | int array |
마지막으로 표 8은 시나리오에 설정되어 있는 평가요소별 이름을 나타낸다. 콘텐츠와 시나리오 별로 각각의 평가요소의이름 과 용도가 다르기 때문에 이를 저장할 테이블을 구현하였다. 표 7 와 마찬가지로 표 8도 하나의 시나리오에 하나씩 생성된다. 평가 요소 번호(id)가 기본키가 되고 평가 요소(factorType)들이 추가 된다.
Attribute | Description | Type |
---|---|---|
id | Evaluation element number | int |
factorType | Evaluation element name | string array |
지금까지 소개된 테이블들은 그림 10의 관리 시스템하에 운영 되고 관리된다. 데이터를 GUI를 통해 디스플레이하기 위해 필 요 데이터를 요청하고 처리하는 DB Operator 모듈을 제작하였고 쿼리(query)를 데이터베이스로 보내 데이터를 요청하는 MySQL Connector 모듈을 제작하였다.
5. 훈련결과 가시화
본 장에서는 교육훈련 결과를 가시화하는 방법에 대해 서술한다. 훈련생의 시나리오 훈련결과를 효율적으로 분석 및 평가하기 위하여 가시화된 자료가 필요하다. 본 논문에서는 훈련결과를 그래 프(graph)로 출력함으로써 효율적인 분석 및 평가를 할 수 있도록 하였다. 훈련결과는 콘텐츠가 종료된뒤 로컬 디스크에 저장된 로 그 파일로부터 추출한 데이터를 시나리오에 의해 정의되는 평가 요소 기반으로 수치화되어 데이터베이스에 저장된다. 그림 11은 데이터베이스에 저장된 훈련생의 교육훈련 결과를 GUI로 구성 하여 보여주는 단계를 설명한다. 사용자가 GUI를 통해 가시화 그래프를 요청하면 DB Operator 모듈에서 선택된 타입에 따라 데이터베이스에 정보를 요청하게 되고 전달받은 데이터를 그래 프로 제작하는 Diagram Builder에 전달하여 화면에 그래프가 나타나게 된다. 그래프는 레이더, 세로 막대, 가로 막대, 타임라인 총 4종류로 구성하였다. 이렇게 생성된 그래프는 훈련생의 평가 척도로 사용된다.
사례로든 교육훈련 콘텐츠는 관리 시스템을 고려하고 제작되 지 않았기 때문에 추출가능한 데이터는 매우 한정적이다. 콘텐츠에서 추출가능한 데이터는 총 4개로 적의 공격 횟수, 훈련생의 공격 횟수, 훈련생의 움직인 거리, 미션소요시간이다(표 9 참조). 추출된 데이터는 한국원자력통제기술원에서 훈련생을 평가하기 위한 평가요소를 자문 받아 적용하였다. 정의된 평가요소는 적 에게 준 피해량, 받은 피해량, 피격횟수, 사살된 테러리스트 수, 이동거리, 미션소요 시간, 상대 피해도로 총 7개로 구성되어 있으 며 각각의 평가요소는 그래프 형태에 따라 나뉘어서 적용된다.
Data | Description | Type |
---|---|---|
hitEnemy | Number of times trainees attacked terrorists | int |
hitUser | Number of times terrorists attacked trainees | int |
move | moving distance | float |
time | training time | int |
훈련결과는 데이터베이스로부터 데이터를 전달 받아 그래프로 표출한다. 데이터 포맷(format)은 시나리오별로 상이한 결과 값을 데이터베이스 분석을 통해 최소한의 항목으로 필요한 대부분의 내용을 가시화 결과에 포함할 수 있도록 구성되었으며 표 10와 같다.
Attribute | Description |
---|---|
Name | Trainee name |
E−Factor | Scenario Evaluation Element |
Result | Training results data |
그래프 출력방법은 시나리오와 그래프 타입에 따라 전달받는 데이터 종류가 달라진다. 예를 들어 스파이더 그래프와 막대그래프 두 종류를 출력할 때 각 그래프의 특성에 따라 출력해야하는 항목이 달라진다. 사례로 적용한 VR 콘텐츠의 경우 막대 그래프 에는 이동거리, 상대피해도 등의 평가 요소가 포함되어 있지만 스파이더 그래프는 포함되어 있지 않다. 그래프마다 상이한 데이터 구조를 위해 각각의 데이터를 따로 정의하면 시나리오마다 그래프를 새로 프로그래밍해야하고 데이터 포맷을 새로 정의해 야하는 불필요한 작업이 생긴다. 따라서 유연한 데이터 송수신을 할 수 있도록 기본이 되는 포맷을 정의하였다.
데이터베이스에서 전달받은 데이터 포맷을 Diagram Builder에 서 그래프에 적용 가능하도록 변환해야한다. 그림 12은 데이터 베이스에서 전달받은 데이터 포맷 데이터를 분석하는 과정을 보 여준다. Name의 경우 선택된 훈련생의 이름이 리스트 형식으로 전달되게되고 훈련생의이름을 바탕으로 총 몇명의 데이터를 가 시화 해야하는지를 파악한다. E−Factor는 시나리오에서 설정한 평가요소들과 평가 요소의이름 등의 정보를 클래스화하여 가지 고 있다. Result의 경우 훈련생의 훈련 결과에 대한 모든 점수를 포함한다. E−Factor와 결과는 같은인덱스(index) 번호로 링크가 되어 있어 1:1로 매칭되어 사용된다.
E−Factor에 포함되어 있는 평가요소의이름과 점수 쌍을이용 하여 Diagram builder에서 그래프를 그리게된다. 또한 Qt에서 그 래프를 출력하기 위하여 오픈소스 라이브러리(Open Source Library)인 QCustromPlot 라이브러리를 사용했다 [15].
훈련결과를 가시화하는 그래프 중 하나로레이더 그래프를 선택 하였다(그림 13 참조). 레이더 그래프는 여러항목을 기준으로 여 러 대상을 비교할때 많이 사용하는 그래프로 대상의 항목간 밸런 스를 한눈에 볼 수 있다. 적용사례인 원자력방호 VR 콘텐츠에서 평가하는 항목중 적군 피해량, 테러리스트 사살수, 아군 피해량, 미션소요시간 항목으로 구분하였다. 상단에는 시나리오에 대한 정보가 출력되어 현재 시나리오의 정보를 확인할 수 있다. 오른 쪽에는 훈련생 이름이 표시되며 상단 우측에는 다른 그래프로 전환할 수 있는 버튼이 존재한다.
그림 14은 두종류의 막대 그래프를 보여준다. 그림 14(a)는 가로 막대 그래프로 점수가 아닌 최대 점수와 획득 점수간 비율을 기 반으로 그래프가 만들어진다. 예를들어 평가요소 중 테러리스트 사살을 보면 교육훈련 콘텐츠에서 총 6명의 테러리스트가 나타 나는데 이 중 몇명을 사살하였는지에 대한 비율을 막대 그래프로 그리고 있다. 이 그래프의 가장 큰 특징으로 훈련생 평가 점수를 볼 수 있다는 점으로 그림 14(a) 맨 밑에 점수에 대한 그래프가 그려져 있고 하단에는 총 점수를 어떻게계산하였는지를 확인할 수 있다.
그림 14(b)는 평가요소를 100점 만점 기준으로 0과 100 사이의 숫자로 표시하게 된다. 하단에 있는 점수기여도 토글(toggle)을 클릭하면 그림 14(a)의 점수 계산에 영향을 미치는 평가요소의 점수만 따로 정리하여 볼 수 있는 막대그래프로 전환된다. 막대 그래프는 각 시나리오별, 훈련생별 취약점을 한눈에 알아볼 수 있으며 취약한 평가요소를 찾아내는 것에 효율적이다.
그림 15는 교육훈련 콘텐츠의 시간 순서에 따라 발생하는 이벤 트를 한 눈에 볼 수 있는 그래프이다. 교육훈련을 진행하는 도중 적에게 피격을 당하거나 테러리스트에 사격이 명중했을때 맞은 부위와 사망여부를 보여주는 것이 주요 목적이다. X축은 교육훈 련 콘텐츠의 시간을 나타내며 Y축은 테러리스트를 표시하며 가 장위에는 훈련생이 배치되어 있다. 타임라인 그래프를 분석하여 테러리스트로부터 훈련생의은엄폐 정도를 평가할 수 있다.
관리 시스템은 훈련결과를 PDF나 프린터로 출력할 수 있는 기능을 제공한다. 그림 16은 훈련 결과를 PDF로 출력한 이미지를 보여준다. 출력물은 훈련생의 훈련 결과 그래프를 한눈에 볼 수 있다. 상단에는 훈련했던 시나리오의 정보가 포함되어 있으며 좌 측에는 훈련생에 대한 정보, 그리고 훈련 결과에 대한 세부 내용을 표로 제공하고 평가자의 의견을 볼 수 있다. 오른쪽에는 앞서 설명했던 그래프 결과를 순차적으로 보여준다.
6. 결론 및 향후 연구
본 논문은 VR 콘텐츠를 효과적으로 운용하기 위한 관리 시스템을 적용 사례인 VR 교육훈련 콘텐츠를 기반으로 설명하였다. 사용자 GUI를 제작하여 관리 시스템을 쉽게 사용할 수 있도록 하였 고 VR 콘텐츠와 연동하여 콘텐츠에서 생성되는 데이터를 분류하 여 시각적으로 가시화할 수 있는 방안을 마련하였다. 또한 관리 시스템의 GUI를 사용하여 시나리오를 생성하고 생성된 시나리 오를 기반으로 VR 콘텐츠를 운용할 수 있다. 콘텐츠가 시작되면 생성되는 로그 파일은 실시간으로 디스크에 저장되고 콘텐츠가 정상 종료되면 사용자 정보와 함께 데이터베이스에 점수로 변환 되어 저장된다. 저장된 데이터는 관리 시스템 GUI로 검색하여 과거의 콘텐츠 체험 기록을 다시 확인 할 수 있다. 체험 기록은 네 가지의 그래프로 시각화되고 PDF나 프린트로 출력할 수 있으며 출력 결과를 통해 자신의 취약점이나 보안점을 효과적으로 찾아 낼 수 있을 것이다.
시스템 적용 사례로 사용된 원자력방호 VR 콘텐츠는 관리 시 스템이 적용되기 전에는 훈련을 시작하기 위해서 훈련생 PC에 원격데스크탑 서비스로 연결하여 실행 파일을 직접 실행한 뒤 서버 프로그램을작동하여 훈련을 시작하는 번거로운 과정이있 었다. 또한 교육훈련이 종료되면 훈련 데이터는 모두 증발하여 훈련생은 훈련 과정에 대한 피드백을 받기 힘들었다. 하지만 관리 시스템을 사용하여 VR 콘텐츠 및 시스템을 손쉽게 관리하고 정확한피드백을 제공 받을 수 있게 되었다.
현재 개발된 관리 시스템은 몇가지 한계점을 지니고 있다. 그림 10을 보면 VR 콘텐츠에서 생성되는 로그 파일을 로컬 디스크에 저장한다. 만약 VR 콘텐츠가 관리 시스템을 고려하지 않고 개발되었다면 콘텐츠마다 생성되는 로그 파일의 포맷은 다르기 때문에 그림 10의 Log Parser를 수정해야 한다. 또한 VR 콘텐츠 마다 평가요소의 계산방식이 다른데 이를 훈련결과에 적용하기 위해 그림 10의 Evaluator를 수정해야 한다는 문제점이 있다. 이 러한한계점을 해결하기 위해 콘텐츠마다 로그 파일의 포맷과 평 가 요소를 JSON 형태로 작성하고 관리 시스템에서 이를 분석하여 자동으로로그 파일 분석 방법과 평가요소를 적용하는 방법을 추가 연구해야 한다 [16, 17].