KR20230175207A - 상호작용가능한 증강 및 가상 현실 경험 - Google Patents

상호작용가능한 증강 및 가상 현실 경험 Download PDF

Info

Publication number
KR20230175207A
KR20230175207A KR1020237036405A KR20237036405A KR20230175207A KR 20230175207 A KR20230175207 A KR 20230175207A KR 1020237036405 A KR1020237036405 A KR 1020237036405A KR 20237036405 A KR20237036405 A KR 20237036405A KR 20230175207 A KR20230175207 A KR 20230175207A
Authority
KR
South Korea
Prior art keywords
virtual
external environment
environment
readable storage
storage medium
Prior art date
Application number
KR1020237036405A
Other languages
English (en)
Inventor
치히로 칸노
시게루 미야모토
Original Assignee
나이앤틱, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 나이앤틱, 인크. filed Critical 나이앤틱, 인크.
Publication of KR20230175207A publication Critical patent/KR20230175207A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Abstract

클라이언트 장치는 다양한 증강 현실 및 가상 현실 이미지를 사용자에게 디스플레이할 수 있다. 예를 들어, 클라이언트 장치는 외부 환경의 이미지를 캡처하여 그 환경의 물체를 식별한다. 물체가 가상 환경 기준을 충족시키는 경우, 클라이언트 장치는 가상 환경으로 그 환경의 물체의 위치에 또는 그 근처에 윈도우를 디스플레이한다. 다른 예에서, 클라이언트 장치는 빛을 발생시킬 수 있는 조명 어셈블리를 포함한다. 사용자가 조명 어셈블리를 켜면, 환경에 디스플레이된 가상 물체들은 조명 어셈블리의 빛으로 강조된 영역으로 모이게 된다. 다른 예에서, 클라이언트 장치는 환경 중의 물체의 깊이 정보를 추정한다. 그런 다음, 클라이언트 장치는 그 깊이 정보에 기초하여 환경에 가상 물체를 디스플레이하고, 또한 외부 환경의 물체와 상호작용하는 가상 물체를 디스플레이할 수도 있다.

Description

상호작용 가능한 증강 및 가상 현실 경험
설명된 기술 요지는 일반적으로 상호작용 가능한 증강 현실(AR) 및 가상 현실(VR) 이미지를 디스플레이하는 것에 관한 것이다.
디스플레이 장치는 사용자에게 몰입형 경험을 통해 정보를 제공하는 데 사용될 수 있다. 이러한 정보는 전통적인 정지 이미지 또는 비디오를 포함할 수 있지만, 증강 현실(AR) 또는 가상 현실(VR) 이미지도 포함할 수 있다. AR과 VR은 게임, 엔지니어링, 의학, 항공을 포함한 다양한 분야에서 유용하다. 그러나 AR 경험과 VR 경험은 일반적으로 서로 분리되어 경험된다. 또한, 가상 물체(AR 물체 또는 VR 물체)와 상호작용하는 사용자의 능력은 일반적으로 몇 가지 제스처나 제어 명령으로 국한된다.
클라이언트 장치는 다양한 상호작용 가능 증강 현실(AR) 및 가상 현실(VR) 이미지를 사용자에게 디스플레이할 수 있다.
일부 실시예에서, 클라이언트 장치는 외부 환경의 이미지를 캡처하여 그 외부 환경의 현실 세계 물체를 식별한다. 물체가 가상 환경 기준을 충족시키는 경우, 클라이언트 장치는 외부 환경의 물체의 위치에서 또는 그 근처에서 가상 환경에 윈도우를 디스플레이한다. 그런 다음 클라이언트 장치는 그 윈도우를 통해 가상 환경의 부분들을 디스플레이한다. 따라서 사용자는 클라이언트 장치를 물체에 대해서 움직여서 가상 환경을 조사할 수 있다.
일부 실시예에서, 클라이언트 장치는 빛을 발생시킬 수 있는 조명 어셈블리를 포함하고, 또한 클라이언트 장치는 외부 환경에 가상 캐릭터들을 디스플레이한다. 사용자가 조명 어셈블리를 켜면, 가상 캐릭터들은 조명 어셈블리의 빛으로 강조된 외부 환경의 영역으로 모이게 된다. 따라서, 사용자는 조명 어셈블리를 켜서 클라이언트 장치를 움직임으로써 외부 환경에서 가상 캐릭터들의 움직임을 제어할 수 있다.
일부 실시예에서, 클라이언트 장치는 외부 환경의 물체들의 깊이 정보를 추정한다. 클라이언트 장치는 그 깊이 정보에 기초하여 외부 환경에 가상 물체를 디스플레이할 수 있다. 또한, 클라이언트 장치는 외부 환경의 물체들과 상호작용하는 가상 물체를 디스플레이할 수 있다. 따라서, 가상 물체가 사용자에게 더 사실적으로 혹은 실물과 똑같게 보일 수 있다.
도 1은 하나 이상의 실시예에 따른 네트워크화된 컴퓨팅 환경을 예시한다.
도 2는 하나 이상의 실시예에 따른 것으로, 현실 세계와 평행한 지리를 갖는 가상 세계의 표현을 도시한다.
도 3은 하나 이상의 실시예에 따른 것으로, 평행 현실 게임의 예시적인 게임 인터페이스를 도시한다.
도 4a 내지 도 4d는 일부 실시예에 따른 것으로, 가상 환경에 윈도우를 디스플레이하는 것을 예시하는 일련의 예시 이미지들이다.
도 5a 및 도 5b는 일부 실시예에 따른 것으로, 가상 물체들의 모음을 예시하는 일련의 이미지들이다.
도 6은 일 실시예에 따른 것으로, 외부 환경에 두 개의 가상 캐릭터(605)의 이미지 데이터를 디스플레이하는 클라이언트 장치(110)를 도시한다.
도 7은 일 실시예에 따른 것으로, 가상 환경에 윈도우를 디스플레이하는 일반적인 프로세스를 설명하는 흐름도이다.
도 8은 일 실시예에 따른 것으로, 외부 환경에서 가상 물체를 움직이는 일반적인 프로세스를 설명하는 흐름도이다.
도 9는 일 실시예에 따른 것으로, 외부 환경에 가상 물체를 디스플레이하는 일반적인 프로세스를 설명하는 흐름도이다.
도 10은 하나 이상의 실시예에 따른 것으로, 횡단 가능 공간 모델을 훈련하거나 적용하는 데 사용하기에 적합한 예시적인 컴퓨터 시스템을 예시한다.
도면과 다음의 설명은 특정 실시예들을 단지 예시로 설명한다. 당업자는 구조 및 방법의 대안적인 실시예가 설명된 원리로부터 벗어나지 않고 채용될 수 있다는 것을 다음의 설명으로부터 쉽게 인식할 것이다. 이제부터는 여러 실시예들을 참조할 것인데, 그 실시예들의 예는 첨부 도면에 예시되어 있다.
예시적인 위치 기반 평행 현실 게임 시스템
현실 세계에서의 플레이어의 움직임 및 행동이 가상 세계에서의 행동에 영향을 미치고 그 반대로도 영향을 미치도록 현실 세계 지리의 적어도 일부와 평행한 가상 세계 지리의 증강 현실(AR) 콘텐츠를 포함하는 평행 현실 게임의 맥락에서 다양한 실시예가 설명된다. 당업자는 본원에 제공된 개시내용을 이용함으로써, 설명된 기술 요지는 AR 및 가상 현실 VR 이미지가 디스플레이되는 다른 상황에도 적용 가능하다는 것을 이해하게 될 것이다. 또한, 당업자는 본원에 제공된 개시내용을 이용함으로써, 본 개시내용에 비추어 수많은 게임 인터페이스 구성들 및 기본 기능들이 명백해질 것임을 이해할 것이다. 본 개시내용은 임의의 하나의 특정 구성으로 제한되게 하려는 것이 아니다.
또한, 컴퓨터 기반 시스템의 고유한 유연성은 시스템의 구성요소들 중에서의 그리고 그들 사이에서의 작업 및 기능의 매우 다양한 구성, 조합, 및 분할이 이루어질 수 있게 한다. 예를 들어, 본 개시내용의 양태들에 따른 시스템 및 방법은 단일 컴퓨팅 장치를 사용하여 또는 (예를 들어, 컴퓨터 네트워크에 연결된) 다수의 컴퓨팅 장치들에 걸쳐 구현될 수 있다.
도 1은 하나 이상의 실시예에 따른 네트워크화된 컴퓨팅 환경(100)을 예시한다. 네트워크화된 컴퓨팅 환경(100)은 현실 세계와 평행한 지리를 갖는 가상 세계에서의 플레이어들의 상호작용을 제공한다. 특히, 현실 세계의 지리적 영역은 가상 세계의 대응하는 영역과 직접 관련지어지거나 매핑될 수 있다. 플레이어는 현실 세계의 다양한 지리적 위치로 이동함으로써 가상 세계에서 돌아다닐 수 있다. 예를 들어, 현실 세계에서의 플레이어의 위치를 추적하여서, 가상 세계에서의 플레이어의 위치를 업데이트하는 데 사용할 수 있다. 일반적으로, 현실 세계에서의 플레이어의 위치는 플레이어와 가상 세계의 상호작용이 이루어지게 되는 클라이언트 장치(110)의 위치를 찾아서 그와 동일한(또는 대략 동일한) 위치에 플레이어가 있다고 가정함으로써 결정된다. 예를 들어, 다양한 실시예에서, 현실 세계에서의 플레이어의 위치가 가상 세계에서의 가상 요소의 가상 위치에 대응하는 현실 세계 위치의 임계 거리(예를 들어, 10미터, 20미터 등) 내에 있는 경우, 플레이어는 가상 요소와 상호작용할 수 있다. 편의상, 이러한 방식으로 가상 요소와 상호작용하기에 충분하게 가상 요소에 가까운 플레이어는 가상 요소에 대응하는 현실 세계 위치에 있다는 것을 의미한다. 또한, 다양한 실시예가 "플레이어의 위치"를 참조하여 설명되지만, 당업자는 이러한 참조가 플레이어의 클라이언트 장치(110)의 위치를 지칭할 수 있다는 것을 이해할 것이다.
이제 도 2를 참조한다. 도 2는 일 실시예에 따른 것으로, 평행 현실 게임의 플레이어들을 위한 게임 보드 역할을 할 수 있는 현실 세계(200)와 평행한 가상 세계(210)의 개념도를 도시한다. 예시된 바와 같이, 가상 세계(210)는 현실 세계(200)의 지리와 평행한 지리를 포함할 수 있다. 특히, 현실 세계(200)의 지리적 영역 또는 공간을 정의하는 좌표 범위는 가상 세계(210)의 가상 공간을 정의하는 대응하는 좌표 범위에 매핑된다. 현실 세계(200)의 좌표 범위는 마을, 이웃, 도시, 캠퍼스, 현장, 국가, 대륙, 전체 지구, 또는 기타 지리적 영역과 연관될 수 있다. 지리 좌표 범위 내의 각 지리 좌표는 가상 세계의 가상 공간에서의 대응하는 좌표와 매핑된다.
가상 세계(210)에서의 플레이어의 위치는 현실 세계(200)에서의 플레이어의 위치에 대응한다. 예를 들어, 현실 세계(200)의 위치(212)에 위치한 플레이어 A는 가상 세계(210)의 대응하는 위치(222)를 갖는다. 마찬가지로, 현실 세계의 위치(214)에 위치한 플레이어 B는 가상 세계의 대응하는 위치(224)를 갖는다. 플레이어가 현실 세계의 지리적 좌표 범위 내에서 돌아다님에 따라, 그 플레이어는 가상 세계(210)의 가상 공간을 정의하는 좌표 범위 내에서 돌아다니기도 한다. 특히, 플레이어가 휴대하는 모바일 컴퓨팅 장치와 연관된 위치 확인 시스템(예를 들어, GPS 시스템)은 플레이어가 현실 세계에서 지리적 좌표 범위를 탐색할 때 플레이어의 위치를 추적하는 데 사용될 수 있다. 현실 세계(200)에서의 플레이어의 위치와 연관된 데이터는 가상 세계(210)에서 가상 공간을 정의하는 대응하는 좌표 범위에서 플레이어의 위치를 업데이트하는 데 사용된다. 이러한 방식으로, 플레이어는 현실 세계(200)의 특정 개별 위치들에서의 위치 정보를 검사하거나 주기적으로 업데이트할 필요 없이 현실 세계(200)의 대응하는 지리 좌표 범위 사이에서 단순히 이동함으로써, 가상 세계(210)의 가상 공간을 정의하는 좌표 범위에서 연속 트랙을 따라 탐색할 수 있다.
위치 기반 게임은 플레이어에게 가상 세계의 다양한 가상 위치들에 흩어져 있는 다양한 가상 요소들 또는 가상 물체들로 이동하거나 그들과 상호작용하도록 요구하는 복수의 게임 목표를 포함할 수 있다. 본원에 설명된 바와 같이, 가상 물체는 클라이언트 장치(110)에 의해 디스플레이되는 AR 또는 VR 물체일 수 있다. 가상 물체는 활동성 물체와 비활동성 물체를 포함한다. 활동성 물체는 가상 캐릭터로 지칭될 수 있다. 가상 캐릭터는 비플레이어 캐릭터(NPC)와 같은 게임의 캐릭터를 나타낼 수 있다. 플레이어는 현실 세계의 가상 요소나 물체의 대응하는 위치로 이동함으로써 이러한 가상 위치로 이동할 수 있다. 예를 들어, 위치 확인 시스템은 플레이어가 계속해서 현실 세계를 탐색함에 따라 플레이어가 계속해서 평행 가상 세계도 탐색하도록 플레이어의 위치를 계속해서 추적할 수 있다. 그런 다음, 플레이어는 특정 위치에서 다양한 가상 요소들 또는 물체들과 상호작용하여 하나 이상의 게임 목표를 달성하거나 수행할 수 있다.
예를 들어, 게임 목표에는 플레이어가 가상 세계(210)의 다양한 가상 위치들에 위치한 가상 요소들(230)과 상호작용하는 것이 있다. 이러한 가상 요소들(230)은 현실 세계(200)의 랜드마크들, 지리적 위치들, 또는 물체들(240)에 연결될 수 있다. 현실 세계의 랜드마크 또는 물체(240)는 예술 작품, 기념물, 건물, 영업장, 도서관, 박물관, 또는 기타 적합한 현실 세계의 랜드마크 또는 물체일 수 있다. 상호작용에는 캡처, 소유권 주장, 가상 아이템 사용, 어떤 가상 통화 지출 등이 포함된다. 플레이어는 이러한 가상 요소들(230)을 캡처하기 위해, 현실 세계의 가상 요소들(230)에 연결된 랜드마크 또는 지리적 위치(240)로 이동하여 가상 세계(210)의 가상 요소들(230)과 상호작용한다. 예를 들어, 도 2의 플레이어 A는 특정 랜드마크(240)와 연결된 가상 요소(230)와 상호작용하거나 이를 캡처하기 위해 현실 세계(200)의 랜드마크(240)로 이동해야 할 수도 있다. 가상 요소(230)와의 상호작용에는, 가상 요소(230)와 연관된 랜드마크 또는 물체(240)에 대한 기타 정보를 사진을 찍거나 확인하거나, 획득하거나, 또는 캡처하는 것과 같은, 현실 세계에서의 동작이 요구될 수 있다. 다른 실시예에서, 가상 요소를 캡처하기 위한 다른 또는 추가적인 기구가 이용 가능할 수 있다. 예를 들어, 어떤 게임 아이템은 플레이어가 가상 요소와 원격으로(즉, 가상 요소에 대응하는 위치가 아닌 현실 세계 위치에서) 상호작용할 수 있게 해줄 수 있다.
게임 목표에는 플레이어가 위치 기반 게임에서 수집한 하나 이상의 가상 아이템을 사용하는 것이 요구될 수 있다. 예를 들어, 플레이어는 게임 목표를 완료하는 데 유용할 수 있는 가상 아이템(예를 들어, 무기, 산물, 파워 업, 또는 기타 아이템)을 찾으려고 가상 세계(210)를 이동할 수 있다. 이러한 가상 아이템은, 현실 세계(200)의 여러 위치로 이동하거나 가상 세계(210) 또는 현실 세계(200)에서 다양한 동작들을 완료함으로써, 발견되거나 수집될 수 있다. 도 2에 도시된 예에서, 플레이어는 가상 아이템(232)을 사용하여 하나 이상의 가상 요소(230)를 캡처한다. 특히, 플레이어는, 가상 요소(230)에 근접하거나 그 가상 요소 내에 있는 가상 세계(210)의 위치들에, 가상 아이템들(232)을 전개시킬 수 있다. 하나 이상의 가상 아이템(232)을 이러한 방식으로 전개시키게 되면 특정 플레이어 또는 특정 플레이어의 팀/진영을 위한 가상 요소(230)가 캡처될 수 있다.
한 특정 구현에서, 플레이어는 평행 현실 게임의 일부로서 가상 에너지를 모아야 할 수도 있다. 도 2에 도시된 바와 같이, 가상 에너지(250)는 가상 세계(210)의 다양한 위치들에 분산될 수 있다. 플레이어는 실제 세계(200)에서 가상 에너지(250)의 대응하는 위치로 이동함으로써 가상 에너지(250)를 모을 수 있다. 가상 에너지(250)는 가상 아이템에 파워를 공급하거나 게임에서 다양한 게임 목표를 수행하는 데 사용될 수 있다. 가상 에너지(250)를 모두 잃은 플레이어는 게임에서 연결이 끊어질 수 있다.
본 개시내용의 양태들에 따르면, 평행 현실 게임은 게임의 모든 참가자가 동일한 가상 세계를 공유하는 대규모 다중 플레이어 위치 기반 게임일 수 있다. 플레이어들은 별도의 팀이나 진영으로 나누어질 수 있으며, 함께 협력하여, 예컨대 가상 요소의 소유권을 획득하거나 주장하는 것과 같은, 하나 이상의 게임 목표를 달성할 수 있다. 이러한 방식으로, 평행 현실 게임은, 본질적으로, 게임 내에서 플레이어들 간의 협력을 장려하는 소셜 게임이 될 수 있다. 평행 현실 게임 중에 상대 팀의 플레이어들은 서로 대결할 수 있다(또는 때로는 상호 목표를 달성하기 위해 협력할 수 있다). 플레이어는 가상 아이템을 사용하여 상대 팀의 플레이어들을 공격하거나 플레이어들의 진행을 방해할 수 있다. 일부 경우에서는, 플레이어들에게 평행 현실 게임에서의 협동 또는 상호작용 이벤트를 위해 현실 세계 위치에 모이라고 권해진다. 이러한 경우, 게임 서버는 플레이어들이 실제로 물리적으로 존재하며 스푸핑이 아니라는 것을 보장하려고 한다.
평행 현실 게임은 평행 현실 게임 내에서 게임 플레이를 강화하고 장려하는 다양한 기능들을 가질 수 있다. 예를 들어, 플레이어들은 게임 전반에 걸쳐 사용할 수 있는(예를 들어, 게임 아이템을 구매하는, 다른 아이템을 채우는, 아이템 제작하는 등) 가상 통화 또는 다른 가상 보상(예를 들어, 가상 토큰, 가상 포인트, 가상 재료 자원 등)을 축적할 수 있다. 플레이어들은 하나 이상의 게임 목표를 완료하고 게임 내에서 경험을 얻어감에 따라 다양한 레벨을 통해 발전할 수 있다. 일부 실시예에서, 플레이어들은 게임에 제공된 하나 이상의 통신 인터페이스를 통해 서로 통신할 수 있다. 플레이어들은 또한, 게임 내에서 게임 목표를 완료하는 데 사용할 수 있는 향상된 "파워" 또는 가상 아이템을 얻을 수 있다. 당업자는 본원에 제공된 개시내용을 이용하여, 본 개시내용의 범위를 벗어나지 않고 평행 현실 게임에 다양한 다른 게임 기능들을 포함시킬 수 있다는 것을 이해해야 한다.
도 1을 참조하면, 네트워크화된 컴퓨팅 환경(100)은 클라이언트-서버 아키텍처를 사용하는데, 여기서 게임 서버(120)는 클라이언트 장치(110)에서 플레이어에게 평행 현실 게임을 제공하기 위해 네트워크(105)를 통해 클라이언트 장치(110)와 통신한다. 네트워크화된 컴퓨팅 환경(100)은 또한 스폰서/광고주 시스템 또는 영업 시스템과 같은 기타 외부 시스템을 포함할 수 있다. 도 1에는 단 하나의 클라이언트 장치(110)가 도시되어 있지만, 임의의 수의 클라이언트 장치(110) 또는 기타 외부 시스템이 네트워크(105)를 통해 게임 서버(120)에 연결될 수 있다. 또한, 네트워크화된 컴퓨팅 환경(100)은 상이하거나 추가적인 요소들을 포함할 수 있고, 클라이언트 장치(110)와 서버(120) 사이에 아래에 설명되는 것과는 다른 방식으로 기능이 분배될 수 있다.
클라이언트 장치(110)는 플레이어가 게임 서버(120)와 인터페이스하기 위해 사용할 수 있는 임의의 휴대용 컴퓨팅 장치일 수 있다. 예를 들어, 클라이언트 장치(110)는 무선 기기, 개인 정보 단말기(PDA), 휴대용 게임기, 휴대폰, 스마트폰, 태블릿, 내비게이션 시스템, 휴대용 GPS 시스템, 웨어러블 컴퓨팅 장치, 하나 이상의 프로세서를 갖춘 디스플레이, 또는 기타 유사한 기기일 수 있다. 다른 경우에서, 클라이언트 장치(110)는 데스크톱 또는 랩톱 컴퓨터와 같은 기존의 컴퓨터 시스템을 포함한다. 또한, 클라이언트 장치(110)는 컴퓨팅 장치를 갖춘 차량일 수 있다. 간단히 말해서, 클라이언트 장치(110)는 플레이어가 게임 서버(120)와 상호작용할 수 있게 할 수 있는 임의의 컴퓨터 장치 또는 시스템일 수 있다. 컴퓨팅 장치로서, 클라이언트 장치(110)는 하나 이상의 프로세서 및 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 컴퓨터 판독 가능 저장 매체는 프로세서에게 동작을 수행하게 하는 명령어들을 저장할 수 있다. 클라이언트 장치(110)는 스마트폰이나 태블릿과 같은, 플레이어가 쉽게 휴대하거나 또는 이와 다른 방식으로 운반할 수 있는 휴대용 컴퓨팅 장치인 것이 바람직하다.
클라이언트 장치(110)는 게임 서버(120)에 물리적 환경에 대한 감지 데이터를 제공하는 게임 서버(120)와 통신한다. 클라이언트 장치(110)는 클라이언트 장치(110)가 있는 물리적 환경에서 장면의 2차원 이미지 데이터를 캡처하는 카메라 어셈블리(125)를 포함한다. 도 1에 도시된 실시예에서, 각각의 클라이언트 장치(110)는, 예컨대 게임 모듈(135), 위치 확인 모듈(140), 및 조명 어셈블리(143)와 같은, 추가 소프트웨어 구성요소들을 포함한다. 클라이언트 장치(110)는 플레이어로부터 정보를 수신하거나 플레이어에게 정보를 제공하기 위한 다양한 기타 입/출력 장치를 포함할 수 있다. 예시적인 입/출력 장치는 디스플레이 스크린, 터치스크린, 터치패드, 데이터 입력 키, 스피커, 음성 인식에 적합한 마이크를 포함한다. 클라이언트 장치(110)는 또한, 움직임 센서, 가속도계, 자이로스코프, 기타 관성 측정 장치(IMU), 기압계, 위치 확인 시스템, 온도계, 광 센서 등을 포함하지만 이에 국한되지 않는, 클라이언트 장치(110)로부터의 데이터를 기록하기 위한 기타 다양한 센서를 포함할 수 있다. 클라이언트 장치(110)는 네트워크(105)를 통한 통신을 제공하기 위한 네트워크 인터페이스를 더 포함할 수 있다. 네트워크 인터페이스는, 예를 들어 송신기, 수신기, 포트, 컨트롤러, 안테나, 또는 기타 적합한 구성요소를 포함하여, 하나 이상의 네트워크와 인터페이스하기 위한 임의의 적합한 구성요소들을 포함할 수 있다.
카메라 어셈블리(125)는 클라이언트 장치(110)가 위치하는 환경의 장면의 이미지 데이터를 캡처한다. 카메라 어셈블리(125)는 다양한 캡처 속도에서 다양한 색상 캡처 범위를 갖는 다양한 가변 포토 센서를 활용할 수 있다. 카메라 어셈블리(125)는 광각 렌즈 또는 망원 렌즈를 포함할 수 있다. 카메라 어셈블리(125)는 단일 이미지 또는 비디오를 이미지 데이터로 캡처하도록 구성될 수 있다. 카메라 어셈블리(125)는 이미지 데이터를 캡처하고, 그 이미지 데이터를 클라이언트 장치(110)의 컴퓨팅 장치와 공유한다. 이미지 데이터에는 감지 데이터(예를 들어, 온도, 환경 밝기) 또는 캡처 데이터(예를 들어, 노출, 체온, 셔터 속도, 초점 거리, 캡처 시간 등)를 포함하여 이미지 데이터의 기타 세부 사항을 묘사하는 메타데이터가 부가될 수 있다. 카메라 어셈블리(125)는 이미지 데이터를 캡처할 수 있는 하나 이상의 카메라를 포함할 수 있다. 한 예에서, 카메라 어셈블리(125)는 하나의 카메라를 포함하고, 단안 이미지 데이터를 캡처하도록 구성된다. 다른 예에서, 카메라 어셈블리(125)는 두 개의 카메라를 포함하고, 스테레오 이미지 데이터를 캡처하도록 구성된다. 다양한 다른 구현예에서, 카메라 어셈블리(125)는 이미지 데이터를 캡처하도록 각각 구성된 다수의 카메라를 포함한다.
게임 모듈(135)은 플레이어에게 평행 현실 게임에 참여할 수 있도록 하는 인터페이스를 제공한다. 게임 서버(120)는 게임 서버(120)로부터 원격 위치에 있는 플레이어들에게 게임의 로컬 버전들을 제공하기 위해 게임 데이터를 네트워크(105)를 통해 클라이언트 장치(110)로 전송하여 클라이언트 장치(110)에 있는 게임 모듈(135)에 의해 사용되도록 한다. 게임 서버(120)는 네트워크(105)를 통한 통신을 제공하기 위한 네트워크 인터페이스를 포함할 수 있다. 네트워크 인터페이스는, 예를 들어 송신기, 수신기, 포트, 컨트롤러, 안테나, 또는 기타 적합한 구성요소를 포함하여, 하나 이상의 네트워크와 인터페이스하기 위한 임의의 적합한 구성요소들을 포함할 수 있다.
클라이언트 장치(110)에 의해 실행되는 게임 모듈(135)은 플레이어와 평행 현실 게임 사이에 인터페이스를 제공한다. 게임 모듈(135)은 게임과 연관된 가상 세계를 디스플레이하고(예를 들어, 가상 세계의 이미지를 렌더링하고) 사용자에게 가상 세계에서 상호작용할 수 있게 해서 다양한 게임 목표를 수행하도록 해주는 사용자 인터페이스를 클라이언트 장치(110)와 연관된 디스플레이 장치에 제공할 수 있다. 일부 다른 실시예에서, 게임 모듈(135)은 평행 현실 게임으로부터 가상 요소들 또는 물체들로 증강된 현실 세계로부터의 (예를 들어, 카메라 어셈블리(125)에 의해 캡처된) 이미지 데이터를 제공한다. 이러한 실시예에서, 게임 모듈(135)은 클라이언트 장치의 다른 구성요소들로부터 수신된 다른 정보에 따라 가상 콘텐츠를 생성하거나 가상 콘텐츠를 조정할 수 있다. 예를 들어, 게임 모듈(135)은 이미지 데이터 내 캡처된 장면의 깊이 정보에 따라 사용자 인터페이스에 디스플레이될 가상 물체를 조정할 수 있다.
게임 모듈(135)은 또한, 플레이어에게 디스플레이 화면을 볼 필요 없이 게임과 상호작용할 수 있게 해주는 다양한 다른 출력을 제어할 수 있다. 예를 들어, 게임 모듈(135)은 플레이어에게 디스플레이 화면을 보지 않고도 게임을 플레이할 수 있게 해주는 다양한 오디오, 진동, 또는 기타 알림을 제어할 수 있다. 게임 모듈(135)은 게임 서버(120)로부터 수신된 게임 데이터에 액세스하여 플레이어에게 게임의 정확한 표현을 제공할 수 있다. 게임 모듈(135)은 플레이어 입력을 수신 및 처리하고, 네트워크(105)를 통해 게임 서버(120)에 업데이트를 제공할 수 있다. 게임 모듈(135)은 또한, 클라이언트 장치(110)에 의해 디스플레이될 게임 콘텐츠를 생성하거나 조정할 수 있다. 예를 들어, 게임 모듈(135)은 장면의 횡단 가능한 공간을 묘사하는 정보(예를 들어, 횡단 가능 공간 추정 모델(130)에 의해 결정된 것)에 기초하여 가상 요소를 생성할 수 있다. 예를 들어, 게임 모듈(135)은 횡단 가능한 공간에서의 장면 내 가상 요소에 대한 경로를 결정할 수 있다.
위치 확인 모듈(140)은 클라이언트 장치(110)의 위치를 모니터링하기 위한 임의의 디바이스 또는 회로일 수 있다. 예를 들어, 위치 확인 모듈(140)은 위성 항법 위치 확인 시스템(예를 들어, GPS 시스템, 갈릴레오 위치 확인 시스템, 지구 항법 위성 시스템(GLONASS), 베이더우 위성 항법 및 위치 확인 시스템), 관성 항법 시스템, 셀룰러 타워 또는 Wi-Fi 핫스팟에 대한 삼각 측량이나 근접성을 사용하여 IP 주소를 기반으로 한 추측 항법 시스템, 또는 위치를 결정하기 위한 기타 적합한 기술을 사용하여 실제 또는 상대 위치를 결정할 수 있다. 위치 확인 모듈(140)은 클라이언트 장치(110)를 정확하게 위치 확인하는 데 도움을 줄 수 있는 다양한 기타 센서를 더 포함할 수 있다.
플레이어가 현실 세계에서 클라이언트 장치(110)를 가지고 돌아다닐 때, 위치 확인 모듈(140)이 플레이어의 위치를 추적하여 플레이어 위치 정보를 게임 모듈(135)에 제공한다. 게임 모듈(135)은 현실 세계에서의 플레이어의 실제 위치에 기초하여 게임과 연관된 가상 세계에서의 플레이어 위치를 업데이트한다. 따라서, 플레이어는 현실 세계에서 클라이언트 장치(110)를 휴대하거나 운반하는 것만으로도 가상 세계와 상호작용할 수 있다. 특히, 가상 세계에서의 플레이어의 위치는 현실 세계에서의 플레이어의 위치에 대응할 수 있다. 게임 모듈(135)은 플레이어 위치 정보를 네트워크(105)를 통해 게임 서버(120)에 제공할 수 있다. 이에 응하여, 게임 서버(120)는 부정행위자가 클라이언트 장치(110) 위치를 스푸핑하는 것을 방지하기 위해 클라이언트 장치(110) 위치를 확인하는 다양한 기술을 규정할 수 있다. 플레이어와 연관된 위치 정보는 플레이어의 위치 정보에 접근되며 그 위치 정보가 게임의 맥락에서 어떻게 활용되는지(예를 들어, 가상 세계에서 플레이어 위치를 업데이트하기 위함이라는 것)를 플레이어에게 통지한 후 허가를 받은 경우에만 활용된다는 점을 이해해야 한다. 또한, 플레이어와 연관된 모든 위치 정보는 플레이어의 개인정보를 보호하는 방식으로 저장 및 유지된다.
게임 서버(120)는 임의의 컴퓨팅 장치일 수 있으며, 하나 이상의 프로세서와 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 컴퓨터 판독 가능 저장 매체는 프로세서에게 동작을 수행하게 하는 명령어들을 저장할 수 있다. 게임 서버(120)는 게임 데이터베이스(115)를 포함하거나 이와 통신할 수 있다. 게임 데이터베이스(115)는 네트워크(105)를 통해 클라이언트 장치(들)(110)에 공급되거나 제공될 평행 현실 게임에 사용되는 게임 데이터를 저장한다.
게임 데이터베이스(115)에 저장된 게임 데이터는 다음을 포함할 수 있다: (1) 평행 현실 게임의 가상 세계와 연관된 데이터(예를 들어, 디스플레이 장치에서 가상 세계를 렌더링하는 데 사용되는 이미지 데이터, 가상 세계 내의 위치들의 지리적 좌표들 등); (2) 평행 현실 게임의 플레이어와 연관된 데이터(예를 들어, 플레이어 정보, 플레이어 경험 수준, 플레이어 통화, 가상 세계/현실 세계에서의 현재 플레이어 위치, 플레이어 에너지 수준, 플레이어 선호도, 팀 정보, 진영 정보 등); (3) 게임 목표와 연관된 데이터(예를 들어, 현재 게임 목표, 게임 목표 상태, 과거 게임 목표, 미래 게임 목표, 원하는 게임 목표 등과 연관된 데이터); (4) 가상 세계의 가상 요소들과 연관된 데이터(예를 들어, 가상 요소들의 위치들, 가상 요소들의 유형, 가상 요소들과 연관된 게임 목표, 가상 요소들에 대한 대응하는 실제 세계 위치 정보, 가상 요소들의 거동, 가상 요소들의 관련성 등); (5) 가상 세계 요소들에 연결된 현실 세계 물체들, 랜드마크들, 위치들과 연관된 데이터(예를 들어, 현실 세계 물체들/랜드마크들의 위치, 현실 세계 물체들/랜드마크들에 대한 설명, 현실 세계 물체에 연결된 가상 요소들의 관련성 등); (6) 게임 상태(예를 들어, 현재 플레이어 수, 게임 목표의 현재 상태, 플레이어 리더보드 등); (7) 플레이어 행위/입력과 관련된 데이터(예를 들어, 현재 플레이어 위치, 과거 플레이어 위치, 플레이어 움직임, 플레이어 입력, 플레이어 질의, 플레이어 통신 등); 및 (8) 평행 현실 게임을 구현하는 동안 사용되거나 관련되거나 획득된 기타 데이터. 게임 데이터베이스(115)에 저장되는 게임 데이터는 시스템 관리자에 의해, 또는 네트워크(105)를 통해 클라이언트 장치(110)로부터와 같이 시스템(100)의 사용자들/플레이어들로부터 수신된 데이터에 의해, 오프라인으로 또는 실시간으로 채워질 수 있다.
게임 서버(120)는 클라이언트 장치(110)로부터 (예를 들어, 원격 프로시저 호출(RPC)을 통해) 게임 데이터에 대한 요청을 수신하고 네트워크(105)를 통해 해당 요청에 대해 응답하도록 구성될 수 있다. 예를 들어, 게임 서버(120)는 게임 데이터를 하나 이상의 데이터 파일로 인코딩하여 그 데이터 파일을 클라이언트 장치(110)에 제공할 수 있다. 또한, 게임 서버(120)는 클라이언트 장치(110)로부터 네트워크(105)를 통해 게임 데이터(예를 들어, 플레이어 위치, 플레이어 동작, 플레이어 입력 등)를 수신하도록 구성될 수 있다. 예를 들어, 클라이언트 장치(110)는, 게임 서버(120)가 게임에 대해 변경된 모든 조건을 반영하기 위해 게임 데이터베이스(115)의 게임 데이터를 업데이트하는 데 사용하는 플레이어 입력 및 기타 업데이트를, 게임 서버(120)에 주기적으로 전송하도록 구성될 수 있다.
도시된 실시예에서, 게임 서버(120)는 범용 게임 모듈(145), 상업용 게임 모듈(150), 데이터 수집 모듈(155), 이벤트 모듈(160), 및 횡단 가능 공간 추정 훈련 시스템(170)을 포함한다. 위에서 언급된 바와 같이, 게임 서버(120)는, 게임 서버(120)의 일부일 수 있거나 원격으로 액세스될 수 있는 게임 데이터베이스(115)와 상호작용한다(예를 들어, 게임 데이터베이스(115)는 네트워크(105)를 통해 액세스되는 분산형 데이터베이스일 수 있다). 다른 실시예에서, 게임 서버(120)는 다른 또는 추가 요소들을 포함할 수 있다. 또한, 기능들이 설명된 것과 다른 방식으로 요소들 중에 분산될 수 있다. 예를 들어, 게임 데이터베이스(115)는 게임 서버(120)에 통합될 수 있다.
범용 게임 모듈(145)은 모든 플레이어들에 대해 평행 현실 게임을 호스팅하고, 모든 플레이어에 대해 평행 현실 게임의 현재 상태에 대한 권위 있는 소스 역할을 한다. 호스트로서의 범용 게임 모듈(145)은 플레이어들에게 예를 들어 그들 각각의 클라이언트 장치(110)를 통해 표현하기 위한 게임 콘텐츠를 생성한다. 범용 게임 모듈(145)은 평행 현실 게임을 호스팅할 때 게임 데이터를 검색하거나 저장하기 위해 게임 데이터베이스(115)에 액세스할 수 있다. 또한, 범용 게임 모듈(145)은 클라이언트 장치(110)로부터 게임 데이터(예를 들어, 깊이 정보, 플레이어 입력, 플레이어 위치, 플레이어 동작, 랜드마크 정보 등)를 수신하고, 그 수신된 게임 데이터를 평행 현실 게임의 모든 플레이어들을 위한 전체 평행 현실 게임에 통합한다. 또한, 범용 게임 모듈(145)은 네트워크(105)를 통해 클라이언트 장치(110)로의 게임 데이터 전달을 관리할 수 있다. 또한, 범용 게임 모듈(145)은, 클라이언트 장치(110)와 게임 서버(120) 간의 접속 보안, 다양한 클라이언트 장치(110) 간의 접속 확립, 및 다양한 클라이언트 장치(110)의 위치 확인을 포함하지만 이에 국한되지 않는, 클라이언트 장치(110)의 보안 양태들을 관리할 수 있다.
상업용 게임 모듈(150)은 이를 하나 포함하는 실시예에서는 범용 게임 모듈(145)과 별개이거나 범용 게임 모듈의 일부일 수 있다. 상업용 게임 모듈(150)은 현실 세계의 상업 활동과 연결되는 다양한 게임 기능들을 평행 현실 게임 내에 포함시키는 것을 관리할 수 있다. 예를 들어, 상업용 게임 모듈(150)은 스폰서/광고주, 사업체, 또는 기타 엔티티와 같은 외부 시스템으로부터 평행 현실 게임에 상업 활동과 연결된 게임 기능들을 포함시켜달라는 요청을 네트워크(105)를 통해(네트워크 인터페이스를 통해) 수신할 수 있다. 그런 다음 상업용 게임 모듈(150)은 이러한 게임 기능들을 평행 현실 게임에 포함시키도록 준비할 수 있다.
게임 서버(120)는 데이터 수집 모듈(155)을 더 포함할 수 있다. 데이터 수집 모듈(155)은 이를 하나 포함하는 실시예에서는 범용 게임 모듈(145)과 별개이거나 범용 게임 모듈의 일부일 수 있다. 데이터 수집 모듈(155)은 현실 세계의 데이터 수집 활동과 연결되는 다양한 게임 기능들을 평행 현실 게임 내에 포함시키는 것을 관리할 수 있다. 예를 들어, 데이터 수집 모듈(155)은 평행 현실 게임에 데이터 수집 활동과 연결된 게임 기능들을 포함시키기 위해 게임 데이터베이스(115)에 저장된 게임 데이터를 수정할 수 있다. 데이터 수집 모듈(155)은 또한, 플레이어가 데이터 수집 활동에 따라 수집한 데이터를 분석하고 그 데이터를 다양한 플랫폼에서 액세스할 수 있도록 제공할 수 있다.
이벤트 모듈(160)은 플레이어가 평행 현실 게임에서 이벤트들에 액세스하는 것을 관리한다. "이벤트"라는 용어는 편의상 사용되었지만, 이 용어는 특정 장소나 시간의 특정 이벤트를 지칭할 필요는 없다는 점을 이해해야 한다. 오히려, 이 용어는 플레이어가 해당 콘텐츠에 액세스할 수 있는지 여부를 결정하는 데 하나 이상의 액세스 기준이 사용되는 액세스 제어식 게임 콘텐츠의 제공을 지칭할 수 있다. 이러한 콘텐츠는 액세스 제어가 거의 또는 전혀 없는 게임 콘텐츠를 포함하는 대규모 평행 현실 게임의 일부일 수 있거나, 또는 독립형 액세스 제어식 평행 현실 게임일 수 있다.
네트워크(105)는 근거리 통신망(예를 들어, 인트라넷), 광역 통신망(예를 들어, 인터넷), 또는 이들의 조합과 같은 임의의 유형의 통신망일 수 있다. 네트워크는 또한 클라이언트 장치(110)와 게임 서버(120) 간의 직접 접속을 포함할 수 있다. 일반적으로, 게임 서버(120)와 클라이언트 장치(110) 간의 통신은 다양한 통신 프로토콜(예를 들어, TCP/IP, HTTP, SMTP, FTP), 인코딩 또는 포맷(예를 들어, HTML, XML, JSON) 또는 보호 체계(예를 들어, VPN, 보안 HTTP, SSL)를 사용하고 임의의 유형의 유선 또는 무선 접속을 사용하여 네트워크 인터페이스를 통해 전해질 수 있다.
여기에 설명된 기술은 서버, 데이터베이스, 소프트웨어 애플리케이션, 및 기타 컴퓨터 기반 시스템뿐만 아니라 이러한 시스템에서 취해진 작동과 이러한 시스템으로 그리고 이러한 시스템으로부터 전송된 정보를 참조한다. 컴퓨터 기반 시스템의 고유한 유연성은 시스템의 구성요소들 중에서의 그리고 그들 사이에서의 작업 및 기능의 매우 다양한 구성, 조합, 및 분할이 이루어질 수 있게 한다는 것을 당업자는 인식할 것이다. 예를 들어, 본원에서 논의된 서버 프로세스는 단일 서버 또는 조합되어 작동하는 다수의 서버를 사용하여 구현될 수 있다. 데이터베이스들 및 애플리케이션들이 단일 시스템에서 구현되거나 다수의 시스템에 걸쳐 분산될 수 있다. 분산된 구성요소들은 순차적으로 또는 병렬로 동작할 수 있다.
또한, 본원에서 논의된 시스템 및 방법이 사용자(예를 들어, 플레이어)에 대한 개인정보에 접근하고 그 개인정보를 분석하거나 위치 정보와 같은 개인정보를 사용하는 경우, 프로그램이나 기능이 정보를 수집할지 여부 및 시스템이나 다른 애플리케이션으로부터 콘텐츠를 수신할지 여부를 제어하는 기회가 사용자에게 제공될 수 있다. 그러한 정보나 데이터는 어떤 정보가 수집되고 해당 정보가 어떻게 사용되는지에 대한 의미 있는 통지가 사용자에게 제공되기 전까지는 수집되거나 사용되지 않는다. 그러한 정보는 사용자의 동의가 없는 한 수집되거나 이용되지 않으며, 동의는 사용자가 언제든지 철회하거나 수정할 수 있다. 따라서, 사용자는 애플리케이션이나 시스템이 사용자에 대한 정보를 수집하고 사용하는 방법을 제어할 수 있다. 또한, 특정 정보나 데이터는 저장 또는 사용되기 전에 개인 식별 정보가 제거되도록 한 가지 이상의 방법으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보를 확인할 수 없도록 처리될 수 있다.
예시적인 게임 인터페이스
도 3은 플레이어와 가상 세계(210) 사이의 인터페이스의 일부로서의 클라이언트(110)의 디스플레이 상에 제공될 수 있는 게임 인터페이스(300)의 일 실시예를 도시한다. 게임 인터페이스(300)는, 가상 세계(210)를 디스플레이하며 게임의 다양한 다른 양태들, 예컨대 가상 세계(210)에서의 플레이어 위치(222), 가상 요소들(230)의 위치들, 가상 아이템들(232), 및 가상 에너지(250)를 디스플레이하는 데 사용될 수 있는, 디스플레이 윈도우(310)를 포함한다. 사용자 인터페이스(300)는 또한 기타 정보, 예컨대 게임 데이터 정보, 게임 통신, 플레이어 정보, 클라이언트 위치 확인 명령어, 및 게임과 관련된 기타 정보를 디스플레이할 수 있다. 예를 들어, 사용자 인터페이스는 플레이어 이름, 경험 수준, 및 기타 정보와 같은 플레이어 정보(315)를 디스플레이할 수 있다. 사용자 인터페이스(300)는 다양한 게임 설정 및 게임과 연관된 기타 정보에 접근하기 위한 메뉴(320)를 포함할 수 있다. 사용자 인터페이스(300)는 또한, 게임 시스템과 플레이어 사이, 그리고 평행 현실 게임의 한 명 이상의 플레이어들 사이의 통신을 가능하게 하는 통신 인터페이스(330)를 포함할 수 있다.
본 개시내용의 양태들에 따르면, 플레이어는 클라이언트 장치(110)를 현실 세계에서 단순히 휴대하여 돌아다니는 것만으로도 평행 현실 게임과 상호작용할 수 있다. 예를 들어, 플레이어는 단순히 스마트폰에서 평행 현실 게임과 연관된 애플리케이션에 액세스하고 스마트폰을 가지고 현실 세계를 돌아다니는 것만으로 게임을 플레이할 수 있다. 이와 관련하여, 플레이어가 위치 기반 게임을 플레이하기 위해 디스플레이 화면에서 가상 세계의 시각적 표현을 지속적으로 볼 필요는 없다. 그 결과, 사용자 인터페이스(300)는 사용자에게 게임과 상호작용할 수 있게 해주는 복수의 비시각적 요소를 포함할 수 있다. 예를 들어, 게임 인터페이스는 플레이어가 게임의 가상 요소나 물체에 접근할 때 또는 평행 현실 게임에서 중요한 이벤트가 발생할 때 플레이어에게 청각적 알림을 제공할 수 있다. 플레이어는 오디오 제어(340)를 사용하여 이러한 청각적 알림을 제어할 수 있다. 가상 요소나 이벤트의 유형에 따라 다양한 유형의 청각적 알림이 사용자에게 제공될 수 있다. 플레이어가 가상 요소나 물체에 근접해 있는지에 따라 청각적 알림의 빈도나 볼륨이 증가하거나 감소할 수 있다. 진동 알림이나 기타 적합한 알림 또는 신호와 같은 기타 비시각적 알림 및 신호가 사용자에게 제공될 수 있다.
도 1을 다시 참조하면, 일부 실시예에서, 게임 모듈(135)은 물체 식별자 모듈(175), 윈도우 모듈(180), 손전등 모듈(185), 물체 상호작용 모듈(190), 및 깊이 추정 모듈(195)을 포함한다. 이 모듈들은 클라이언트 장치(110)에 저장되지만, 이 모듈들 중 하나 이상이 게임 서버(120)에 저장될 수도 있다. 예를 들어, 카메라 어셈블리(125)에 의해 캡처된 이미지는 게임 서버(120)의 모듈로 전송되고, 그 모듈은 나중에 디스플레이 지시를 네트워크(105)를 통해 클라이언트 장치(110)에 제공한다. 추가적으로, 모듈들은 게임 모듈(135)의 일부이지만 게임 상황으로 제한되지는 않는다. 모듈들(175, 180, 185, 190, 195)에 대해서는 아래에서 더 설명된다.
가상 환경에 윈도우를 디스플레이
일부 실시예에서, 이미지 데이터는 사용자(예를 들어, 게임 플레이어)에게 결합되거나 상호 교환 가능한 AR/VR 경험을 제공하기 위해 클라이언트 장치(110)에 의해 제공된다. 결합된 AR/VR 경험은 AR 이미지 데이터를 사용자에게 디스플레이하는 것을 포함하는데, 특정 상황에서는, VR 이미지 데이터가 사용자에게 디스플레이된다. 예를 들어, 게임 모듈(135)은 외부 환경(현실 세계라고도 함)의 이미지를 디스플레이하는 동안 윈도우를 디스플레이한다. 본 설명의 맥락에서, 윈도우는 사용자에게 이전에 디스플레이되지 않았던 가상 환경을 볼 수 있게 해주는 가상 물체(윈도우라 칭함)이다. 윈도우는 일반적으로 외부 환경의 물체 위에 디스플레이된다. 예를 들어, 윈도우는 벽에 걸린 액자 위에 디스플레이된다. 따라서, 사용자는 액자 뒤에 있는 것처럼 보이는 가상 환경의 부분들을 보기 위해 액자로 이동할 수 있다. 이러한 결합된 AR/VR 경험은 물체 식별자 모듈(175) 및 윈도우 모듈(180)과 관련하여 아래에서 더 설명된다.
물체 식별자 모듈(175)은 카메라 어셈블리(125)에 의해 캡처된 이미지를 수신하고 분석하여 이미지 내의 물체들을 식별한다. 물체 식별자 모듈(175)은 비활동성 물체 및 활동성 물체(예를 들어, 동물 및 사람) 또는 심지어 활동성 물체의 일부(예를 들어, 손 또는 다리)를 식별할 수 있다. 물체를 식별한다는 것은 이미지 내의 한 그룹의 픽셀들이 물체를 나타낸다는 것을 인식하고 그 물체의 물체 유형을 결정하는 것을 의미할 수 있다. 물체 유형은 물체가 무엇인지(예를 들어, 사람, 개, 의자, 벽, 책상, 또는 램프) 설명한다. 예를 들어, 물체 식별자 모듈(175)은 한 그룹의 픽셀들이 의자를 나타낸다고 결정한다. 물체 식별자 모듈(175)은 벽, 테이블, 의자, 그림, 및 조명과 같은 방에 있는 평범한 물체를 식별하도록 구성될 수 있다. 일부 실시예에서, 물체 식별자 모듈(175)은 입력 이미지들(또는 시계열의 이미지들)에서 하나 이상의 유형의 물체를 식별할 수 있는 기계 학습식 분류기(classifier)를 사용한다. 분류기는 픽셀 그룹들에 대한 물체 유형 레이블(예를 들어, 수동으로 레이블 지정됨)을 포함하는 훈련 이미지들을 사용하여 훈련될 수 있다. 대안적으로, 소정의 유형의 물체가 묘사되는지 여부를 결정하기 위해 입력 이미지들에 규칙이 적용되는 규칙 기반 접근법이 사용될 수 있다.
물체 식별자 모듈(175)은 또한, 식별된 물체가 하나 이상의 가상 환경 기준을 충족시키는지 여부를 결정할 수 있다. 가상 환경 기준은 가상 환경에 윈도우를 표현하는 데 적합한 물체들 또는 물체들의 특성을 설명한다. 적합한 물체는 일반적으로, 외부 환경을 향하는 편평한 표면을 가지며, 그 표면의 표면적은 가상 환경의 부분들을 덮을 만큼 충분히 크다(예를 들어, 표면적은 4 평방인치보다 크다). 적합한 물체를 벽에 장착할 수도 있다. 예를 들어, 물체는 얇고 직사각형이며 벽에 장착되는 것이 바람직하다. 적합한 물체는 사용자가 쉽게 접근할 수도 있다(예를 들어, 그 물체가 보이며 사용자가 그 물체로 접근하는 것을 방해하는 장애물이 없다). 따라서, 물체 식별자 모듈(175)은 물체가 이러한 가상 환경 기준 중 하나 이상을 충족시키는지 여부를 결정할 수 있다.
가상 환경 기준은 윈도우를 표현하는 데 적합한 물체 유형들의 목록일 수 있다. 예를 들어, 가상 환경 기준은 전원 콘센트, 조명 스위치, 액자, 및 컴퓨터 모니터가 적합한 물체라고 명시한다. 따라서, 이러한 실시예들에서, 물체는 목록 중의 물체 유형이 (물체 식별자 모듈(175)에 의해) 그에 할당된 경우에는 가상 환경 기준을 충족시킬 수 있다.
일부 실시예에서, 물체 식별자 모듈(175)은 전체 물체들을 식별하는 대신, 외부 환경의 물체들의 표면을 식별하고 그 식별된 표면들 중 어떤 것이 윈도우를 나타내는 데 적합한지 여부(예를 들어, 표면이 편평하고, 임계치를 초과한 표면적을 갖는지 여부)를 결정한다.
윈도우 모듈(180)은 하나 이상의 가상 환경 기준을 충족시키는 물체에서 가상 환경에 윈도우를 디스플레이한다(예를 들어, 클라이언트 장치(110)에 윈도우를 디스플레이하라는 지시를 제공한다). 식별된 물체가 하나 초과인 경우, 윈도우 모듈(180)은 상기 기준을 가장 충족시키는 물체를 선택할 수 있다. 대안적으로, 윈도우 모듈(180)은 사용자에게 윈도우를 표현하기 위한 물체들 중 하나를 선택하게 해줄 수 있다. 일부 실시예에서, 사용자로부터 윈도우를 보이라는 지시가 수신되거나 클라이언트 장치(110)가 식별된 물체의 임계 거리 내에 있을 때까지는 윈도우가 디스플레이되지 않을 수 있다.
윈도우는 선택된 물체의 위치에(예를 들어, 물체의 바깥쪽을 향하는 표면에)(또는 대략 그 위치에) 또는 선택된 물체의 위치 근처에(예를 들어, 물체의 12인치 이내에) 디스플레이된다. 윈도우의 평면은 물체의 바깥쪽을 향하는 표면과 실질적으로 (예를 들어, 5도 이내로) 평행할 수 있다. 윈도우의 모양 및 크기는 물체의 모양 및 크기에 대응(예를 들어, 일치 또는 실질적으로 유사)할 수 있다. 예를 들어, 윈도우의 테두리는 물체의 윤곽선과 일치한다.
윈도우는 사용자에게 (클라이언트 장치(110)를 사용하여) 윈도우를 통해 가상 환경의 부분들을 볼 수 있게 해준다. 즉, 가상 환경의 부분들은 윈도우를 통해 보는 사람의 관점에서 보인다. 예를 들어, 가상 환경의 다른 부분을 보려면, 사용자는 클라이언트 장치(110)를 물체에 대해 움직여야 한다. 일부 경우에서, 윈도우는 가상 환경의 부분들을 보기 위해 사용자가 (예를 들어, 문을 선택하여) 열어야 하는 문을 포함한다.
가상 환경은 일반적으로 게임(예를 들어, 평행 현실 게임)을 플레이하는 사용자가 관심을 갖는 물체들을 포함한다. 예를 들어, 가상 환경은 게임과 관련된 가상 캐릭터들을 포함한다. 일부 경우에서, 가상 환경 내의 가상 캐릭터들이 외부 환경 내의 가상 또는 실제 물체들(예를 들어, 외부 환경 내의 가상 캐릭터들)과 상호작용한다. 예를 들어, 가상 환경 내의 가상 캐릭터는 사용자와 윈도우를 통해 대화를 나눈다. 가상 환경의 크기 및 모양과 가상 환경 내의 물체와 같은 가상 환경에 관한 정보는 게임 서버(120)로부터 수신될 수 있다. 예를 들어, 게임 서버(120)는, 4개의 벽, 바닥, 천장을 포함하는 가상의 방을 디스플레이하고 방 안의 특정 가상 물체들을 디스플레이하라는 지시를 제공한다.
일부 실시예에서, 사용자는, 예를 들어 윈도우를 선택하거나 윈도우로 들어가라는 지시를 제공함으로써, 가상 환경에 '들어갈' 수 있다. 이러한 실시예들에서, 사용자가 가상 환경에 '들어갔다'는 것을 나타내기 위해 외부 환경의 이미지 데이터 대신에 가상 환경의 이미지 데이터가 디스플레이될 수 있다(즉, 클라이언트 장치는 가상 환경에 대응하는 VR 영상을 디스플레이한다).
일부 실시예에서, 윈도우 모듈(180)은 물체에 윈도우를 디스플레이하기 전에 선택된 물체 상에 또는 그 주변에 AR 시각적 효과(예를 들어, 애니메이션 효과)를 디스플레이한다. 시각적 효과는 사용자의 시선을 물체로 유인하려는 것이며, 물체에 윈도우가 디스플레이될 것이라고 사용자에게 알리려는 것이다. 시각적 효과는 사용자의 관심을 끌기 위해 움직이거나 색상을 변경할 수 있다. 예를 들어, 시각적 효과는 물체의 색상을 변경한다. 시각적 효과의 다른 예는 연기, 폭발, 불꽃놀이, 별을 포함한다.
도 4a 내지 도 4d는 일부 실시예에 따른 것으로, 가상 환경에 윈도우를 디스플레이하는 것을 예시하는 일련의 예시 이미지들이다. 도 4a는 일 실시예에 따른 것으로, 외부 환경(410)의 이미지 데이터를 디스플레이하는 클라이언트 장치(405)의 디스플레이(400)를 도시한다. 도 4a의 예에서, 외부 환경(410)은 두 개의 벽, 바닥, 테이블, 및 벽에 장착된 전원 콘센트(415)를 포함하는 방의 일부이다. 도 4a에는 예시되지 않았지만, 외부 환경(410)의 이미지 데이터에 가상 물체들을 증강시킬 수 있다.
도 4a 내지 도 4d의 예에서, 벽 콘센트(415)는 가상 환경에 윈도우를 나타내기 위해 선택된다. 이를 사용자에게 전달하기 위해, 윈도우 모듈(180)은 벽 콘센트(420) 위에 시각적 효과(420)를 디스플레이한다(도 4b 참조). 이 예에서, 시각적 효과(420)는 콘센트(415) 주변의 별들을 포함한다.
도 4c 및 도 4d는 콘센트(415) 위에 디스플레이된 가상 환경(430)에 대한 윈도우(425)를 예시한다. 윈도우(425)의 크기 및 모양은 콘센트(415)의 크기 및 형상과 일치한다. 도 4d에서, 클라이언트 장치(110)는 가상 환경(430)의 세부 사항을 볼 수 있도록 콘센트(415)에 더 가깝다. 가상 환경(430)은 방 안의 두 가상 캐릭터(430)와 가상 테이블(440)을 포함한다. 방은 콘센트(415)가 장착된 벽 뒤에 있는 것으로 보인다.
조명 상호작용
도 1과 관련하여 설명한 바와 같이, 클라이언트 장치(110)는 외부 환경을 조명하는 빛을 발생시킬 수 있는 조명 어셈블리(143)를 포함할 수 있다. 예를 들어, 조명 어셈블리는 조명이 약한 상황에서 사용자가 외부 환경의 부분들을 보는 것을 돕는 데 충분한 빛을 발생시킨다. 광 어셈블리(143)는 카메라 어셈블리(125)가 이미지를 캡처할 때 외부 환경을 조명하는 데에도 사용될 수 있다. 빛을 발생시키기 위해, 광 어셈블리는 발광 다이오드(LED)와 같은 하나 이상의 광원을 포함한다. 나머지 설명에서는 카메라 어셈블리(125)에 의해 캡처된 이미지가 광 어셈블리(143)에 의해 조명되는 외부 환경의 영역을 포함할 수 있도록 광 어셈블리(143)의 광원이 위치한다고 가정한다. 예를 들어, 조명 어셈블리(143)는 카메라 어셈블리(125)와 동일한 방향을 향한다.
조명 어셈블리(143)가 빛을 발생시킬 때에는 '켜짐' 상태라고 할 수 있다. 조명 어셈블리(143)가 빛을 발생시키지 않거나 적은 양의 빛을 발생시킬 때에는 '꺼짐' 상태라고 할 수 있다. 조명 어셈블리(143)는 사용자에게 조명 어셈블리(143)를 켜고 끌 수 있게 해주는 사용자 인터페이스를 제공할 수 있다. 게임 모듈(135)은 또한, 사용자에게 조명 어셈블리(143)를 제어할 수 있게(예를 들어, 사용자에게 게임을 떠나지 않고도 조명 어셈블리(143)를 제어할 수 있게) 해주는 사용자 인터페이스를 포함할 수 있다.
일부 게임 상황이나 게임 모드에서, 사용자는 외부 환경(또는 가상 환경)에 디스플레이되는 가상 물체들과 상호작용하기 위해 조명 어셈블리(143)로부터의 빛을 이용할 수 있다. 예를 들어, 조명 어셈블리(143)가 켜지면, 게임 모듈(143)은 이전에 디스플레이되지 않았던 가상 물체들을 드러낸다. 다른 예에서, 조명 어셈블리(143)가 켜진 후, 외부 환경의 가상 캐릭터들은 조명 어셈블리(143)에 의해 조명되는 외부 환경의 소정의 영역을 향해 모인다. 게임에 따라서는, 조명 어셈블리(143)가 꺼지면, 가상 물체들이 해당 영역에 남아 있을 수 있거나, 외부 환경을 통해 다시 이동하기 시작할 수 있다. 따라서, 사용자는 조명 어셈블리(143)를 켜서, 클라이언트 장치(110)를 움직임으로써(그에 따라 조명 어셈블리(143)에 의해 조명되는 환경의 부분을 변경함으로써) 외부 환경에서 가상 물체들의 위치를 제어할 수 있다. 본 예에서, 조명 어셈블리(143)를 켜라는 지시는 모음 지시로 지칭될 수 있다. 일부 실시예에서, 사용자는 디스플레이의 (예를 들어, 위치를 디스플레이하는) 소정 영역을 선택함으로써 가상 물체에게 외부 환경 내의 소정 위치로 이동하도록 지시할 수 있다.
손전등 모듈(185)은 조명 어셈블리(143)에 통신 가능하게 결합되고 가상 물체의 움직임을 디스플레이한다(예를 들어, 클라이언트 장치(110)가 디스플레이하도록 하는 지시를 한다). 구체적으로, 손전등 모듈(185)은 조명 어셈블리(143)가 켜진 것에 응답하여, 외부 환경의 현재 위치로부터 조명 어셈블리(143)에 의해 조명되는 외부 환경의 영역을 쪽으로 움직이는 가상 물체들을 디스플레이한다.
조명 어셈블리(143)는 일반적으로 카메라 어셈블리에 대해 고정되어 있으므로, 손전등 모듈(185)은 외부 환경의 이미지 데이터에서 조명 어셈블리(143)의 빛을 식별할 필요가 없다. 대신에, 손전등 모듈(185)은 가상 물체들을 클라이언트 장치(110)가 디스플레이하고 있는 외부 환경의 영역(디스플레이의 영역에 대응하는 외부 환경의 영역이라 칭함)으로 이동시킬 수 있다. 일부 경우에서, 가상 물체들은 중앙 영역과 같은 디스플레이의 특정 영역으로 이동된다. 조명 어셈블리(143)가 켜져 있는 동안 클라이언트 장치(110)를 움직이면, 환경의 다른 영역이 조명될 것이다. 움직임이 임계값을 초과하는 경우(예를 들어, 위치 확인 모듈(140)로부터의 신호를 분석하여 결정됨), 손전등 모듈(185)은 이전 위치로부터 빛을 받는 새로운 영역으로 움직이는 가상 물체들을 디스플레이할 수 있다.
일부 실시예에서, 손전등 모듈(185)은 조명 어셈블리(143)에 의해 조명되는 영역을 나타내는 시각적 효과(예를 들어, 애니메이션 효과)를 디스플레이한다. 이는 사용자가 그 영역을 식별하는 데 도움이 될 수 있다. 시각적 효과의 예는 해당 영역의 가상 스포트라이트 또는 강조 표시를 포함한다.
도 5a 및 도 5b는 일부 실시예에 따른 것으로, 가상 물체들의 모음을 예시하는 일련의 예시적인 이미지들이다. 도 5a는 일 실시예에 따른 것으로, 외부 환경(510) 중의 세 개의 가상 캐릭터(505)의 이미지 데이터를 디스플레이하는 클라이언트 장치(110)를 도시한다. 가상 캐릭터(505)는 사람의 형상을 하고 있으며, 외부 환경(510) 도처에 위치한다. 가상 캐릭터(505)는 여러 가지 이유로 외부 환경(510) 도처에 위치할 수 있다. 예를 들어, 게임 모듈(135)은 외부 환경(510) 내의 임의의 위치들에 가상 캐릭터들(505)을 생성하거나, 게임 모듈(135)은 외부 환경을 돌아다니는 가상 캐릭터들(505)을 디스플레이한다.
게임을 플레이하는 동안, 사용자가 세 개의 가상 캐릭터(505)를 외부 환경(510)의 소정 영역으로 모으는 것이 바람직할 수 있다. 가상 캐릭터들(505)을 모으기 위해, 사용자는 전술한 바와 같이 조명 어셈블리(143)를 켤 수 있다. 도 5b는 일 실시예에 따른 것으로, 조명 어셈블리(143)에 의해 조명되는 외부 환경(515)의 영역에 모아진 세 개의 가상 캐릭터(505)를 포함하는 이미지 데이터를 디스플레이하는 클라이언트 장치(110)를 도시한다. 도 5b의 예에서, 조명된 영역(515)의 윤곽은 사용자가 그 영역(515)을 식별하는 데 도움을 주는 시각적 효과에 의해 가상으로 강조 표시된다.
가상 물체 상호작용
도 1을 다시 참조하면, 물체 상호작용 모듈(190)은 외부 환경의 물체와 상호작용하는 가상 물체들을 디스플레이한다(예를 들어, 클라이언트 장치(110)가 디스플레이하도록 하는 지시를 준다). 이에 의해 가상 물체들이 사용자에게 더 사실적이고 실물과 똑같게 보이게 된다. 이를 위해, 물체 상호작용 모듈(190)은 물체 상호작용 모듈(190)로부터 식별된 물체들을 수신한다. 물체 상호작용 모듈(190)은 식별된 물체들의 형상 및 표면과 같은 특성들을 분석하여, 식별된 물체들과 직접 또는 간접적으로 상호작용하는 가상 물체들을 디스플레이할 수 있다. 간접적인 상호작용의 예는 가상 캐릭터가 돌아다니는 것 또는 물체를 바라보는 것을 포함한다. 직접적인 상호작용의 예는 가상 캐릭터가 물체를 만지지는 것, 물체에 기대는 것, 물체에 서는 것, 또는 물체에 올라가는 것을 포함한다. 예를 들어, 물체 상호작용 모듈(190)은 막대형 물체 또는 돌출 턱이나 손잡이가 있는 물체와 같은 물체에 (예를 들어, 위 또는 아래로) 올라가는 가상 캐릭터를 디스플레이할 수 있다. 다른 예에서, 물체 상호작용 모듈(190)은, 이 물체 상호작용 모듈(190)이 지면으로 결정한 것(예를 들어, 중력에 수직인 평면, 또는 카메라 시야에서의 보통의 배향의 보이는 지면, 등등)에 대해 임계량을 초과하여(예를 들어, 80도 미만 및 5도 초과) 기울어진 경사면을 아래로 미끄러지는 가상 캐릭터를 디스플레이한다.
일부 실시예에서, 물체 상호작용 모듈(190)은 사용자와 상호작용하는 가상 물체를 디스플레이한다. 예를 들어, 사용자는 가상 물체를 '집어서' 그것을 환경 내의 다른 위치로 옮길 수 있다. 다른 예로, 물체 상호작용 모듈(190)은 외부 환경에서 가상 물체가 사용자를 '따라'하도록 하는 지시를 줄 수 있다. 이 예에서, 물체 상호작용 모듈(190)은 물체를 사람으로 식별할 수 있다. 그러면 물체 상호작용 모듈(190)은 그 환경에서 사람 뒤에서 움직이는(예를 들어, 걷는) 가상 캐릭터를 디스플레이할 수 있다. 사람의 신체의 구성요소들(예를 들어, 다리, 몸통, 팔)이 식별될 수 있어서, 가상 캐릭터가 사람 뒤에서 완전한 동일 보조로 걷는 것처럼 디스플레이될 수 있다.
깊이 추정기 모듈(195)은 클라이언트 장치(110)로부터의 물체(물체 식별자 모듈(175)에 의해 식별됨)의 거리를 추정한다. 게임 모듈(135)은 추정된 거리(깊이 정보로도 지칭됨)에 기초하여 가상 물체를 외부 환경에 디스플레이한다(예를 들어, 클라이언트 장치(110)가 디스플레이하도록 하는 지시를 준다). 예를 들어, 물체 근처에 가상 물체가 디스플레이되면, 가상 물체의 크기는 그 물체의 추정된 거리에 기초하여 조정될 수 있다. 일부 실시예에서, 깊이 정보는 물체 뒤에 가상 물체가 일부 디스플레이될 수 있게 한다. 예를 들어, 깊이 정보에 따르면, 디스플레이하려는 가상 물체의 위치보다 현실 세계 물체가 더 가깝다고 나타난 경우, 가상 물체는 현실 세계 물체가 가상 물체의 일부를 가리도록 디스플레이될 수 있다. 따라서, 깊이 정보를 이용함으로써 가상 물체가 더욱 사실적으로 보일 수 있다.
일부 실시예에서, 게임 모듈(135)은 사용자에게 외부 환경의 가상 물체를 보여주는 사진을 촬영할 수 있게 해주는 가상 카메라 모듈(예시되지 않음)을 포함한다. 이 실시예들에서, 가상 물체는 깊이 정보에 기초하여 디스플레이될 수도 있다.
깊이 추정기 모듈(195)은 기계 학습될 수 있다. 예를 들어, 이미지 중의 픽셀 그룹들에 대한 물체 거리 레이블(예를 들어, 수동으로 레이블 지정됨)을 포함하는 훈련 이미지들을 사용하여 훈련될 수 있다. 클라이언트 장치에 두 대의 카메라가 포함된 경우에는 스테레오 이미지 데이터에 기초하여 거리를 추정할 수 있다. 대안적으로, 입력 이미지들 내 물체들의 거리를 추정하기 위해 입력 이미지들에 규칙을 적용하는 규칙 기반 접근법을 사용할 수 있다.
도 6은 일 실시예에 따른 것으로, 외부 환경(610)에 두 개의 가상 캐릭터(605)의 이미지 데이터를 디스플레이하는 클라이언트 장치(110)를 도시한다. 캐릭터 605A는 이미지 배경에서 테이블 위에 서 있는 것으로 디스플레이되고 있는 반면, 캐릭터 605B는 이미지 전경에서 지면에 서 있는 것으로 디스플레이되고 있다. 가상 캐릭터들(605)은 동일한 크기이지만, 이미지에서는 캐릭터들(605)이 외부 환경(610)에 있는 것처럼 보이도록 서로 다른 크기로 디스플레이된다. 특히, 캐릭터 605A가 배경에 디스플레이되고 캐릭터 605B가 전경에 디스플레이되므로, 캐릭터 605A는 캐릭터 605B보다 작아서 깊이감을 제공한다. 캐릭터들(605)의 크기는 깊이 추정 모듈(195)로부터의 거리 정보에 기초할 수 있다. 예를 들어, 깊이 추정 모듈(195)은 클라이언트 장치와 테이블 사이의 거리를 추정하고, 그 거리에 기초하여 캐릭터 605A 및 캐릭터 605B의 높이를 결정한다.
모듈 상호작용
위에서는 윈도우 모듈(180), 손전등 모듈(185), 물체 상호작용 모듈(190), 및 깊이 추정 모듈(195)이 별도로 설명되었지만, 이들은 사용자를 위한 개선된 게임 경험을 생성하는 데 함께 사용될 수 있다. 예를 들어, 각 가상 물체는 깊이 추정 모듈(195)로부터의 깊이 정보에 기초하여 디스플레이될 수 있다.
다른 예에서, 일부 게임 상황에서, 가상 환경은 사용자가 윈도우를 통해 가상 환경의 부분들을 볼 수 없도록 어두울 수 있다. 사용자는 가상 환경을 보기 위해, 조명 어셈블리(143)를 켜서 빛이 윈도우를 통해 가상 환경으로 전파되는 것처럼 보이도록 클라이언트 장치(110)를 위치시킴으로써 가상 환경의 부분들을 조명할 수 있다. 유사하게, 사용자는 조명 어셈블리로부터의 빛이 윈도우를 통해 가상 환경으로 전파되는 것처럼 보이도록 클라이언트 장치(110)를 위치시킴으로써 외부 환경의 가상 물체들을 윈도우를 통해 가상 환경으로 움직이게 지향시킬 수 있다.
다른 예에서, 사용자가 조명 어셈블리(143)를 켜서 클라이언트 장치(110) 앞에 손을 놓고서 빛을 손으로 지향시키면, 가상 객체가 사용자의 손 위로 움직일 수 있다. 이후 사용자는 손을 움직여서 외부 환경의 가상 물체를 움직일 수 있다. 또한, 윈도우가 디스플레이되고 사용자가 윈도우를 나타내는 물체에 가까이 손을 움직이면, 게임 모듈(135)은 가상 환경에 위치한 가상 물체를 윈도우를 통해 디스플레이할 수 있다.
가상 환경에 윈도우를 디스플레이하는 프로세스
도 7은 일 실시예에 따른 것으로, 가상 환경에 윈도우를 디스플레이하는 일반적인 프로세스(700)를 설명하는 흐름도이다. 프로세스(700)는 물체 식별자 모듈 및 윈도우 모듈을 갖는 클라이언트 장치(예를 들어, 클라이언트 장치(110))에 의해 달성될 수 있다. 클라이언트 장치는 스마트폰과 같은 모바일 장치일 수 있으며, 카메라(예를 들어, 카메라 어셈블리(125)), 조명 어셈블리(예를 들어, 조명 어셈블리(143)), 및 디스플레이를 구비할 수 있다. 일부 실시예에서, 클라이언트 장치는 위의 도 1 내지 도 3에 설명된 평행 현실 게임을 적어도 부분적으로 구현한다. 다음 설명은 클라이언트 장치의 맥락 내에 있지만, 프로세스(700)(또는 프로세스의 단계들)는 다른 컴퓨팅 장치(예를 들어, 서버)에서도 수행될 수 있다. 프로세스(700)의 단계들은 다른 순서로 수행될 수 있으며, 또한 프로세스(700)는 다른, 추가적인, 또는 더 적은 수의 단계들을 포함할 수 있다.
클라이언트 장치는 카메라 어셈블리에 의해 외부 환경의 이미지를 캡처한다(710). 클라이언트 장치는 캡처된 이미지에 기초하여 외부 환경의 물체를 식별한다(720). 클라이언트 장치는 외부 환경의 물체가 가상 환경 기준을 충족시키는 것을 결정한다(730). 클라이언트 장치는 카메라 어셈블리에 의해 캡처된 외부 환경의 추가 이미지들 내 물체의 위치에서 또는 그 근처에서 가상 환경에 윈도우를 디스플레이한다(740). 클라이언트 장치는 물체가 상기 기준을 충족시킨다는 결정에 응답하여 윈도우를 디스플레이할 수 있다.
일부 실시예에서, 클라이언트는 가상 환경으로 이동하는 외부 환경 내 가상 물체를 윈도우를 통해 디스플레이한다.
클라이언트 장치는 서버로부터 가상 환경에 관한 정보를 수신하고, 가상 환경에 관한 정보를 이용하여 가상 콘텐츠를 윈도우를 통해 디스플레이하기로 결정할 수 있다.
일부 실시예에서, 프로세스(700)는 클라이언트 장치가 외부 환경에서 후보 물체를 식별하는 것을 더 포함한다. 클라이언트 장치는 후보 물체들 각각이 가상 환경 기준을 충족시키는지 여부를 결정한다. 클라이언트 장치는 상기 가상 환경 기준을 충족시키는 후보 물체들 중 하나를 물체로 선택한다.
프로세스(700)는 클라이언트 장치가 가상 환경을 디스플레이하라는 지시를 수신하고, 그 지시를 수신한 것에 응답하여, 외부 환경의 이미지 대신 가상 환경을 디스플레이하는 것을 더 포함할 수 있다.
프로세스(700)는 클라이언트 장치가 캡처된 이미지에 기초하여 외부 환경에서 경사면이 있는 물체를 식별하고, 카메라 어셈블리에 의해 캡처된 외부 환경의 추가 이미지에 제2 물체 위로 올라가고 제2 물체의 경사면을 미끄러져 내려오는 가상 물체를 디스플레이하는 것을 더 포함할 수 있다.
일부 실시예에서, 외부 환경의 물체가 가상 환경 기준을 충족시킨다고 결정하는 것은 그 물체가 외부 환경의 벽 위에 있다고 결정하는 것을 포함한다.
가상 물체를 움직이는 프로세스
도 8은 일 실시예에 따른 것으로, 외부 환경에서 가상 물체를 움직이는 일반적인 프로세스(800)를 설명하는 흐름도이다. 프로세스(800)는 손전등 모듈을 갖는 클라이언트 장치(예를 들어, 클라이언트 장치(110))에 의해 달성될 수 있다. 클라이언트 장치는 스마트폰과 같은 모바일 장치일 수 있으며, 카메라(예를 들어, 카메라 어셈블리(125)), 조명 어셈블리(예를 들어, 조명 어셈블리(143)), 및 디스플레이를 구비할 수 있다. 일부 실시예에서, 클라이언트 장치는 위의 도 1 내지 도 3에 설명된 평행 현실 게임을 적어도 부분적으로 구현한다. 다음 설명은 클라이언트 장치의 맥락 내에 있지만, 프로세스(800)(또는 프로세스의 단계들)는 다른 컴퓨팅 장치(예를 들어, 서버)에서도 수행될 수 있다. 프로세스(800)의 단계들은 다른 순서로 수행될 수 있으며, 또한 프로세스(800)는 다른, 추가적인, 또는 더 적은 수의 단계들을 포함할 수 있다.
클라이언트 장치는 카메라 어셈블리에 의해 외부 환경의 이미지를 캡처한다(810). 클라이언트 장치는 디스플레이 상의 외부 환경의 이미지에 가상 물체를 디스플레이한다(820). 클라이언트 장치는 (예를 들어, 사용자로부터) 모음 지시를 수신한다(830). 클라이언트 장치는 디스플레이의 소정 영역에 대응하는 외부 환경의 소정 영역으로 움직이는 카메라 어셈블리에 의해 캡처된 외부 환경의 추가 이미지들에 가상 물체를 디스플레이한다(840). 클라이언트 장치는 모음 지시를 수신한 것에 응답하여, 움직이는 가상 물체를 디스플레이할 수 있다.
일부 실시예에서, 모음 지시는 클라이언트 장치의 조명 어셈블리를 켜라는 지시이다. 외부 환경의 상기 소정 영역은 조명 어셈블리로부터의 빛으로 조명되는 영역이다. 일부 실시예에서, 클라이언트 장치는 조명 어셈블리의 빛에 의해 조명되는 외부 환경의 영역을 나타내기 위해 디스플레이의 영역에 시각적 효과를 디스플레이한다.
일부 실시예에서, 클라이언트는 외부 환경 이미지에 복수의 가상 물체를 디스플레이하고, 각 물체는 외부 환경의 상이한 위치에 디스플레이된다. 클라이언트 장치는 복수의 가상 물체 각각이 자신의 위치로부터 외부 환경의 영역으로 움직이는 것을 디스플레이할 수 있다.
일부 실시예에서, 클라이언트 장치는 클라이언트 장치의 움직임이 임계치를 초과한 것을 결정한다. 클라이언트 장치의 움직임이 임계치를 초과한다고 결정한 것에 응하여, 클라이언트 장치는 외부 환경의 영역으로부터 디스플레이의 영역에 대응하는 외부 환경의 제2 영역으로 움직이는 가상 물체를 디스플레이한다.
프로세스(800)는 클라이언트 장치가 캡처된 이미지에 기초하여 외부 환경에서 경사면이 있는 물체를 식별하고, 물체 위로 올라가고 물체의 경사면을 미끄러져 내려가는 가상 물체를 디스플레이하는 것을 더 포함한다.
프로세스(800)가 AR 맥락에서 설명되지만, 유사한 프로세스가 VR 맥락에서 수행될 수 있다. 예를 들어, 클라이언트 장치는 VR 환경의 이미지를 디스플레이하고, 또한 클라이언트 장치는 모음 지시를 수신한 것에 응답하여, 디스플레이의 소정의 영역에 대응하는 VR 환경의 소정의 영역으로 움직이는 VR 환경 내 가상 물체를 디스플레이한다.
가상 물체를 디스플레이하는 프로세스
도 9는 일 실시예에 따른 것으로, 외부 환경에 가상 물체를 디스플레이하는 일반적인 프로세스(900)를 설명하는 흐름도이다. 프로세스(900)는 손전등 모듈을 갖는 클라이언트 장치(예를 들어, 클라이언트 장치(110))에 의해 달성될 수 있다. 클라이언트 장치는 스마트폰과 같은 모바일 장치일 수 있으며, 카메라(예를 들어, 카메라 어셈블리(125)), 조명 어셈블리(예를 들어, 조명 어셈블리(143)), 및 디스플레이를 구비할 수 있다. 일부 실시예에서, 클라이언트 장치는 위의 도 1 내지 도 3에 설명된 평행 현실 게임을 적어도 부분적으로 구현한다. 다음 설명은 클라이언트 장치의 맥락 내에 있지만, 프로세스(900)(또는 프로세스의 단계들)는 다른 컴퓨팅 장치(예를 들어, 서버)에서도 수행될 수 있다. 프로세스(900)의 단계들은 다른 순서로 수행될 수 있으며, 또한 프로세스(900)는 다른, 추가적인, 또는 더 적은 수의 단계들을 포함할 수 있다.
클라이언트 장치는 카메라 어셈블리에 의해 외부 환경의 이미지를 캡처한다(910). 클라이언트 장치는 캡처된 이미지에 기초하여 외부 환경의 물체를 식별한다(920). 클라이언트 장치는 캡처된 이미지에서 물체의 깊이 정보를 추정한다(930). 클라이언트 장치는 식별된 물체와 깊이 정보를 기반으로 하여 가상 물체를 디스플레이한다(940).
일부 실시예에서, 가상 물체는 가상 캐릭터이고, 가상 물체를 디스플레이하는 것은 그 물체와 상호작용하는 가상 캐릭터를 디스플레이하는 것을 포함한다.
일부 실시예에서, 물체는 사람 손이다.
프로세스(900)는 캡처된 이미지에 기초하여 외부 환경에서 물체의 경사면을 식별하고, 물체 위로 올라가고 물체의 경사면을 미끄러져 내려가는 가상 물체를 디스플레이하는 것을 더 포함한다.
예시적인 컴퓨팅 시스템
도 10은 일 실시예에 따른 컴퓨팅 장치의 예시적인 아키텍처이다. 도 10은 본원에 설명된 하나 이상의 엔티티의 일부 또는 전부로서 사용되는 컴퓨터의 물리적 구성요소들을 예시하는 고수준 블록도를 도시하고 있지만, 일 실시예에 따르면, 컴퓨터는 도 10에 제공된 구성요소들을 추가로 구비하거나 더 적게 구비하거나 그 구성요소들의 변형을 취할 수 있다. 도 10은 컴퓨터(1000)를 도시하고 있지만, 이 도면은 본원에 설명된 구현예들의 구조적 개략도로서가 아니라 컴퓨터 시스템에 존재할 수 있는 다양한 기능들에 대한 기능 설명으로 의도된다. 실제로, 당업자가 인식하는 바와 같이, 개별적으로 도시된 항목들은 결합될 수 있으며, 일부 항목들은 분리될 수 있다.
도 10에는 칩셋(1004)에 결합된 적어도 하나의 프로세서(1002)가 예시되어 있다. 또한, 칩셋(1004)에는 메모리(1006), 저장 장치(1008), 키보드(1010), 그래픽 어댑터(1012), 포인팅 장치(1014), 및 네트워크 어댑터(1016)가 연결되어 있다. 그래픽 어댑터(1012)에 디스플레이(1018)가 연결된다. 일 실시예에서, 칩셋(1004)의 기능은 메모리 컨트롤러 허브(1020) 및 I/O 허브(1022)에 의해 제공된다. 다른 실시예에서, 메모리(1006)는 칩셋(1004) 대신 프로세서(1002)에 직접 결합된다. 일부 실시예에서, 컴퓨터(1000)는 이들 구성요소들을 상호 연결하기 위한 하나 이상의 통신 버스를 포함한다. 하나 이상의 통신 버스는, 선택적으로, 시스템 구성요소들 간의 통신을 상호 연결하고 제어하는 회로(때때로 칩셋이라고도 함)를 포함한다.
저장 장치(1008)는, 예컨대 하드 드라이브, 콤팩트디스크 읽기 전용 메모리(CD-ROM), DVD, 또는 솔리드스테이트 메모리 장치 또는 기타 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 자기 디스크 저장 장치, 광 디스크 저장 장치, 플래시 메모리 장치, 또는 기타 비휘발성 솔리드스테이트 저장 장치와 같은, 임의의 비일시적 컴퓨터 판독 가능 저장 매체이다. 이러한 저장 장치(1008)는 영구 메모리라고 불릴 수도 있다. 포인팅 장치(1014)는 마우스, 트랙볼, 또는 기타 유형의 포인팅 장치일 수 있으며, 키보드(1010)와 협력하여 컴퓨터(1000)에 데이터를 입력하는 데 사용된다. 그래픽 어댑터(1012)는 디스플레이(1018)에 이미지 및 기타 정보를 디스플레이한다. 네트워크 어댑터(1016)는 컴퓨터(1000)를 근거리 통신망 또는 광역 통신망에 연결한다.
메모리(1006)는 프로세서(1002)에 의해 사용되는 명령어 및 데이터를 보유한다. 메모리(1006)는 비영구 메모리일 수 있으며, 이의 예에는 DRAM, SRAM, DDR RAM, ROM, EEPROM, 플래시 메모리와 같은 고속 랜덤 액세스 메모리가 포함된다.
해당 기술 분야에 알려진 바와 같이, 컴퓨터(1000)는 도 10에 도시된 것과 상이하거나 다른 구성요소들을 구비할 수 있다. 또한, 컴퓨터(1000)에는 예시된 특정 구성요소가 없을 수 있다. 일 실시예에서, 서버 역할을 하는 컴퓨터(1000)에 키보드(1010), 포인팅 장치(1014), 그래픽 어댑터(1012), 또는 디스플레이(1018)가 없을 수 있다. 또한, 저장 장치(1008)는 로컬이거나 컴퓨터(1000)로부터 원격일 수 있다(예컨대, 저장 영역 네트워크(SAN) 내에 구현될 수 있다).
해당 기술 분야에 알려진 바와 같이, 컴퓨터(1000)는 본원에 기술된 기능을 제공하기 위한 컴퓨터 프로그램 모듈들을 실행하도록 구성된다. 본원에서 사용된 용어 "모듈"은 특정된 기능을 제공하는 데 사용되는 컴퓨터 프로그램 로직을 지칭한다. 따라서, 모듈은 하드웨어, 펌웨어, 또는 소프트웨어로 구현될 수 있다. 일 실시예에서, 프로그램 모듈은 저장 장치(1008)에 저장되고, 메모리(1006)에 로드되며, 프로세서(302)에 의해 실행된다.
추가 고려 사항
위 설명의 일부 부분은 실시예들을 알고리즘 프로세스 또는 동작 측면에서 설명한다. 이러한 알고리즘 설명 및 표현은 데이터 처리 기술의 숙련자가 자신의 작업 내용을 해당 기술 분야의 다른 숙련자에게 효과적으로 전달하는 데 일반적으로 사용된다. 이러한 동작은 기능적으로, 전산적으로, 또는 논리적으로 설명되지만, 프로세서 또는 동등한 전기 회로, 마이크로코드 등에 의한 실행을 위한 명령어들을 포함하는 컴퓨터 프로그램에 의해 구현되는 것으로 이해된다. 또한, 이러한 기능적 동작들의 배치를 일반성을 잃지 않게 모듈로 지칭하는 것이 때로는 편리하다는 것이 입증되어 있기도 하다.
본원에 사용된 바와 같이, "일 실시예" 또는 "실시예"라는 언급은 해당 실시예와 관련하여 설명된 특정 요소, 기능, 구조, 또는 특징이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 본 명세서의 여러 위치에 나타나는 "일 실시예에서"라는 문구는 반드시 모두 동일한 실시예를 지칭하는 것이 아니다.
일부 실시예는 "결합된" 및 "연결된"이라는 표현과 이들의 파생어를 사용하여 설명될 수 있다. 이들 용어는 서로 동의어로 의도된 것이 아니라는 점을 이해해야 한다. 예를 들어, 일부 실시예는 둘 이상의 요소들이 서로 직접적인 물리적 또는 전기적 접촉을 이루고 있음을 나타내기 위해 "연결된"이라는 용어를 사용하여 설명될 수 있다. 다른 예로, 일부 실시예는 둘 이상의 요소들이 직접적인 물리적 또는 전기적 접촉을 이루고 있음을 나타내기 위해 "결합된"이라는 용어를 사용하여 설명될 수 있다. 그러나 "결합된"이라는 용어는 둘 이상의 요소들이 서로 직접 접촉하지 않지만 여전히 서로 협력하거나 상호작용한다는 것을 의미할 수도 있다. 실시예는 이러한 맥락에서 제한되지 않는다.
본원에 사용된 용어 "포함한다(comprise)", "포함하는(comprising)", "포함한다(include)", "포함하는(including)", "구비한다", "구비하는", 또는 이들의 임의의 다른 변형은 비배타적 포함을 포괄하도록 한 것이다. 예를 들어, 요소들의 목록을 포함하는 프로세스, 방법, 물품, 또는 장치는 해당 요소들에만 반드시 제한되는 것이 아니고, 명시적으로 나열되지 않거나 그러한 프로세스, 방법, 물품, 또는 장치에 고유한 다른 요소들을 포함할 수 있다. 또한, 명시적으로 달리 언급되지 않는 한, "또는"은 배타적인 또는이 아닌 포괄적인 또는을 의미한다. 예를 들어, 조건 A 또는 B는 다음 중 임의의 하나에 의해 충족된다: A는 참(또는 존재)이고 B는 거짓(또는 존재하지 않음), A는 거짓(또는 존재하지 않음)이고 B는 참(또는 존재), A와 B 모두가 참(또는 존재).
또한, 부정관사("a" 또는 "an")의 사용은 실시예의 요소 및 구성요소를 설명하는 데 사용된다. 이는 단지 편의를 위한 것이며 개시내용의 일반적인 의미를 제공하기 위한 것이다. 이 설명은 하나 또는 적어도 하나를 포함하는 것으로 읽어야 하며, 달리 의미하는 것이 명백하지 않는 한 단수형은 복수형도 포함한다. 값이 "대략" 또는 "실질적으로"(또는 이의 파생어)로 설명되는 경우, 그러한 값은 문맥에서 다른 의미가 명백하지 않는 한 +/- 10%의 정확도로 해석되어야 한다. 예를 들어, "대략 10"은 "9에서 11까지의 범위"를 의미하는 것으로 이해되어야 한다.
당업자는 본 개시내용을 읽으면, 개시된 AR 기능을 제공하기 위한 시스템 및 프로세스에 대한 또 다른 추가 대안적인 구조적 및 기능적 설계를 인식할 것이다. 따라서, 특정 실시예 및 애플리케이션이 예시되고 설명되었지만, 설명된 기술 요지는 본원에 개시된 정확한 구성 및 구성요소에 제한되지 않는다는 점과, 개시된 방법 및 장치의 배열, 동작, 및 세부 사항에 대해 당업자에게 명백할 다양한 수정, 변경, 및 변형이 이루어질 수 있다는 점이 이해되어야 한다. 보호 범위는 발행된 청구범위에 의해서만 제한되어야 한다.

Claims (20)

  1. 저장된 명령어들을 포함하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령어들은 컴퓨팅 장치에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금,
    카메라 어셈블리에 의해 외부 환경의 이미지를 캡처하는 것;
    상기 캡처된 이미지에 기초하여 상기 외부 환경의 물체를 식별하는 것;
    상기 외부 환경의 물체가 가상 환경 기준을 충족시킨다고 결정하는 것; 및
    상기 물체가 상기 가상 환경 기준을 충족시킨다고 결정한 것에 응답하여, 상기 카메라 어셈블리에 의해 캡처된 상기 외부 환경의 추가 이미지들 내 물체의 위치에서 또는 그 근처에서 가상 환경에 윈도우를 디스플레이하는 것을 포함하는 동작들을 수행하게 하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  2. 제1항에 있어서, 상기 동작들에는, 상기 가상 환경으로 움직이는 상기 외부 환경 내 가상 물체를 상기 윈도우를 통해 디스플레이하는 것이 더 포함되는, 비일시적 컴퓨터 판독 가능 저장 매체.
  3. 제1항에 있어서, 상기 동작들에는,
    서버로부터 상기 가상 환경에 관한 정보를 수신하는 것; 및
    상기 가상 환경에 관한 상기 정보를 이용하여, 가상 콘텐츠를 윈도우를 통해 디스플레이하도록 결정하는 것이 더 포함되는, 비일시적 컴퓨터 판독 가능 저장 매체.
  4. 제1항에 있어서, 상기 동작들에는,
    외부 환경에서 후보 물체들을 식별하는 것;
    상기 후보 물체들 각각이 상기 가상 환경 기준을 충족시키는지 결정하는 것; 및
    상기 가상 환경 기준을 충족시키는 상기 후보 물체들 중 하나를 물체로 선택하는 것이 더 포함되는, 비일시적 컴퓨터 판독 가능 저장 매체.
  5. 제1항에 있어서, 상기 동작들에는,
    상기 가상 환경을 디스플레이하라는 지시를 수신하는 것; 및
    상기 지시를 수신한 것에 응답하여, 상기 외부 환경의 이미지 대신 상기 가상 환경을 디스플레이하는 것이 더 포함되는, 비일시적 컴퓨터 판독 가능 저장 매체.
  6. 제1항에 있어서, 상기 윈도우의 형상 및 크기는 상기 물체의 형상 및 크기에 대응하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  7. 제1항에 있어서, 상기 윈도우의 평면은 상기 물체의 표면과 실질적으로 평행한, 비일시적 컴퓨터 판독 가능 저장 매체.
  8. 제1항에 있어서, 상기 가상 환경은 하나 이상의 가상 물체가 있는 가상 방인, 비일시적 컴퓨터 판독 가능 저장 매체.
  9. 제1항에 있어서, 상기 외부 환경의 물체가 상기 가상 환경 기준을 충족시킨다고 결정하는 것은 상기 물체가 상기 외부 환경의 벽 위에 있다고 결정하는 것을 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  10. 제1항에 있어서, 상기 동작들에는,
    상기 외부 환경의 가상 물체를 디스플레이에 디스플레이하는 것;
    사용자 입력을 통해 모음 지시를 수신하는 것 - 상기 모음 지시는 상기 디스플레이와 연관된 모바일 장치의 조명 어셈블리를 켜라는 지시를 포함함 -; 및
    상기 모음 지시를 수신한 것에 응답하여, 상기 디스플레이의 소정 영역에 대응하는 상기 외부 환경의 영역으로 움직이는 상기 가상 물체를 디스플레이하는 것이 더 포함되는, 비일시적 컴퓨터 판독 가능 저장 매체.
  11. 제1항에 있어서, 상기 동작들에는,
    상기 캡처된 이미지에 기초하여 상기 외부 환경에서 경사면을 갖는 제2 물체를 식별하는 것;
    상기 카메라 어셈블리에 의해 촬영된 상기 외부 환경의 추가 이미지에 상기 제2 물체 위로 올라가고 상기 제2 물체의 상기 경사면을 미끄러져 내려가는 가상 물체를 디스플레이하는 것이 더 포함되는, 비일시적 컴퓨터 판독 가능 저장 매체.
  12. 저장된 명령어들을 포함하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령어들은 컴퓨팅 장치에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금,
    카메라 어셈블리에 의해 외부 환경의 이미지를 캡처하는 것;
    디스플레이 상의 상기 외부 환경의 이미지에 가상 물체를 디스플레이하는 것;
    모음 지시를 수신하는 것; 및
    상기 모음 지시를 수신한 것에 응답하여, 상기 디스플레이의 소정 영역에 대응하는 상기 외부 환경의 소정 영역으로 움직이는 상기 카메라 어셈블리에 의해 캡처된 상기 외부 환경의 추가 이미지들에 상기 가상 물체를 디스플레이하는 것을 포함하는 동작들을 수행하게 하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  13. 제12항에 있어서, 상기 모음 지시는 상기 디스플레이와 연관된 클라이언트 장치의 조명 어셈블리를 켜라는 지시를 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  14. 제13항에 있어서, 상기 외부 환경의 영역은 상기 조명 어셈블리로부터의 빛으로 조명되는 영역인, 비일시적 컴퓨터 판독 가능 저장 매체.
  15. 제12항에 있어서, 상기 동작들에는,
    상기 캡처된 이미지에 기초하여 상기 외부 환경에서 경사면을 갖는 물체를 식별하는 것;
    상기 물체 위로 올라가고 상기 물체의 상기 경사면을 미끄러져 내려가는 상기 가상 물체를 디스플레이하는 것이 더 포함되는, 비일시적 컴퓨터 판독 가능 저장 매체.
  16. 제12항에 있어서,
    상기 가상 물체를 디스플레이하는 것은, 상기 외부 환경 이미지에 복수의 가상 물체를 디스플레이하는 것을 포함하고, 각 물체는 상기 외부 환경의 상이한 위치에 디스플레이되고,
    상기 디스플레이의 상기 영역에 대응하는 상기 외부 환경의 상기 영역으로 움직이는 상기 추가 이미지에 상기 가상 물체를 디스플레이하는 것은, 상기 복수의 가상 물체 각각이 자신의 위치로부터 상기 외부 환경의 상기 영역으로 움직이는 것을 디스플레이하는 것을 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  17. 제12항에 있어서, 상기 동작들에는,
    상기 디스플레이와 연관된 클라이언트 장치의 움직임이 임계치를 초과한다고 결정하는 것;
    상기 클라이언트 장치의 움직임이 상기 임계치를 초과한다고 결정한 것에 응답하여, 상기 외부 환경의 상기 영역으로부터 상기 디스플레이의 상기 영역에 대응하는 상기 외부 환경의 제2 영역으로 움직이는 상기 가상 물체를 디스플레이하는 것이 더 포함되는, 비일시적 컴퓨터 판독 가능 저장 매체.
  18. 저장된 명령어들을 포함하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령어들은 컴퓨팅 장치에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금,
    카메라 어셈블리에 의해 외부 환경의 이미지를 캡처하는 것;
    상기 캡처된 이미지에 기초하여 상기 외부 환경의 물체를 식별하는 것;
    상기 캡처된 이미지에서 물체의 깊이 정보를 추정하는 것; 및
    식별된 물체와 상기 깊이 정보를 기반으로 하여 가상 물체를 디스플레이하는 것을 포함하는 동작들을 수행하게 하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  19. 제18항에 있어서, 상기 가상 물체는 가상 캐릭터이고, 상기 가상 물체를 디스플레이하는 것은 상기 물체와 상호작용하는 상기 가상 캐릭터를 디스플레이하는 것을 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  20. 제18항에 있어서, 상기 동작들에는,
    상기 캡처된 이미지에 기초하여 상기 외부 환경에서 상기 물체의 경사면을 식별하는 것;
    상기 물체 위로 올라가고 상기 물체의 상기 경사면을 미끄러져 내려가는 상기 가상 물체를 디스플레이하는 것이 더 포함되는, 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020237036405A 2021-03-29 2022-03-22 상호작용가능한 증강 및 가상 현실 경험 KR20230175207A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/216,413 US11361519B1 (en) 2021-03-29 2021-03-29 Interactable augmented and virtual reality experience
