KR102290933B1 - 가상 제어기에 대한 기능 할당 - Google Patents

가상 제어기에 대한 기능 할당 Download PDF

Info

Publication number
KR102290933B1
KR102290933B1 KR1020197012238A KR20197012238A KR102290933B1 KR 102290933 B1 KR102290933 B1 KR 102290933B1 KR 1020197012238 A KR1020197012238 A KR 1020197012238A KR 20197012238 A KR20197012238 A KR 20197012238A KR 102290933 B1 KR102290933 B1 KR 102290933B1
Authority
KR
South Korea
Prior art keywords
controller
virtual
function
physical
gesture
Prior art date
Application number
KR1020197012238A
Other languages
English (en)
Other versions
KR20190059946A (ko
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 KR20190059946A publication Critical patent/KR20190059946A/ko
Application granted granted Critical
Publication of KR102290933B1 publication Critical patent/KR102290933B1/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
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/016Input arrangements with force or tactile feedback as computer generated output to the user
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0382Plural input, i.e. interface arrangements in which a plurality of input device of the same type are in communication with a PC
    • 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
    • G06F3/012Head tracking input arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

방법은 컴퓨터 시스템에서, 가상 제어기를 물리적 제어기와 연관시키는 단계; 상기 가상 제어기에 제1 기능을 할당하는 단계, 상기 할당은 상기 물리적 제어기를 사용하여 상기 제1 기능의 수행을 제공하며; 상기 물리적 제어기를 사용하여 수행되는 제스처를 검출하는 단계; 및 상기 제스처를 검출하는 것에 응답하여, 상기 가상 제어기로부터 상기 제1 기능을 할당-해제하고 및/또는 상기 가상 제어기에 제2 기능을 할당하는 단계를 포함한다.

Description

가상 제어기에 대한 기능 할당
관련 출원에 대한 상호 참조
본 출원은 “가상 제어기에 대한 기능 할당”이라는 명칭의 2017년 1월 19일에 출원된 미국 가출원 번호 62/448,172호에 대해 우선권을 주장하는, “가상 제어기에 대한 기능 할당”이라는 명칭의 2017년 10월 26일에 출원된 미국 출원 번호 15/794,265호의 계속으로서 그에 대해 우선권을 주장하며, 그 개시 내용들은 전체가 본 명세서에 참조로서 통합된다.
또한 본 출원은 2017년 1월 19일 목요일에 출원된 미국 가출원 번호 제62/448,172호에 대해 우선권을 주장하며, 그 전체가 참조로서 본 명세서에 통합된다.
기술분야
본 문서는 일반적으로 하나 이상의 가상 제어기에 대한 기능 할당과 관련된다.
일부 가상 현실(VR) 프로그램은 사용자가 VR 프로그램의 양태들을 제어하기 위해 조작할 수 있는 하나 이상의 물리적 제어기들을 사용한다. 사용자가 왼손과 오른손을 사용하여 각각 다른 작업을 수행할 수 있도록 상이한 기능들이 제어기에 할당될 수 있다. 그러나, 사용자는 시스템이 할당한 것과 반대쪽 손을 사용하기를 원할 수 있다. 이 변경을 하는 것은 사용자가 VR 프로그램의 설정 메뉴를 통해 탐색할 것을 요구할 수 있고, 특히 설정을 변경될 때까지 사용자는 "잘못된” 손을 사용하여 프로그램과 인터렉션해야만 한다면 이는 번거로울 수 있다. 일부 시스템은 물리적으로 동일한 제어기들을 사용하며, 시스템 시작시 사용자의 선호와 관계없이 제어기들을 할당할 수 있다. 다른 시스템은 왼손과 오른손에 대해 물리적으로 상이한 제어기를 가지고 있어, 물리적 제어기들을 스위칭함으로써 사용자가 재할당하는 것을 어렵거나 불가능하게 한다.
제1 양태에서, 방법은 컴퓨터 시스템에서, 가상 제어기를 물리적 제어기와 연관시키는 단계; 상기 가상 제어기에 제1 기능을 할당하는 단계, 상기 할당은 상기 물리적 제어기를 사용하여 상기 제1 기능의 수행을 제공하며; 상기 물리적 제어기를 사용하여 수행되는 제스처를 검출하는 단계; 및 상기 제스처를 검출하는 것에 응답하여, 상기 가상 제어기로부터 상기 제1 기능을 할당-해제하고 및/또는 상기 가상 제어기에 제2 기능을 할당하는 단계를 포함한다.
본 명세서에 기술된 물리적 제어기 및 다른 물리적 제어기는 전형적으로 핸드헬드 제어기인 사용자의 손으로 들고 있기 위한 제어기 디바이스일 수 있다. 물리적 제어기는 전형적으로 사용자가 제어기의 병진 및/또는 회전 운동 및/또는 제어기에서 제공되거나 제어기에 의해 제공되는 버튼, 스위치, 검출기 및 다른 제어 요소의 사용에 의해 입력을 컴퓨터 시스템에 제공할 수 있도록 구성된다. 가상 제어기 및 본 명세서에 기술된 다른 가상 제어기들은 물리적 제어기의 사용자에게 제시된 가상 현실 공간에서 표현되는 가상적 또는 논리적 제어기일 수 있다. 가상 공간에서의 가상 제어기의 위치 및/또는 움직임은 일반적으로 물리적 제어기의 위치 및/또는 움직임에 대응하거나 그에 대한 응답일 수 있다. 본 명세서에 기술된 제스처 및 다른 제스처들은 일반적으로 물리적 제어기의 특정한 병진 및/또는 회전 운동 및/또는 궤적에 의해 제공될 수 있으며, 따라서 전형적으로 또한 가상 공간 내의 가상 제어기에 제공될 수 있다.
구현예들은 다음 구성들 중 하나 이상을 포함할 수 있다.
가상 제어기가 제1 가상 제어기로서 정의되고 물리적 제어기가 제1 물리적 제어기로서 정의되는 경우, 방법은 상기 컴퓨터 시스템에서 제2 가상 제어기를 제2 물리적 제어기와 연관시키는 단계; 및 상기 제2 기능을 상기 제2 가상 제어기에 할당하는 단계를 포함한다. 상기 제스처를 검출하는 것에 응답하여, 상기 제1 기능은 상기 제1 가상 제어기로부터 할당-해제되고, 상기 제1 기능은 상기 제2 가상 제어기에 할당되며, 그리고 상기 제2 기능은 상기 제2 가상 제어기로부터 할당-해제되고, 그리고 상기 제2 기능은 상기 제1 가상 제어기에 할당될 수 있다.
상기 제1 기능은 가상 페인팅 프로그램에서 브러쉬 기능을 포함하고, 상기 제2 기능은 상기 가상 페인팅 프로그램에서 팔레트 기능을 포함하고, 그리고 상기 제스처를 검출하는 것은 상기 가상 페인팅 프로그램에서 상기 브러쉬 기능 및 상기 팔레트 기능의 스와핑을 트리거링한다.
상기 제스처는 상기 제1 및 제2 물리적 제어기들을 사용하여 이루어질 수 있다. 예를 들면, 상기 제스처는 상기 제1 및 제2 물리적 제어기들이 서로를 향해 그리고 그 후에는 서로 멀어지도록 하는 것을 포함할 수 있고, 상기 제스처는 상기 제1 및 제2 물리적 제어기들이 서로를 향해 가까워지는 각각의 단부 및 그 후에는 서로 멀어지도록 하는 각각의 단부를 포함할 수 있다.
상기 제1 및 제2 물리적 제어기의 각각의 단부는 상기 제1 및 제2 물리적 제어기의 각각의 하단부일 수 있고, 여기서 예를 들면 각 제어기는 중립 위치에서 보통의 핸드헬드 사용의 방향인 경우 상단부와 하단부를 가지는 것으로서 정의될 수 있고, 여기서 예를 들면,상단부는 사용자의 엄지와 검지 손가락에 더 가깝고, 하단부는 사용자의 새끼 손가락에 더 가깝다.
제1 및 제2 물리적 제어기들은 서로 동일하거나 실질적으로 동일할 수 있다.
상기 방법은 상기 제스처를 검출하는 것에 응답하여, 상기 컴퓨터 시스템에서 디폴트로서, 상기 가상 제어기로부터 상기 제1 기능의 연관-해제 또는 상기 가상 제어기와의 상기 제2 기능의 연관을 저장하는 단계를 더 포함할 수 있다.
상기 가상 제어기는 상기 컴퓨터 시스템에 의해 생성된 가상 공간에 정의될 수 있고, 상기 제1 기능은 상기 제스처를 검출하는 것에 응답하여 상기 가상 제어기로부터 할당-해제되고, 상기 방법은 상기 가상 공간에 포인트를 정의하는 것, 그리고 상기 제스처를 검출하는 것에 응답하여 상기 제1 기능을 상기 포인트와 연관시키는 단계를 더 포함한다. 상기 제2 기능은 상기 제스처가 검출되기 전에 상기 가상 제어기에 이미 할당되어 있을 수 있다.
또한 이 컨텍스트에서, 가상 제어기는 제1 가상 제어기로서 정의되고, 물리적 제어기가 제1 물리적 제어기로서 정의되고, 방법은 상기 컴퓨터 시스템에서 제2 가상 제어기를 제2 물리적 제어기와 연관시키는 단계; 및 상기 제2 기능을 상기 제2 가상 제어기에 할당하는 단계를 더 포함한다.
상기 방법은 상기 제2 기능도 상기 제1 가상 제어기에 할당하는 단계를 더 포함할 수 있다. 예를 들면, 상기 제1 기능은 가상 페인팅 프로그램에서 팔레트 기능을 포함하고, 상기 제2 기능은 상기 가상 페인팅 프로그램에서 브러쉬 기능을 포함하고, 상기 제1 가상 제어기로부터의 상기 제1 기능의 연관-해제는, 제1 및 제2 물리적 제어기 둘 모두 상기 가상 페인팅 프로그램에서 상기 브러쉬 기능을 수행하기 위해 사용될 수 있다는 것을 의미한다.
상기 언급되고 아래에서 보다 상세하게 논의되는 다양한 양태들에서, 제스처는 예를 들어 물리적 제어기 상에 위치될 수 있는 센서를 사용하여 검출될 수 있다. 기술된 방법은 상기 센서에 의해 생성된 센서 데이터로부터 상기 물리적 제어기에 관한 속도 및 위치 정보를 추정(extrapolating)하는 단계를 더 포함할 수 있고, 상기 센서 데이터로부터 상기 물리적 제어기에 관한 방향 데이터를 추정하는 단계를 더 포함할 수 있다.
본 발명은 또한 설명된 방법을 실시하기 위한 컴퓨터 프로그램 코드를 포함하는 하나 이상의 컴퓨터 판독 가능 매체를 제공한다. 예를 들면, 본 발명은 비일시적 저장 매체에 유형적으로 수록된 컴퓨터 프로그램 물을 제공하며, 상기 컴퓨터 프로그램 물은 실행될 때 프로세서로 하여금 동작들을 수행하게 하는 명령어들을 포함하며, 상기 동작들은: 컴퓨터 시스템에서, 가상 제어기를 물리적 제어기와 연관시키는 동작; 상기 가상 제어기에 제1 기능을 할당하는 동작, 상기 할당은 상기 물리적 제어기를 사용하여 상기 제1 기능의 수행을 제공하며; 상기 물리적 제어기를 사용하여 수행되는 제스처를 검출하는 동작; 및 상기 제스처를 검출하는 것에 응답하여, 상기 가상 제어기로부터 상기 제1 기능을 할당-해제하고 및/또는 상기 가상 제어기에 제2 기능을 할당하는 동작을 포함한다.
본 발명은 또한 설명된 방법을 실시하도록 구성된 장치를 제공한다. 예를 들면, 본 발명은 프로세서 및 비일시적 저장 매체에 유형적으로 수록된 컴퓨터 프로그램 물을 포함하는 시스템을 제공하며, 상기 컴퓨터 프로그램 물은 실행될 때 상기 프로세서로 하여금 동작들을 수행하게 하는 명령어들을 포함하며, 상기 동작들은: 컴퓨터 시스템에서, 가상 제어기를 물리적 제어기와 연관시키는 동작; 상기 가상 제어기에 제1 기능을 할당하는 동작, 상기 할당은 상기 물리적 제어기를 사용하여 상기 제1 기능의 수행을 제공하며; 상기 물리적 제어기를 사용하여 수행되는 제스처를 검출하는 동작; 및 상기 제스처를 검출하는 것에 응답하여, 상기 가상 제어기로부터 상기 제1 기능을 할당-해제하고 및/또는 상기 가상 제어기에 제2 기능을 할당하는 동작을 포함한다.
또한 이러한 시스템은 연관된 방법을 구현하기 위해 요구되는 하나 이상의 물리적 제어기들을 포함할 수 있다.
도 1a-b는 가상 제어기에 대한 기능 할당의 예를 도시한다.
도 2a-f는 가상 제어기에 대한 기능 할당의 다른 예를 도시한다.
도 3은 시스템의 예를 도시한다.
도 4-5는 방법들의 예들을 도시한다.
도 6a-c는 가상 제어기에 대한 기능 할당의 다른 예를 도시한다.
도 7은 본 명세서에 기술된 기법들을 구현하는데 사용될 수 있는 컴퓨터 디바이스와 모바일 컴퓨터 디바이스의 예시를 도시한다.
다양한 도면들에서 기호들은 동일한 구성요소를 표시한다.
본 문서는 가상 제어기에 대한 기능 할당의 예들을 기술한다. VR(Virtual Reality) 어플리케이션을 사용 중이거나 사용하려고 하는 사람은 VR 시스템의 두 개 이상의 물리적 제어기들 간에 적어도 하나의의 기능을 편리하게 재할당하거나 재연관시킬 수 있다. 일부 실시예들에서, 사람은 재할당 또는 재연관을 개시하기 위해 미리 정의된 제스처를 수행할 수 있다. 예를 들면, 사람은 물리적 제어기의 각 단부를 서로 향해 가져온 다음 서로 멀어지도록 하여 기능(들)이 재할당되어야 한다는 의도를 신호할 수 있다. 이는 예를 들어 메뉴 시스템을 탐색하는 것보다 제어기들 간에 VR 기능을 재할당하는 보다 쉽고 빠르며 직관적인 방법일 수 있다.
도 1a-b는 가상 제어기에 대한 기능 할당의 예를 도시한다. 여기서, 가상 제어기들은 VR 프로그램에 의해 생성된 가상 공간(100) 내에 도시된다. 예를 들면, 가상 공간(100)은 VR 프로그램에 연결된 VR 헤드셋(예를 들어, 헤드 장착 디스플레이)을 착용한 사람에게 보여질 수 있다. 여기서, 가상 제어기(102)는 가상 공간(100)에서 보이고, 가상 제어기(102)는 하나 이상의 제어기들(104)을 갖는다. 예를 들면, 제어(들)(104)는 대응하는 물리적 제어기(도시되지 않음)에서 액세스 가능한 물리적 제어에 대응할 수 있다. 가상 제어기(102)의 형상은 물리적 제어기의 형상에 대응하거나 또는 유사할 수 있다. 유사하게, 다른 가상 제어기(106)도 가상 공간(100)에서 도시되며, 가상 제어기(106)는 하나 이상의 제어기들(108)을 갖는다.
VR 프로그램을 동작하는 사람은 오른손에 가상 제어기(102)에 대한 물리적 제어기를 들고 있고, 왼손에 가상 제어기(106)에 대한 물리적 제어기를 들고 있는 것과 같이, 각각의 손에 물리적 제어기 각각을 들고 있을 수 있다. 다른 예시로서, 제어기들은 신체의 일부분에 부착될 수 있다. 제어기들은 그들의 위치, 속도 및/또는 방향에 따라 추적될 수 있다. 사람이 손 또는 신체의 다른 부분을 사용하여 제어기(들)을 움직이는 경우, 가상 제어기(102 및/또는 106)는 가상 공간(100)에서 그에 따라 움직일 수 있다.
이 예시에서, 가상 공간(100)은 VR 프로그램 내의 페인팅 환경과 연관된다. 도 1a에서, 가상 제어기(102)는 브러쉬 기능이 할당되어 있다. 예를 들면, 가상 제어기(102)상의 팁(110)은 브러쉬 기능이 해당 제어기에 사용 가능함을 표시한다. 사람은 가상 제어기(102)에 대응하는 물리적 제어기를 움직임으로써 가상 공간(100)에서 브러쉬 스트로크를 생성할 수 있다. 예를 들면, 여기서 가상 제어기(102)를 사용하여 가상 공간(100)에 브러쉬 스트로크(112)가 생성된다.
또한, 가상 제어기(106)는 그것에 할당된 VR 프로그램의 다른 기능들을 갖는다. 여기서, 가상 툴박스(114)는 가상 제어기(106)를 적어도 부분적으로 둘러싸는 것으로서 가상 공간(100)에 개략적으로 도시된다. 예를 들면, 가상 툴박스(114)는 가상 툴박스(114)가 해당 가상 제어기와 함께 가상 공간(100) 내에서 움직이도록 가상 제어기(106)가 할당된 가상 제어기에 대해 고정될 수 있다. 가상 툴박스(114)는 사용을 위해 사용가능한 하나 이상의 가상 기능들을 포함할 수 있다.
여기서, 가상 툴박스(116)상의 휠(116)은 페인팅 환경의 브러쉬 기능을 위한 팔레트에 대응한다. 이와 같이, 휠(116)은 페인팅 환경에서 하나 이상의 팔레트 기능들을 위해 사용될 수 있다. 예를 들면, 팁(110)은 페인트 브러쉬에 특정한 컬러, 텍스처, 패턴 및/또는 다른 페인트 특성들을 할당하기 위해 휠(116)의 선택된 부분과 접촉될 수 있다. 예를 들면, 브러쉬 스트로크(112)의 하나 이상의 특성들은 휠(116)을 사용하여 제어될 수 있다. 하나 이상의 다른 기능들이 툴박스(114)와 연관될 수 있다. 여기서, 기능들(118)이 개략적으로 도시된다. 이는 다른 마킹 도구(예: 펜)를 선택하거나 및/또는 현재 마킹 도구의 일부 양태를 변경하는 것(예: 두께)과 같은 페인팅 환경의 다른 기능과 관련될 수 있다.
일부 구현예들에서, 가상 제어기(102)는 가상 공간(100)에 마킹을 적용하는 비교적 까다로운 동작에 사용되기 때문에 현재 지배적 제어기로 간주될 수 있다. 대조적으로, 가상 제어기(106)는 그 목적이 대체로 가상 제어기(102)에 의해 사용될 하나 이상의 툴들을 제공하는 것이고 및/또는 가상 제어기(102)의 기능을 증강시키는 것이기 때문에 비-지배적 제어기로 간주될 수 있다.
VR 프로그램은 가상 공간(100)에서 기능들을 할당 및/또는 할당-해제하는 하나 이상의 방법들을 제공할 수 있다. 일부 구현예에서, 스와핑 기능(120)에 의해 개략적으로 도시된 바와 같이, 가상 제어기(102 및 106) 사이에서 기능이 스와핑될 수 있다. 예를 들면, 사용자가 손에 들고 있는 물리적 제어기들을 물리적으로 스위칭할 필요없이, 지배적 제어기를 한 손에서 다른 손으로 옮기는데 사용될 수 있다. 스와핑 기능(120)은 가상 제어기들(102 및/또는 106)에 대응하는 하나 이상의 물리적 제어기들을 사용하여 미리 정의된 제스처를 수행함으로써 트리거링될 수 있다.
사람이 그러한 미리 정의된 제스처를 수행하고, 시스템이 이를 스와핑 기능(120)을 개시하기 위한 신호로서 해석한다고 가정한다. 도 1b는 스와핑 기능(120)의 실행 후의 가상 공간(100)의 일례를 도시한다. 비록 일부 예시에서, 제스처가 수행된 후에 제스처가 수행되기 전과 다른 위치에 있을 수 있지만, 가상 제어기들(102 및 106)은 현재 도 1a에서 도시된 대략적 위치들에 위치된다. 그러나, VR 프로그램의 기능은 제스처에 대한 응답으로 재할당된다. 예를 들면, 팁(110)은 더 이상 가상 제어기(102)에 할당되지 않으며; 오히려, 팁(110)은 현재 가상 제어기(106)에 할당된다. 유사하게, 툴박스(114) 및 그와 연관된 툴들은 더 이상 가상 제어기(106)에 할당되지 않지만 현재 가상 제어기(102)에 할당된다. 마킹 도구로 정의된 경우 가상 제어기(102)를 사용하여 생성된 브러쉬 스트로크(112)는 가상 공간(100)에서 보일 수 있다. 사람은 이제 마킹 도구로서 가상 제어기(106)를 사용하여 가상 공간(100)에서 하나 이상의 마킹들을 할 수 있다. 예를 들어, 사람은 가상 제어기(106)를 사용하여 또 다른 브러쉬 스트로크(122)를 생성할 수 있다. 반대로, 가상 제어기(102)는 휠(116), 기능(들)(118) 및/또는 가상 툴박스(114)와 연관된 임의의 다른 기능에 대해 현재 사용될 수 있다.
스와핑 기능(120)은 가상 공간(100)에서 기능들을 할당 및/또는 할당-해제하는 편리한 방법을 제공할 수 있다. 예를 들어, 도 1a의 구성이 사람이 VR 프로그램을 시작할 때 할당된다고 가정한다. 즉, 브러쉬 기능은 현재 오른쪽 물리적 제어기를 사용하여 작동을 위해 사용가능할 수 있다. 이것은 디폴트 설정일 수 있고 또는 시작시 중앙 유닛(예: VR 프로그램을 실행하는 컴퓨터 하우징)과 관련된 물리적 제어기들의 공간적 위치에 기초할 수 있다. 또한, 사람이 오른손 대신에 왼손을 사용하여 페인팅하는 것을 선호한다고 가정한다. 따라서, 사람은 스와핑 기능(120)을 작동시켜 가상 제어기(102)로부터 가상 제어기(106)(왼손을 사용하여 조작됨)로 브러쉬 기능을 편리하게 재할당하고 나머지 기능을 가상 제어기(102)(오른손을 사용하여 조작됨)에 재할당할 수 있다. 일단 이 스와핑(또는 다른 재할당 또는 할당-해제)이 시스템에 의해 수행되면, 결과하는 할당(들)은 VR 프로그램의 디폴트(기본값)로서 저장될 수 있다. 예를 들어, 동일한 사용자가 다음에 VR 프로그램을 런칭할 때, 상기 할당들은 도 1b에 도시된 바와 같이 적용될 수 있다. 하나 이상의 기능들의 할당 또는 재할당은 실행 취소되거나 되돌릴 수 있다. 예를 들어 사용자가 미리 정의된 제스처(또는 다른 제스처)를 수행하면, 시스템은 이전에 이루어진 할당을 실행 취소하거나 되돌릴 수 있다.
즉, 컴퓨터 시스템에서 가상 제어기를 물리적 제어기와 연관시키는 것을 포함하는 방법이 수행될 수 있다. 예를 들어, 가상 제어기(102)는 사용자가 오른손에 들고 있는 물리적 제어기(도시되지 않음)와 연관될 수 있다. 상기 방법은 제1 기능을 가상 제어기에 할당하는 것을 포함할 수 있고, 상기 할당은 물리적 제어기를 사용하여 제1 기능의 수행을 제공한다. 예를 들어, 팁(110)에 의해 도시된 브러쉬 기능은 가상 제어기(102)에 할당될 수 있다. 상기 방법은 물리적 제어기를 사용하여 수행되는 제스처를 검출하는 것을 포함할 수 있다. 예를 들어, 사용자는 스와핑 기능(120)을 작동시키기 위해 미리 정의된 제스처를 수행할 수 있다. 상기 방법은 상기 제스처를 검출하는 것에 응답하여, 상기 가상 제어기로부터 상기 제1 기능을 할당-해제하고 및/또는 상기 가상 제어기에 제2 기능을 할당하는 것을 포함할 수 있다. 예를 들어, 팁(110)은 가상 제어기(102)로부터 할당-해제될 수 있다. 다른 예시로서, 가상 툴박스(114)는 가상 제어기(102)에 할당될 수 있다.
도 2a-f는 가상 제어기에 대한 기능 할당의 다른 예를 도시한다. 여기서, 가상 제어기(202 및 204)는 가상 공간(204)에 도시된다. 예를 들어, 가상 공간(204)은 VR 헤드셋 또는 다른 것을 사용하여 볼 수 있다. 현재, 가상 제어기(202)는 라벨 "D"로 표시된 바와 같이 지배적 제어기이다. 여기서 라벨은 설명의 목적으로 사용되며 가상 공간(204)에서 보일 필요는 없다. 적어도 하나의 기능은 지배적 제어기로서 정의된 결과로서 가상 제어기(202)에 할당될 수 있다.
이제 사용자가 지배성을 왼쪽 제어기에서 오른쪽 제어기로 스위칭하기를 원한다고 가정한다. 그 다음, 사용자는 가상 제어기들(200 및 202)와 연관된 하나 이상의 물리적 제어기들(도시되지 않음)을 사용하여 미리 정의된 제스처를 수행할 수 있다. 도 2a의 화살표(206)는 사용자가 여기에서 가상 제어기들(200 및 202)을 서로 분리하기 시작함을 표시한다.
도 2b에서, 각각의 화살표(208)는 사용자가 반대 방향으로 가상 제어기들(200 및 202)을 향하게 한 것을 표시한다. 예를 들어, 가상 제어기들(200 및 202)의 각각의 단부(210)는 현재 서로 마주하고 있다. 임의의 단부는 제어기의 상단부 및/또는 하단부를 포함하는 것으로 사용될 수 있지만 이에 제한되지는 않는다.
도 2c에서, 각각의 화살표(212)는 사용자가 가상 제어기들(200 및 202)을 서로를 향하여, 여기서는 본질적으로 수평으로 움직이는 것을 표시한다. 이는 가상 제어기들(200 및 202)의 각각의 단부(210)가 서로 접촉하거나 또는 서로 거의 접촉할 때까지 행해질 수 있다. 일부 구현예들에서, 모션은 처음에 가상 제어기(200 및 202)가 적어도 최소 거리만큼 분리된 때 인식될 수 있고, 그 다음 서로 향하여 이들의 모션이 개시된다. 예를 들어, 이는 사용자가 실수로 제스처를 수행하는 것을 피할 수 있다.
도 2b에서, 화살표(214)는 사용자가 그후에 가상 제어기들(200 및 202)을 서로 멀어지도록 움직이는 것을 표시한다. 일부 구현예에서, 이는 도 2c에서 함께 가져온 것과 실질적으로 반대 방향으로 수행될 수 있다. 일부 구현예에서, 가상 제어기(200 및 202)가 적어도 최소 거리만큼 이격된 후에 모션이 인식될 수 있다. 예를 들어, 이는 사용자가 실수로 제스처를 수행하는 것을 피할 수 있다.
화살표(206, 208, 212 및/또는 214)에 의해 표시된 모션들은 하나 이상의 가상 제어기들(200 및 202)에 기능을 할당 및/또는 할당-해제하는 것과 연관된 미리 정의된 제스처의 사용자에 의한 의도적인 수행으로 시스템에 의해 해석될 수 있다. 예를 들어, 제스처는 가상 제어기(200 및 202)와 연관된 물리적 제어기가 서로를 향하여 그리고 그 후에 서로 멀어지도록 하는 것을 포함할 수 있다. 다른 예시로서, 제스처는 물리적 제어기의 각 단부가 서로를 향하도록 하는 것과 그 후에는 상기 단부들이 서로 멀어지도록 하는 것을 포함할 수 있다. 상기 제스처(들)을 검출하는 것에 응답하여, 시스템은 할당/할당-해제를 수행할 수 있다.
예를 들어, 지배성은 하나의 가상 제어기에서 다른 가상 제어기로 이동될 수 있다. 도 2e는 가상 제어기(200)가 현재 지배적 제어기임을 나타낸다. 대조적으로, 가상 제어기(202)는 더 이상 지배적 제어기가 아니다. 예를 들어, 이것은 사람이 하나 이상의 VR 프로그램에서 가상 제어기의 권한을 스위칭할 수 있는 편리한 방법이 될 수 있다.
도 2f는 각각의 화살표(216)로 표시된 바와 같이, 사용자가 가상 제어기(200 및 202)를 더 세워서 또는 전방쪽으로 향하게 하는 것을 도시한다. 일부 구현예에서, 이는 사용자가 가상 제어기(들)에 할당된 하나 이상의 기능을 수행하는 것을 시작할 수 있는 위치에 가상 제어기(들)를 위치시킬 수 있다. 예를 들어, 사용자는 현재 지배적 가상 제어기(200)를 이용하여 가상 공간(204)에서 하나 이상의 기능들을 수행할 수 있다.
하나 이상의 물리적 제어기를 사용하는 제스처의 수행은 하나 이상의 방식들로 검출될 수 있다. 물리적 제어기의 상에 또는 내부에, 또는 물리적 제어기의 위치와 움직임을 검출할 수 있는 다른 위치에 센서들이 사용될 수 있다. 예를 들어, 시스템의 다른 컴포넌트는 물리적 제어기(들)의 위치, 속도 및/또는 방향을 검출하도록 센서(들)를 포함할 수 있다.
일부 구현예에서, 가상 공간(204) 및 가상 제어기들(200 및 202)을 생성하는 VR 시스템은 프레임에 기초하여 동작할 수 있고, 각 프레임은 가상 공간이 사용자에게 제시될 것이므로 가상 공간의 순간에 대응한다. 각 프레임에 대해 하나 이상의 물리적 제어기들의 위치가 시스템에 의해 결정될 수 있다. 물리적 제어기가 움직이면, 해당 위치가 한 프레임에서 다음 프레임으로 변경될 수 있다. 이러한 프레임 데이터에 기초하여, 시스템은 물리적 제어기에 관한 하나 이상의 특성들을 결정할 수 있다. 예를 들어, 물리적 제어기의 속도와 위치는 둘 이상의 프레임에 걸쳐 센서 데이터로부터 추정될 수 있다. 다른 예시로서, 물리적 제어기의 방향(예를 들어, 그 끝이 가르키는 방향)은 센서 데이터로부터 추정될 수 있다. 예를 들어, 상기 속도, 위치 및/또는 방향 정보는 상기 예시된 것을 포함하지만 이에 한정되지 않은 제스처를 검출하는데 사용될 수 있다.
도 3은 시스템(300)의 예를 도시한다. 여기서, 시스템(300)은 VR 기능을 생성하는 VR 시스템이다. 즉, VR 시스템(300)은 예를 들어 사용자가 VR 헤드셋 및 하나 이상의 물리적 제어기들을 사용하여 인터렉션하도록 하나 이상의 VR 어플리케이션들을 실행하는데 사용될 수 있다. 특히, VR 시스템(300)은 하나 이상의 VR 공간들(302)을 생성할 수 있다. 예를 들어, 가상 공간(100; 도 1a-b) 및/또는 가상 공간(204; 2a-f)이 생성될 수 있다.
여기서, VR 시스템(300)은 그 안에 다수의 VR 기능들(304)을 정의하고 있다. 기능은 VR 프로그램에 의해 제공될 임의의 유형의 기능과 관련될 수 있다. 그래픽 또는 다른 시각 예술과 관련된 VR 프로그램에서, VR 기능(304)은 단지 두 가지 예를 들자면, 브러쉬 기능 및 팔레트 기능을 포함할 수 있다.
VR 시스템(300)은 또한 그 안에 다수의 VR 제어기들(306)을 정의할 수 있다. 일부 구현예에서, 하나 이상의 가상 제어기들(306)은 사용자가 VR 제어기(306)를 조작할 수있는 물리적 제어기와 시각적으로 유사하다. 예를 들어, VR 제어기들(306)은 가상 제어기들(102, 106)(도 1a-b) 및/또는 가상 제어기들(200 및 202)(도 2a-f)을 포함 할 수 있다. VR 기능들(304)은 할당 기능(308)을 통해 VR 제어기들(306) 각각에 할당된다. 예를 들어, VR 제어기들(306) 중 하나는 하나 이상의 VR 기능들(304)에 할당될 수 있다. VR 기능(304)은 그것에 대응하는 VR 제어기(306)의 가시적 피처로서 표시될 수 있다(예컨대, 도 1a의 가상 제어기(102)상의 팁(110)과 같이). 할당은 사용자 및/또는 시스템에 의해 변경될 수 있다. 예를 들어, 사용자는 미리 정의된 제스처를 수행하여 가상 제어기들과 관련된 스와핑 기능을 개시할 수 있으며, 스와핑 기능은 할당 기능(308)의 일부이다.
VR 시스템(300)은 다수의 VR 제어기들(310)을 포함할 수 있다. 일부 구현예에서, 물리적 제어기는 그 위치, 속도 및/또는 방향의 관점을 포함하지만 이에 제한되지 않는, 하나 이상의 관점에서 VR 시스템에 의해 추적되는 물리적 디바이스이다. 예를 들어, 물리적 제어기들(310)은 가상 제어기들(102, 106)(도 1a-b) 및/또는 가상 제어기들(200 및 202)(도 2a-f)을 조작하는데 사용되는 물리적 제어기들을 포함할 수 있다. VR 기능들(306)은 할당 기능(312)을 통해 물리적 제어기들(310) 각각과 연관된다. 예를 들어, VR 제어기들(306) 중 하나는 하나 이상의 물리적 제어기들(310)과 연관될 수 있다. 그 다음, 물리적 제어기(310)는 그것이 연관된 VR 제어기(306)를 조작하는데 사용될 수 있다. 상기 연관은 사용자 및/또는 시스템에 의해 변경될 수 있다.
물리적 제어기(310)는 본질적으로 서로 동일할 수 있다. 예를 들어, 각 제어기는 실질적으로 다른 물리적 제어기와 동일한 하드웨어 구성(예: 전자적 및 외형적 폼 팩터)을 가질 수 있으며, 생성된 신호의 일부 특성(예: 고유 식별자)으로 구분될 수 있다. 다른 구현예에서, 2 이상의 물리적 제어기들(310)은 서로 물리적 차이점을 가질 수 있다. 예를 들어, 하나의 물리적 제어기(310)는 오른손으로 잡히도록 구성된 외형적 폼 팩터를 가질 수 있고, 다른 물리적 제어기(310)는 왼손으로 잡히도록 구성된 외형적 폼 팩터를 가질 수 있다.
검출 시스템(314)이 사용될 수 있다. 검출 시스템(314)은 VR 시스템(300) 및/또는 물리 제어기들(310)의 일부일 수 있거나, 단지 몇 가지 예를 들자면, 다른 유닛들과 인터렉션하는 별도의 컴포넌트일 수 있다. 검출 시스템(314)은 물리적 제어기들(310) 중 적어도 하나에 관한 일부 특성을 결정하기 위해 하나 이상의 센서들(316)을 사용하는 것에 기초한다. 이 결정은 검출 시스템(314)과 물리적 제어기들(310) 사이의 커플링(318)을 사용하여 개략적으로 도시된다. 예를 들어, 센서(들)(316)는 물리적 제어기(310) 상에 또는 내부에 위치될 수 있고 그 위치, 속도 및/또는 방향을 반영하는 신호를 생성할 수 있다. 다른 예시로서, 센서(들)(316)은 사용자가 VR 시스템(300)을 이용하는 공간(예: 방)에 위치될 수 있고, 물리적 제어기(들)(310)의 특성을 하나 이상의 방식으로 검출할 수 있다. 센서들은 하나 이상의 적절한 감지 기술을 사용하여 동작할 수 있다. 예를 들어, 제한없이, 광학, 오디오, 전자기 신호 또는 임의의 다른 형태의 통신이 사용될 수 있다.
검출 시스템(314)은 물리적 제어기(들)(310)에 관한 센서 데이터에 기초하여 하나 이상의 신호들을 생성할 수 있다. 일부 구현예에서, 위치, 속도 및/또는 방향의 추정(extrapolation)이 수행될 수 있다. 예를 들어, 이러한 추정은 검출 시스템(314)에 의해 수행될 수 있고 신호(320)에 의해 할당 기능(308)에 제공될 수 있다. 다른 예시로서, 신호(320)는 물리적 제어기(들)(310)에 관한 원시 센서 데이터를 포함하고, VR 시스템(300)은 하나 이상의 유형의 추정을 수행할 수 있다(할당 함수(308)에 의해서와 같이). 이와 같이, 하나 이상의 가상 기능들(304)을 VR 제어기들(306) 중 적어도 하나에 할당하는 것은 신호(320)에 기초하여 업데이트될 수 있다.
도 4-5는 방법들(400 및 500)의 예들을 도시한다. 방법들은 VR 시스템(300)(도 3)을 포함하지만 그에 한정되지 않는 컴퓨터 시스템에서 수행될 수 있다. 일부 구현예에서, 명령어는 비일시적 저장 매체에 유형적으로 수록된 컴퓨터 프로그램 물에 저장된다. 실행될 때, 상기 명령어들은 프로세서로 하여금 방법(400 및/또는 500)의 동작들을 수행하게 할 수 있다. 하나 이상의 추가 단계 또는 더 적은 단계가 수행될 수 있다. 다른 예시로서, 두 개 이상의 동작들은 다른 순서로 수행될 수 있다.
단계(410)에서, 방법(400)으로 시작하여, 가상 제어기는 컴퓨터 시스템 내의 물리적 제어기와 연관된다. 단계(420)에서, 제1 기능이 가상 제어기에 할당된다. 할당은 물리적 제어기를 사용하는 제1 기능의 수행을 제공한다. 단계(430)에서, 물리적 제어기를 사용하여 수행된 제스처가 검출된다. 단계(440)에서, 제스처를 검출하는 것에 응답하여, 제1 기능은 가상 제어기로부터 할당-해제되거나 제2 기능이 가상 제어기에 할당된다.
이제 방법(500)을 참조하면, 510에서, 센서 데이터가 수신될 수 있다. 이 센서 데이터는 하나 이상의 물리적 제어기와 관련될 수 있다. 단계(520)에서, 물리적 제어기(들)에 관한 속도 데이터가 센서 데이터로부터 추정될 수 있다. 단계(530)에서, 물리적 제어기(들)에 관한 위치 데이터가 센서 데이터로부터 추정될 수 있다. 단계(540)에서, 물리적 제어기(들)에 관한 방향 데이터가 센서 데이터로부터 추정될 수 있다. 550에서, 물리적 제어기(들)을 사용하여 생성된 하나 이상의 제스처들이 검출될 수 있다. 이것은 도 2a-f에서 예시된 제스처를 포함할 수 있지만, 이에 한정되는 것은 아니다.
도 6a-c는 가상 제어기들에 대한 기능 할당의 다른 예를 도시한다. 여기서, 가상 공간(600)은 현재 가상 제어기(602)를 포함한다. 가상 제어기(602)는 물리적 제어기(미도시)를 사용하여 조작될 수 있다. 가상 제어기(602)는 할당된 하나 이상의 기능을 가지며, 그 중 일부는 가상 공간(600)에서 볼 수 있는 그리드(604)에 의해 개략적으로 표현된다. 예를 들어, 그리드(604)는 물리적 제어기를 사용하여 가상 제어기(602)를 조작함으로써 사용자가 현재 수행할 수 있는 적어도 하나의 기능을 나타낼 수 있다. 이제 사용자는 가상 제어기(602)로부터 그리드(604)에 의해 표현된 기능(들)을 일시적으로 제거하기를 원한다고 가정한다. 이를 위해, 사용자는 가상 공간(600)에 정의된 포인트(606)를 사용할 수 있다.
일부 구현예에서, 사용자는 적어도 가상 제어기(602)의 물리적 제어기를 사용하여 미리 정의된 제스처를 수행할 수 있다. 제스처가 수행되었다는 것을 시스템이 인식하면, 시스템은 대신에 가상 제어기(602)의 하나 이상의 기능들을 포인트(606)에 할당할 수 있다. 도 6b는 그리드(604)는 현재 가상 제어기(602)에 할당되지 않고 대신에 현재 가상 공간(600)에서 포인트(606)에 할당됨을 도시한다. 이 액션은 예를 들어 사용자가 미리 정의된 제스처를 다시 수행함에 따라 되돌릴 수 있다.
가상 제어기(602)에 할당된 하나 이상의 기능들은 그리드(604)가 그로부터 할당-해제된 후에도 남아 있을 수 있다. 여기서, 가상 제어기(602)에는 여전히 팁(608)이 제공된다. 팁(608)은 그리드(604)의 할당-해제 이전에 가상 제어기(602)에 할당되어 있을 수 있다. 예를 들어, 페인팅을 구성하는 VR 프로그램에서, 팁(608)은 브러쉬 기능과 같이 가상 제어기(602)를 페인팅(또는 그리기)하는 능력을 개략적으로 나타낼 수 있다. 이와 같이, 시스템 가상 제어기(602)로부터 다른 기능(들)을 할당-해제한 후에도, 사용자는 가상 제어기(602)를 사용하여 페인트 또는 그리기 능력을 유지할 수 있다. 이것은 유용한 유연성을 제공할 수 있다. 예를 들어, 도 6c는 시스템이 가상 제어기(602)를 조작하는 것 이외의 다른 물리적 제어기를 사용하여 조작되는 다른 가상 제어기(610)를 가질 수 있음을 나타낸다. 가상 제어기(610)는 그 자신의 대응 팁(612)을 가질 수 있다. 이와 같이, 사용자는 현재 가상 공간(600)에서 페인팅하기 위해, 가상 제어기(602 및 610) 중 하나 또는 가상 제어기들(602 및 610) 둘 모두를 동시에 사용할 수 있다. 어떤 시점에서, 그리드(604)의 기능(들)을 사용하기 위해, 사용자는 포인트(606)로부터 기능(들)을 할당-해제하기 위해 요구되는 제스처를 수행할 수 있고, 대신에 기능(들)이 가상 제어기들(602 및 610) 중 적어도 하나에 할당되도록 할 수 있다.
도 7은 본 명세서에 기술된 기법들을 구현하는데 사용될 수 있는 컴퓨터 디바이스와 모바일 컴퓨터 디바이스의 예시를 도시한다. 도 7는 본 명세서에 기술된 기법들과 사용될 수 있는 일반적 컴퓨터 디바이스(700)와 일반적 모바일 컴퓨터 디바이스(750)의 예시를 도시한다. 컴퓨팅 디바이스(700)는 랩톱, 데스크톱, 태블릿, 워크 스테이션, 개인 휴대 정보 단말기, 텔레비전, 서버, 블레이드 서버, 메인 프레임 및 다른 적절한 컴퓨팅 디바이스와 같은 다양한 형태의 디지털 컴퓨터들을 나타내기 위한 것이다. 컴퓨팅 디바이스(750)는 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트폰 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태의 모바일 디바이스들을 나타내기 위한 것이다. 여기에 도시된 컴포넌트들, 그들의 연결 및 관계, 및 그들의 기능은 단지 예시적인 것을 의미하며, 본 명세서에 기술된 및/또는 청구된 발명의 구현을 제한하는 것을 의미하지는 않는다.
컴퓨팅 디바이스(700)는 프로세서(702), 메모리(704), 저장 디바이스(706), 메모리(704) 및 고속 확장 포트(710)에 연결되는 고속 인터페이스(708) 및 저속 버스(714) 및 저장 디바이스(706)에 연결되는 저속 인터페이스(712)를 포함한다. 프로세서(702)는 반도체 기반 프로세서일 수 있다. 메모리(704)는 반도체 기반 메모리일 수 있다. 컴포넌트들(702, 704, 706, 708, 710 및 712) 각각은 다양한 버스들을 사용하여 상호 연결되고, 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(702)는 메모리(704) 또는 저장 디바이스(706)에 저장된 명령어들을 포함하는, 컴퓨팅 디바이스(700) 내에서 실행하기 위한 명령어들을 프로세싱하여, 고속 인터페이스(708)에 연결된 디스플레이(716)와 같은 외부 입/출력 디바이스상에 GUI에 대한 그래픽 정보를 디스플레이 할 수 있다. 다른 구현예에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 다수의 유형의 메모리와 함께, 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(700)은 필요한 동작의 부분들을 제공하는 각 디바이스와 연결될 수 있다(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템).
메모리(704)는 컴퓨팅 디바이스(700) 내에 정보를 저장한다. 일 구현예에서, 메모리(704)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현예에서, 메모리(704)는 비휘발성 메모리 유닛 또는 유닛들이다. 또한, 메모리(704)는 자기 또는 광학 디스크와 같은 컴퓨터 판독가능 매체의 다른 형태 일 수 있다.
저장 디바이스(706)는 컴퓨팅 디바이스(700)에 대한 대형 저장소를 제공할 수 있다. 일 구현예에서, 저장 디바이스(706)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성의 디바이스를 포함하는 디바이스의 어레이와 같은 컴퓨터 판독가능 매체이거나 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함할 수 있다. 정보 캐리어는 메모리(704), 저장 디바이스(706) 또는 프로세서(702)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
고속 제어기(708)는 컴퓨팅 디바이스(700)에 대한 대역폭 집중 동작들을 관리하는 반면, 저속 제어기(712)는 낮은 대역폭 집중 동작들을 관리한다. 이러한 기능들의 할당은 단지 예시적인 것이다. 일 구현예에서, 고속 제어기(708)는 메모리(704), 디스플레이(716)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(도시되지 않음)를 수용할 수 있는 고속 확장 포트(710)에 연결된다. 구현예에서, 저속 제어기(712)는 저장 디바이스(706) 및 저속 확장 포트(714)에 결합된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스 또는 예를 들어 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(700)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 표준 서버(720)로서 또는 그러한 서버들의 그룹에서 다수로 구현될 수 있다. 또한, 랙 서버 시스템(724)의 일부로서 구현될 수 있다. 또한, 랩톱 컴퓨터(722)와 같은 퍼스널 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(700)로부터의 컴포넌트들은 디바이스(750)와 같은 모바일 디바이스(도시되지 않음) 내의 다른 컴포넌트들과 결합될 수 있다. 상기 디바이스들 각각은 컴퓨팅 디바이스(700, 750) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(700, 750)로 구성될 수 있다.
컴퓨팅 디바이스(750)는 다른 여러 컴포넌트들 중에서도 특히, 프로세서(752), 메모리(764), 디스플레이(754)와 같은 입/출력 디바이스, 통신 인터페이스(766) 및 송수신기(768)를 포함한다. 디바이스(750)에는 또한 추가적 저장을 제공하기 위해 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 컴포넌트들(750, 752, 764, 754, 766 및 768) 각각은 다양한 버스들을 사용하여 상호 연결되고, 몇몇 컴포넌트들은 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다.
프로세서(752)는 메모리(764)에 저장된 명령어들을 포함하는 컴퓨팅 디바이스 (750) 내의 명령어들을 실행할 수 있다. 프로세서는 별개의 그리고 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서는 예를 들어 사용자 인터페이스들, 디바이스(750)에 의해 실행되는 어플리케이션 및 디바이스(750)에 의한 무선 통신과 같은 디바이스(750)의 다른 컴포넌트들의 조정을 제공할 수 있다.
프로세서(752)는 제어 인터페이스(758) 및 디스플레이(754)에 연결된 디스플레이 인터페이스(756)를 통해 사용자와 통신할 수 있다. 디스플레이(754)는 예를 들어, TFT LCD(박막 트랜지스터 액정 디스플레이) 또는 OLED(유기 발광 다이오드) 디스플레이 또는 다른 적절한 디스플레이 기술을 포함할 수 있다. 디스플레이 인터페이스(756)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(754)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(758)는 사용자로부터 명령을 수신하고, 프로세서(752)에 제출하기 위해 그들을 변환할 수 있다. 추가로, 외부 인터페이스(762)는 프로세서(752)와의 통신에 제공되어 다른 디바이스들과 디바이스(750)의 근거리 통신을 가능하게 할 수 있다. 외부 인터페이스(762)는 예를 들면, 일부 구현예들에서는 유선 통신을 위해 또는 다른 구현예들에서는 무선 통신을 위해 제공될 수 있고, 다수의 인터페이스들도 사용될 수 있다.
메모리(764)는 컴퓨팅 디바이스(750) 내에 정보를 저장한다. 메모리(764)는 컴퓨터 판독가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로 구현될 수 있다. 또한 확장 메모리(774)는 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(772)를 통해 디바이스(750)에 제공되고 접속될 수 있다. 상기 확장 메모리(774)는 디바이스(750)에 대해 추가 저장 공간을 제공할 수 있거나, 또는 어플리케이션들 또는 디바이스(750)에 대한 다른 정보를 저장할 수 있다. 특히, 확장 메모리(774)는 전술한 프로세스들을 수행하거나 보충하는 명령어들을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(774)는 디바이스(750)에 대한 보안 모듈로서 제공될 수 있고, 디바이스(750)의 보안 사용을 허용하는 명령어들로 프로그래밍될 수 있다. 또한, 보안 어플리케이션들은 SIMM 카드 상의 식별 정보를 해킹할 수 없는 방식으로 배치하는 것과 같이, SIMM 카드들을 통해 추가 정보와 함께 제공될 수 있다.
메모리는 예를 들어, 후술되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록된다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는 예를 들어 송수신기(768) 또는 외부 인터페이스(762)를 통해 수신될 수 있는 메모리(764), 확장 메모리(774) 또는 프로세서(752)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
디바이스(750)는 필요에 따라 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(766)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(766)는 다른 것들 중에서도 GSM 보이스 콜들, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드들 또는 프로토콜들 하에서의 통신을 위해 제공될 수 있다. 이러한 통신은 예를 들어, 무선 주파수 송수신기(768)를 통해 발생될 수 있다. 추가로, 블루투스, Wi-Fi 또는 다른 트랜시버(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 발생될 수 있다. 추가로, GPS(Global Positioning System) 수신기 모듈(770)은 디바이스(750)상에서 실행되는 어플리케이션들에 의해 적절히 사용될 수 있는 추가적인 네비게이션 및 위치 관련 무선 데이터를 디바이스(750)에 제공할 수 있다.
디바이스(750)는 또한 사용자로부터 발화된 정보를 수신하고 그것을 이용가능한 디지털 정보로 변환할 수 있는 오디오 코덱(760)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(760)은 마찬가지로, 예를 들어 디바이스(750)의 핸드셋 내의 스피커를 통하는 것과 같이, 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 보이스 전화 콜들로부터의 사운드 포함할 수 있고, 기록된 사운드(예를 들어, 음성 메시지, 음악 파일 등)를 포함할 수 있고, 또한 디바이스(750)상에서 동작하는 어플리케이션들에 의해 생성된 사운드를 포함할 수 있다.
컴퓨팅 디바이스(750)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들면, 그것은 셀룰러 전화(780)로서 구현될 수 있다. 또한 스마트폰(782), 개인 휴대 정보 단말기(PDA), 또는 다른 유사한 이동 디바이스의 일부로서 구현될 수 있다.
사용자는 추적된 제어기(784)를 사용하여 컴퓨팅 디바이스와 인터렉션할 수 있다. 일부 구현예에서, 제어기(784)는 손, 발, 머리 및/또는 몸통과 같은 사용자 신체의 움직임을 추적할 수 있고, 추적된 모션에 대응하는 입력을 생성할 수 있다. 입력은 3 차원과 같이 모션의 하나 이상의 차원에서의 움직임에 해당할 수 있다. 예를 들어 추적된 제어기는 VR 어플리케이션에 대한 물리적 제어기일 수 있고, 물리적 제어기는 VR 어플리케이션에서 하나 이상의 가상 제어기들과 연관된다. 다른 예시로서, 제어기(784)는 데이터 글러브를 포함할 수 있다.
본 명세서에 기술된 시스템들 및 기법들의 다양한 구현예들은 디지털 전자 회로, 집적 회로, 특수하게 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 구현될 수 있다. 이들 다양한 구현예들은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행가능하고 및/또는 인터프리트가능한 하나 이상의 컴퓨터 프로그램들에서의 구현예를 포함할 수 있고, 이는 전용 또는 범용일 수 있고, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스으로부터 데이터 및 명령어들을 수신하고 그에 데이터 및 명령어들을 전송하기 위해 연결될 수 있다.
이들 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 어플리케이션 또는 코드로도 알려짐)은 프로그래머블 프로세서에 대한 기계 명령어들을 포함하며, 하이레벨 절차어 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계어에서 구현될 수 있다. 본 명세서에서 사용된 바와 같이, 용어 “기계 판독가능 매체”, “컴퓨터 판독가능 매체”는 기계 판독가능 신호로서 기계 명령어들을 수신하는 기계 판독가능 매체를 포함하여, 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 컴퓨터 프로그램 물, 장치 및/또는 디바이스 예를 들어, 자기 디스크, 광학 디스크, 메모리, 프로그래머블 로직 디바이스(PLD)를 지칭한다. 용어 “기계 판독가능 신호”는 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 시스템들 및 기법들은 사용자에게 정보를 디스플레이하기 위해 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에서 기술된 시스템들 및 기법들은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 시스템들 및 기법들의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 LAN(local area network), WAN(wide area network) 및 인터넷을 포함한다.
컴퓨팅 시스템은 사용자들 및 서버들을 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
일부 구현예에서, 도 7에 도시된 컴퓨팅 디바이스는 가상 현실(VR 헤드셋(785))과 인터페이싱하는 센서들을 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(750) 또는 도 7에 도시된 다른 컴퓨팅 디바이스에 포함된 하나 이상의 센서는 VR 헤드셋(785)에 입력을 제공하거나 일반적으로 VR 공간에 입력을 제공할 수 있다. 센서는 터치 스크린, 가속도계, 자이로스코프, 압력 센서, 생체 센서, 온도 센서, 습도 센서 및 주변광 센서를 포함할 수 있지만 이에 제한되지 않는다. 컴퓨팅 디바이스(750)는 VR 공간으로의 입력으로서 사용될 수 있는 VR 공간 내의 컴퓨팅 디바이스의 절대 위치 및/또는 검출된 회전을 결정하기 위해 센서들을 사용할 수 있다. 예를 들어, 컴퓨팅 장치(750)는 제어기, 레이저 포인터, 키보드, 무기 등과 같은 가상 오브젝트로서 VR 공간에 통합될 수 있다. VR 공간에 통합된 경우 사용자에 의한 컴퓨팅 디바이스/가상 오브젝트의 위치는 사용자로 하여금 컴퓨팅 디바이스를 위치시켜 VR 공간에서 특정 방식으로 가상 오브젝트을 보게 한다. 예를 들어, 가상 오브젝트가 레이저 포인터를 나타내는 경우, 사용자는 실제 레이저 포인터인 것처럼 컴퓨팅 디바이스를 조작할 수 있다. 사용자는 컴퓨팅 디바이스를 좌우, 위, 아래, 원 등으로 움직일 수 있으며, 레이저 포인터를 사용하는 것과 유사한 방식으로 디바이스를 사용할 수 있다.
일부 구현예에서, 컴퓨팅 디바이스(750)에 포함되거나 연결되는 하나 이상의 입력 디바이스들이 VR 공간에 대한 입력으로 사용될 수 있다. 입력 디바이스들은 터치 스크린, 키보드, 하나 이상의 버튼들, 트랙 패드, 터치 패드, 포인팅 디바이스, 마우스, 트랙볼, 조이스틱, 카메라, 마이크로폰, 이어폰 또는 입력 기능이 있는 버드, 게임 컨트롤러 또는 기타 연결 가능한 입력 디바이스들을 포함할 수 있으며, 이제 한정되지 않는다. 컴퓨팅 디바이스가 VR 공간에 통합될 때 컴퓨팅 디바이스(750)에 포함된 입력 디바이스와 인터렉션하는 사용자는 특정한 액션이 VR 공간에서 발생하도록 할 수 있다.
일부 구현예에서, 컴퓨팅 디바이스(750)의 터치 스크린은 VR 공간에서 터치 패드로서 렌더링될 수 있다. 사용자는 컴퓨팅 디바이스(750)의 터치 스크린과 인터렉션할 수 있다. 인터렉션들은 예를 들어 VR 헤드셋(785)에서 VR 공간에서 렌더링된 터치 패드상의 움직임에 따라 렌더링된다. 렌더링된 움직임은 VR 공간에서 오브젝트들을 제어할 수 있다.
일부 구현예에서, 컴퓨팅 디바이스(750)에 포함된 하나 이상의 출력 디바이스들은 VR 공간에서 VR 헤드셋(785)의 사용자에게 출력 및/또는 피드백을 제공할 수 있다. 출력 및 피드백은 시각적, 촉각적 또는 청각적일 수 있다. 출력 및/또는 피드백은 진동, 하나 이상의 조명 또는 스트로브의 켜고 끄기 또는 깜박임 및/또는 플래시, 알람 울리기, 차임을 치는 것, 노래 연주 및 오디오 파일의 재생 등을 포함할 수 있으며, 이에 한정되지 않는다. 출력 디바이스들은 진동 모터, 진동 코일, 압전 장치, 정전기 장치, 발광 다이오드(LED), 스트로브 및 스피커를 포함할 수 있으며, 이제 한정되지 않는다.
일부 구현예에서, 컴퓨팅 디바이스(750)는 컴퓨터 생성 3D 환경에서 다른 오브젝트로서 표시될 수 있다. 사용자에 의한 컴퓨팅 디바이스(750)와의 인터렉션들(예를 들어, 회전, 흔들기, 터치스크린 터치, 터치 스크린을 가로지르는 손가락 스와이핑)은 VR 공간에서 오브젝트와의 인터렉션들로서 해석될 수 있다. VR 공간 내의 레이저 포인터의 예에서, 컴퓨팅 디바이스(750)는 컴퓨터 생성 3D 환경에서 가상 레이저 포인터로 나타난다. 사용자가 컴퓨팅 디바이스(750)를 조작함에 따라, VR 공간에서의 사용자는 레이저 포인터의 움직임을 보게 된다. 사용자는 컴퓨팅 디바이스(750)상의 VR 공간 또는 VR 헤드셋(785)상의 컴퓨팅 디바이스(750)와의 인터렉션들로부터 피드백을 수신한다.
다수의 실시예들이 기술되었다. 그럼에도 불구하고, 다양한 수정들이 본 발명의 정신과 범위로부터 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다.
추가로, 도면들에 도시된 논리 흐름들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 추가로, 다른 단계들이 제공될 수 있거나, 단계들이 기술된 흐름으로부터 생략될 수 있고, 다른 컴포넌트들이 기술된 시스템에 추가되거나 그로부터 제거될 수 있다. 따라서, 다른 실시예들도 다음의 청구항들의 범위 내에 있다.

Claims (21)

  1. 방법으로서,
    컴퓨터 시스템에서, 제1 가상 제어기를 제1 물리적 제어기와 연관시키는 단계;
    상기 제1 가상 제어기에 제1 기능을 할당하는 단계, 상기 할당은 상기 제1 물리적 제어기를 사용하여 상기 제1 기능의 수행을 제공하며;
    상기 컴퓨터 시스템에서, 제2 가상 제어기를 제2 물리적 제어기와 연관시키는 단계;
    상기 제2 가상 제어기에 제2 기능을 할당하는 단계;
    상기 제1 물리적 제어기를 사용하여 수행되는 제스처를 검출하는 단계; 및
    상기 제스처를 검출하는 것에 응답하여, 상기 제1 가상 제어기로부터 상기 제1 기능을 할당-해제하고 및 상기 제1 가상 제어기에 제2 기능을 할당하고, 그리고 상기 제2 가상 제어기로부터 상기 제2 기능을 할당-해제하고 및 상기 제2 가상 제어기에 상기 제1 기능을 할당하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서,
    상기 제1 가상 제어기는 지배적(dominant) 제어기이고, 상기 제2 가상 제어기는 상기 지배적 제어기에 의해 사용될 하나 이상의 툴들을 제공하는 비-지배(non-dominant)적 제어기인 것을 특징으로 하는 방법.
  3. 청구항 1에 있어서,
    상기 제1 기능은 가상 페인팅 프로그램에서 브러쉬 기능을 포함하고, 상기 제2 기능은 상기 가상 페인팅 프로그램에서 팔레트 기능을 포함하고, 그리고 상기 제스처를 검출하는 것은 상기 가상 페인팅 프로그램에서 상기 브러쉬 기능 및 상기 팔레트 기능의 스와핑을 트리거링하는 것을 특징으로 하는 방법.
  4. 청구항 1에 있어서,
    상기 제스처는 상기 제1 및 제2 물리적 제어기들을 사용하여 이루어지는 것을 특징으로 하는 방법.
  5. 청구항 4에 있어서,
    상기 제스처는 상기 제1 및 제2 물리적 제어기들이 서로를 향해 그리고 그 후에는 서로 멀어지도록 하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 청구항 4에 있어서,
    상기 제스처는 상기 제1 및 제2 물리적 제어기들이 서로를 향해 가까워지는 각각의 단부 및 그 후에는 서로 멀어지도록 하는 각각의 단부를 포함하는 것을 특징으로 하는 방법.
  7. 청구항 6에 있어서,
    상기 제1 및 제2 물리적 제어기의 각각의 단부는 상기 제1 및 제2 물리적 제어기의 각각의 하단부인 것을 특징으로 하는 방법.
  8. 청구항 1에 있어서,
    상기 제1 및 제2 물리적 제어기는 서로 동일한 것을 특징으로 하는 방법.
  9. 청구항 1에 있어서,
    상기 제스처를 검출하는 것에 응답하여, 상기 컴퓨터 시스템에서 디폴트로서, 상기 제1 가상 제어기로부터 상기 제1 기능의 할당-해제 또는 상기 제1 가상 제어기에 상기 제2 기능의 할당을 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 청구항 1에 있어서,
    상기 제1 가상 제어기는 상기 컴퓨터 시스템에 의해 생성된 가상 공간에 정의되고, 상기 제1 기능은 상기 제스처를 검출하는 것에 응답하여 상기 제1 가상 제어기로부터 할당-해제되고, 상기 방법은 상기 가상 공간에 포인트를 정의하는 것, 그리고 상기 제스처를 검출하는 것에 응답하여 상기 제1 기능을 상기 포인트와 연관시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 청구항 10에 있어서,
    상기 제1 기능은 가상 페인팅 프로그램에서 팔레트 기능을 포함하고, 상기 제2 기능은 상기 가상 페인팅 프로그램에서 브러쉬 기능을 포함하고, 상기 제1 가상 제어기에 대한 상기 제2 기능의 할당은, 제1 및 제2 물리적 제어기 둘 모두 상기 가상 페인팅 프로그램에서 상기 브러쉬 기능을 수행하기 위해 사용될 수 있다는 것을 의미하는 것을 특징으로 하는 방법.
  12. 청구항 1에 있어서,
    상기 제스처는 센서를 사용하여 검출되는 것을 특징으로 하는 방법.
  13. 청구항 12에 있어서,
    상기 센서는 상기 제1 물리적 제어기에 위치되는 것을 특징으로 하는 방법.
  14. 청구항 12에 있어서,
    상기 센서에 의해 생성된 센서 데이터로부터 상기 제1 물리적 제어기에 관한 속도 및 위치 정보를 추정(extrapolating)하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  15. 청구항 14에 있어서,
    상기 센서 데이터로부터 상기 제1 물리적 제어기에 관한 방향 데이터를 추정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 비일시적 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 실행될 때 프로세서로 하여금 청구항 1 내지 15 중 어느 한 항에 기재된 동작을 수행하게 하는 명령어들을 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  17. 시스템으로서,
    프로세서; 및
    비일시적 저장 매체에 저장된 컴퓨터 프로그램을 포함하며, 상기 컴퓨터 프로그램은 실행될 때 상기 프로세서로 하여금 청구항 1 내지 15 중 어느 한 항에 기재된 동작을 수행하게 하는 명령어들을 포함하는 것을 특징으로 하는 시스템.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020197012238A 2017-01-19 2017-10-30 가상 제어기에 대한 기능 할당 KR102290933B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762448172P 2017-01-19 2017-01-19
US62/448,172 2017-01-19
US15/794,265 US10459519B2 (en) 2017-01-19 2017-10-26 Function allocation for virtual controller
US15/794,265 2017-10-26
PCT/US2017/059029 WO2018136126A1 (en) 2017-01-19 2017-10-30 Function allocation for virtual controller

Publications (2)

Publication Number Publication Date
KR20190059946A KR20190059946A (ko) 2019-05-31
KR102290933B1 true KR102290933B1 (ko) 2021-08-19

Family

ID=62838710

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197012238A KR102290933B1 (ko) 2017-01-19 2017-10-30 가상 제어기에 대한 기능 할당

Country Status (6)

Country Link
US (1) US10459519B2 (ko)
EP (1) EP3571571B1 (ko)
JP (1) JP6859433B2 (ko)
KR (1) KR102290933B1 (ko)
CN (1) CN109716267B (ko)
WO (1) WO2018136126A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102065421B1 (ko) * 2017-08-10 2020-01-13 엘지전자 주식회사 모바일 기기 및 모바일 기기를 활용한 가상현실 기기 컨트롤러 구동 방법.
US11861136B1 (en) * 2017-09-29 2024-01-02 Apple Inc. Systems, methods, and graphical user interfaces for interacting with virtual reality environments
US10824244B2 (en) * 2018-11-19 2020-11-03 Facebook Technologies, Llc Systems and methods for transitioning between modes of tracking real-world objects for artificial reality interfaces

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350838A (ja) 2005-06-17 2006-12-28 Fujitsu Ltd 情報処理装置およびプログラム
WO2016029183A1 (en) * 2014-08-22 2016-02-25 Sony Computer Entertainment Inc. Glove interface object

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070155589A1 (en) 2002-12-04 2007-07-05 Philip Feldman Method and Apparatus for Operatively Controlling a Virtual Reality Scenario with an Isometric Exercise System
US20060097453A1 (en) 2002-12-04 2006-05-11 Philip Feldman Game controller with force sensing input devices and method of measuring applied forces to game controller input devices to interact with a gaming application
JP5204381B2 (ja) * 2006-05-01 2013-06-05 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム及びゲーム処理方法
US7701439B2 (en) 2006-07-13 2010-04-20 Northrop Grumman Corporation Gesture recognition simulation system and method
JP2010245796A (ja) * 2009-04-06 2010-10-28 Sony Corp 映像表示装置および方法、映像表示システム、並びにプログラム
WO2012044334A2 (en) * 2009-11-13 2012-04-05 Intuitive Surgical Operations, Inc. Method and apparatus for hand gesture control in a minimally invasive surgical system
US8217997B2 (en) * 2010-03-16 2012-07-10 Interphase Corporation Interactive display system
JP5531750B2 (ja) * 2010-04-16 2014-06-25 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び情報処理システム
US20110276891A1 (en) * 2010-05-06 2011-11-10 Marc Ecko Virtual art environment
US9411509B2 (en) * 2010-12-29 2016-08-09 Microsoft Technology Licensing, Llc Virtual controller for touch display
US20130265240A1 (en) * 2012-04-06 2013-10-10 At&T Intellectual Property I, Lp Method and apparatus for presenting a virtual touchscreen
US9254437B2 (en) 2012-04-25 2016-02-09 Electronic Entertainment Design And Research Interactive gaming analysis systems and methods
US9041622B2 (en) * 2012-06-12 2015-05-26 Microsoft Technology Licensing, Llc Controlling a virtual object with a real controller device
WO2014080829A1 (ja) * 2012-11-22 2014-05-30 シャープ株式会社 データ入力装置
US11826636B2 (en) * 2013-07-12 2023-11-28 Chris Argiro Depth sensing module and mobile device including the same
CN103442244A (zh) 2013-08-30 2013-12-11 北京京东方光电科技有限公司 3d眼镜、3d显示系统及3d显示方法
JP2015114836A (ja) * 2013-12-11 2015-06-22 キヤノン株式会社 画像処理装置、触感制御方法及びプログラム
US9937415B1 (en) * 2013-12-17 2018-04-10 Amazon Technologies, Inc. Virtual controller for touchscreen
FR3016451B1 (fr) * 2014-01-10 2017-06-23 Inria Inst Nat De Rech En Informatique Et En Automatique Systeme d'interaction avec des objets virtuels
US20170036386A1 (en) * 2014-04-03 2017-02-09 Macro Technology Ltd. Co-extrusion die with rectangular feed channel
US9696813B2 (en) * 2015-05-27 2017-07-04 Hsien-Hsiang Chiu Gesture interface robot
US10286308B2 (en) * 2014-11-10 2019-05-14 Valve Corporation Controller visualization in virtual and augmented reality environments
WO2016094568A1 (en) * 2014-12-10 2016-06-16 Sixense Entertainment, Inc. System and method for assisting a user in remaining in a selected area while the user is in a virtual reality environment
WO2016138509A1 (en) * 2015-02-27 2016-09-01 Valve Corporation Controller visualization in virtual and augmented reality environments
US10102674B2 (en) 2015-03-09 2018-10-16 Google Llc Virtual reality headset connected to a mobile computing device
US20180321493A1 (en) * 2015-11-11 2018-11-08 Lg Electronics Inc. Hmd and method for controlling same
CN105892675A (zh) 2016-04-26 2016-08-24 乐视控股(北京)有限公司 基于手柄控制虚拟现实头盔的方法、装置及系统
CN108885501A (zh) * 2016-05-12 2018-11-23 西奎公司 使用电容感测的控制器感应
CN106325735A (zh) * 2016-07-19 2017-01-11 钟林 一种利用方位手势触摸操作电子游戏的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350838A (ja) 2005-06-17 2006-12-28 Fujitsu Ltd 情報処理装置およびプログラム
WO2016029183A1 (en) * 2014-08-22 2016-02-25 Sony Computer Entertainment Inc. Glove interface object

Also Published As

Publication number Publication date
EP3571571B1 (en) 2023-10-25
EP3571571A4 (en) 2020-11-04
CN109716267B (zh) 2022-11-29
US10459519B2 (en) 2019-10-29
CN109716267A (zh) 2019-05-03
WO2018136126A1 (en) 2018-07-26
KR20190059946A (ko) 2019-05-31
US20180203502A1 (en) 2018-07-19
JP6859433B2 (ja) 2021-04-14
EP3571571A1 (en) 2019-11-27
JP2020500356A (ja) 2020-01-09

Similar Documents

Publication Publication Date Title
CN109891367B (zh) 在增强和/或虚拟现实环境中使用手势生成虚拟符号表面
CN109074154B (zh) 增强和/或虚拟现实中的悬停触摸输入补偿
US11181986B2 (en) Context-sensitive hand interaction
EP3400502B1 (en) Combining gyromouse input and touch input for navigation in an augmented and/or virtual reality environment
KR102038638B1 (ko) 가상 현실에서 핸드 헬드 디바이스를 트랙킹하는 시스템
KR102245245B1 (ko) 증강된 그리고/또는 가상의 현실 환경에서 6 자유도 제어기들을 이용한 가상 객체들의 조작
CN111771180B (zh) 增强现实环境中对象的混合放置
CN111373349B (zh) 用于在增强现实环境中导航的方法、设备及存储介质
KR102251252B1 (ko) 가상 현실에서의 위치 지구본
KR102290933B1 (ko) 가상 제어기에 대한 기능 할당
CN113728293A (zh) 用于基于位所的设备控制的系统和界面
US10719147B2 (en) Display apparatus and control method thereof
KR20220151328A (ko) 전자 장치 및 전자 장치 제어방법
CN118295523A (en) Method, apparatus and storage medium for navigating in augmented reality environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant