Korea Digital Contents Society
[ Article ]
Journal of Digital Contents Society - Vol. 23, No. 4, pp.581-588
ISSN: 1598-2009 (Print) 2287-738X (Online)
Print publication date 30 Apr 2022
Received 11 Mar 2022 Revised 13 Apr 2022 Accepted 13 Apr 2022
DOI: https://doi.org/10.9728/dcs.2022.23.4.581

가상현실을 이용한 강아지 훈련콘텐츠제작에 대한 연구

김태은
남서울대학교 멀티미디어학과 교수
A Study on the simulation of dog breeding using Virtual Reality
Tae-Eun Kim
Professor, Department of Multimedia, Namseoul University, Cheonan-si Daehak-ro 91, Korea

Correspondence to: *Tae-Eun Kim Tel: +82-041-580-2192 E-mail: tekim@nsu.ac.kr

Copyright ⓒ 2022 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

초록

본 연구는 여러 가상현실(Virtual Reality :VR)기기들을 사용하여 현실의 정보를 입력받아 가상공간환경에서 인터랙션이 가능하도록 구현한 가상현실 훈련콘텐츠 개발에 대한 연구이다.

강아지를 키울 여건이 되지 않는 현대인들을 위해 언제, 어디서든 강아지와 교감하고 교육을 시킬 수 있는 훈련과정을 체험할 수 있도록 개발된 가상현실 시뮬레이션게임개발에 대한 논문이다. 본 논문에서는 강아지 훈련 시뮬레이션 콘텐츠를 기획하게 된 계기에 대해 서술하고, 가상현실 제작에 사용된 Unity 3D 엔진, 게임의 기본적 뼈대가 되는 C# Script와 HTC Vive, 인디고 VR 트레드밀 등이 상호 호환될 수 있도록 개발하는 과정을 설명한다. 우리는 본 연구를 통해서 가상현실의 여러 기술이 혼합되어 있는 새로운 형태의 현실감이 증대된 훈련콘텐츠 제작에 대한 개발경험을 공유하고, 나아가 보편적인 교육훈련현장에서도 활용이 가능한 가상현실훈련 콘텐츠를 제시하고자 하였다.

Abstract

This study is a study on the development of virtual reality training content that enables interaction in a virtual space environment by receiving real information using several virtual reality (VR) devices.

This study is a paper on the development of virtual reality simulation games developed to experience a training course that allows modern people who cannot raise dogs to communicate and educate them anytime, anywhere. This paper describes the reason for planning dog training simulation content, and explains the process of developing the Unity 3D engine used in virtual reality production, C# Script, HTC Vive, and Indigo VR treadmill to be compatible with each other. Through this study, we wanted to share the development experience of producing training contents with an increased sense of reality in which various technologies of virtual reality are mixed, and further present virtual reality training contents that can be used in universal education and training sites.

Keywords:

Virtual reality content, Unity 3D engine, Realistic content, Indigo VR treadmill, Dog training simulation content

키워드:

가상현실 콘텐츠, 유니티 3D엔진, 실감형 콘텐츠, 인디고 VR 트레드밀, 강아지 훈련 시뮬레이션 콘텐츠

Ⅰ. 서 론

애완동물을 기르고 싶어도 상황이나 여건이 따르지 못하여서 동영상, 게임 등으로 대리만족을 하는 사람들을 뷰니멀족이라고 한다. 이런 신조어가 나올 정도로 애완동물과 관련된 경제활동이 매년 늘어나는 추세이다. 애완동물을 키우기 어려운 환경에 있는 사람들에게 애완동물을 키워볼 수 있는 가상현실 환경을 제공하는 기술개발이 최근들어 유행이다. 본 논문은 ‘HTC Vive’와 ‘인디고 VR 트레드밀’이라는 두 가지 가상현실(Virtual Reality) 플랫폼을 이용하여, 가상공간 속에서 가상의 애완견과 함께 산책하고, 물과 먹이를 주며, 직접 배변훈련도 시켜볼 수 있는 등 강아지의 행동에 따른 요구를 적절하게 들어주어 강아지와 서로 교감하고, 주어진 퀘스트를 완료해나가며 나만의 펫을 키워나가는 강아지 훈련 시뮬레이션 AR 게임의 개발과정을 설명하는 논문이다.

현재 보편적으로 많이 사용되는 VR 플랫폼인 ‘HTC Vive’과 ‘인디고 VR 트레드밀(Indigo VR treadmill)’을 접목시켜 사용자가 직접 게임 상에서 걷고 뛸 수 있도록 제작함으로써, 가상현실의 큰 문제점 중 하나인 멀미를 최소화하였고 한 가지 기기를 사용했을 때 보다 좀 더 현실감을 느낄 수 있도록 제작하였다. 그림 1는 현재 인터넷에서 서비스되는 Dream Pets VR 콘텐츠 영상이다. 본 연구를 시작할 때 논문의 연구방향의 모티브를 제공했던 게임영상콘텐츠이다.

Fig. 1.

Dream Pets VR

Dream Pets VR게임은 현재 인터넷 서비스 플랫폼에 등록되어있는 강아지를 주제로 한 VR 콘텐츠이다. Dream Pets VR는 정확한 목적성을 띄고 있지 않고 단순한 VR 장비를 착용하여 강아지와의 놀이를 통해 강아지의 다양한 반응을 볼 수 있도록 제작되었다[1].

본 연구에서 개발하는 콘텐츠는 정확한 정보전달, 교육및 체험을 목표로 설정하여 제작을 진행하였다. 다양한 경우의 훈련과정을 처음부터 끝까지 직접 강아지에게 명령하고 반복된 동작을 유도하면서 보상으로 먹이를 주는 훈련과정까지 직접 자신이 해보면서 원리를 이해할 수 있게 제작하였다. 현실감을 높이기 위해 강아지의 상호 반응도 눈으로 볼 수 있게 제작하였다.

본 연구에서 제작하는 콘텐츠는 견주들에게 교육용으로 사용이 가능한 시뮬레이션 가상훈련 체험콘텐츠이다[2]-[3].


Ⅱ. 본 론

본 논문은 애완동물을 키우기 어려운 환경에 있는 사람들에게 애완동물을 키워볼 수 있는 가상현실 환경을 제공한다. 기존에 단순 기능만 있는 강아지 키우기 핸드폰 애플리케이션이나, 게임기를 통한 단순훈련게임과는 다르게 인디고 VR 트레드밀(Indigo VR treadmill)과 HTC Vive를 통해 구현한 가상현실(Virtual Reality) 환경으로 보다 몰입도 있는 시뮬레이션으로 제작하였다[4]-[6].

시뮬레이션의 주요 기술인 가상현실(Virtual Reality)이란 실존하지 않는 가상의 공간에서 사람이 실제로 현장에 있는 듯 한 착각을 일으키게 하여 현실적인 체험을 제공하는 것이다. 가상현실(Virtual Reality)이라는 개념은 1980년 초반 비디오플레이스(Videoplace) 개념을 창안한 크루거(Myron Krueger) 박사에 의해 처음으로 탄생했다. 가상현실(Virtual Reality)의 다른 이름으로 인공현실(Artificial Reality), 사이버 공간(Cyberspace), 가상 세계(Virtual Worlds)가 있다[3].

가상현실을 구축할 때에는 3D 모델을 배경으로 하여 가상현실에 들어갔을 때 3D 모델 데이터를 실시간(Real Time)으로 렌더링하게 된다. 그림 2. 가상현실의 동작 원리를 보인다[7].

Fig. 2.

Principle of operation of virtual reality (in case of IT held by hand)

가상현실(Virtual Reality)과 3D 애니메이션(3D Animation)은 닮은 듯 싶지만, 가상현실은 실시간으로 사용자가 스스로의 판단과 선택으로 3차원의 가상공간에서 이동과 사물의 작동 등을 제어할 수 있다는 점이 다르다.

VR 체험을 위해서는 사용자가 머리에 장착하여 외부와 차단한 후 사용자의 시각에 가상현실을 보여주는 디스플레이 디바이스가 필요하다. 이것을 HMD(Head Mounted Display)라고 한다.


Ⅲ. 기 획

현대시대에는 일명 ‘혼족’이라고 하는 혼자서 살아가는 구성원이 많아졌다. 그런 혼족들에게 소소한 행복과 힐링(Healing)을 줄 수 있는 애완동물과 함께라는 기획의도로 콘텐츠를 제작하게 되었다. 혼족들 사이에서 애완동물을 키우며 행복을 얻는 사람들이 많다는 점을 착안하여 애완동물의 대표격인 강아지를 대상으로 하는 가상현실 훈련시뮬레이션을 개발하게 되었다.

그렇게 기획한 것이 ‘With PET’이다. With PET은 가상현실(Virtual Reality)에서 플레이어가 가상현실(Virtual Reality) 속의 강아지와 상호작용하면서 강아지를 키워볼 수 있는 시뮬레이션 3D콘텐츠이다.

이 시뮬레이션의 콘셉트(Concept)는 가상현실(Virtual Reality)을 구축할 플랫폼에 중점을 두고 여기에 시나리오에 맞게 3D영상제작을 하여서 각 단계별 강아지 훈련내용이 인터렉션이 가능하도록 개발하였다. 가상현실(Virtual Reality)과 연결해주는 플랫폼 HTC Vive와 인디고 VR 트레드밀(Indigo VR treadmill)을 결합하여 구축 할 것을 고려하여 3D필드(3D Field)를 배경으로 정하고, 가상현실(Virtual Reality)에서 멀미를 일으키지 않을만한 텍스쳐(Texture)를 사용함으로써 플레이 시간을 확장시켰다. 또, 인디고 VR 트레드밀(Indigo VR treadmill)을 보다 효과적으로 활용하기 위하며 산책이라는 콘텐츠(Contents)를 넣게 되었다. 프로그래밍은 1차로 VR환경이 아닐 때의 코딩으로 기반을 개발한 후, 2차로 HTC Vive를 사용했을 때의 전용 코딩으로 전환시키는 과정을 거쳤다.

강아지 키우기 시뮬레이션 게임의 개발방향은 강아지와의 산책, 집안에서 기르는 애완강아지와의 여러 가지 상호작용 등을 참고하여 각단계별 훈련과정을 인터렉션이 가능한 가상현실로 체험시뮬레이션으로 개발 하였다.

3D배경을 사용한 시뮬레이션 게임으로 프로토타입(Prototype)개발을 마치고 실제 애완견을 기르는 견주들에게 본 게임을 체험하게 하였고, 여러 피드백을 받아서 추가개발에 활용하였다.

그림 3은 With PET의 프로토타입 이미지이다.

Fig. 3.

Prototype image of With PET

이후 애완견주들로부터 받은 피드백(Feedback)을 통해 수정된 프로토타입(Prototype)을 테스트 하면서 전체적으로 게임을 구성하는 오브젝트(Object)의 배치, 강아지의 애니메이션(Animation), 오브젝트(Object)의 리셋(Reset) 위치 지정 등을 통해 게임의 여러 요소들을 조율하고 구체적인 기준을 정했다. 최종개발결과물은 가상증강전시관에 전시하여 사용자들로부터 좋은 호응을 얻는 실제 전시된 작품이다. 본 연구는 실제 개발되어 전시된 가상증강 콘텐츠인 With PET 개발과정을 설명하는 가상증강 애완용 동물 훈련이 가능한 시뮬레이션 개발 논문이다.


Ⅳ. 디 자 인

이 시뮬레이션 게임의 가장 중요한 키워드가 되는 ‘강아지’ 에 초점을 두어, 대비가 선명한 색감과 자극적인 분위기보다는 이 게임을 플레이하는 사용자 모두가 여유로움을 느끼며 평화롭게 즐길 수 있도록 편히 쉬다 갈 수 있는 안식처 같은 분위기에 맞추어 디자인하였다.

4-1 Modeling

강아지 시뮬레이션 게임의 가상현실 3D 배경으로는 총 2가지로 구성이 된다. 훈련이나 물과 먹이를 주며 강아지와 교감할 수 있는 집 안 공간과, 강아지와 함께 산책할 수 있는 공간인 공원으로 나누어 제작하였다.

그림 4는 3D 배경 중 집 안 공간 부분이다.

Fig. 4.

3D background, the space inside the house

첫 번째, 강아지와 대부분의 시간을 보내게 될 집 안 공간에서는 전체적으로 따뜻하고 온화한 색감인 노란색 계열의 텍스쳐를 사용함으로써, 강아지의 밝고 통통 튀는 분위기를 공간 속에 자연스럽게 표현되도록 디자인 하였다. 모든 과정의 3D모델링과 디자인은 전문가의 조언을 바탕으로 가구배치, 색감 그리고 움직임 동선까지도 고려한 설계를 하였다. 각각의 훈련아이템은 견주들의 공동으로 요청하는 부분을 대상으로 개발을 하였다.

또한 Unity 3D 엔진을 통해 공간 속에 배치된 다양한 오브젝트들은 공중의자와 푹신한 소파, 화이트 계열의 가구들과 어린이용 스케이트보드, 동물 인형 등은 평화로운 느낌을 줄 수 있도록 Lighting 효과를 넣어주었다[8]-[10].

그림 5는 애완견과 야외활동을 하는 공원부분을 모델링한 영상의 일부이다.

Fig. 5.

The park part in the 3D background

강아지와 함께 산책할 수 있는 공원에서는 다양한 나무와 풀 등의 오브젝트들을 이용하여 푸르고 청량한 느낌에 더해 공원의 중심에 분수를 두어 시원한 느낌을 가미시켰다. 또한, 가로등과 쓰레기통, 벤치 등을 통하여 사람들이 편히 머물다 갈 수 있는 공원을 만들었다.

특히 오브젝트들의 크기를 VR 카메라를 이용자의 시선 높이에 맞춰 조절을 하여 보다 현실감 있게 배경을 구축하였다.

4-2 UI

이 게임의 3D 배경 분위기에 맞추어 UI 또한 노란색 계열의 색상을 사용하여 디자인하였고, UI를 통하여 별도의 게임 설명서 없이 사용자가 게임 진행을 할 수 있도록 흐름에 맞게 제작하였다.

그림 6은 Tutorial UI가 적용된 시작 화면이다.

Fig. 6.

Start screen with Tutorial UI

특히 게임 시작 시 3D 공간과 함께 첫 화면으로 뜨게 되는 Tutorial UI는 사용자가 HMD(Head Mount Display)를 착용한 상태에서 어느 방향으로 고개를 돌려도 UI가 따라올 수 있도록 Head 오브젝트 안에 넣어주었다. HTC Vive의 컨트롤러를 이용하여 UI를 클릭하면 게임 설명과 방법을 가르쳐주는 UI가 나타나며, 다시 한 번 클릭 시 모두 사라지게 된다.

Flat Design이란 복잡한 그래픽 효과를 일부만 사용하고, 대부분의 디자인을 색상과 구성을 통해 직관적인 인식이 가능하도록 구성하는 2차원 디자인 방식을 사용하는 것을 의미한다. 본 연구에서는 이러한 Flat Design을 시뮬레이션 속 공간에 적절히 배치하여 사용자들에게 시각적으로 직관적이고 쉽게 이해할 수 있도록 디자인하였다.

그림 7은 Flat Design을 사용한 UI 게임 화면을 나타내고 있다.

Fig. 7.

UI game screen using Flat Design

그림 8은 훈련모습을 나타내는 화면을 보여주고 있다.

Fig. 8.

A screen that shows the training


Ⅴ. 개발기술

개발기술 부분의 제작 방식 또한 2가지 순서로 나뉜다. 첫 번째로, C# Script를 사용하여 게임의 전체적 틀과 기본적 기능을 작성함으로써, VR 환경이 아닐 때의 경우를 먼저 제작하고 정상적으로 실행이 되는지 확인해보았다. 그 후 두 번째로, 이 시뮬레이션에서 사용 될 두 가지 플랫폼 ‘HTC Vive’ 와 ‘인디고 VR 트레드밀’을 통해 VR 환경을 구축하고, 스크립트로 작성한 기능들과 플랫폼이 호환이 되도록 VR 관련 코딩을 추가로 작성해 시뮬레이션 게임을 완성하였다.

5-1 베이스 Coding