US17/216,413 2021-03-29
PCT/IB2022/052574 WO2022208230A1 (en) 2021-03-29 2022-03-22 Interactable augmented and virtual reality experience

Publications (1)

Publication Number Publication Date
KR20230175207A true KR20230175207A (ko) 2023-12-29

Family

ID=81944326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237036405A KR20230175207A (ko) 2021-03-29 2022-03-22 상호작용가능한 증강 및 가상 현실 경험

Country Status (9)

Country Link
US (2) US11361519B1 (ko)
EP (1) EP4314993A1 (ko)
JP (1) JP2022153230A (ko)
KR (1) KR20230175207A (ko)
CN (1) CN117751339A (ko)
AU (1) AU2022251171A1 (ko)
CA (1) CA3215563A1 (ko)
TW (2) TW202402365A (ko)
WO (1) WO2022208230A1 (ko)

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009237680A (ja) * 2008-03-26 2009-10-15 Namco Bandai Games Inc プログラム、情報記憶媒体および画像生成システム
US20090315916A1 (en) * 2008-06-24 2009-12-24 International Business Machines Corporation On-the-fly creation of virtual places in virtual worlds
EP2189191B1 (en) * 2008-11-25 2016-02-24 Fox Factory, Inc. Methods and Apparatus for Virtual Competition
US8762861B2 (en) * 2008-12-28 2014-06-24 Avaya, Inc. Method and apparatus for interrelating virtual environment and web content
US9129644B2 (en) * 2009-06-23 2015-09-08 Disney Enterprises, Inc. System and method for rendering in accordance with location of virtual objects in real-time
US9418479B1 (en) * 2010-12-23 2016-08-16 Amazon Technologies, Inc. Quasi-virtual objects in an augmented reality environment
US9430876B1 (en) * 2012-05-10 2016-08-30 Aurasma Limited Intelligent method of determining trigger items in augmented reality environments
US20130342572A1 (en) * 2012-06-26 2013-12-26 Adam G. Poulos Control of displayed content in virtual environments
US20140002443A1 (en) * 2012-06-29 2014-01-02 Blackboard Inc. Augmented reality interface
US20140240351A1 (en) * 2013-02-27 2014-08-28 Michael Scavezze Mixed reality augmentation
US9846965B2 (en) * 2013-03-15 2017-12-19 Disney Enterprises, Inc. Augmented reality device with predefined object data
JP6192483B2 (ja) * 2013-10-18 2017-09-06 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
US9865089B2 (en) * 2014-07-25 2018-01-09 Microsoft Technology Licensing, Llc Virtual reality environment with real world objects
US9754416B2 (en) * 2014-12-23 2017-09-05 Intel Corporation Systems and methods for contextually augmented video creation and sharing
US20170256096A1 (en) * 2016-03-07 2017-09-07 Google Inc. Intelligent object sizing and placement in a augmented / virtual reality environment
US9824500B2 (en) * 2016-03-16 2017-11-21 Microsoft Technology Licensing, Llc Virtual object pathing
JP6483056B2 (ja) * 2016-06-10 2019-03-13 任天堂株式会社 ゲーム装置、ゲーム制御方法およびゲームプログラム
US10692288B1 (en) * 2016-06-27 2020-06-23 Lucasfilm Entertainment Company Ltd. Compositing images for augmented reality
CN107754212A (zh) * 2016-08-16 2018-03-06 上海掌门科技有限公司 跑步运动设备及其虚拟现实交互方法
US10388072B2 (en) * 2016-10-31 2019-08-20 Verizon Patent And Licensing Inc. Methods and systems for dynamically customizing a scene for presentation to a user
US9983687B1 (en) * 2017-01-06 2018-05-29 Adtile Technologies Inc. Gesture-controlled augmented reality experience using a mobile communications device
JP7116410B2 (ja) * 2017-03-31 2022-08-10 株式会社バンダイナムコエンターテインメント プログラム及び画像生成システム
WO2018207662A1 (ja) * 2017-05-11 2018-11-15 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP7103357B2 (ja) * 2017-07-26 2022-07-20 ソニーグループ株式会社 情報処理装置、情報処理方法、及びプログラム
JP6756327B2 (ja) * 2017-11-10 2020-09-16 株式会社Soken 姿勢検出装置、及び姿勢検出プログラム
JP6961723B2 (ja) * 2018-01-16 2021-11-05 株式会社ソニー・インタラクティブエンタテインメント 移動体および移動体制御方法
CN110515452B (zh) * 2018-05-22 2022-02-22 腾讯科技(深圳)有限公司 图像处理方法、装置、存储介质和计算机设备
TWM589834U (zh) * 2019-09-17 2020-01-21 藝力米數位科技有限公司 擴增實境整合系統
US11875013B2 (en) * 2019-12-23 2024-01-16 Apple Inc. Devices, methods, and graphical user interfaces for displaying applications in three-dimensional environments

