본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
또한, 명세서 전체에서 "디바이스"는 소정의 장치에 구비되어 소정의 목적을 수행하는 구성을 의미한다. 구체적으로, 소정의 장치는 디스플레이가 가능한 화면과 사용자로부터 입력 정보를 수신할 수 있는 인터페이스를 구비하고, 사용자 입력을 수신하여 소정의 목적을 수행할 수 있는 대상이라면 제한 없이 본 발명의 일 실시예에 포함될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다.
도 1a 내지 도 1b는 일부 실시예에 따른 복수의 대상체들 간의 충돌을 방지하는 방법의 일 예를 나타내는 개념도들이다.
도 1a 및 1b를 참조하면, 디바이스(100) 앞에 있는 사람 또는 사물(120, 121), 상기 사람 또는 사물(120, 121)을 디바이스(100)의 카메라가 촬영하여 상기 디바이스(100)의 화면에 출력한 객체들(110, 111)이 도시되어 있다. 이하에서, 객체는 디바이스(100)의 화면에 출력된 사람 또는 사물(120, 121)의 이미지(110, 111)를 의미한다. 또한, 이하에서, 대상체는 상기 사람 또는 사물(120, 121)을 지칭한다. 다시 말해, 카메라가 대상체(120, 121)를 촬영하고, 대상체(120, 121)의 이미지인 객체(110, 111)가 디바이스(100)의 화면에 출력된다. 도 1a 및 1b에서는 설명의 편의를 위하여 객체들(110, 111)이 디바이스(100)에 의하여 실행되는 컨텐츠를 이용하는 사용자들을 나타내는 이미지인 것으로 설명하겠으나, 이에 한정되지 않는다.
대상체는 컨텐츠에 참여하는 사용자일 수도 있고, 컨텐츠에 참여하지 않는 사람 또는 사물일 수도 있다. 예를 들어, 객체(110)는 컨텐츠를 이용하는 사람이 촬영된 이미지일 수도 있고, 컨텐츠를 이용하지 않는 사람이 촬영된 이미지일 수도 있다. 또한, 객체(110)는 사람이 소지하고 있는 사물 또는 사람이 위치한 공간에 놓여진 사물이 촬영된 이미지일 수 있다. 여기에서, 사물은 동물, 식물 또는 공간에 배치된 가구 등이 해당될 수 있다. 컨텐츠는 사용자의 움직임을 인식하여 제어될 수 있는 프로그램을 의미한다. 예를 들어, 컨텐츠는 사용자가 소정의 동작을 취함에 따라 진행되는 댄싱 게임(dancing game), 스포츠 게임 등과 같은 컴퓨터 게임일 수도 있고, 사용자가 취하는 동작을 디바이스(100)의 화면에 출력하는 프로그램일 수도 있다.
만약, 컴퓨터 게임이 실행되는 경우를 가정하면, 객체들(110, 111)은 모두 컴퓨터 게임에 참여하는 사용자들이 촬영된 이미지들일 수도 있으나, 하나의 객체는 사용자의 이미지이고, 다른 하나의 객체는 컴퓨터 게임에 참여하지 않는 사람의 이미지 또는 사물의 이미지일 수도 있다. 일 예로서, 댄싱 게임이 실행되는 경우를 가정하면, 객체들은 댄싱 게임을 함께 즐기는 사용자들 각각의 이미지가 될 수도 있다. 다른 예로서, 하나의 객체는 댄싱 게임을 즐기는 사용자의 이미지이고, 다른 하나의 객체는 사용자의 주위에서 사용자가 수행하는 댄싱 게임을 관람하는 다른 사람의 이미지일 수도 있다. 또 다른 예로서, 하나의 객체가 사용자의 이미지이고, 다른 하나의 객체는 사용자의 주위를 지나가는 사람의 이미지 또는 동물의 이미지일 수도 있고, 사용자의 주위에 놓여진 물건의 이미지일 수도 있다. 예를 들어, 댄싱 게임이 실행될 때, 복수의 사람들 중 일부는 댄싱 게임에 참여하는 것(즉, 사용자)으로 설정되고, 나머지는 댄싱 게임에 참여하지 않는 것(즉, 비사용자)으로 설정될 수 있다.
이하에서는, 사람 또는 동물의 이미지를 동적 객체라고 하고, 자발적으로 움직이거나 이동할 수 없는 물건 또는 식물의 이미지를 정적 객체라고 한다.
일 예로서, 객체들은 컴퓨터 게임에 참여하는 제 1 사용자의 이미지 및 제 2 사용자의 이미지가 될 수 있다. 다른 예로서, 객체들은 컴퓨터 게임에 참여하는 사용자의 이미지와 컴퓨터 게임에 참여하지 않는 사람의 이미지가 될 수 있다. 또 다른 예로서, 객체들은 컴퓨터 게임에 참여하는 사용자의 이미지와 사용자의 주변에 위치한 동물의 이미지가 될 수 있다. 또 다른 예로서, 객체들은 컴퓨터 게임에 참여하는 사용자의 이미지와 사용자의 주변에 위치한 물체 (예를 들어, 가구)의 이미지가 될 수 있다.
객체들(110, 111)이 컴퓨터 게임에 참여하는 제 1 사용자의 이미지 및 제 2 사용자의 이미지인 예는 도 11을 참조하여 후술한다. 또한, 객체들(110, 111)이 컴퓨터 게임에 참여하는 사용자의 이미지와 컴퓨터 게임에 참여하지 않는 사람의 이미지인 예는 도 14를 참조하여 후술한다. 또한, 객체들(110, 111)이 컴퓨터 게임에 참여하는 사용자의 이미지와 사용자의 주변에 위치한 동물의 이미지인 예는 도 15를 참조하여 후술한다. 또한, 객체들(110, 111)이 컴퓨터 게임에 참여하는 사용자의 이미지와 사용자의 주변에 위치한 물체의 이미지인 예는 도 16을 참조하여 후술한다.
또한, 객체는 사용자에 의하여 설정된 가상의 캐릭터일 수도 있다. 예를 들어, 사용자는 컨텐츠의 설정을 통하여, 실제로 존재하지 않는 가상의 캐릭터를 객체로 생성할 수 있다.
도 1a를 참조하면, 사용자들(120, 121)은 일정 거리 이상으로 충분히 떨어진 상태에서 컨텐츠를 이용한다. 예를 들어, 컨텐츠가 댄싱 게임이라고 가정하면, 사용자들(120, 121)은 서로 충돌하지 않을 만큼 충분히 떨어진 상태이므로 안전하게 각자 소정의 모션을 취할 수 있다. 한편, 도 1b를 참조하면, 사용자들(120, 121)이 일정 거리 이하로 가까워진 상태이므로, 사용자들(120, 121) 중 적어도 하나가 소정의 모션을 취할 경우, 다른 사용자와 충돌할 수 있다.
여기에서, 충돌은 사용자들(120, 121)이 서로 물리적으로 부딪히는 것을 의미한다. 또는, 충돌은 사용자(120)가 사용자(120)의 주변에 위치한 다른 사람, 동물, 식물 또는 가구 등에 부딪히는 것을 의미한다. 다시 말해, 충돌은 사용자(120)의 일 부분이 다른 물체(121)의 일 부분에 닿는 것을 의미한다. 일 예로서, 일 사용자의 머리, 팔, 몸통, 다리 등 일 부분이 다른 사용자의 일 부분에 닿는 경우에 사용자들이 충돌했다고 한다. 다른 예로서, 사용자의 머리, 팔, 몸통, 다리 등 일 부분이 탁자에 닿는 경우에 사용자와 탁자가 충돌했다고 한다.
대상체들이 서로 충돌하는 경우, 대상체에 대응하는 사람 또는 동물이 부상을 당할 수 있고, 대상체에 대응하는 물건이 부셔지거나 고장날 수도 있다. 따라서, 디바이스(100)는 대상체들의 충돌 가능성을 예측하고, 대상체들이 충돌할 가능성이 높다고 판단되면 소정의 경고 정보를 출력할 수 있다. 여기에서, 경고 정보는 디바이스(100)의 화면에서 출력되는 빛, 컬러 또는 소정의 이미지가 될 수도 있고, 디바이스(100)의 스피커에서 출력되는 소리가 될 수도 있다. 또한, 디바이스(100)가 컨텐츠를 실행하고 있는 경우라면, 디바이스(100)가 컨텐츠의 실행을 중지하는 것도 경고 정보의 일 예가 될 수 있다.
디바이스(100)가 출력하는 경고 정보에 따라 객체에 대응하는 사람 또는 동물이 동작을 멈출 수 있고, 이에 따라 서로 충돌하는 상황이 방지될 수 있다.
도 1a 내지 도 1b에서는 디바이스(100)가 컨텐츠(예를 들어, 컴퓨터 게임)을 실행하고, 영상 및 사운드를 출력하는 것으로 도시되어 있으나, 이에 한정되지 않는다. 한편, 카메라는 디바이스(100)와는 독립된 별도의 장치일 수도 있고, 디바이스(100)에 내장될 수도 있다. 또한, 컨텐츠를 실행하는 장치와 영상 및 사운드를 출력하는 장치가 독립적으로 존재할 수 있다. 이하, 도 1c를 참조하여, 컨텐츠를 실행하는 장치와 영상 및/또는 사운드를 출력하는 장치가 독립적으로 존재하는 일 예를 설명한다.
도 1c는 일부 실시예에 따른 컨텐츠를 실행하는 장치와 영상 및 사운드를 출력하는 장치가 독립적으로 존재하는 일 예를 나타내는 구성도이다.
도 1c를 참조하면, 시스템(1)은 컨텐츠를 실행하는 장치(101), 디스플레이 장치(102) 및 카메라(103)를 포함한다. 컨텐츠가 컴퓨터 게임이라고 가정하면, 장치(101)는 게임 콘솔(game console)을 의미한다.
카메라(103)는 컴퓨터 게임에 참여하는 사용자 또는 사용자의 주변에 위치한 적어도 하나의 물체를 촬영하고, 촬영된 이미지를 컨텐츠를 실행하는 장치(101)에 전송한다. 여기에서, 촬영된 이미지는 사용자 또는 물체의 형상을 나타내는 이미지를 의미한다.
컨텐츠를 실행하는 장치(101)는 카메라(103)로부터 전송된 이미지를 디스플레이 장치(102)로 전송한다. 또한, 컨텐츠를 실행하는 장치(101)는, 대상체들이 충돌할 가능성이 있다고 판단될 경우, 충돌 가능성이 있음을 알려주는 경고 정보를 생성한다. 그리고, 컨텐츠를 실행하는 장치(101)는 경고 정보를 디스플레이 장치(102)로 전송한다. 일 예로서, 객체들(112)은 컴퓨터 게임에 참여하는 제 1 사용자(120)의 이미지 및 제 2 사용자(121)의 이미지가 될 수 있다. 다른 예로서, 객체들(112)은 컴퓨터 게임에 참여하는 사용자(120)의 이미지와 컴퓨터 게임에 참여하지 않는 사람(121)의 이미지가 될 수 있다. 또 다른 예로서, 객체들(112)은 컴퓨터 게임에 참여하는 사용자(120)의 이미지와 사용자(120)의 주변에 위치한 동물(121)의 이미지가 될 수 있다. 또 다른 예로서, 객체들(112)은 컴퓨터 게임에 참여하는 사용자(120)의 이미지와 사용자(120)의 주변에 위치한 물체(121)(예를 들어, 가구)의 이미지가 될 수 있다.
디스플레이 장치(102)는 컨텐츠를 실행하는 장치(101)로부터 전송된 이미지 또는 경고 정보를 출력한다. 여기에서, 경고 정보는 디스플레이 장치(102)의 화면에서 출력되는 빛, 컬러 또는 소정의 이미지가 될 수도 있고, 디스플레이 장치(102)의 스피커에서 출력되는 소리가 될 수도 있다.
한편, 도 1a 내지 도 1c를 참조하여 상술한 바에 따르면, 컨텐츠는 디바이스(100) 또는 컨텐츠를 실행하는 장치(101)에서 실행된다. 그러나, 이에 한정되지 않는다. 다시 말해, 컨텐츠는 서버에서 실행되고, 디바이스(100) 또는 디스플레이 장치(102)가 컨텐츠의 실행 화면을 출력할 수 있다.
도 1d는 일부 실시예에 따른 컨텐츠가 서버에서 실행되는 일 예를 설명하기 위한 도면이다.
도 1d를 참조하면, 서버(130)는 디바이스(104)와 네트워크를 통하여 연결될 수 있다. 먼저, 사용자(122)는 서버(130)에 컨텐츠를 실행할 것을 요청한다. 예를 들어, 사용자(122)가 디바이스(104)를 통하여 서버(130)에 로그인하고, 서버(130)에 저장된 컨텐츠를 선택함에 따라, 컨텐츠가 실행될 수 있다.
컨텐츠가 실행되면, 서버(130)는 디바이스(104)에 출력될 영상을 전송한다. 예를 들어, 컨텐츠가 컴퓨터 게임이라면, 서버(130)는 컴퓨터 게임의 초기 설정 화면, 실행 화면 등을 디바이스(104)에 전송할 수 있다.
디바이스(104) 또는 카메라(105)는 카메라(105)에 의하여 촬영된 영상을 서버(130)에 전송한다. 또한, 카메라(105)에 의하여 촬영된 영상(즉, 객체들(113, 114)을 포함하는 영상)은 디바이스(104)의 화면에 출력된다. 이때, 디바이스(104)는 컨텐츠의 실행 화면과 카메라(105)에 의하여 촬영된 영상을 조합하여 출력할 수 있다. 예를 들어, 컨텐츠가 댄싱 게임이라면, 디바이스(104)는 사용자(122)에게 요구되는 동작을 나타내는 영상과 사용자(122)가 촬영된 영상을 함께 출력할 수 있다.
도 1d에 도시된 대상체(123)는 사람, 동물, 식물 또는 물건(예를 들어, 가구)이 될 수 있다. 다시 말해, 대상체(123)는 사용자(122)와 함께 컨텐츠를 즐기는 다른 사용자이거나, 사용자(122)의 주변에 위치한 사람이 될 수 있다. 또는, 대상체(123)는 사용자(122)의 주변에 위치한 동물, 식물 또는 물건이 될 수 있다.
컨텐츠가 실행되는 도중에 대상체들(122, 123)이 서로 충돌할 것으로 예측되는 경우, 서버(130) 또는 디바이스(104)는 경고 신호를 생성할 수 있다.
일 예로서, 대상체들(122, 123) 사이의 충돌 가능성은 서버(130)에서 예측될 수 있다. 대상체들(122, 123)이 서로 충돌할 것으로 예측되면, 서버(130)는 디바이스(104)에게 충돌 가능성이 있음을 통지하고, 디바이스(104)는 경고 신호를 출력할 수 있다.
다른 예로서, 대상체들(122, 123) 사이의 충돌 가능성은 디바이스(100)에서 예측될 수 있다. 다시 말해, 서버는 컨텐츠를 실행하는 역할만 수행하고, 대상체들(122, 123) 사이의 충돌 가능성 예측 및 경고 신호의 출력은 디바이스(104)가 수행할 수 있다.
이하에서는 도 2 내지 도 27을 참조하여, 디바이스(100)가 대상체들 간의 충돌을 방지하는 일 예를 설명한다.
도 2는 일부 실시예에 따른 복수의 대상체들 간의 충돌을 방지하는 방법의 일 예를 나타내는 흐름도이다.
도 2를 참조하면, 복수의 대상체들 간의 충돌을 방지하는 방법은 도 29 또는 도 31에 도시된 디바이스(100) 또는 컨텐츠를 실행하는 장치(101)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 29 또는 도 31에 도시된 디바이스(100)에 관하여 후술할 내용은 도 2의 방법에도 적용됨을 알 수 있다.
210 단계에서, 디바이스(100)는 제 1 대상체의 형상을 나타내는 제 1 객체 및 제 2 대상체의 형상을 나타내는 제 2 객체를 획득한다. 여기에서, 형상은 대상체(예를 들어, 사람, 동물, 식물 또는 물건)의 외형으로서, 대상체의 모양 뿐만 아니라 길이와 체적을 모두 포함한다. 일 예로서, 객체가 사람의 이미지라고 가정하면, 객체에는 사람의 머리부터 발까지의 전체 모양, 키, 팔 길이, 다리 길이, 몸통의 두께, 팔의 두께 및 다리의 두께 등 사람의 외형을 나타내는 모든 정보가 포함된다. 다른 예로서, 객체가 의자의 이미지라고 가정하면, 객체에는 의자의 모양, 높이, 다리의 두께 등 의자의 외형을 나타내는 모든 정보가 포함된다.
일 예로서, 디바이스(100)가 컨텐츠를 실행하는 경우를 가정하면, 제 1 객체는 컨텐츠를 이용하는 사용자의 이미지를 의미한다. 그리고, 제 2 객체는 제 1 객체와 함께 컨텐츠를 이용하는 다른 사용자의 이미지 또는 컨텐츠를 이용하지 않는 대상체의 이미지를 의미한다. 이때, 제 2 객체가 컨텐츠를 이용하지 않는 대상체의 이미지인 경우, 제 2 객체는 정적 객체 및 동적 객체 중 어느 하나를 의미한다. 여기에서, 사람 또는 동물의 이미지를 동적 객체라고 하고, 자발적으로 움직이거나 이동할 수 없는 물건 또는 식물의 이미지를 정적 객체라고 한다. 컨텐츠는 사용자의 움직임이 요구되는 프로그램을 의미하며, 예를 들어 사용자의 움직임에 기초하여 실행되는 게임이 해당될 수 있다.
다른 예로서, 컨텐츠가 실행되지 않는 경우를 가정하면, 제 1 객체와 제 2 객체는 정적 객체 및 동적 객체 중 어느 하나를 의미한다. 여기에서, 정적 객체 및 동적 객체의 의미는 상술한 바와 같다. 예를 들어, 디바이스(100)가 횡단보도에 인접한 위치에 설치되었다고 가정하면, 동적 객체는 횡단보도를 지나는 보행자의 이미지 또는 차도를 지나는 차량의 이미지가 해당될 수 있고, 정적 객체는 횡단보도의 주변에 위치한 장애물의 이미지가 해당될 수 있다.
이하에서는, 제 1 객체 및 제 2 객체는 각각 단일 대상체(즉, 사람, 동물, 식물 또는 물체)을 촬영한 이미지인 것으로 설명하겠으나, 이에 한정되지 않는다. 다시 말해, 제 1 객체 또는 제 2 객체는 복수의 대상체들을 한꺼번에 촬영한 이미지일 수도 있다.
디바이스(100)는 카메라가 촬영한 영상을 통하여 제 1 영상 및 제 2 영상을 획득할 수 있다. 이때, 디바이스(100)는 제 1 영상 및 제 2 영상을 통하여 객체에 대응하는 대상체(즉, 사람, 동물, 식물 또는 물체)의 실제 형상에 관한 정보(이하, ‘형상 정보’라고 함) 뿐만 아니라 대상체와 카메라 사이의 거리에 대한 정보, 복수의 대상체들 사이의 거리에 대한 정보를 획득할 수 있다. 또한, 디바이스(100)는 카메라의 종류에 따라 대상체 및 배경의 컬러에 대한 정보를 획득할 수도 있다.
예를 들어, 카메라는 깊이 카메라(depth camera)일 수 있다. 깊이 카메라는 촬영 대상의 형상 뿐만 아니라 공간에 대한 3차원 정보(즉, 촬영 대상과 카메라 사이의 거리 또는 촬영 대상들 사이의 거리에 관한 정보)가 포함된 영상을 생성하는 카메라를 의미한다. 일 예로서, 깊이 카메라는 서로 다른 위치에 존재하는 2대의 카메라가 촬영한 영상을 이용하여 공간의 3차원 정보를 포함하는 영상을 생성하는 스테레오스코픽(stereoscopic) 카메라를 의미할 수 있다. 다른 예로서, 깊이 카메라는 공간을 향하여 조사된 광(light)이 공간 상에 위치한 사물로부터 반사되어 돌아오는 반사광의 패턴을 이용하여 공간의 3차원 정보를 포함하는 영상을 생성하는 카메라를 의미할 수 있다. 또 다른 예로서, 깊이 카메라는 객체를 포함하는 공간을 향하여 조사된 광이 공간 상에 위치한 사물로부터 반사되어 돌아오는 반사광에 대응하는 전하의 양에 기초하여 공간의 3차원 정보를 포함하는 영상을 생성하는 카메라를 의미할 수도 있다. 그러나, 카메라는 상술된 예에 한정되지 않으며, 객체의 형상 및 공간에 대한 3차원 정보가 포함된 영상을 촬영할 수 있는 카메라이면 제한 없이 해당될 수 있다.
또한, 디바이스(100)는 저장부(2940)에 저장된 데이터에 기초하여 객체에 대응하는 대상체의 형상 정보를 획득할 수도 있다. 다시 말해, 저장부(2940)에 이전에 획득된 대상체의 형상 정보가 저장되어 있고, 디바이스(100)가 저장부(2940)에 저장된 정보를 독출할 수 있다.
한편, 도 3 내지 도 16을 참조하여 후술할 내용은 컨텐츠의 실행 전에 수행될 수 있다. 예를 들어, 컨텐츠가 컴퓨터 게임이라고 가정하면, 도 3 내지 도 16을 참조하여 후술할 내용은 컴퓨터 게임이 시작되기 이전에 수행되는 작업들이 될 수 있다.
이하, 도 3을 참조하여 디바이스(100)가 형상 정보를 획득하는 일 예를 설명한다.
도 3은 일부 실시예에 따른 디바이스가 형상 정보를 획득하는 일 예를 설명하기 위한 도면이다.
도 3에는 사용자(310), 디바이스(100) 및 카메라(320)가 도시되어 있다. 이하에서는 설명의 편의를 위하여, 디바이스(100)는 영상의 디스플레이를 위한 화면을 포함하고, 카메라(320)와 디바이스(100)가 분리되어 서로 독립적인 장치인 것으로 설명하겠으나, 이에 한정되지 않는다. 다시 말해, 카메라(320)는 디바이스(100)에 내장될 수도 있다. 또한, 카메라(320)는 사용자(310)를 포함하는 공간을 향하여 광을 조사하고, 조사된 광이 사물로부터 반사되어 돌아오는 반사광을 이용하여 영상을 생성하는 카메라인 것으로 설명한다. 그러나, 도 2를 참조하여 상술한 바와 같이, 카메라(320)는 이에 한정되지 않는다.
디바이스(100)의 화면과 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 화면은 출력 장치 이외에 입력 장치로도 사용될 수 있다. 화면은 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 화면의 구현 형태에 따라 디바이스(100)는 화면을 2개 이상 포함할 수도 있다. 이때, 2개 이상의 화면은 힌지(hinge)를 이용하여 마주보게 배치될 수 있다.
카메라(320)는 사용자(310)를 포함하는 공간을 향하여 광을 조사하고, 사용자(310)로부터 반사된 광을 획득한다. 그리고, 카메라(320)는 획득된 광을 이용하여 사용자(310)의 형상에 대한 데이터를 생성한다.
카메라(320)는 사용자(310)의 형상에 대한 데이터를 디바이스(100)로 전송하고, 디바이스(100)는 전송된 데이터를 이용하여 사용자(310)의 형상 정보를 획득한다. 그리고, 디바이스(100)는 사용자(310)의 형상 정보를 포함하는 객체를 화면에 출력한다. 이때, 사용자(310)의 형상 정보는 디바이스(100)의 화면에 출력될 수 있다. 또한, 디바이스(100)는 카메라(320)로부터 전송된 데이터를 이용하여 카메라(320)와 사용자(310) 사이의 거리에 대한 정보도 획득할 수 있다.
이하, 도 4를 참조하여 디바이스(100)가 카메라(320)로부터 전송된 데이터를 이용하여 사용자(310)의 형상 정보를 획득하는 일 예를 설명한다.
도 4a 내지 도 4b는 일부 실시예에 따른 디바이스가 사용자의 형상 정보를 획득하는 일 예를 설명하기 위한 도면들이다.
도 4a에는 카메라(320)로부터 전송된 데이터에서 추출된 데이터의 일 예가 도시되어 있고, 도 4b에는 디바이스(100)가 추출된 데이터를 이용하여 추정한 사용자의 형상(410)의 일 예가 도시되어 있다.
디바이스(100)는 카메라(320)로부터 전송된 데이터에서 일정한 범위의 영역을 추출한다. 여기에서, 일정한 범위는 사용자가 존재하는 영역을 의미한다. 다시 말해, 카메라(320)가 공간을 향하여 광을 조사하고, 조사된 광이 공간에 존재하는 물체(사용자를 포함함)에 반사되어 카메라(320)로 돌아오면, 카메라(320)는 돌아온 광을 이용하여 각각의 픽셀에 대응하는 깊이 값을 연산한다. 이때, 연산된 깊이 값은 픽셀에 대응하는 포인트의 밝기 정도로 나타날 수 있다. 다시 말해, 카메라(320)에서 조사된 광이 카메라(320)로부터 근접한 위치에서 반사되어 돌아오면 포인트의 밝기가 어둡게 나타날 수 있고, 카메라(320)에서 조사된 광이 카메라(320)로부터 먼 위치에서 반사되어 돌아오면 포인트의 밝기가 밝게 나타날 수 있다. 따라서, 카메라(320)로부터 전송된 데이터(예를 들어, 픽셀들 각각에 대응하는 포인트)를 이용하여, 디바이스(100)는 광이 조사된 공간에 위치한 물체(사용자를 포함함)의 형상과 그 물체와 카메라(320) 사이의 거리를 알 수 있다.
디바이스(100)는 카메라(320)로부터 전송된 데이터에서 사용자가 존재하는 영역에 대응하는 데이터를 추출하고, 추출된 데이터에서 노이즈를 제거함으로써 사용자의 형상 정보를 획득할 수 있다. 그리고, 디바이스(100)는 노이즈가 제거된 데이터를 저장부(2940)에 저장된 다양한 사람의 자세(pose)들과 비교함으로써, 사용자의 형상을 나타내는 스켈레톤(skeleton)을 추정할 수 있다. 그리고, 디바이스(100)는 추정된 스켈레톤을 이용하여 사용자의 형상(410)을 추정하고, 추정된 사용자의 형상(410)을 이용하여 사용자의 형상 정보를 획득할 수 있다.
이하, 도 5를 참조하여 디바이스(100)가 획득한 사용자의 형상 정보가 출력된 일 예를 설명한다.
도 5는 일부 실시예에 따른 사용자의 형상 정보가 디바이스의 화면에 출력된 일 예를 도시한 도면이다.
도 5를 참조하면, 사용자의 형상 정보는 디바이스(100)의 화면(510)에 출력될 수 있다. 예를 들어, 화면(510)에는 사용자의 키(520), 팔 길이(530), 다리 길이(540)가 출력될 수 있다. 또한, 화면(510)에는 사용자의 성별(550)에 대한 정보가 출력될 수도 있다. 여기에서, 사용자의 성별(550)은, 디바이스(100)가 카메라(320)로부터 전송된 데이터를 분석하여 결정할 수도 있고, 사용자가 성별(550)을 직접 입력할 수도 있다.
또한, 화면(510)에는 사용자에 대응하는 객체(560)가 출력될 수 있다. 여기에서, 객체(560)는 카메라(320)에 의하여 획득된 데이터에 대응하는 형상이 될 수도 있고, 사용자의 형상 정보에 의하여 생성된 가상 형상이 될 수도 있다. 예를 들어, 객체(560)는 카메라(320)가 촬영한 형상이 될 수도 있고, 키(520), 팔 길이(530), 다리 길이(540) 및 성별(550)을 조합하여 생성된 가상 형상이 될 수도 있다. 또한, 사용자가 직접 입력한 정보에 기초하여 객체(560)의 형상이 결정될 수도 있다. 예를 들어, 객체(560)는 사용자의 형상 정보가 반영되어 생성된 게임 캐릭터가 될 수도 있다.
화면(510)에는 상술한 사용자의 형상 정보의 수정이 필요할지 여부를 묻는 아이콘(570)이 표시될 수 있다. 만약, 디바이스(100)의 화면(510)에 표시된 정보들(예를 들어, 키(520), 팔 길이(530), 다리 길이(540), 성별(550) 및 형상(560)) 중 적어도 하나 이상에 대하여 수정이 필요할 경우, 사용자는 '아니오'가 표시된 아이콘을 선택한다. 이때, 디바이스(100)는 사용자의 형상 정보를 다시 획득하며, 카메라(320)의 재동작이 수반될 수 있다. 사용자가 '예'가 표시된 아이콘을 선택한 경우, 사용자의 형상 정보는 디바이스(100)의 저장부(2940)에 저장된다.
도 3 내지 도 5를 참조하여 상술한 바와 같이, 디바이스(100)는 카메라(320)로부터 전송된 데이터를 이용하여 사용자를 식별하고, 식별된 사용자의 형상 정보를 획득할 수 있다. 또한, 디바이스(100)는 사용자로부터 입력된 정보에 기초하여 다른 사람 또는 사물을 추가하거나 카메라(320)가 촬영한 대상체를 삭제할 수도 있다. 다시 말해, 사용자는 가상의 대상체를 추가하거나, 카메라(320)로부터 전송된 데이터에 포함되지 않은 대상체를 추가할 수 있다. 또한, 사용자는 카메라(320)가 촬영하여 디바이스(100)의 화면에 표시된 객체를 삭제할 수도 있다. 이하, 도 6a 내지 도 7b를 참조하여, 디바이스(100)가 화면에 객체를 추가로 표시하거나 표시된 객체를 삭제하는 일 예를 설명한다.
도 6a 내지 도 6b는 일부 실시예에 따른 디바이스가 객체를 추가하는 일 예를 설명하기 위한 도면들이다.
도 6a를 참조하면, 디바이스(100)의 화면에는 사용자를 나타내는 객체(610)가 도시되어 있다. 도 6a에 도시된 객체(610)는 컨텐츠를 이용하는 사용자를 나타내는 이미지인 것으로 가정하여 설명한다.
한편, 카메라(320)로부터 전송된 데이터에는 촬영 공간에 대한 모든 정보가 포함되어 있지 않을 수도 있다. 다시 말해, 카메라(320)의 성능 또는 주변 환경의 영향에 따라, 카메라(320)는 촬영 공간에 존재하는 모든 사람들, 동식물들 및 사물들에 대한 정보를 포함하는 데이터를 생성하지 못할 수도 있다. 한편 사용자가 임의로 가상의 객체(즉, 가상의 대상체를 나타내는 이미지)를 설정하고, 디바이스(100)는 설정된 가상의 객체에 대한 형상 정보를 획득할 수도 있다.
일 예로서, 실제로는 사용자와 인접한 위치에 개가 존재하였으나 카메라(320)가 생성한 데이터에는 개의 형상에 대한 정보가 포함되어 있지 않을 수도 있다. 이때, 사용자는 디바이스(100)의 입력부(2910)를 통하여 개의 형상(620)을 입력할 수 있고, 디바이스(100)는 입력된 형상(620)에 기초하여 개를 나타내는 객체를 화면에 출력할 수 있다. 이때, 디바이스(100)는 개를 나타내는 객체(620)와 사용자를 나타내는 객체(610)의의 비율을 이용하여, 개의 형상 정보(예를 들어, 개의 크기, 다리 길이 등)를 추정할 수 있다.
다른 예로서, 실제로는 사용자와 인접한 위치에는 의자가 존재하지 않았으나, 사용자는 디바이스(100)의 입력부(2910)를 통하여 의자의 형상(630)을 입력할 수 있다. 그리고, 디바이스(100)는 입력된 형상(630)에 기초하여 의자를 나타내는 객체를 화면에 출력할 수 있다. 이때, 디바이스(100)는 의자를 나타내는 객체(630)와 사용자를 나타내는 객체(610)의 비율을 이용하여, 의자의 형상 정보(예를 들어, 의자의 모양, 크기 등)를 추정할 수 있다.
도 6b에는 디바이스(100)의 화면에 출력된 사용자를 나타내는 객체 및 사용자에 의하여 추가된 객체들(621, 631)이 도시되어 있다. 디바이스(100)는 사용자의 입력 정보에 기초하여 추가된 객체들(621, 631)을 화면에 출력할 수 있다.
도 7a 내지 도 7b는 일부 실시예에 따른 디바이스가 객체를 삭제하는 일 예를 설명하기 위한 도면들이다.
도 7a를 참조하면, 디바이스(100)의 화면에는 객체들(710, 720, 730)이 도시되어 있다. 도 7a에 도시된 객체(710)는 컨텐츠를 이용하는 사용자를 나타내는 객체인 것으로 가정하여 설명한다.
화면에 출력된 객체들 중 사용자가 컨텐츠를 이용하는데 필요하지 않은 객체가 존재할 수 있다. 예를 들어, 컨텐츠가 댄싱 게임이라고 가정하면, 화면에 출력된 객체들 중 사용자가 동작을 취하는 경우에도 사용자와 충돌할 가능성이 적은 대상체를 나타내는 객체가 존재할 수 있다. 이때, 사용자는 충돌할 가능성이 적은 대상체를 나타내는 객체를 삭제할 수 있다.
예를 들어, 사용자의 주변에는 탁자와 의자가 존재하나, 실제로는 의자와 사용자 사이의 거리가 멀기 때문에, 사용자가 소정의 동작을 취하는 경우에도 사용자와 의자가 충돌할 가능성이 매우 낮을 수 있다. 이때, 사용자는 입력부(2910)를 통하여 의자를 나타내는 객체(730)를 삭제할 수 있다.
도 7b에는 사용자를 나타내는 객체(710) 및 사용자가 삭제하지 않은 객체(720)가 도시되어 있다. 디바이스(100)는 사용자의 입력 정보에 기초하여 삭제된 객체(730)는 화면에 출력하지 않을 수 있다.
다시 도 2를 참조하면, 220 단계에서, 디바이스(100)는 제 1 대상체의 형상 정보를 이용하여 제 1 대상체의 적어도 일 부분이 도달할 수 있는 지점들을 포함하는 제 1 영역을 결정한다. 또한, 230 단계에서, 디바이스(100)는 제 2 대상체의 형상 정보를 이용하여 제 2 대상체의 적어도 일 부분이 도달할 수 있는 지점들을 포함하는 제 2 영역을 결정한다.
예를 들어, 객체가 사용자를 나타내는 이미지이라고 가정하면, 대상체의 일 부분은 사용자의 머리, 몸통, 팔, 다리 등 신체의 일 부분을 의미한다. 이하에서는, 설명의 편의를 위하여 대상체의 적어도 일 부분이 도달할 수 있는 지점들을 포함하는 영역을 ‘활동 범위’로 정의한다. 예를 들어, 사람이 팔을 뻗어서 닿을 수 있는 지점들 또는 사람이 다리를 뻗어서 닿을 수 있는 지점들이 모두 포함된 영역을 활동 범위라고 한다.
일 예로서, 대상체의 활동 범위는 사용자가 소정의 위치에 정지한 상태에서 사용자의 일 부분이 도달할 수 있는 지점들을 포함하는 영역이 될 수 있다. 다른 예로서, 대상체의 활동 범위는 사용자가 소정의 경로를 따라 이동하는 상태에서 사용자의 일 부분이 도달할 수 있는 지점들을 포함하는 영역이 될 수도 있다. 또 다른 예로서, 대상체의 활동 범위는 사용자가 일정한 위치에서 움직임에 따라 사용자의 일 부분이 도달할 수 있는 지점들을 포함하는 영역이 될 수도 있다.
사용자가 소정의 위치에 정지한 상태에서 사용자의 일 부분이 도달할 수 있는 지점들의 조합이 대상체의 활동 범위가 되는 일 예는 도 8 내지 도 9b 및 도 11 내지 도 16b를 참조하여 후술한다.
또한, 사용자가 일정한 위치에서 움직임에 따라 사용자의 일 부분이 도달할 수 있는 지점들의 조합이 대상체의 활동 범위가 되는 일 예는 도 10a 내지 도 10b를 참조하여 후술한다.
또한, 사용자가 소정의 경로를 따라 이동하는 상태에서 사용자의 일 부분이 도달할 수 있는 지점들의 조합이 대상체의 활동 범위가 되는 일 예는 도 17 내지 도 18을 참조하여 후술한다.
도 8은 일부 실시예에 따른 대상체의 활동 범위가 디바이스의 화면에 출력된 일 예를 도시한 도면이다.
디바이스(100)은 대상체의 형상 정보를 이용하여 대상체의 활동 범위를 결정한다. 디바이스(100)는 대상체의 형상 정보에 포함된 길이 값들(예를 들어, 대상체가 사용자라고 가정하면, 사용자의 키, 팔 길이, 다리 길이 등)을 고려하여, 사용자가 정지한 상태에서 사용자의 일 부위가 도달할 수 있는 지점들을 결정하고, 결정된 지점들을 조합하여 사용자의 활동 범위를 결정한다.
일 예로, 디바이스(100)는 저장부(2940)에 저장된 매핑 테이블에 기초하여 대상체의 활동 범위를 결정할 수 있다. 여기에서, 매핑 테이블은 객체가 나타내는 대상체의 종류에 따른 사이즈(예를 들어, 대상체가 사람이라면, 키, 팔 길이, 다리 길이)와 활동 범위와의 관계를 비율로서 나타낸 테이블을 의미한다. 예를 들어, 매핑 테이블에는 사람의 한쪽 팔 길이의 3/4배가 사람의 활동 범위의 반경이 될 수 있고, 사람의 한쪽 다리 길이의 4/5배가 사람의 활동 범위의 반경이 될 수 있다는 등의 정보가 포함될 수 있다. 또한, 매핑 테이블에는 컨텐츠의 종류에 따라 사용자가 취할 수 있는 동작들에 대한 정보가 포함될 수 있다. 예를 들어, 축구 게임에서 사용자가 취할 수 있는 동작들과 댄싱 게임에서 사용자가 취할 수 있는 동작들은 서로 다를 수 있다. 이에 따라, 축구 게임에 참여함에 따라 결정될 수 있는 활동 범위와 댄싱 게임에 참여함에 따라 결정될 수 있는 활동 범위가 서로 다를 수 있다. 매핑 테이블에는 컨텐츠의 종류에 따라 사용자가 취할 수 있는 동작들에 대한 정보가 포함되고, 상기 동작들 각각에 대하여 사용자의 신체 사이즈가 반영된 활동 범위의 크기가 저장될 수 있다. 따라서, 디바이스(100)는 활동 범위를 컨텐츠의 종류에 따라 다르게 결정할 수 있다.
다른 예로, 디바이스(100)는 대상체의 각 부분들의 길이 값들의 합에 기초하여 활동 범위를 결정할 수 있다. 만약, 객체가 사람을 나타내는 이미지라고 가정하면, 디바이스(100)는 사람의 팔 길이의 2배에 해당하는 길이를 활동 범위의 직경으로 결정할 수 있다.
디바이스(100)는 화면(810)에 디바이스(100)가 결정한 활동 범위를 출력할 수 있다. 이때, 화면(810)에 출력된 활동 범위는, 활동 범위가 원이라면 원의 직경이 될 수 있고, 활동 범위가 사각형이라면 사각형을 구성하는 변의 길이가 될 수도 있다. 다시 말해, 화면(810)에는 사용자가 활동 범위의 크기를 인식할 수 있는 정보(820)가 출력될 수 있다. 만약, 화면(810)에 사용자를 나타내는 객체(830)가 출력된 경우라면, 객체의 주변에 활동 범위가 이미지(840)로 표시될 수 있다.
예를 들어, 디바이스(100)는 활동 범위와 객체(830)가 나타내는 길이와의 비율을 계산한다. 예를 들어, 객체(830)에 대응하는 사람의 실제 키가 175.2 cm이고, 실제 활동 범위가 1.71 m라고 가정하면, 디바이스(100)는 사람의 키에 대한 활동 범위의 비율을 171/175.2 = 0.976로 계산한다. 그리고, 디바이스(100)는 계산된 비율과 화면(810)에 표시된 객체(830)의 길이 값을 이용하여 객체(830)의 주변에 표시될 이미지(840)의 크기를 계산한다. 예를 들어, 화면(810)에 표시된 객체(830)가 5 cm라고 가정하면, 디바이스(100)는 객체(830)의 주변에 표시될 이미지(840)의 크기를 0.976 * 5 = 4.88 cm로 계산한다. 화면(810)에는 디바이스(100)가 계산한 크기에 대응하는 이미지(840)를 표시한다. 예를 들어, 이미지(840)는 디바이스(100)가 계산한 크기를 지름으로 갖는 원이 될 수 있다.
도 8을 참조하여 상술한 바에 따르면, 디바이스(100)는 대상체의 형상 정보에 기초하여 대상체(예를 들어, 사용자)의 활동 범위를 결정한다. 한편, 디바이스(100)는 사용자로부터 입력된 설정 정보에 기초하여 대상체의 활동 범위를 결정할 수도 있다. 이때, 디바이스(100)가 획득한 형상 정보는 대상체의 활동 범위를 결정하는 데에 고려되지 않을 수도 있다.
도 9a 내지 도 9c는 일부 실시예에 따른 디바이스가 사용자로부터 입력된 설정 정보에 기초하여 대상체의 활동 범위를 결정하는 일 예를 설명하기 위한 도면들이다.
도 9a를 참조하면, 디바이스(100)의 화면(910)에는 객체(920)가 출력되어 있다. 이때, 사용자는 입력부(2910)를 통하여 활동 범위를 설정하기 위한 설정 정보를 디바이스(100)로 전송할 수 있다.
예를 들어, 사용자는 입력부(2910)를 통하여 화면(910)에 출력된 객체(920)를 따라 소정의 영역(930)을 설정할 수 있다. 이때, 사용자가 설정한 영역(930)은 객체(920)를 중심으로 하는 원이 될 수도 있고, 다각형이 될 수도 있고, 직선이 될 수도 있다. 디바이스(100)는 화면(910)에 사용자가 설정한 영역(930)을 출력할 수 있다.
도 9b를 참조하면, 디바이스(100)는 사용자가 설정한 영역(930)에 기초하여 대상체의 활동 범위를 결정할 수 있다. 예를 들어, 사용자가 설정한 영역(930)이 원이라고 가정하면, 디바이스(100)는 사용자가 설정한 원을 밑면으로 하고 사용자의 키에 소정의 비율을 곱한 길이를 높이로 하는 원기둥을 활동 범위로 결정할 수 있다. 이때, 사용자의 키에 곱해지는 비율은 디바이스(100)의 저장부(2940)에 저장되어 있을 수 있다.
디바이스(100)는 화면(910)에 디바이스(100)가 결정한 활동 범위를 출력할 수 있다. 이때, 화면(910)에 출력된 활동 범위는, 활동 범위가 원이라면 원의 직경이 될 수 있고, 활동 범위가 사각형이라면 사각형을 구성하는 변의 길이가 될 수도 있다. 다시 말해, 화면(910)에는 사용자가 활동 범위의 크기를 인식할 수 있는 정보(940)가 출력될 수 있다. 만약, 화면(910)에 객체(920)가 출력된 경우라면, 객체(920)의 주변에 활동 범위가 이미지(950)로 표시될 수 있다.
도 9c를 참조하면, 디바이스(100)는 사용자(960)가 취하는 제스쳐를 반영하여 사용자(960)의 활동 범위를 결정할 수 있다. 예를 들어, 디바이스(100)는 사용자(960)를 나타내는 객체(971)를 출력한 상태에서, 사용자(960)에게 소정의 제스쳐를 취할 것을 요청(980)할 수 있다.
디바이스(100)는 화면에 사용자(960)가 취할 제 1 제스쳐(972)를 출력하고, 카메라(320)를 통하여 촬영되는 사용자(960)의 모습(973)을 실시간으로 출력할 수 있다. 따라서, 사용자(960)는 자신의 현재 모습(973)이 제 1 제스쳐(972)와 동일한지 여부를 실시간으로 확인할 수 있다.
사용자의 제스쳐가 촬영되면, 디바이스(100)는 사용자(960)의 형상 정보(예를 들어, 사용자(960)의 키, 팔 길이, 다리 길이 등)와 사용자(960)의 제스쳐(973)를 함께 고려하여 사용자(960)의 활동 범위를 계산한다. 예를 들어, 사용자(960)의 한쪽 팔 길이가 1.5m이고, 사용자(960)의 가슴 넓이가 0.72m라고 가정하면, 디바이스(100)는 두 팔을 벌린 제스쳐(972)에 대응하는 사용자(960)의 활동 범위를 3.72m로 계산할 수 있다.
디바이스(100)는 계산된 활동 범위의 값(991)을 화면에 출력할 수 있고, 객체의 주변에 활동 범위를 이미지(974)로 출력할 수 있다.
여기에서, 사용자(960)가 취할 제스쳐는 컨텐츠의 내용에 따라 복수 개가 선택될 수 있다. 예를 들어, 컨텐츠가 댄싱 게임이라면, 디바이스(100)는 사용자(960)가 댄싱 게임을 즐기는 동안에 취할 복수의 제스쳐들 각각에 대하여 미리 활동 범위를 계산할 수 있다.
다시 말해, 제 1 제스쳐(972)에 따른 사용자(930)의 제 1 활동 범위(991)가 결정되면, 디바이스(100)는 화면에 제 2 제스쳐(975)를 출력하고, 카메라(320)를 통하여 촬영되는 사용자(960)의 모습(977)을 실시간으로 출력한다. 그리고, 디바이스(100)는 제 2 제스쳐(975)에 따른 사용자(930)의 활동 범위(992)를 계산한다. 그리고, 디바이스(100)는 객체의 주변에 활동 범위를 이미지(976)로 출력할 수 있다.
도 10a 내지 도 10b는 일부 실시예에 따른 디바이스가 대상체의 활동 범위를 결정하는 일 예를 설명하기 위한 도면들이다.
도 10a를 참조하면, 객체(1010)를 중심으로 좌우가 대칭인 활동 범위(1020)가 도시되어 있다. 만약, 대상체가 사람이라고 가정하면, 사람이 일정 위치에 서 있는 상태에서 좌우로 팔이나 다리를 뻗은 경우가 사람의 활동 범위가 될 수 있다. 따라서, 디바이스(100)는 사람의 몸통을 중심으로 하는 원 기둥을 활동 범위(1020)로 결정할 수 있다.
도 10b를 참조하면, 객체(1030)를 중심으로 좌우가 대칭이 아닌 활동 범위(1040)가 도시되어 있다. 만약, 대상체가 사람이라고 가정하면, 사람의 움직임은 대칭적으로 이루어지지 않을 수도 있다. 예를 들어, 도 10b에 도시된 바와 같이, 사람이 한 다리를 축으로 하여 다른 다리를 뻗는 방식으로 움직인다면, 몸통을 중심으로 좌우가 대칭이 아닌 방식으로 움직이는 상황이 될 수 있다.
따라서, 디바이스(100)는 대상체의 활동 범위를 대상체가 일정한 위치에서 움직임에 따라 대상체의 일 부분이 도달할 수 있는 최대 지점들의 조합으로 결정할 수 있다.
도 8 내지 도 10b를 참조하여 상술한 바에 따르면, 디바이스(100)는 대상체의 형상 정보를 획득하고, 형상 정보를 이용하여 대상체의 활동 범위를 결정할 수 있다. 또한, 디바이스(100)는 사용자의 설정에 기초하여 대상체의 활동 범위를 결정할 수도 있다. 이때, 디바이스(100)는 복수의 대상체들 각각에 대한 형상 정보를 획득하고, 각각의 대상체에 대한 활동 범위를 결정할 수도 있다.
이하, 도 11 내지 도 16b를 참조하여, 디바이스(100)가 복수의 대상체들 각각에 대한 활동 범위를 결정하는 예들을 설명한다.
도 11은 일부 실시예에 따른 디바이스가 복수의 대상체들의 형상 정보를 획득하는 일 예를 설명하기 위한 도면이다.
도 11에는 복수의 사용자들(1110, 1120)의 일 예가 도시되어 있다. 도 11에는 설명의 편의를 위하여 총 2 명의 사용자들(1110, 1120)을 도시하였으나, 이에 한정되지 않는다.
디바이스(100)는 복수의 사용자들(1110, 1120) 각각의 형상 정보를 획득한다. 디바이스(100)가 사용자들(1110, 1120) 각각의 형상 정보를 획득하는 일 예는 도 3 내지 도 4b를 참조하여 전술한 바와 같다. 예를 들어, 디바이스(100)는 카메라(320)에 의하여 촬영된 영상에 대응하는 데이터를 이용하여 사용자의 형상 정보를 획득할 수 있다. 이때, 카메라(320)는 복수의 사용자들(1110, 1120)을 모두 포함하여 단일 영상을 촬영할 수도 있고, 제 1 사용자(1110)를 포함하는 제 1 영상을 촬영한 후 제 2 사용자(1120)를 포함하는 제 2 영상을 촬영할 수도 있다.
도 12는 일부 실시예에 따른 복수의 사용자들 각각의 형상 정보 및 활동 범위가 디바이스의 화면에 출력된 일 예를 도시한 도면이다.
도 12를 참조하면, 화면(1210)에는 제 1 사용자의 형상 정보 및 활동 범위(1220) 뿐만 아니라, 제 2 사용자의 형상 정보 및 활동 범위(1230)도 출력될 수 있다. 이때, 디바이스(100)가 제 1 사용자의 활동 범위 및 제 2 사용자의 활동 범위를 결정하는 일 예는 도 8 내지 도 10을 참조하여 전술한 바와 같다. 도 12에는 사용자가 2명인 것으로 가정하여 도시하였으나, 사용자의 수에 제한이 없음은 전술한 바와 같다. 따라서, 화면(1210)에 출력되는 형상 정보 및 활동 범위는 사용자의 수에 대응하여 증가 또는 감축될 수 있다.
또한, 도 12에는 화면(1210)에 제 1 사용자의 형상 정보 및 활동 범위(1220)와 제 2 사용자의 형상 정보 및 활동 범위(1230)가 동시에 출력되는 것으로 도시되었으나, 이에 한정되지 않는다. 예를 들어, 화면(1210)에는 시간의 흐름에 따라 제 1 사용자의 형상 정보 및 활동 범위(1220)와 제 2 사용자의 형상 정보 및 활동 범위(1230)가 교대로 출력될 수도 있다.
도 13a는 일부 실시예에 따른 디바이스의 화면에 복수의 객체들이 출력된 일 예를 도시한 도면이다.
디바이스(100)는 화면(1310)에 복수의 객체들(1320, 1330)을 출력할 수 있다. 따라서, 현재 상태에서 객체들(1320, 1330) 각각에 대응하는 대상체가 서로 어느 지점에 위치해 있는지가 실시간으로 확인될 수 있다.
이때, 디바이스(100)는 대상체들 각각의 활동 범위(1340, 1350)를 객체들(1320, 1330)과 함께 표시할 수 있다. 따라서, 대상체들의 현재 위치에 기초하여 서로의 활동 범위가 겹치는지 여부가 실시간으로 확인될 수 있다.
한편, 대상체들의 활동 범위들(1340, 1350)이 서로 겹치는 경우에, 디바이스(100)는 컨텐츠를 실행하지 않을 수 있다. 예를 들어, 컨텐츠가 컴퓨터 게임이라고 가정하면, 디바이스(100)는 컴퓨터 게임을 실행하지 않을 수 있다. 이하, 도 13b를 참조하여 자세하게 설명한다.
도 13b는 일부 실시예에 따른 디바이스가 컨텐츠를 실행하지 않는 일 예를 설명하기 위한 도면이다.
도 13b에서 객체들(1320, 1330)은 컴퓨터 게임에 참여하는 사용자들을 나타내는 이미지인 것으로 설명한다. 만약, 제 1 사용자(1320)의 활동 범위(1340)와 제 2 사용자(1330)의 활동 범위(1350)가 겹치게 되면, 디바이스(100)는 컴퓨터 게임을 실행하지 않을 수 있다.
예를 들어, 디바이스(100)는 화면(1310)에 활동 범위들(1340, 1350)이 서로 겹침을 알리는 이미지(1360)를 표시하거나 사운드를 출력하고, 컴퓨터 게임을 실행하지 않을 수 있다. 제 1 사용자(1320) 또는 제 2 사용자(1330)가 움직임에 따라 활동 범위(1340)와 활동 범위(1350)가 겹쳐지지 않게 되면, 그 이후에 디바이스(100)는 컴퓨터 게임을 실행할 수 있다.
이하, 도 14a 내지 도 16b를 참조하여, 컨텐츠를 이용하는 사용자와 컨텐츠를 이용하지 않는 사람, 동물 또는 사물의 활동 범위가 결정되는 예들을 설명한다.
도 14a 내지 도 14b는 일부 실시예에 따른 디바이스가 복수의 대상체들의 형상 정보를 획득하고, 복수의 대상체들의 활동 범위를 결정하는 다른 예를 설명하기 위한 도면들이다.
도 14a에 도시된 복수의 대상체들(1410, 1420)은 각각 컨텐츠를 이용하는 사용자(1410)와 컨텐츠를 이용하지 않는 비사용자(1420)를 의미한다. 여기에서, 비사용자(1420)는 사용자(1410)와 인접한 위치에 존재할 수 있다. 예를 들어, 컨텐츠가 컴퓨터 게임이라고 가정하면, 사용자(1410)는 컴퓨터 게임에 참여하는 사람을 의미하고, 비사용자(1420)는 컴퓨터 게임에 참여하지 않는 사람을 의미한다.
디바이스(100)는 사용자(1410)의 형상 정보와 비사용자(1420)의 형상 정보를 획득하고, 사용자(1410)와 비사용자(1420) 각각의 활동 범위를 결정한다. 이때, 디바이스(100)가 카메라(320)로부터 전송된 데이터를 통하여 사용자(1410)와 비사용자(1420) 각각의 형상 정보를 획득할 수 있음은 전술한 바와 같다.
도 14b에는 디바이스(100)의 화면(1430)에 출력된 사용자(1410)와 비사용자(1420) 각각의 형상이 도시되어 있다. 이때, 디바이스(100)는 사용자(1410)와 비사용자(1420) 각각의 활동 범위(1440, 1450)를 사용자(1410)를 나타내는 객체 및 비사용자(1420)를 나타내는 객체와 함께 표시할 수 있다. 따라서, 사용자(1410)와 비사용자(1420)의 현재 위치에 기초하여 서로의 활동 범위가 겹치는지 여부가 실시간으로 확인될 수 있다.
도 15a 내지 도 15b는 일부 실시예에 따른 디바이스가 복수의 대상체들의 형상 정보를 획득하고, 복수의 대상체들의 활동 범위를 결정하는 또 다른 예를 설명하기 위한 도면들이다.
도 15a에 도시된 복수의 대상체들(1510, 1520)은 각각 컨텐츠를 이용하는 사용자(1510)와 동물(1520)를 의미한다.
디바이스(100)는 사용자(1510)와 동물(1520) 각각의 형상 정보를 획득하고, 활동 범위를 계산한다. 디바이스(100)가 카메라(320)를 이용하여 사용자(1510)와 동물(1520) 각각의 형상 정보를 획득할 수 있음은 전술한 바와 같다.
도 15b에는 디바이스(100)의 화면(1530)에 출력된 사용자(1510)와 동물(1520) 각각의 형상이 도시되어 있다. 이때, 디바이스(100)는 사용자(1510)와 동물(1520) 각각의 활동 범위(1540, 1550)를 사용자(1510)를 나타내는 객체 및 동물(1520)을 나타내는 객체와 함께 표시할 수 있다.
도 16a 내지 도 16b는 일 실시예에 따른 디바이스가 복수의 대상체들의 형상 정보를 획득하고, 복수의 대상체들의 활동 범위를 결정하는 또 다른 예를 설명하기 위한 도면이다.
도 16a에 도시된 복수의 대상체들(1610, 1620, 1630)은 각각 컨텐츠를 이용하는 사용자(1610)와 사물들(1620 또는 1630)을 의미한다. 여기에서, 사물(1620 또는 1630)은 사용자(1610)와 인접한 위치에 존재하는 가구를 포함하는 장애물이 될 수 있다.
디바이스(100)는 사용자(1610)와 장애물(1620 또는 1630) 각각의 형상 정보를 획득하고, 활동 범위를 계산한다. 디바이스(100)가 카메라(320)를 이용하여 사용자(1610)와 장애물(1620 또는 1630) 각각의 형상 정보를 획득할 수 있음은 전술한 바와 같다.
도 16b에는 디바이스(100)의 화면(1640)에 출력된 사용자(1610)와 장애물(1620 또는 1630) 각각의 형상이 도시되어 있다. 이때, 디바이스(100)는 사용자(1610)와 장애물(1620 또는 1630) 중 사용자(1610)의 활동 범위(1650)를 사용자(1610)를 나타내는 객체 및 장애물(1620 또는 1630)을 나타내는 객체와 함께 표시할 수 있다.
도 17은 일부 실시예에 따른 디바이스가 대상체의 형상 정보를 획득하고, 대상체의 활동 범위를 결정하는 또 다른 예를 나타내는 흐름도이다.
도 17에 도시된 단계들은 도 29 또는 도 31에 도시된 디바이스(100) 또는 컨텐츠를 실행하는 장치(101)에서 시계열적으로 처리되는 단계들이다. 따라서, 이하에서 생략된 내용이라 하더라도 도 1 내지 도 16을 참조하여 전술된 내용은 도 17에 도시된 단계들에도 적용됨을 알 수 있다.
또한, 도 17에 도시된 1710 단계는 도 2에 도시된 210 단계와 동일하다. 따라서, 이하에서는 1710 단계에 대한 구체적인 설명은 생략한다.
1720 단계에서, 디바이스(100)는 제 1 대상체의 이동 경로 및 제 2 대상체의 이동 경로를 예측한다.
제 1 대상체 및 제 2 대상체가 컨텐츠를 이용하는 사용자이고, 컨텐츠는 사용자의 움직임 및 이동을 요구하는 게임일 수 있다. 예를 들어, 컨텐츠가 사용자의 움직임을 요구하는 댄싱 게임 또는 격투 게임이라고 가정하면, 컨텐츠의 내용이 지시하는 바에 따라 사용자는 제자리에서 움직이거나 다른 위치로 이동해야 할 경우가 발생될 수 있다.
디바이스(100)는 컨텐츠의 내용을 분석하고, 분석된 컨텐츠의 내용에 기초하여 제 1 대상체의 이동 경로 및 제 2 대상체의 이동 경로를 예측한다. 예를 들어, 디바이스(100)는 저장부(2940)에 저장된 컨텐츠의 내용을 독출하여 컨텐츠의 내용을 분석할 수 있다. 따라서, 사용자가 어떤 종류의 컨텐츠를 이용하더라도, 디바이스는 대상체들 사이의 충돌을 방지할 수 있다.
만약, 제 1 대상체가 컨텐츠의 사용자이고, 제 2 대상체가 비사용자라면, 디바이스(100)는 사용자의 이동 경로만 예측한다. 다시 말해, 디바이스(100)는 비사용자의 이동 경로는 예측하지 않는다. 제 1 대상체가 사용자이고, 제 2 대상체가 비사용자라는 것은 컨텐츠의 실행 전에 설정될 수 있다. 따라서, 디바이스(100)는 대상체들 중에서 어느 대상체가 사용자인지를 판단할 수 있다.
1730 단계에서, 디바이스(100)는 제 1 대상체의 형상 정보 및 이동 경로에 기초하여 제 1 영역을 결정한다. 다시 말해, 디바이스(100)는 제 1 대상체의 형상 정보 및 제 1 대상체의 이동 경로에 기초하여, 제 1 대상체의 활동 범위를 결정한다.
1740 단계에서, 디바이스(100)는 제 2 대상체의 형상 정보 및 이동 경로에 기초하여 제 2 영역을 결정한다. 다시 말해, 디바이스(100)는 제 2 대상체의 형상 정보 및 제 2 대상체의 이동 경로에 기초하여, 제 2 대상체의 활동 범위를 결정한다. 만약, 제 2 대상체가 컨텐츠를 이용하지 않는 비사용자라면, 디바이스(100)는 제 2 대상체의 형상 정보 만으로 제 2 대상체의 활동 범위를 결정할 수 있다.
이하, 도 18을 참조하여, 디바이스(100)가 대상체의 형상 정보 및 이동 경로에 기초하여 대상체의 활동 범위를 결정하는 일 예를 설명한다.
도 18은 일부 실시예에 따른 디바이스가 대상체의 형상 정보 및 이동 경로에 기초하여 대상체의 활동 범위를 결정하는 일 예를 설명하기 위한 도면이다.
도 18을 참조하면, 좌측에서 우측 방향으로 이동하는 제 1 사용자(1810) 및 우측에서 좌측 방향으로 이동하는 제 2 사용자(1820)가 도시되어 있다.
디바이스(100)는 제 1 사용자(1810)의 형상 정보에 기초하여 제 1 사용자(1810)의 최초 위치에서의 활동 범위(1831)를 결정할 수 있다. 다시 말해, 디바이스(100)는 제 1 사용자(1810)가 최초 위치에 정지한 상태에서의 활동 범위(1831)를 결정할 수 있다.
한편, 디바이스(100)가 실행하는 컨텐츠의 내용에 따라 사용자가 특정 방향으로 이동해야 하는 경우가 발생될 수 있다. 또한, 컨텐츠의 내용에 따라 사용자가 이동과 동시에 특정 동작을 취해야 하는 경우가 발생될 수 있다. 만약, 제 1 사용자(1810)가 좌측에서 우측으로 이동하면서 특정 동작을 취해야 한다고 가정하면, 디바이스(100)는 제 1 사용자(1810)가 이동하는 경로에 포함된 각 위치들에서의 활동 범위(1832, 1833)를 결정한다.
그 후에, 디바이스(100)는 결정된 활동 범위들(1831, 1832, 1833)을 모두 조합하여, 제 1 사용자(1810)의 최종 활동 범위(1830)를 결정할 수 있다.
디바이스(100)는 제 2 사용자(1820)의 활동 범위도 상술한 제 1 사용자(1810)의 활동 범위를 결정하는 것과 동일한 방식으로 결정할 수 있다. 다시 말해, 디바이스(100)는 제 2 사용자(1820)의 최초 위치에서의 활동 범위(1841)를 결정하고, 제 2 사용자(1820)의 이동 경로에 포함된 각 위치들에서의 활동 범위(1842, 1843, 1844)를 결정한다. 그리고, 디바이스(100)는 결정된 활동 범위들(1841, 1842, 1843, 1844)를 조합하여, 제 2 사용자(1820)의 최종 활동 범위(1840)를 결정할 수 있다.
이때, 디바이스(100)는 사용자들(1810, 1820)이 이동하면서 취해야 하는 동작을 고려하여 활동 범위들(1831 내지 1833, 1841 내지 1844)을 결정할 수 있다. 예를 들어, 디바이스(100)는 저장부(2940)에 저장된 매핑 테이블을 이용하여 활동 범위를 계산할 수 있다. 매핑 테이블은 컨텐츠에서 요구하는 움직임의 종류에 따라 사용자들(1810, 1820)의 형상 정보를 이용하여 결정된 활동 범위에서 얼마만큼의 활동 범위가 추가로 요구되는지에 대한 정보를 포함한다. 예를 들어, 컨텐츠에서 요구하는 움직임이 사용자가 한 발을 앞으로 내딛은 상태에서 한 팔을 뻗는 움직임이라면, 매핑 테이블에는 사용자의 형상 정보를 이용하여 결정된 활동 범위에서 1.7배 만큼의 활동 범위가 추가로 요구된다는 정보가 포함될 수 있다.
도 18에서는 사용자들(1810, 1820)이 2차원적인 이동을 하는 것을 예로서 설명하였으나, 이에 한정되지 않는다. 다시 말해, 컨텐츠의 내용에 따라 사용자들(1810, 1820)이 3차원 공간에서 이동해야 하는 경우도 발생될 수 있다. 따라서, 사용자들(1810, 1820)이 3차원 공간에서 이동해야 하는 경우에도 디바이스(100)는 도 18을 참조하여 상술한 방식에 따라 사용자들(1810, 1820) 각각의 활동 범위를 결정할 수 있다.
다시 도 2를 참조하면, 240 단계에서, 디바이스(100)는 제 1 범위와 제 2 범위가 중복되는지에 기초하여 제 1 대상체와 제 2 대상체의 충돌 여부를 예측한다. 다시 말해, 디바이스(100)는 제 1 대상체의 활동 범위와 제 2 대상체의 활동 범위가 중복되는지에 기초하여 대상체들의 충돌 여부를 예측한다. 여기에서, 디바이스(100)가 충돌 여부를 예측한다고 함은, 실제로는 대상체들 간의 충돌이 발생되지 않은 상태에서, 대상체들이 충돌할 가능성을 예측하는 것을 의미한다. 예를 들어, 디바이스(100)는 제 1 대상체의 활동 범위와 제 2 대상체의 활동 범위의 차이가 소정의 값보다 작을 경우, 제 1 대상체와 제 2 대상체가 충돌하는 것으로 판단할 수 있다.
이하, 도 19를 참조하여 디바이스(100)가 제 1 대상체와 제 2 대상체의 충돌 여부를 예측하는 일 예를 설명한다.
도 19는 일부 실시예에 따른 디바이스가 제 1 대상체와 제 2 대상체의 충돌 여부를 예측하는 일 예를 설명하기 위한 흐름도이다.
도 19에 도시된 단계들은 도 29 또는 도 31에 도시된 디바이스(100) 또는 컨텐츠를 실행하는 장치(101)에서 시계열적으로 처리되는 단계들이다. 따라서, 이하에서 생략된 내용이라 하더라도 도 1을 참조하여 전술된 내용은 도 19에 도시된 단계들에도 적용됨을 알 수 있다.
1910 단계에서, 디바이스(100)는 제 1 대상체와 제 2 대상체의 최근접 거리를 계산한다. 여기에서, 최근접 거리는 제 1 대상체의 활동 범위와 제 2 대상체의 활동 범위를 고려하여 계산된다. 구체적으로, 디바이스(100)는 제 1 대상체의 활동 범위에 포함된 지점들 중 제 2 대상체와 가장 가까운 제 1 지점을 선택한다. 또한, 디바이스(100)는 제 2 대상체의 활동 범위에 포함된 지점들 중 제 1 대상체와 가장 가까운 제 2 지점을 선택한다. 그리고, 디바이스(100)는 제 1 지점에서부터 제 2 지점까지의 거리를 계산하고, 계산된 거리를 제 1 대상체와 제 2 대상체의 최근접 거리로 결정한다.
1920 단계에서, 디바이스(100)는 최근접 거리가 소정의 거리 값보다 큰지 여부를 결정한다. 여기에서, 소정의 거리 값은 저장부(2940)에 미리 저장된 값일 수도 있고, 사용자에 의하여 입력된 값일 수도 있다.
이하, 도 20a 내지 도 20c를 참조하여, 디바이스(100)가 최근접 거리와 소정의 거리 값을 비교하는 일 예를 설명한다.
도 20a 내지 도 20c는 일부 실시예에 따른 디바이스가 대상체들 사이의 최근접 거리와 소정의 거리 값을 비교하는 일 예를 설명하기 위한 도면들이다.
도 20a는 제 1 사용자의 활동 범위(2010)와 제 2 사용자의 활동 범위(2020)가 겹치는 일 예를 도시한 도면이다. 다시 말해, 제 1 사용자의 활동 범위(2010) 내에 제 2 사용자의 활동 범위(2020)가 포함되어 있다.
이때, 디바이스(100)가 계산한 제 1 사용자와 제 2 사용자 사이의 최근접 거리는 0이 된다. 다시 말해, 최근접 거리가 0이 되는 경우는 제 1 사용자의 활동 범위(2010)와 제 2 사용자의 활동 범위(2020)가 일 지점에서 만나는 경우 뿐만 아니라 제 1 사용자의 활동 범위(2010)와 제 2 사용자의 활동 범위(2020)가 겹치는 경우를 포함한다.
따라서, 제 1 사용자와 제 2 사용자 사이의 최근접 거리가 0이 된 경우, 디바이스(100)는 최근접 거리가 소정의 거리 값보다 작다고 판단한다.
도 20b는 사용자들 사이의 최근접 거리가 m의 값을 갖는 경우를 도시한 도면이다. 이때, 소정의 거리 값(k)은 m보다 큰 값으로 가정한다.
제 1 사용자의 활동 범위(2030)와 제 2 사용자의 활동 범위(2040)는 겹쳐지거나 일 지점에서 만나지 않는다. 디바이스(100)는 제 1 사용자의 활동 범위(2030)에 포함된 지점들 중 제 2 사용자와 가장 가까운 제 1 지점과 제 2 사용자의 활동 범위(2040)에 포함된 지점들 중 제 1 사용자와 가장 가까운 제 2 지점을 선택한다. 그리고, 디바이스(100)는 제 1 지점에서부터 제 2 지점까지의 거리를 최근접 거리(m)으로 결정한다.
이때, 최근접 거리(m)가 소정의 거리 값(k)보다 작으므로, 디바이스(100)는 도 19의 1930 단계를 수행한다.
도 20c는 사용자들 사이의 최근접 거리가 n의 값을 갖는 경우를 도시한 도면이다. 이때, 소정의 거리 값(k)은 n보다 작은 값으로 가정한다.
제 1 사용자의 활동 범위(2050)와 제 2 사용자의 활동 범위(2060)는 겹쳐지거나 일 지점에서 만나지 않는다. 디바이스(100)는 제 1 사용자의 활동 범위(2050)에 포함된 지점들 중 제 2 사용자와 가장 가까운 제 1 지점과 제 2 사용자의 활동 범위(2060)에 포함된 지점들 중 제 1 사용자와 가장 가까운 제 2 지점을 선택한다. 그리고, 디바이스(100)는 제 1 지점에서부터 제 2 지점까지의 거리를 최근접 거리(n)으로 결정한다.
이때, 최근접 거리(n)가 소정의 거리 값(k)보다 크므로, 디바이스(100)는 도 19의 1940 단계를 수행한다.
다시 도 19를 참조하면, 만약 최근접 거리가 소정의 거리 값보다 큰 경우, 디바이스(100)는 제 1 대상체와 제 2 대상체가 충돌하지 않을 것으로 결정한다(1940 단계). 여기에서, 제 1 대상체와 제 2 대상체가 충돌하지 않을 것이라는 것은 제 1 대상체 또는 제 2 대상체가 현재와 다른 동작을 취했을 때 서로 부딪힐 가능성이 있는 상황을 포함한다. 또한, 최근접 거리가 소정의 거리 값보다 작은 경우, 디바이스(100)는 제 1 대상체와 제 2 대상체가 충돌할 것으로 결정한다(1930 단계). 여기에서, 제 1 대상체와 제 2 대상체가 충돌할 것이라는 것은 제 1 대상체 또는 제 2 대상체가 현재와 다른 동작을 취하더라도 서로 부딪힐 가능성이 없는 상황을 포함한다.
도 21a 내지 도 21c는 일부 실시예에 따른 디바이스가 대상체들이 충돌할 것으로 결정한 경우 디바이스의 화면에 출력된 이미지의 일 예를 도시한 도면들이다.
도 21a 내지 도 21b에는 화면(2110)에 동적 객체들(예를 들어, 사용자들을 나타내는 이미지들)이 출력된 일 예가 도시되어 있고, 도 21c에는 화면에 동적 객체(예를 들어, 사용자를 나타내는 이미지) 및 정적 객체들(예를 들어, 가구를 나타내는 이미지들)가 출력된 일 예가 도시되어 있다. 도 21a 내지 도 21c를 참조하면, 대상체들이 서로 충돌할 것으로 예측된 경우, 디바이스(100)는 이를 알리는 경고 정보를 출력할 수 있다. 여기에서, 경고 정보는 디바이스(100)의 화면에서 출력되는 빛, 컬러 또는 소정의 이미지가 될 수도 있고, 디바이스(100)의 스피커에서 출력되는 소리가 될 수도 있다. 또한, 디바이스(100)가 컨텐츠를 실행하고 있는 경우라면, 디바이스(100)가 컨텐츠의 실행을 중지하는 것도 경고 정보의 일 예가 될 수 있다.
예를 들어, 디바이스(100)는 화면(2110)에 이를 나타내는 이미지(2120, 2130)를 출력할 수 있다. 일 예로서, 도 21a를 참조하면, 디바이스(100)는 사용자들이 서로 충돌할 가능성이 높음을 알리는 이미지(2120)를 출력함으로써, 일 사용자에게 다른 사용자와 떨어진 곳으로 이동할 것을 요청할 수 있다. 디바이스(100)는 제 1 사용자의 활동 범위(2140)와 제 2 사용자의 활동 범위(2150)가 겹치지는 않으나 활동 범위들(2140, 2150) 간의 최근접 거리가 소정의 거리 값(k)보다 작은 경우에 사용자들이 서로 충돌할 가능성이 높음을 알리는 이미지(2120)를 출력할 수 있다.
또 다른 예로서, 도 21b를 참조하면, 디바이스(100)는 사용자들이 서로 충돌할 가능성이 매우 높음을 알리는 이미지(2130)를 출력함과 동시에 실행되고 있는 컨텐츠를 중지시킬 수 있다. 디바이스(100)는 제 1 사용자의 활동 범위(2140)와 제 2 사용자의 활동 범위(2150)가 겹치는 경우에 이미지(2130)를 출력함과 동시에 실행되고 있는 컨텐츠를 중지시킬 수 있다.
도 21c를 참조하면, 사용자의 활동 범위(2170) 내에 의자(2180)가 위치하고 있는 경우, 디바이스(100)는 의자(2180)를 사용자의 활동 범위(2170) 밖으로 이동시킬 것을 요청하는 이미지(2160)를 출력할 수 있다.
한편, 컨텐츠의 실행이 중지된 이후에, 대상체들의 활동 범위 사이의 거리가 다시 소정의 값 이상으로 멀어지게 되면 디바이스(100)는 컨텐츠를 다시 실행한다. 이하, 도 21d를 참조하여, 디바이스(100)가 중지된 컨텐츠의 실행을 재개(resume)하는 일 예를 설명한다.
도 21d는 일부 실시예에 따른 디바이스가 중지된 컨텐츠의 실행을 재개하는 일 예를 설명하기 위한 도면이다.
컨텐츠의 실행 중에 제 1 사용자(2191)와 제 2 사용자(2192)가 충돌할 것으로 예측되면, 디바이스(100)는 컨텐츠의 실행을 중지시키고, 이를 알리는 이미지(2195)를 출력할 수 있다. 컨텐츠의 실행이 중지된 경우에도, 카메라(320)는 제 1 사용자(2191) 및 제 2 사용자(2192)를 계속 촬영한다. 따라서, 디바이스(100)는 컨텐츠의 실행이 중지된 이후에 제 1 사용자(2191) 및 제 2 사용자(2192) 사이의 거리가 멀어지거나 좁아지는 것을 확인할 수 있다.
컨텐츠의 실행이 중지된 이후에, 제 1 사용자(2191) 및/또는 제 2 사용자(2192)가 현재의 위치에서 이동함으로써, 서로 간의 거리가 멀어질 수 있다. 다시 말해, 제 1 사용자(2191)가 제 2 사용자(2192)로부터 멀어지는 방향으로 이동할 수도 있고, 제 2 사용자(2192)가 제 1 사용자(2191)로부터 멀어지는 방향으로 이동할 수도 있다. 사용자들(2191, 2192) 중 적어도 한 명이 이동함에 따라, 제 1 사용자의 활동 범위(2193)와 제 2 사용자의 활동 범위(2194) 사이의 거리가 소정의 값보다 커지는 경우, 디바이스(100)는 중지된 컨텐츠의 실행을 재개할 수 있다. 다시 말해, 사용자들(2191, 2192) 중 적어도 한 명이 이동함에 따라 사용자들(2191, 2192)이 충돌할 가능성이 없다고 판단되면, 디바이스(100)는 중지된 컨텐츠의 실행을 재개할 수 있다. 이때, 디바이스(100)는 화면에 컨텐츠의 실행이 재개됨을 알리는 이미지(2196)을 출력할 수 있다.
상술한 바에 따르면, 디바이스(100)는 대상체들 각각의 형상 정보에 기초하여 활동 범위를 결정하고, 대상체들이 충돌할지 여부를 예측할 수 있다. 따라서, 디바이스(100)는 대상체들의 충돌을 사전에 방지할 수 있다.
도 22는 일부 실시예에 따른 디바이스가 대상체들 각각의 최근접 거리와 소정의 거리 값을 비교하는 다른 예를 설명하기 위한 도면이다.
도 22에는 제 1 대상체(2210) 및 제 2 대상체(2220) 모두가 사용자인 것으로 도시되어 있으나, 이에 한정되지 않는다. 다시 말해, 제 2 대상체(2220)는 컨텐츠를 이용하지 않는 비사용자이거나, 동물, 식물 또는 가구 등의 물건에 해당될 수 있다.
도 18을 참조하여 상술한 바와 같이, 디바이스(100)는 사용자들(2210, 2220)의 이동 경로 및 사용자들(2210, 2220)이 취해야 하는 동작 중 적어도 하나에 기초하여 사용자들(2210, 2220)의 활동 범위들(2230, 2240)을 결정할 수 있다. 디바이스(100)는 사용자의 활동 범위(2230, 2240)에 기초하여 최근접 거리(k)를 계산하고, 최근접 거리(k)에 기초하여 제 1 사용자(2210) 및 제 2 사용자(2220)가 충돌할 가능성이 있는지를 예측한다. 여기에서, 디바이스(100)가 사용자들 사이에 충돌 가능성이 있는지를 예측하는 구체적인 방법은 도 19 내지 도 20c를 참조하여 전술한 바와 같다.
도 23a 내지 도 23c는 일부 실시예에 따른 디바이스가 사용자들이 충돌할 것으로 결정한 경우 디바이스의 화면에 출력된 이미지의 다른 예를 도시한 도면들이다.
사용자들이 충돌할 것으로 예측된 경우, 디바이스(100)는 이를 나타내는 이미지(2320)를 화면(2310)에 출력할 수 있다. 일 예로서, 도 23a에 도시된 바와 같이, 디바이스(100)는 사용자에게 충돌의 가능성을 알리는 이미지(2320)를 화면(2310)에 출력할 수 있다. 다른 예로서, 도 23b에 도시된 바와 같이, 디바이스(100)는 사용자에게 충돌의 가능성을 알리는 이미지(2330)를 화면(2310)에 출력함과 동시에 컨텐츠의 실행을 중지시킬 수 있다. 화면(2310)에 이미지(2320, 2330)가 출력된 이후에 사용자가 자신의 위치를 재조정하면, 디바이스(100)는 재조정된 위치에 기초하여 사용자들 사이의 충돌 가능성을 다시 예측한다. 도 23c에 도시된 바와 같이, 사용자들 사이의 충돌 가능성이 없다고 판단되면, 디바이스(100)는 화면(2310)에 이미지(2320, 2330)를 출력하지 않고, 컨텐츠를 계속하여 실행할 수 있다.
도 2 내지 도 23c를 참조하여 상술한 바에 따르면, 디바이스(100)는 대상체의 활동 범위에 기초하여 대상체들 사이의 충돌 가능성을 예측할 수 있다. 한편, 디바이스(100)는 공간 상에 안전 지역(safety zone) 또는 위험 지역(danger zone)을 설정하고, 대상체가 안전 지역을 벗어나는 경우 또는 대상체가 위험 지역에 진입하는 경우에 경고 정보를 출력할 수도 있다.
이하, 도 24를 참조하여, 디바이스(100)가 안전 지역 또는 위험 지역을 설정하는 일 예를 설명한다. 또한, 도 25를 참조하여, 대상체가 안전 지역을 벗어나는 경우 또는 대상체가 위험 지역에 진입하는 경우에 디바이스(100)가 경고 정보를 출력하는 일 예를 설명한다.
도 24는 일부 실시예에 따른 디바이스가 안전 지역 또는 위험 지역을 설정하는 일 예를 설명하기 위한 도면이다.
도 24를 참조하면, 디바이스(100)가 화면(2410)에 공간을 나타내는 이미지를 출력한 일 예가 도시되어 있다. 여기에서, 공간은 카메라(320)에 의하여 촬영되는 공간을 의미한다. 디바이스(100)는 카메라(320)로부터 전송된 데이터를 이용하여 화면(2410)에 공간을 나타내는 이미지를 출력할 수 있다. 그리고, 디바이스(100)는 공간을 안전 지역(2420)과 위험 지역(2430)으로 구분하여 설정할 수 있다.
일 예로서, 디바이스(100)는 사용자로부터 입력된 정보에 기초하여 안전 지역(2420)과 위험 지역(2430)을 설정할 수 있다. 사용자는 입력부(2910)를 통하여 화면(2410)에 출력된 이미지에서 안전 지역(2420)과 위험 지역(2430)을 구분하는 정보를 입력할 수 있다. 예를 들어, 사용자가 이미지에서 소정의 지역을 선택하고, 선택된 지역을 안전 지역(2420) 또는 위험 지역(2430)으로 설정할 수 있다. 이때, 사용자가 선택된 지역을 안전 지역(2420)으로 설정하였다면, 이미지에 나타난 공간 중 안전 지역(2420)을 제외한 나머지는 위험 지역(2430)으로 결정된다.
다른 예로서, 디바이스(100)는 사용자의 개입 없이 자동으로 안전 지역(2420)과 위험 지역(2430)을 설정할 수 있다. 예를 들어, 디바이스(100)는 물체가 존재하지 않는 빈 공간을 안전 지역(2420)으로 설정하고, 물체가 존재하는 공간을 위험 지역(2430)으로 설정할 수 있다.
디바이스(100)가 안전 지역(2420) 및 위험 지역(2430)을 설정한 이후에, 대상체가 안전 지역(2420)을 벗어나는 경우(또는 위험 지역(2430)에 진입하는 경우) 디바이스(100)는 경고 정보를 출력할 수 있다. 이하, 도 25를 참조하여 디바이스(100)가 경고 정보를 출력하는 일 예를 설명한다.
도 25는 일부 실시예에 따른 디바이스가 대상체가 안전 지역을 벗어나는 경우 또는 대상체가 위험 지역에 진입하는 경우에 경고 정보를 출력하는 일 예를 설명하기 위한 도면이다.
도 25에는 디바이스(100)의 화면(2510)에 출력된 이미지에 안전 지역(2520)과 위험 지역(2530)이 설정된 일 예가 도시되어 있다. 도 25에는 화면(2510)에 안전 지역(2520)과 위험 지역(2530)의 경계(2540)가 표시된 일 예가 도시되어 있으나, 경계(2540)의 표시는 없어도 무방하다.
객체(2550)가 나타내는 대상체가 안전 지역(2520)을 벗어나는 경우(또는 위험 지역(2530)에 진입하는 경우) 디바이스(100)는 경고 정보를 출력할 수 있다. 예를 들어, 대상체가 댄싱 게임을 수행하는 사용자라고 가정하면, 사용자가 게임을 수행하는 도중에 사용자의 신체 일부가 안전 지역(2520)을 벗어나는 경우(즉, 화면(2510)에 객체(2550)가 안전 지역(2520)을 벗어나는 것으로 출력되는 경우), 디바이스(100)는 경고 정보를 출력할 수 있다. 여기에서, 경고 정보는 디바이스(100)의 화면에서 출력되는 빛, 컬러 또는 소정의 이미지가 될 수도 있고, 디바이스(100)의 스피커에서 출력되는 소리가 될 수도 있다. 또한, 디바이스(100)가 컨텐츠를 실행하고 있는 경우라면, 디바이스(100)가 컨텐츠의 실행을 중지하는 것도 경고 정보의 일 예가 될 수 있다.
예를 들어, 사용자가 안전 지역(2520)을 벗어나는 경우, 디바이스(100)는 안전 지역(2520)으로 이동할 것을 나타내는 이미지(2560)을 표시할 수 있고, 컨텐츠의 실행을 중지할 수도 있다.
한편, 디바이스(100)는 공간 상에 존재하는 물체들 중에서 일부를 위험 물체로 지정하고, 대상체가 위험 물체에 접근하는 경우 경고 정보를 출력할 수도 있다.
이하, 도 26을 참조하여, 디바이스(100)가 위험 물체를 지정하는 일 예를 설명한다. 또한, 도 27을 참조하여, 대상체가 위험 물체에 접근하는 경우에 디바이스(100)가 경고 정보를 출력하는 일 예를 설명한다.
도 26은 일부 실시예에 따른 디바이스가 위험 물체를 지정하는 일 예를 설명하기 위한 도면이다.
도 26을 참조하면, 디바이스(100)가 화면(2610)에 공간을 나타내는 이미지를 출력한 일 예가 도시되어 있다. 여기에서, 공간은 카메라에 의하여 촬영되는 공간을 의미한다. 디바이스(100)는 카메라(320)로부터 전송된 데이터를 이용하여 화면(2610)에 공간을 나타내는 이미지를 출력할 수 있다. 그리고, 디바이스(100)는 공간에 존재하는 물체들 중에서 일부를 위험 물체(2620)로 지정할 수 있다.
일 예로서, 디바이스(100)는 사용자로부터 입력된 정보에 기초하여 위험 물체(2620)를 지정할 수 있다. 사용자는 입력부(2910)를 통하여 화면(2410)에 출력된 이미지에서 위험 물체(2620)를 지정하는 정보를 입력할 수 있다. 예를 들어, 사용자가 이미지에서 소정의 물체를 선택하고, 선택된 물체를 위험 물체(2620)로 지정할 수 있다.
다른 예로서, 디바이스(100)는 사용자의 개입 없이 자동으로 위험 물체(2620)를 지정할 수 있다. 예를 들어, 디바이스(100)는 이미지에 나타난 공간에 존재하는 모든 물체를 위험 물체(2620)로 지정할 수도 있고, 미리 설정된 기준에 부합하는 외형을 가진 물체를 위험 물체(2620)로 지정할 수도 있다. 여기에서, 기준은 외형 중에 날카로운 면이 있거나, 뾰족한 모서리가 있는 물체를 위험 물체로 간주하는 등 다양한 유형으로 설정될 수 있다.
디바이스(100)가 위험 물체(2620)를 지정한 이후에, 대상체가 위험 물체(2620)에 접근하는 경우 디바이스(100)는 경고 정보를 출력할 수 있다. 이하, 도 27을 참조하여 디바이스(100)가 경고 정보를 출력하는 일 예를 설명한다.
도 27은 일부 실시예에 따른 디바이스가 대상체가 위험 물체에 접근하는 경우 경고 정보를 출력하는 일 예를 설명하기 위한 도면이다.
도 27에는 디바이스(100)의 화면(2710)에 출력된 이미지에 위험 물체(2720)가 지정된 일 예가 도시되어 있다. 화면(2710)에 객체(2730)가 위험 물체(2720)에 접근하는 것으로 출력되는 경우(실제적으로는, 객체(2730)가 나타내는 대상체가 위험 물체(2720)에 접근하는 경우), 디바이스(100)는 경고 정보를 출력할 수 있다. 예를 들어, 아기가 위험 물체(2720)에 접근하는 경우, 디바이스(100)는 경고 정보를 출력할 수 있다. 여기에서, 경고 정보의 예는 도 25를 참조하여 상술한 바와 같다.
도 2 내지 도 27을 참조하여 상술한 바에 따르면, 디바이스(100)는 경고 정보를 자체적으로 출력할 수 있다. 그러나 이에 한정되지 않는다. 다시 말해, 경고 정보가 출력되어야 하는 경우, 디바이스(100)는 다른 디바이스에게 경고 정보 신호를 전송할 수도 있다.
도 28은 일부 실시예에 따른 디바이스가 다른 디바이스에게 경고 정보를 전송하는 일 예를 설명하기 위한 도면이다.
도 28을 참조하면, 디바이스(100)는 자체적으로 경고 정보를 출력할 수도 있고, 경고 정보를 다른 디바이스(2800)에게 전송할 수도 있다. 예를 들어, 디바이스(100)의 화면에 아기를 나타내는 객체(2810)가 위험 물체(2820)에 접근하는 것으로 출력되는 경우, 디바이스(100)는 자체적으로 경고 이미지(2830)를 출력함과 동시에, 디바이스(100)와 연결된 다른 디바이스(2800)에게 경고 정보를 전송하고, 다른 디바이스(2800)는 경고 이미지(2840)를 출력할 수 있다. 이때, 디바이스(100)와 다른 디바이스(2800)는 유선 또는 무선 통신 방식에 의하여 연결될 수 있다.
도 28에서는 경고 정보의 일 예로서 경고 이미지(2830, 2840)를 도시하였으나, 이에 한정되지 않는다. 디바이스(100) 및 다른 디바이스(2800)는 도 25를 참조하여 상술한 경고 정보의 예들을 출력할 수도 있다.
도 29는 일부 실시예에 따른 디바이스의 일 예를 나타내는 구성도이다.
도 29를 참조하면, 본 발명의 일 실시예에 따른 디바이스(100)는 입력부(2910), 제어부(2920) 및 출력부(2930)를 포함한다.
도 29에 도시된 디바이스(100)는 도 1 내지 도 28을 참조하여 전술한 복수의 대상체들 간의 충돌을 방지하는 방법을 수행하는 구성들을 포함한다. 따라서, 이하에서 생략된 내용이더라도 도 1 내지 도 28을 참조하여 전술한 내용은 도 29에 도시된 디바이스(100)에도 적용될 수 있다.
또한, 도 29에 도시된 디바이스(100)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 29에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
입력부(2910)는 카메라(320)로부터 카메라(320)가 촬영한 이미지를 수신한다. 예를 들어, 입력부(2910)는 유선 통신 인터페이스, 무선 통신 인터페이스를 포함할 수 있고, 입력부(2910)는 상술된 인터페이스들 중 적어도 하나를 통하여 카메라(320)로부터 이미지를 수신할 수 있다.
유선 통신 인터페이스는, HDMI(High Definition Multimedia Interface), DVI(Digital Visual Interface) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
무선 통신 인터페이스는, 블루투스 통신 인터페이스, BLE(Bluetooth Low Energy) 통신 인터페이스, 근거리 무선 통신 인터페이스, 와이파이(Wi-Fi) 통신 인터페이스, 지그비(Zigbee) 통신 인터페이스, 적외선(IrDA, infrared Data Association) 통신 인터페이스, WFD(Wi-Fi Direct) 통신 인터페이스, UWB(ultra wideband) 통신 인터페이스, Ant+ 통신 인터페이스 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
또한 무선 통신 인터페이스는, 이동 통신망 상에서 기지국, 외부 장치(예를 들어, 카메라(103)), 서버 중 적어도 하나와 무선 신호를 송수신할 수 있다. 여기에서, 무선 신호는, 음성 신호, 화상 통화 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
또한, 입력부(2910)는 사용자가 디바이스(100)를 제어하기 위한 데이터를 입력하는 수단을 포함한다. 예를 들어, 입력부(2910)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
제어부(2920)는 제 1 대상체의 형상 정보 및 제 2 대상체의 형상 정보를 획득한다. 일 예로서, 컨텐츠가 실행되는 경우를 가정하면, 제 1 대상체는 컨텐츠를 이용하는 사용자를 의미할 수 있다. 그리고, 제 2 대상체는 제 1 대상체와 함께 컨텐츠를 이용하는 다른 사용자 또는 컨텐츠를 이용하지 않는 비사용자를 의미할 수 있다. 또는, 제 2 대상체는 동물, 식물 또는 가구 등의 물건이 될 수 있다. 여기에서, 컨텐츠는 사용자의 움직임이 요구되는 프로그램을 의미하며, 예를 들어 사용자의 움직임에 기초하여 실행되는 댄싱 게임, 스포츠 게임 등과 같은 컴퓨터 게임이 해당될 수 있다.
형상 정보는 대상체의 형상을 나타내는 정보를 의미하며, 형상은 대상체의 모양 뿐만 아니라 길이와 체적을 모두 포함한다. 예를 들어, 대상체가 사람인 경우를 가정하면, 형상 정보는 사람의 키, 팔 길이, 다리 길이, 몸통의 두께, 팔의 두께 및 다리의 두께 등 사람의 외형을 나타내는 모든 정보를 포함한다. 만약, 대상체가 테이블인 경우를 가정하면, 형상 정보는 테이블의 높이, 폭 등 테이블의 외형을 나타내는 모든 정보를 포함한다.
제어부(2920)는 제 1 대상체의 형상 정보를 이용하여 제 1 대상체의 활동 범위를 결정하고, 제 2 대상체의 형상 정보를 이용하여 제 2 대상체의 활동 범위를 결정한다. 여기에서, 활동 범위는 대상체의 적어도 일 부분이 도달할 수 있는 지점들을 포함하는 범위를 의미한다. 일 예로서, 대상체의 활동 범위는 대상체가 소정의 위치에 정지한 상태에서 대상체의 일 부분이 도달할 수 있는 지점들을 포함하는 범위가 될 수 있다. 다른 예로서, 대상체의 활동 범위는 대상체가 소정의 경로를 따라 이동하는 상태에서 대상체의 일 부분이 도달할 수 있는 지점들을 포함하는 범위가 될 수도 있다. 또 다른 예로서, 대상체의 활동 범위는 대상체가 일정한 위치에서 움직임에 따라 대상체의 일 부분이 도달할 수 있는 지점들을 포함하는 범위가 될 수도 있다.
만약, 컨텐츠에 사용자의 이동이 요구되는 내용이 포함된 경우, 제어부(2920)는 사용자의 이동 경로에 기초하여 사용자의 활동 범위를 결정할 수 있다. 또한, 제어부(2920)는 사용자의 입력 정보에 기초하여 대상체의 활동 범위를 결정할 수도 있다.
제어부(2920)는 제 1 대상체의 활동 범위 및 제 2 대상체의 활동 범위가 중복되는지에 기초하여, 제 1 대상체와 제 2 대상체의 충돌 여부를 예측한다. 여기에서, 대상체들 간의 충돌 여부를 예측한다고 함은, 대상체들 간의 충돌이 발생되지 않은 상태에서, 대상체들이 충돌할 가능성을 예측하는 것을 의미한다. 예를 들어, 제어부(2920)는 제 1 사용자의 활동 범위와 제 2 사용자의 활동 범위의 차이가 소정의 값보다 작을 경우, 제 1 사용자와 제 2 사용자가 충돌하는 것으로 판단할 수 있다.
출력부(2930)는 디바이스(100)의 화면에 이미지를 출력하거나, 디바이스(100)에 포함된 스피커를 통하여 경고 정보를 출력한다. 예를 들어, 출력부(2930)는 대상체를 나타내는 객체를 화면에 출력할 수 있고, 화면 또는 스피커를 통하여 경고 신호를 출력할 수 있다.
또한, 입력부(2910), 제어부(2920) 및 출력부(2930) 중 일부 또는 전부는 소프트웨어 모듈에 의해 동작할 수 있으나 이에 제한되지 않는다.
또한, 입력부(2910), 제어부(2920) 및 출력부(2930)는 하나 또는 그 이상의 프로세서의 의해 동작될 수도 있다. 그러나, 이에 제한되지 않는다.
도 30은 일부 실시예에 따른 디바이스의 다른 예를 나타내는 구성도이다.
도 30에 도시된 디바이스(100)는 도 1 내지 도 28을 참조하여 전술한 복수의 대상체들 간의 충돌을 방지하는 방법을 수행하는 구성들을 포함한다. 따라서, 이하에서 생략된 내용이더라도 도 1 내지 도 28을 참조하여 전술한 내용은 도 30에 도시된 디바이스(100)에도 적용될 수 있다.
또한, 도 30에 도시된 디바이스(100)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 30에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
제어부(2920)는 저장부(2940)에 저장된 컨텐츠에 포함된 내용을 독출하고 이를 분석한다. 예를 들어, 대상체에 컨텐츠를 이용하는 사용자가 포함되고, 컨텐츠가 실행되는 상황이라고 가정하면, 제어부(2920)는 컨텐츠에 포함된 내용을 분석하여 대상체의 이동 경로에 대한 정보를 획득한다. 그리고, 제어부(2920)는 획득된 정보를 이용하여 대상체의 활동 범위를 결정한다. 또한, 제어부(2920)가 동작하는 다른 예는 도 29를 참조하여 상술한 바와 같다.
제어부(2920)는 경고 정보를 생성한다. 구체적으로, 제어부(2920)는 대상체들이 서로 충돌할 것으로 판단된 경우에 경고 정보를 생성한다. 여기에서, 경고 정보는 디바이스(100)의 화면에서 출력되는 빛, 컬러 또는 소정의 이미지가 될 수도 있고, 디바이스(100)의 스피커에서 출력되는 소리가 될 수도 있다. 또한, 디바이스(100)가 컨텐츠를 실행하고 있는 경우라면, 디바이스(100)가 컨텐츠의 실행을 중지하는 것도 경고 정보의 일 예가 될 수 있다.
저장부(2940)는 대상체의 형상 정보 및 활동 범위에 대한 데이터를 저장한다. 또한, 저장부(2940)는 제어부(2920)가 대상체의 활동 범위를 결정하는데 요구되는 매핑 테이블을 저장한다. 또한, 저장부(2940)는 디바이스(100)가 실행하는 컨텐츠의 내용을 저장한다.
도 31은 일부 실시예에 따른 컨텐츠를 실행하는 시스템의 일 예를 나타내는 구성도이다.
도 31을 참조하면, 시스템(1)은 컨텐츠를 실행하는 장치(101), 디스플레이 장치(102) 및 카메라(103)를 포함한다. 컨텐츠가 컴퓨터 게임이라고 가정하면, 장치(101)는 게임 콘솔을 의미한다.
컨텐츠를 실행하는 장치(101), 디스플레이 장치(102) 및 카메라(103)는 케이블에 의하여 연결되고, 케이블을 통하여 서로간에 데이터를 송수신(즉, 유선 통신 방식)할 수 있다. 또는, 컨텐츠를 실행하는 장치(101), 디스플레이 장치(102) 및 카메라(103)는 무선 통신 방식에 의하여 서로 간에 데이터를 송수신할 수도 있다. 이하에서는, 컨텐츠를 실행하는 장치(101)에 포함된 입력부(3110) 및 출력부(3130)만을 설명하겠으나, 입력부(3110) 및 출력부(3130)에 대응하는 구성이 카메라(103) 및 디스플레이 장치(102)에도 각각 포함될 수 있다.
카메라(103)는 대상체를 촬영하고, 촬영된 이미지를 컨텐츠를 실행하는 장치(101)로 전송한다. 여기에서, 카메라(103)가 동작하는 일 예는 도 1 내지 도 28을 참조하여 상술한 바와 같다.
컨텐츠를 실행하는 장치(101)에 포함된 입력부(3110), 제어부(3120) 및 저장부(3140)의 동작은 도 29 내지 도 30을 참조하여 상술한 바와 같다. 따라서, 이하에서는 구체적인 설명을 생략한다.
출력부(3130)는 디스플레이 장치(102)에게 대상체의 형상을 나타내는 이미지(즉, 객체) 또는 경고 정보를 전송한다. 예를 들어, 출력부(3130)는 유선 통신 인터페이스, 무선 통신 인터페이스를 포함할 수 있고, 출력부(3130)는 상술된 인터페이스들 중 적어도 하나를 통하여 디스플레이 장치(102)에 이미지 또는 경고 정보를 전송할 수 있다.
유선 통신 인터페이스는, HDMI(High Definition Multimedia Interface), DVI(Digital Visual Interface) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
무선 통신 인터페이스는, 블루투스 통신 인터페이스, BLE(Bluetooth Low Energy) 통신 인터페이스, 근거리 무선 통신 인터페이스, 와이파이(Wi-Fi) 통신 인터페이스, 지그비(Zigbee) 통신 인터페이스, 적외선(IrDA, infrared Data Association) 통신 인터페이스, WFD(Wi-Fi Direct) 통신 인터페이스, UWB(ultra wideband) 통신 인터페이스, Ant+ 통신 인터페이스 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
또한 무선 통신 인터페이스는, 이동 통신망 상에서 기지국, 외부 장치(예를 들어, 디스플레이 장치(102)), 서버 중 적어도 하나와 무선 신호를 송수신할 수 있다. 여기에서, 무선 신호는, 음성 신호, 화상 통화 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
디스플레이 장치(102)는 컨텐츠를 실행하는 장치(101)로부터 수신된 이미지 또는 경고 정보를 출력한다.
상술한 바에 따르면, 디바이스(100) 또는 컨텐츠를 실행하는 장치(101)는 대상체들 각각의 형상 정보에 기초하여 대상체가 도달할 수 있는 지점들을 포함하는 활동 범위를 결정하고, 대상체들이 충돌할지 여부를 예측할 수 있다. 따라서, 디바이스(100) 또는 컨텐츠를 실행하는 장치(101)는 대상체들의 충돌을 사전에 방지할 수 있다. 또한, 디바이스(100) 또는 컨텐츠를 실행하는 장치(101)는 대상체들 간의 충돌이 예상되는 경우 경고 정보를 생성하거나, 컨텐츠의 실행을 중지시킬 수 있다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.