위드 펫(With Pet)의 모든 기능은 모두 하드코딩으로 진행했다. 일단 주 오브젝트마다 타겟(Target)을 지정해주어 오브젝트들에게 어떠한 변화가 있을 때, 또는 현재 플레이 진행 상태에 변화가 있을 때 해당 오브젝트에게 명령을 내려줄 수 있도록 하였다.

또, 프로그램의 특성상 플레이 상태에는 다양한 경우의 수가 있으며, 그 상황들을 구별하기 위한 전역변수 "State"와 상황 지정을 보조해주는 전역변수를 추가하여 모든 경우를 나누어 지정할 수 있도록 하였다.

표 1은 오브젝트 Target화와 전역변수 State에 대한 내용을 보인다.

Object Targeting and Global Variables State

표 1과 같이 모든 경우를 지정할 수 있도록 상태 값을 받아 줄 전역변수를 준비하여 상황이 충돌하여 생기는 버그(Bug)를 최소화시켰다.

표 2는 상황 값 지정의 예시를 나타낸다.

Example of setting situation values

표 2의 경우, "Ball_Catch"의 경우가 2(공이 클릭되지 않은 상태)이거나 "Eat_Click"의 경우가 2(식사 UI가 클릭 된 상태) 또는 "Seet_Click"의 경우가 2(배변훈련 UI를 클릭 한 상태)일 경우에는 아무런 현상이 나타나지 않고, "Ball_Catch"의 경우가 1 또는 3(강아지가 공을 물고 있는 상태), 또는 "Eat_Click"의 경우가 1(식사 UI가 클릭되지 않은 상태)이거나 "Seet_Click"의 경우가 1(배변 훈련 UI가 클릭되지 않은 상태)일 경우에는 아래의 내용을 실행한다는 예시이다. 이렇게 모든 경우의 수를 검토하고 수정함으로써 성공적으로 상황들이 부딪히지 않고 진행시킬 수 있었다.

주 오브젝트인 강아지의 애니메이션(Animation) 또한 코딩으로 진행 되었다. 걷거나 뛰는 것과 같은 애니메이션의 경우는 이어지는 연결 애니메이션이 따로 없이도 자연스럽기 때문에 애니메이션을 재생시키고 일정 시간이 흐르면 재생을 멈추게 하면 되었지만, "앉기"같은 경우에는 강아지가 서있는 상태에서 자연스럽게 앉아야 했기 때문에 연결 애니메이션이 끝난 후 이어서 앉은 동작이 나오도록 Invoke를 통하여 애니메이션을 연결 시켰다. 초기개발과정에서 많은 시간이 소요된 부분이다. 게임영상콘텐츠에서 가장 널리 사용되는 3D MAX 저작도구로 자연스런 영상을 제작하였지만 트레드밀에 인터페이스하는 부분에서 자연스런 동작발생이 안되었다. 이러한 부분을 해결하는 과정이 Invoke는 시간지연 기능이다. Invoke는 시간지연 기능은 Invoke("실행함수",지연시간);의 구조로 이루어지게 되고, 지연시간을 2로 지정했을 경우, 2초 후에 실행함수가 한번 실행되게 해주는 기능이다. 실제 유사한 훈련시뮬레이션 개발하는 초보개발자들에게는 유익한 정보로 사료된다.

표 3은 Invoke의 사용 예시를 보여주고 있다.

Example of using Invoke

이와 같이 "BSit"함수는 1.0f 이후에 실행되게 함으로써, "AtoB"애니메이션을 1.0f 동안 실행시킨 후 이어서 바로 "B_idle"애니메이션이 재생되도록 할 수 있다.

이를 응용하여 파티클 시스템(Particle System)과 같은 효과 또한 시간을 지정하여 켜고 끄는 것이 가능하다.

5-2 VR Cording

베이스 Coding을 마무리한 뒤 먼저 ‘HTC Vive’ 플랫폼과 호환될 수 있도록 스크립트를 작성하였다.

하나의 C# Script 안에 ‘GripController’ 라는 클래스를 생성하여, 시뮬레이션 속에서 ‘HTC Vive’의 기능을 사용하기 위해 기본적으로 제공되는 Cording 소스를 넣어주었다.

표 4는 ‘HTC Vive’ 와의 연결을 위한 스크립트를 보여주고 있다.

Script for connection with "HTC Vive“