Also Published As

Publication number Publication date
US11748961B2 (en) 2023-09-05
EP4314993A1 (en) 2024-02-07
WO2022208230A1 (en) 2022-10-06
JP2022153230A (ja) 2022-10-12
US20220309756A1 (en) 2022-09-29
AU2022251171A1 (en) 2023-11-16
TW202402365A (zh) 2024-01-16
US11361519B1 (en) 2022-06-14
TWI807732B (zh) 2023-07-01
CN117751339A (zh) 2024-03-22
TW202245888A (zh) 2022-12-01
CA3215563A1 (en) 2022-10-06

Similar Documents

Publication Publication Date Title
US11663789B2 (en) Recognizing objects in a passable world model in augmented or virtual reality systems
KR102493185B1 (ko) 깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련
US20220351518A1 (en) Repeatability predictions of interest points
TWI797571B (zh) 用於自單一影像判定可遍歷空間之電腦實施方法及電腦可讀儲存媒體
US20230196690A1 (en) High-Speed Real-Time Scene Reconstruction from Input Image Data
US11361519B1 (en) Interactable augmented and virtual reality experience
US20230196693A1 (en) Controlling Augmented Reality Content Via Selection of Real-World Locations or Objects
US20240075379A1 (en) Dynamically Generated Local Virtual Events
US20230421985A1 (en) Localization using Audio and Visual Data
NZ765499A (en) System and method for augmented and virtual reality