또한 시뮬레이션 속에서 실제와 같은 현실감을 주기 위하여, 강아지와 함께 즐길 수 있는 공놀이 부분에 ‘HTC Vive’의 컨트롤러라는 기기를 이용하여 버튼 클릭이 아닌 사용자가 공을 직접 던지는 모션을 취하며 공놀이를 즐길 수 있도록 제작하였다.

표 5는 공놀이에 사용될 Transform 및 bool 변수 생성이다.

Create transform and bool variables to be used for ball play

표 5의 경우, 공놀이 기능에 사용될 변수를 선언해주었다. 사용자가 컨트롤러를 이용하여 잡게 된 공을 따로 지정해줄 Transform 변수를 ‘gripedObj’ 라는 이름으로 선언하였다. 그리고 bool 변수 ‘isGripped’를 선언하여 ‘현재 공을 쥐고 있는 상태인가?’ 에 대한 true 또는 false 값을 설정해주었다. 현재 아무 행동도 취하지 않은 초기 상태에서는 false 값을 넣어주었다.

표 6은 트리거의 클릭 여부에 대한 함수 예시이다.

Example of a function as to whether to click the trigger

표 6의 예시에서, OnTriggerEnter라는 함수는 트리거가 눌려있을 경우에 실행될 함수를 나타내는 것으로 ‘Ball’ 이라는 tag를 가진 오브젝트와 isGripped의 부정일 때 gripedObj는 coll.transform과 같다. 이 말을 다시 풀어서 설명하자면, 트리거에 닿은 오브젝트의 tag가 ‘Ball’ 이면 그 오브젝트는 gripedObj 변수의 값과 같다는 뜻이다.

또한 OnTriggerExit라는 함수는 트리거가 눌려져있지 않을 때의 경우에 실행될 함수를 나타낸다. 그 경우에는 gripedObj의 값을 null로 주고, isGripped의 값은 false로 주어 처음 초기의 상태로 돌아가도록 만들어준다.

이와 같이, 컨트롤러를 사용하면서 발생될 모든 경우의 수를 생각하여, 각 경우에 맞는 변수의 값을 하나하나 설정해주었다. 그렇게 함으로써, 기기를 사용하였을 때 어떠한 상황에서든 시뮬레이션의 반응이 없는 경우가 없도록, 또 서로 충돌이 일어나지 않도록 시뮬레이션을 제작할 수 있었다.

표 7은 인디고 VR 트레드밀을 사용하기 위한 스크립트를 보여주고 있다.

Scripts for using "Indigo VR treadmill“

마지막으로, 인디고 VR 트레드밀 플랫폼과 호환될 수 있도록 스크립트를 작성하였다.

이 시뮬레이션과 ‘인디고 VR 트레드밀’ 이라는 플랫폼을 연결함으로써, 사용자가 걷는 행위를 가상현실 공간 속에 적용시켜, 사용자에게 가상공간 속에서 걸어가는 느낌을 주어 생생한 현실감을 느끼게 하였다.

하나의 C# Script 안에 CameraWalk 라는 클래스를 생성하고, Transform 변수로 Target과 Eye를 선언해주었다. 또 사용자가 시뮬레이션 상에서 걷는 속도의 변수를 Speed로 설정하여 초기 값을 2.0f로 선언해주었다.

사용자가 게임을 체험하는 동안, 인디고 VR 트레드밀 플랫폼 위에 올라가 걷거나 뛸 수 있는데 그때 사용자가 걷고 있다는 신호를 받아들여 그 신호를 다시 게임으로 전달하게 된다. 그 신호는 알파벳 ‘W’ key를 나타내며, 스크립트 상에서 ‘W’ key가 눌렸을 시에 게임 속의 카메라(사용자의 시선)가 움직일 수 있도록 작성해주었다.

특히 position 중 y값은 위, 아래를 나타내는 것으로, 카메라가 상하로 움직이지 않도록 0값으로 고정시켜주었다. 표에서 나타내는 여러 기능들에 대한 설명은 초보개발자들에게 유용한 참고자료가 될 것으로 사료된다[11].

그림 9는 가상증강전시관에서 전시된 강아지 훈련시뮬레이션을 시연하는 장면이다. 실내에서 이루어지는 훈련부분의 일부 영상이다.

Fig. 9.

Indoor training scenes displayed in the virtual enhancement exhibition hall

그림 10에서는 공원산책 및 야외훈련 장면을 보여주고 있다.

Fig. 10.

Park walks and outdoor training

그림 11은 공원부분에 대한 3D 오브젝트 디자인에 대한 장면이다.

Fig. 11.

3D object for the park


Ⅵ. 결 론

본 연구에서는 가상현실 속에서, 실제와 같은 현실감을 느끼며 가상의 강아지와 상호작용을 통해 훈련하고 교감하는 여러 현실상황을 연출하여 실행해보았다. 이를 통하여 더욱 생동감 있는 애완견과의 교감이 가능한 시뮬레이션 콘텐츠를 개발하였다. 만일 강아지 키우기 시뮬레이션이 아니더라도 현재 VR 시장에 존재하는 수많은 종류의 가상현실 시뮬레이션, 예를 들어 유치원생의 교통안전교육 시뮬레이션과 같은 경우에도 한정된 3D 공간에서 단순히 프로그램을 진행하는 것과 달리, 사용자가 실제와 같은 환경을 몸소 겪으며 실행 가능하기 때문에 가상현실을 사용했을 때의 시뮬레이션 효과는 배로 뛸 것이다. 가상현실 시뮬레이션콘텐츠는 자신이 직접 해보기 어려운 것들과 해보지 못 했던 것을 체험해보고 느껴볼 수 있기 때문에 다양한 분야에서 사용될 전망이다.

본 연구는 가상공간의 환경에서 특수한 목적의 훈련을 시키거나 또는 체험이 가능한 콘텐츠를 제작하고자 할 때 비교적 쉽게 이해가 가능하도록 제작원리와 개발방식을 제공하는 논문이 될 것이다.

Acknowledgments

이 논문은 2021년도 남서울대학교 학술연구비 지원에 의해 연구되었음.

References

  • Steam [Dream Pets VR], Subdream Studios [Internet]. Available: https://store.steampowered.com/app/738350/Dream_Pets_VR/?l=koreana&curator_clanid=32244664
  • S. H. Bak, H. B. You, and T. J. Choi, "Electroshock weapon Training System Using VR Technology", Korea Digital Contents of Society, Vol. 22, No 4, pp. 605-610, April 2021. [https://doi.org/10.9728/dcs.2021.22.4.605]
  • T. E. Kim, "A study on the production of children’s storybooks using augmented reality technology", Korea Digital Contents of Society, Vol. 18, No 3, pp. 435-442, June 2017.
  • M. S. Kim, J. H. Kang, and M. S. Jun, “Market and Technical Trends of VR Technologies”, The Korea Contents Association Review, Vol. 14, No. 4, pp. 14-16, December 2016.
  • D. W. Jung, A Study on Historical Tourism Information Service using Mobile Augmented Reality Technology, Master’s thesis, Graduate School of Ewha Woman‘s University, Seoul, February 2012. [https://doi.org/10.12672/ksis.2012.20.2.059]
  • J. S. Han, and G. H. Lee, “VR Tourism Content Using the HMD Device”, Journal of the Korea Contents Association, Vol. 15, No. 3, pp. 40-47, March 2015. [https://doi.org/10.5392/JKCA.2015.15.03.040]
  • Google Knowledge Encyclopedia
  • Vuforia [Internet]. Available:( http://developer.vuforia.com, )
  • Unity 3d [Internet]. Available:( http://korea.unity3d.com, )
  • E. N. Kim, and T. E. Kim, "The Trivium of the Digital Media Art", Journal of Digital contents Society, Vol. 15, No. 6, pp. 745-749, December. 2014. [https://doi.org/10.9728/dcs.2014.15.6.745]
  • D. H. Shin, "The role of affordance in the experience of virtual reality learning; Technological and affective affordances in virtual reality", Telematics and Informatics, pp. 1826-1836, December. 2017. [https://doi.org/10.1016/j.tele.2017.05.013]

저자소개

김태은(Tae-Eun Kim)

1989년 : 중앙대학교 전기공학과 졸업(공학학사)

1992년 : 중앙대학교 전자공학과 졸업(공학석사)

1997년 : 중앙대학교 전자공학과 졸업 (공학박사)

2001년: Pattern Recognition저널 게재(제1저자)

1995년: 삼성전자 휴먼 테크 논문 대상은상수상

1997년: 영상처리관련 3건의 특허취득확정

1993년~1996년: 한국연구재단참여연구원

현) 한국멀티미디어협회 멀티미디어기술사

1997년~현 재: 남서울대학교 멀티미디어학과 교수

관심분야 : 교육용게임콘텐츠제작, 영상인식, 증강현실, 컴퓨터비젼기술 등

Fig. 1.

Fig. 1.
Dream Pets VR

Fig. 2.

Fig. 2.
Principle of operation of virtual reality (in case of IT held by hand)

Fig. 3.

Fig. 3.
Prototype image of With PET

Fig. 4.

Fig. 4.
3D background, the space inside the house

Fig. 5.

Fig. 5.
The park part in the 3D background

Fig. 6.

Fig. 6.
Start screen with Tutorial UI

Fig. 7.

Fig. 7.
UI game screen using Flat Design

Fig. 8.

Fig. 8.
A screen that shows the training

Fig. 9.

Fig. 9.
Indoor training scenes displayed in the virtual enhancement exhibition hall

Fig. 10.

Fig. 10.
Park walks and outdoor training

Fig. 11.

Fig. 11.
3D object for the park

Table 1.

Object Targeting and Global Variables State


...
public Transform Target_Player;
public Transform Target_Food;
public Transform Target_Water;
public Transform Target_Ball;
public Transform Target_Back;
public Transform Target_Seet;

public static int State; public static int Ball_Catch;
public static int Eat_Click;
public static int Seet_Click;
public static int Sit_UI_Click;
public static int Jump_UI_Click;
public static int Stand_UI_Click;
...

Table 2.

Example of setting situation values


...
if(Ball_Catch == 2 || Eat_Click == 2 || Seet_Click == 2)
{
}
if (Ball_Catch == 1 || Ball_Catch == 3 || Eat_Click == 1 || Seet_Click == 1)
{ if (Ball_Catch == 3)
  { P_Ball.SetActive(true);
 ...
     Ball_Catch = 1;
  }
   State = 0;
   Speed = 0;
   GetComponent<Animation>().Play("AtoB");
   Invoke("BSit", 1.0f);
}
...

Table 3.

Example of using Invoke


...
if (Dog_Training.Sit_Level >= 4) {
GetComponent<Animation>().Play("AtoB");
Invoke("BSit", 1.0f); //
Sit_UI_Click = 1; //
...
void BSit(){
GetComponent<Animation>().Play("B_idle");
}
...

Table 4.

Script for connection with "HTC Vive“


...
public class GripController : MonoBehaviour {
   private SteamVR_TrackedObject trackedObj;

   private SteamVR_Controller.Device controller
    {
        get
        {
           return SteamVR_Controller.Input
           ((int)trackedObj.index);
        }
    }

   void Awake()
    {
      trackedObj = GetComponent
      <SteamVR_TrackedObject>();
    }
...
}
...

Table 5.

Create transform and bool variables to be used for ball play


...
    private Transform gripedObj;
    private bool isGripped = false;
...

Table 6.

Example of a function as to whether to click the trigger


...
void OnTriggerEnter(Collider coll)
    {
       if(coll.tag == "Ball" && !isGripped)
        {
            gripedObj = coll.transform;
            
        }
    }

    void OnTriggerExit(Collider coll)
    {
        if (coll.tag == "Ball" && gripedObj.gameObject == coll.gameObject)
        {
            gripedObj = null;
            isGripped = false;
        }
    }
...

Table 7.

Scripts for using "Indigo VR treadmill“


...
public class CameraWalk : MonoBehaviour
{
    public Transform Target;
    public Transform Eye;
    public float Speed = 2.0f;

    private void LateUpdate()
    {
        if (Target == null || Eye == null)
            return;

        if (Input.GetKey(KeyCode.W))
        {
            Vector3 pos = Target.transform.position;
            pos += Eye.forward * Speed * Time.deltaTime;
            pos.y = 0;
            Target.transform.position = pos;
        }
    }
}
...