KR20210021533A - 가상 현실 핸드 제스처 생성 - Google Patents

가상 현실 핸드 제스처 생성 Download PDF

Info

Publication number
KR20210021533A
KR20210021533A KR1020217001241A KR20217001241A KR20210021533A KR 20210021533 A KR20210021533 A KR 20210021533A KR 1020217001241 A KR1020217001241 A KR 1020217001241A KR 20217001241 A KR20217001241 A KR 20217001241A KR 20210021533 A KR20210021533 A KR 20210021533A
Authority
KR
South Korea
Prior art keywords
data
controller
touch
force
hand
Prior art date
Application number
KR1020217001241A
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
Priority claimed from US16/195,718 external-priority patent/US10987573B2/en
Application filed by 밸브 코포레이션 filed Critical 밸브 코포레이션
Publication of KR20210021533A publication Critical patent/KR20210021533A/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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • 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/218Input arrangements for video game devices characterised by their sensors, purposes or types using pressure sensors, e.g. generating a signal proportional to the pressure applied by the player
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • 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/0304Detection arrangements using opto-electronic means
    • 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/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03547Touch pads, in which fingers can move on a surface
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

방법은 컨트롤러에서 수신된 터치 입력을 나타내는 터치 데이터 또는 힘 데이터 중 적어도 하나를 수신하는 단계, 하나 이상의 모델(들)을 결정하는 단계, 하나 이상의 모델들을 사용하여 이미지 데이터를 생성하는 단계로서, 상기 이미지 데이터는 적어도 컨트롤러에서 수신된 터치 입력에 대응되는 핸드 제스처를 나타내는, 상기 생성하는 단계, 및 이미지 데이터를 디스플레이하기 위해 가상 현실(VR) 환경으로 전송하는 단계를 포함한다.

Description

가상 현실 핸드 제스처 생성
관련 출원들에 대한 우선권 주장 및 상호 참조
이 출원은 2018년 11월 19일자로 출원된, “VIRTUAL REALITY HAND GESTURE GENERATION” 이라는 명칭의 미국 특허 출원 번호 제16/195,718호의 PCT 출원이며 이에 대한 우선권을 주장하며, 이는 35 U.S.C §120 하에서 2018년 6월 20일자로 출원된, “VIRTUAL REALITY HAND GESTURE GENERATION” 이라는 명칭의 미국 임시 특허 출원 제62/687,780호에 대한 우선권을 주장한다.
또한, 2018년 11월 19일자로 출원된 출원 번호 제16/195,718호는 2017년 12월 7일자로 출원된, “ELECTRONIC CONTROLLER WITH FINGER SENSING AND AN ADJUSTABLE HAND RETAINER” 이라는 명칭의 계류중인 미국 특허 출원 번호 제15/834,374호에 대한 일부 계속 출원으로서 35 U.S.C. §120 하에서 우선권을 주장하며, 이는 그 자체가 2017년 8월 17일자로 출원된, “Electronic controller with hand retainer and finger motion sensing” 이라는 명칭의 미국 특허 출원 번호 제15/679,521호에 대한 일부 계속 출원으로서 우선권을 주장하며, 이는 그 자체가 2016년 10월 11일자로 출원된 미국 특허 출원 번호 제29/580,635호에 대한 일부 계속 출원으로서 우선권을 주장하며, 2017년 6월 16일자로 출원된 미국 임시 특허 출원 번호 제62/520,958호에 대한 우선권을 주장한다.
비디오 게임 산업은 하드웨어와 소프트웨어 모두에서 많은 혁신을 일으켰다. 예를 들어, 다양한 핸드 헬드 비디오 게임 컨트롤러들이 다양한 게임 어플리케이션들을 위해 설계, 제조 및 판매되었다. 일부 혁신은 산업 기계, 방어 시스템, 로봇 공학 등을 위한 컨트롤러들과 같은, 비디오 게임 산업 외부에 적용 가능성을 갖는다.
추가로, 가상 현실(VR) 시스템들은 비디오 게임 산업 내부와 외부 모두에서 큰 현대적 관심과 빠른 기술 발전의 어플리케이션이다. VR 시스템용 컨트롤러들은 여러 가지 다른 기능들을 수행하고 엄격한 (그리고 때로는 경쟁적인) 설계 제약들을 충족하는 동시에 종종 원하는 특정 특성들을 최적화해야 한다. 일부 경우에, 이러한 컨트롤러들은 사용자의 그립 힘을 측정하기 위한 센서들을 포함하며, 이는 결국 사전 정의된 게임 플레이 기능을 수행하는 데 사용된다. 이러한 목적들을 달성하기 위해, 그 중에서도, FSR에 가해지는 힘의 양을 측정하기 위해 가변 저항을 사용하는 포스 감지 저항기(force sensing resistor; FSR)를 포함하는, 다양한 유형의 센서가 사용되었다. 그러나, FSR이 있는 기존 컨트롤러들은 상당히 조잡한 응답 시간을 나타내는 경향이 있다. 추가로, 컨트롤러는 게임플레이 경험 전반에 걸쳐 손 위치, 제스처 및/또는 움직임을 정확하게 묘사하고 감지하지 못할 수 있다.
도 1은 본 개시의 예시적인 실시예에 따라 가상 현실(VR) 시스템과 상호 작용하는 사용자의 환경을 도시한다.
도 2는 본 개시의 예시적인 실시예에 따른 사용자 손에 있는 예시적인 컨트롤러를 도시한다.
도 3은 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 도시한다.
도 4는 본 개시의 예시적인 실시예에 따른 사용자 손에 있는 도 3의 예시적인 컨트롤러를 도시한다.
도 5는 본 개시의 예시적인 실시예에 따른 사용자 손에 있는 도 3의 예시적인 컨트롤러를 도시한다.
도 6은 본 개시의 예시적인 실시예에 따른 사용자 손에 있는 도 3의 예시적인 컨트롤러를 도시한다.
도 7은 본 개시의 예시적인 실시예에 따른 한 쌍의 예시적인 컨트롤러들을 도시한다.
도 8a는 본 개시의 또 다른 예시적인 실시예에 따른 예시적인 우측 컨트롤러의 전면도를 도시한다.
도 8b는 도 8a의 예시적인 우측 컨트롤러의 후면도를 도시한다.
도 9a는 본 개시의 예시적인 실시예에 따른 예시적인 포스 감지 저항기(FSR)를 도시한다.
도 9b는 도 9a의 예시적인 FSR의 전면도를 도시한다.
도 9c는 도 9b의 단면(A-A)을 따라 절취된 도 9b의 예시적인 FSR의 단면을 도시한다.
도 10a는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제1 핸드 제스처를 도시한다.
도 10b는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제2 핸드 제스처를 도시한다.
도 10c는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제3 핸드 제스처를 도시한다.
도 10d는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제4 핸드 제스처를 도시한다.
도 10e는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제5 핸드 제스처를 도시한다.
도 10f는 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러를 잡고 있는 사용자의 제6 핸드 제스처를 도시한다.
도 11은 본 개시의 예시적인 실시예에 따른 예시적인 프로세스를 도시한다.
도 12는 본 개시의 예시적인 실시예에 따른 트레이닝 모델(들)에 대한 예시적인 프로세스를 도시한다.
도 13은 본 개시의 예시적인 실시예에 따른 제스처들을 생성하기 위해 터치 입력을 사용하는 예시적인 프로세스를 도시한다.
본원에서는 가상 현실(VR) 환경에서 사용하기 위한 모션 캡처 시스템(들) 및 컨트롤러들이 개시된다. 예시적인 모션 캡처 시스템은 컨트롤러를 조작하는 사용자의 움직임뿐만 아니라, 컨트롤러의 움직임을 추적하기 위해 환경 주위에 위치된 카메라들, 프로젝터들 및/또는 다른 센서들을 포함할 수 있다. 예를 들어, 복수의 카메라들은 환경 내에 장착되고 컨트롤러와 사용자의 이미지들을 캡처할 수 있다. 일부 경우에, 복수의 카메라들은 환경 내의 일부 또는 모든 각도들 및 위치들을 캡처할 수 있다. 대안으로, 복수의 카메라들은 미리 정의된 범위 또는 환경 영역 내의 이미지들에 초점을 맞추거나 이미지들을 캡처할 수 있다. 컨트롤러가 환경에 대해 조종할 때 그리고 사용자가 자신의 손을 조종할 때, 카메라들은 사용자 및/또는 컨트롤러(들)의 위치들과 방향들을 각각 검출할 수 있다.
일부 경우에, 컨트롤러(또는 그 일부들) 및 사용자의 위치를 검출하기 위해, 컨트롤러(들) 및/또는 사용자는 각각 마커들을 포함할 수 있다. 예를 들어, 마커들은 컨트롤러 및/또는 사용자에 결합할 수 있다. 마커들은 디지털 워터마크, 적외선 반사기 등을 포함할 수 있다. 모션 캡처 시스템(들)은 광을 환경에 투사할 수 있으며, 그런 다음 마커들에 의해 반사된다. 카메라들은 마커들에 의해 반사된 입사광을 캡처할 수 있으며, 모션 캡처 시스템(들)은 컨트롤러 및/또는 사용자의 움직임들, 위치들 및/또는 방향들을 결정하기 위해 환경 내의 마커들의 위치들을 추적하고 플로팅할 수 있다.
예시적인 컨트롤러는 사용자가 잡을 수 있으며, 하나 이상의 포스 감지 저항기들(FSR들) 또는 사용자로부터의 터치 입력을 감지하는 다른 유형의 센서들을 포함할 수 있다. 일부 경우들에서, FSR은 컨트롤러의 핸들 내에 장착된 구조 및/또는 컨트롤러의 적어도 하나의 엄지 손가락으로 작동되는 컨트롤 아래에 장착된 구조와 같은, 컨트롤러의 표면에 결합될 수 있다. 일부 경우에, FSR은 사용자가 가하는 힘의 양에 해당하는 저항 값을 측정할 수 있다. FSR은 또한 힘(들)을 컨트롤러의 특정 위치, 영역 및/또는 부분과 연관시킬 수 있다. 예를 들어, FSR은 핸들의 외부 표면에 가해지는 힘의 양을 결정할 수 있고/있거나 사용자로부터의 터치 입력에 대응하는 컨트롤러 상의 위치(들)를 결정할 수 있다. 일부 실시예들에서, 컨트롤러는 FSR에 의해 생성된 힘 데이터를 통해, 사용자가 컨트롤러의 핸들을 쥐는 힘의 양 및/또는 사용자가 컨트롤러의 버튼들을 누르는 힘의 양을 결정할 수 있다. 컨트롤러는 다양한 힘의 압박 또는 압착을 비디오 게임 제어 및/또는 게임 메커니즘들에 사용되는 디지털화된 수치 값들로 변환할 수 있다.
일부 경우에, FSR은 적용된 힘이 임계값을 초과할 때를 감지하는 스위치 역할을 할 수 있으며, 일부 경우에 동적으로 업데이트하고/하거나 조정할 수 있다. 예를 들어, 임계값은 게임플레이 동안 손의 피로를 줄이기 위해(예를 들어, 사용자가 게임플레이 동안 자주 무기를 쏘기 위해 FSR과 연관된 제어를 누를 때) 더 낮은 값으로 조정될 수 있다. 반대로, 임계값은 우발적인 제어 동작의 인스턴스들을 줄이기 위해 더 높은 값으로 조정될 수 있다.
컨트롤러는 또한 핸들의 길이를 따라 공간적으로 분포되고 사용자의 손가락들의 근접성에 응답하는 근접 센서 어레이를 포함할 수 있다. 근접 센서들은 터치 입력 및/또는 컨트롤러에 대한 사용자 손의 근접을 감지하기 위한 용량성 센서들과 같은, 임의의 적절한 기술을 포함할 수 있다. 근접 센서 어레이는 컨트롤러를 잡는 손가락(들)의 위치 또는 사용자가 컨트롤러를 잡지 않을 때, 핸들과 사용자의 손가락들 사이에 배치된 거리(예를 들어, 정전 용량 측정을 통해)를 나타내는 터치 데이터를 생성할 수 있다. 일부 경우에, 근접 센서들은 또한 컨트롤러를 잡는 사용자의 손 크기를 검출할 수 있으며, 이는 다른 설정들에 따라 컨트롤러를 구성할 수 있다. 예를 들어, 손 크기에 따라, 컨트롤러는 손이 작은 사용자들이 힘 기반 입력을 더 쉽게 할 수 있도록 조정할 수 있다.
VR 환경에서 사용하기 위해 모션 캡처 시스템 및 컨트롤러를 구현하면 종래 컨트롤러들을 사용하여 현재 상태를 넘어 자연스러운 상호 작용의 스펙트럼을 확장할 수 있다. 예를 들어, 서로 결합하여, 모션 캡처 시스템(들)은 손 및/또는 컨트롤러의 모션 데이터를 캡처할 수 있는 반면, 컨트롤러는 컨트롤러에서의 터치 입력들에 대응하는 터치 데이터 및 사용자의 터치 입력들과 연관된 힘 데이터를 캡처할 수 있다. 모션 데이터, 터치 데이터 및/또는 힘 데이터는 사용자의 핸드 제스처를 나타내는 모델들을 생성하기 위해 서로 연관될 수 있다.
예시를 위해, 사용자는 자신의 너클, 손가락 끝, 손목, 관절 등에 배치된 마커들을 포함할 수 있다. 컨트롤러는 또한 마커들(예를 들어, 상단, 하단, 측면들 등)을 포함할 수 있다. 상기에 언급된 바와 같이, 마커(들)은 입사관을 반사할 수 있다. 모션 캡처 시스템은 마커들의 위치들을 검출하는 카메라들을 통해 사용자의 손(들)의 움직임들과 컨트롤러(들)의 위치를 검출 및 기록할 수 있다. 예를 들어, 모션 캡처 시스템(들)의 프로젝터들은 적외선 광을 투사할 수 있으며, 그런 다음 이는 손 및/또는 컨트롤러 상의 마커들에 의해 반사된다. 모션 캡처 시스템(들)의 카메라들은 환경 이미지들을 캡처할 수 있다. 이미지들은 환경 내 마커들의 위치들을 나타내는 데 이용된다. 마커들의 위치들은 시간이 지남에 따라 추적되어 3차원(3D) 가상 공간 내에 애니매이션된다. 이 추적을 통해 애니메이션된 3D 골격 데이터(또는 모델들)을 생성할 수 있다. 예를 들어, 사용자는 주먹을 쥐거나 두 손가락들(예를 들어, 새끼 손가락과 네번째 손가락)로 컨트롤러를 잡을 수 있다. 카메라들은 마커들을 통해 사용자 손가락 끝, 너클 및/또는 손의 다른 부분들, 손목 및/또는 팔의 위치들을 캡처할 수 있다. 일부 경우에, 위치들은 컨트롤러에 상대적이다.
동시에 또는 다른 시간에, 근접 센서 어레이는 컨트롤러에서 터치 입력 또는 터치 입력 결여를 검출할 수 있다. 터치 데이터는 예를 들어, 정전 용량 측정을 통해 컨트롤러에 대한 사용자 손가락들의 위치들을 나타낼 수 있다. 정전 용량은 손가락과 컨트롤러 사이에 배치된 거리에 따라 달라질 수 있다. 그렇게 함으로써, 컨트롤러는 사용자가 한 손가락, 두 손가락, 세 손가락 등으로 컨트롤러를 잡을 때를 검출할 수 있다. 정전 용량으로, 컨트롤러는 또한 사용자 손가락들이 컨트롤러에 닿지 않을 때와 같이, 컨트롤러에 대한 손가락의 상대적 배치를 검출할 수 있다.
추가로, FSR은 컨트롤러(들)에 의해 수신된 힘 값들(예를 들어, 사용자가 컨트롤러를 잡는 힘들)을 나타내는 힘 데이터를 캡처할 수 있다. 예를 들어, 사용자가 주먹을 쥐거나 두 손가락으로 컨트롤러 본체를 잡을 때, FSR은 이러한 각각의 그립들에 해당하는 힘 값들을 캡처할 수 있다. 예로서, FSR은 사용자가 두 손가락들로 컨트롤러를 잡을 때에 비해 사용자가 주먹을 쥐어 컨트롤러를 잡을 때 힘 값들의 증가를 검출할 수 있다.
터치 데이터 및 힘 데이터는 서로 연관될 수 있다. 예를 들어, 사용자가 네 개의 손가락들로 컨트롤러를 잡을 때, 컨트롤러 상에 검출된 힘 값들은 컨트롤러의 특정 위치들과 연관될 수 있다. 그렇게 함으로써, 터치 데이터 및 힘 데이터는 사용자의 어느 손가락들이 컨트롤러를 움켜 쥐는지, 뿐만 아니라 사용자가 컨트롤러를 잡는 각 손가락의 상대적 힘을 결정하기 위해 서로 연관될 수 있다. 사용자가 두 손가락들로 컨트롤러를 잡을 때도 상기와 동일할 수 있으며, 여기서 힘 값들은 검출되고 컨트롤러 본체의 특정 부분들과 연관된다. 근접 센서 어레이로부터 터치 입력이 수신되는 위치, 뿐만 아니라 FSR에 의해 검출된 바와 같은 사용자가 컨트롤러를 잡는 힘의 양을 알면, 컨트롤러 및/또는 다른 통신적으로 결합된 원격 시스템은 터치 입력을 사용자의 특정 손가락들과 연관시킬 수 있다. 일부 경우에, 터치 데이터와 연관된 타임 스탬프들을 힘 데이터의 타임 스탬프들과 상관시키는 것을 통해, 컨트롤러(또는 다른 통신적으로 결합된 원격 시스템)는 터치 데이터와 힘 데이터를 연관시킬 수 있다.
사용자가 컨트롤러를 잡는 힘의 양(즉, 힘 데이터), 터치 입력의 위치 또는 컨트롤러에서의 터치 입력의 결여(즉, 터치 데이터), 뿐만 아니라 모션 캡처 시스템의 카메라에 의해 캡처된 모션(즉, 모션 데이터)은 사용자의 핸드 제스처들을 나타내는 모델들을 트레이닝시킬 수 있다. 예로서, 모션 캡처 시스템은 (예를 들어, 모션 데이터를 사용하여) 주먹 쥔 것과 컨트롤러에서 수신된 터치 데이터 및/또는 힘 데이터를 연관시킬 수 있다. 다른 예로서, 사용자가 두 손가락들로 컨트롤러를 잡는 경우, 모션 데이터는 핸드 제스처(예를 들어, 두 손가락 그립)를 나타낼 수 있는 반면, 터치 데이터는 컨트롤러에 대한 손(또는 손가락들)의 근접성을 나타낼 수 있고 힘 데이터는 사용자가 컨트롤러를 얼마나 단단히 잡고 있는지를 나타낼 수 있다. 이러한 연관들을 사용하여, 모델들은 사용자의 제스처들을 나타내도록 생성 및 트레이닝될 수 있다. 모델들은 더 정확한 오버타임이 되도록 지속적으로 트레이닝될 수 있다.
모델들은 컨트롤러에서의 터치 입력 및/또는 터치 입력과 연관된 힘 값들을 특성화하여 디스플레이에서 핸드 제스처의 애니메이션들을 생성할 수 있으며 VR 환경은 게임플레이에서 사용하기 위해 모델들을 활용할 수 있다. 보다 구체적으로, 모델들은 VR 환경 내에서 핸드 제스처들을 생성하기 위해 터치 데이터 및/또는 힘 데이터를 입력할 수 있다. 예들로서, 제스처들은 바위를 부수거나 풍선을 압착하는 것(예를 들어, 주먹을 쥐는 제스처), 게임 캐릭터에 의해 사용할 수 있는 이용 가능한 무기들을 통한 토글링(예를 들어, 컨트롤러를 따라 손가락들을 스크롤하거나 슬라이딩), 객체들을 드롭핑하는 것(예를 들어, 손을 펴는 제스처), 무기를 발사하는 것(예를 들어, 새끼 손가락, 네번째 손가락, 가운데 손가락이 컨트롤러를 터치하지만 검지 손가락과 엄지가 바깥쪽으로 향함) 등과 같은, 다양한 비디오 게임 컨트롤들을 포함할 수 있다. 즉, 컨트롤러의 터치 입력의 위치, 뿐만 아니라 사용자가 컨트롤러를 잡는 힘도 알고 있다. 이 정보는 이전에 트레이닝된 모델들과 함께 사용되어 VR 환경 내에서 및/또는 VR 디스플레이에서 핸드 제스처(예를 들어, 주먹을 쥐는 것)를 생성할 수 있다. 또한, 모델(들)은 디스플레이를 위한 핸드 제스처들을 렌더링 및/또는 생성할 때 이전에 생성된 애니메이션들 및/또는 이미지 데이터를 활용할 수 있다.
예시적인 가상 현실(VR) 환경
도 1은 모션 캡처 시스템(들)(102) 및 사용자(104)가 상주하는 예시적인 환경(100)을 도시한다. 모션 캡처 시스템(들)(102)은 환경(100)의 벽들에 장착된 것으로 도시되어 있지만, 일부 경우에, 모션 캡처 시스템(들)(102)은 환경(100) 내의 다른 곳(예를 들어, 천장, 바닥 등)에 장착될 수 있다. 게다가, 도 1은 네 개의 모션 캡처 시스템(들)(102)를 예시하지만, 환경(100)은 네 개보다 많거나 적은 모션 캡처 시스템(들)(102)을 포함할 수 있다.
모션 캡처 시스템(들)(102)은 환경(100) 내에서/내로 광 및/또는 이미지들(106)을 생성하고 투사하도록 구성된 프로젝터(들)를 포함할 수 있다. 이미지들(106)은 사용자(104)가 인지할 수 있는 가시 광선 이미지들, 사용자(104)가 인지할 수 없는 가시 광선 이미지들, 비-가시광을 갖는 이미지들, 및/또는 이들의 조합을 포함할 수 있다. 프로젝터(들)는 이미지들(106)을 생성하고 이미지들(106)을 환경(100) 내의 표면 또는 객체들에 투사할 수 있는 임의 개수의 기술들을 포함할 수 있다. 일부 예들에서, 적합한 기술들은 디지털 마이크로미러 장치(DMD), 액정 온 실리콘 디스플레이(LCOS), 액정 디스플레이, 3LCD 등을 포함할 수 있다. 프로젝터(들)는 특정 입체각을 설명하는 시야를 가질 수 있으며, 시야는 프로젝터(들)의 구성의 변경들에 따라 달라질 수 있다. 예를 들어, 줌 적용 시 시야는 좁아질 수 있다.
모션 캡처 시스템(들)(102)은 고해상도 카메라들, 적외선(IR) 검출기들, 센서들 등을 포함할 수 있다. 카메라(들)는 가시광 파장, 비가시광 파장, 또는 둘 모두에서 환경(100)을 이미지화할 수 있다. 카메라(들)는 또한 특정 입체각을 설명하는 시야를 가지며 카메라의 시야는 카메라(들)의 구성의 변경들에 따라 달라질 수 있다. 예를 들어, 카메라(들)의 광학 줌은 카메라 시야를 좁힐 수 있다.
일부 경우에, 환경(100)은 복수의 카메라들 및/또는 다양한 유형의 카메라를 포함할 수 있다. 예를 들어, 카메라들은 3차원(3D), 적외선(IR) 카메라 및/또는 적색-녹색-청색(RGB) 카메라를 포함할 수 있다. 일부 경우에, 3D 카메라 및 IR 카메라는 환경(예를 들어, 마커들) 내의 객체들의 깊이들을 검출하기 위한 정보를 캡처할 수 있는 반면, RGB 카메라는 환경(100) 내의 색상에 있어서의 변경들을 식별함으로써 객체들의 에지들을 검출할 수 있다. 일부 예들에서, 모션 캡처 시스템(들)(102)은 전술한 모든 기능들을 수행하도록 구성된 단일 카메라를 포함할 수 있다.
모션 캡처 시스템(들)(102)의 하나 이상의 컴포넌트들은 고정된 방향으로 섀시에 장착되거나 액추에이터를 통해 섀시에 장착될 수 있어 섀시 및/또는 하나 이상의 컴포넌트들이 움직일 수 있도록 한다. 예들로서, 액추에이터들은 압전 액추에이터들, 모터들, 선형 액추에이터들 및 프로젝터(들) 및/또는 카메라(들)와 같이, 섀시 및/또는 그에 장착된 하나 이상의 컴포넌트들을 변위시키거나 이동시키도록 구성된 기타 장치들을 포함할 수 있다. 예를 들어, 액추에이터는 팬 모터, 틸트 모터 등을 포함할 수 있다. 팬 모터는 틸트 모터가 섀시의 피치를 변경하는 동안 섀시를 요 모션으로 회전시킬 수 있다. 일부 예들에서, 섀시는 추가로 또는 대안으로 롤 모터를 포함할 수 있으며, 이는 섀시가 롤링 모션으로 이동하게 할 수 있다. 섀시를 패닝, 틸팅 및/또는 롤링함으로써, 모션 캡처 시스템(들)(102)은 환경(100)의 각기 다른 뷰들을 캡처할 수 있다.
모션 캡처 시스템(들)(102)은 또한 레인징 시스템을 포함할 수 있다. 레인징 시스템은 모션 캡처 시스템(들)(102)으로부터 스캔된 엔티티, 객체(예를 들어, 사용자(104) 및/또는 컨트롤러(110)) 및/또는 객체 세트로 거리 정보를 제공할 수 있다. 레인징 시스템은 레이더, 광 검출 및 레인징(LIDAR), 초음파 레인징, 입체 레인징, 구조화된 광 분석, 비행 시간 관찰(예를 들어, 카메라에서 감지된 픽셀들에 대한 비행 시간 왕복 측정) 등을 포함 및/또는 사용할 수 있다. 구조화된 광 분석에서, 그리고 상기에 언급된 바와 같이, 프로젝터(들)는 환경(100) 내에서 구조화된 광 패턴을 투사할 수 있고 카메라(들)는 반사된 광 패턴의 이미지를 캡처할 수 있다. 모션 캡처 시스템(들)(102)은 프로젝터와 카메라 사이의 측면 변위로 인한 반사된 패턴의 변형을 분석하여 환경(100) 내의 각기 다른 지점들, 영역들 또는 픽셀들에 대응되는 깊이들 또는 거리들을 결정할 수 있다.
모션 캡처 시스템(들)(102)은 구조화된 광 패턴 및/또는 환경(100)으로부터의 다른 광 데이터의 복구를 도울 수 있는 모션 캡처 시스템(들)(102)의 각각의 컴포넌트들 사이의 거리(들)를 결정하거나 알 수 있다. 모션 캡처 시스템(들)(102)은 또한 다른 거리들, 치수들을 계산하기 위해 및/또는 아니면 환경(100) 내의 엔티티들 또는 객체들의 특성화를 돕기 위해 거리들을 사용할 수 있다. 프로젝터 시야 및 카메라 시야의 상대적인 각도 및 크기가 변할 수 있는 구현예들에서, 모션 캡처 시스템(들)(102)은 이러한 치수들을 결정 및/또는 알 수 있다.
환경(100) 내에서, 사용자(104)는 VR 헤드셋(108)을 착용하고 컨트롤러들(110)을 잡을 수 있다. VR 헤드셋(108)은 가상 환경, 게임플레이의 시뮬레이션된 뷰를 제시하거나 가상 공간 내의 객체들을 보여주는 내부 디스플레이(도시되지 않음)를 포함할 수 있다. VR 헤드셋(108)은 추가 센서들과 함께 헤드밴드를 포함할 수 있다. 일부 실시예들에서, VR 헤드셋(108)은 헬멧 또는 캡을 포함할 수 있으며 광학 신호들을 수신하기 위해 헬멧 또는 캡 상단의 다양한 위치들에 위치된 센서들을 포함할 수 있다.
본원에 상세하게 논의된 바와 같이, 사용자(104) 및/또는 컨트롤러들(110)은 마커들을 포함할 수 있다. 모션 캡처 시스템(102)은 광을 투사하는 프로젝터(들)와 마커들의 반사들의 이미지들을 캡처하는 카메라(들)를 통해 환경(100) 내에서 사용자(104) 및/또는 컨트롤러들(110)의 위치를 검출할 수 있다. 마커들은 환경(100) 내의 사용자(104)의 방향 및/또는 위치, 또는 환경(100) 내의 사용자(104)의 일부들(예를 들어, 손 또는 손가락), 뿐만 아니라 환경(100) 내의 컨트롤러(110)의 방향 및/또는 위치를 결정하는 데 사용될 수 있다. 레인징 시스템은 또한 모션 캡처 시스템(들)(102)과 마커들 사이의 거리들을 결정하는 것을 통해 사용자(104) (또는 그 일부) 및 컨트롤러들(110)의 위치들을 결정하는 것을 도울 수 있다.
모션 캡처 시스템(들)(102), VR 헤드셋(108) 및/또는 컨트롤러들(110)은 하나 이상의 원격 컴퓨팅 리소스(들)(112)에 통신적으로 결합될 수 있다. 원격 컴퓨팅 리소스(들)(112)는 환경(100) 및 모션 캡처 시스템(들)(102), VR 헤드셋(108) 및/또는 컨트롤러들(110)로부터 멀리 떨어져 있을 수 있다. 예를 들어, 모션 캡처 시스템(들)(102), VR 헤드셋(108) 및/또는 컨트롤러들(110)은 네트워크(114)를 통해 원격 컴퓨팅 리소스(들)(112)에 통 적으로 결합될 수 있다. 일부 경우에, 모션 캡처 시스템(들)(102), VR 헤드셋(108) 및/또는 컨트롤러들(110)은 유선 기술들(예를 들어, 유선, USB, 광섬유 케이블 등), 무선 기술들(예를 들어, RF, 셀룰러, 위성, 블루투스 등) 및/또는 기타 연결 기술들을 통해 네트워크(114)에 통신적으로 결합될 수 있다. 네트워크(114)는 데이터 및/또는 음성 네트워크를 포함하는 임의 유형의 통신 네트워크를 나타내며, 유선 인프라(예를 들어, 케이블, CAT5, 광섬유 케이블 등), 무선 인프라(예를 들어, RF, 셀룰러, 마이크로파, 위성, 블루투스 등) 및/또는 기타 연결 기술들을 사용하여 구현될 수 있다.
원격 컴퓨팅 리소스(들)(112)는 하나 이상의 서버들로 구현될 수 있으며, 일부 경우에, 인터넷과 같은 네트워크를 통해 유지되고 액세스 할 수 있는 프로세서들, 스토리지, 소프트웨어, 데이터 액세스 등의 컴퓨팅 인프라로 구현되는 네트워크 액세스 가능 컴퓨팅 플랫폼의 일부를 형성할 수 있다. 원격 컴퓨팅 리소스(들)(112)는 서비스들을 전달하는 시스템의 물리적 위치 및 구성에 대한 최종 사용자 지식을 요구하지 않는다. 이러한 원격 컴퓨팅 리소스(들)(112)와 연관된 일반적인 표현들은 "주문형 컴퓨팅", "서비스형 소프트웨어(SaaS)", "플랫폼 컴퓨팅", "네트워크 액세스 가능 플랫폼", "클라우드 서비스들", "데이터 센터들” 등을 포함할 수 있다.
모션 캡처 시스템(들)(102), VR 헤드셋(108), 및/또는 컨트롤러들(110)은 네트워크(114) 및/또는 하나 이상의 원격 컴퓨팅 리소스(들)(112)에 대한 무선 연결을 용이하게 하기 위해 하나 이상의 통신 인터페이스들을 포함할 수 있다. 추가로, 하나 이상의 통신 인터페이스들은 또한 모션 캡처 시스템(들)(102), VR 헤드셋(108) 및/또는 컨트롤러들(110) 사이의 데이터 전송(예를 들어, 서로 간의 통신)을 허용할 수 있다. 그러나, 일부 경우에, 하나 이상의 통신 인터페이스들은 또한 유선 연결들을 포함할 수 있다.
원격 컴퓨팅 리소스(들)(112)은 프로세서(들)(116) 및 메모리(118)를 포함하며, 이는 하나 이상의 모델(들)(120)에 대한 액세스를 저장하거나 아니면 가질 수 있다. 원격 컴퓨팅 리소스(들)(112)은 모션 캡처 시스템(들)(102)로부터의 모션 데이터(122) 및 터치 데이터(124) 및/또는 컨트롤러들(110)로부터의 힘 데이터(126)를 수신할 수 있다. 터치 데이터(124)는 사용자의 터치 입력에 대응하는 컨트롤러(들)(110) 상의 위치(또는 위치들)를 나타내는 터치 프로파일을 포함할 수 있다. 터치 데이터(124)는 또한 컨트롤러(들)(110) 상의 터치 입력의 결여를 나타낼 수 있다. 그렇게 함으로써, 터치 데이터(124)는 어느 손가락(들)이 컨트롤러를 터치하고 있는지 및/또는 손가락(들)의 어떤 부분들이 컨트롤러(들)(110)를 터치하는지를 나타낼 수 있다. 일부 경우에, 컨트롤러(110)의 핸들을 따라 공간적으로 분포된 근접 센서들(예를 들어, 용량성 센서들)의 어레이는 터치 입력을 검출하고 터치 데이터를 생성하고/하거나 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있다. 추가로, FSR은 컨트롤러(110)에 대한 터치 입력의 힘 값들을 나타내는 힘 데이터(126)를 생성할 수 있다. 본원에 설명된 바와 같이, 터치 데이터(124) 및/또는 힘 데이터(126)는 VR 환경 내에서 손의 위치, 그립 또는 제스처를 나타낼 수 있다. 차례로, 원격 컴퓨팅 리소스(들)(112)은 애니메이션(들)(128) 또는 다른 이미지 데이터를 디스플레이용 VR 헤드셋(108)으로 전송할 수 있다.
본원에 상세하게 논의된 바와 같이, 원격 컴퓨팅 리소스(들)(112)은 모델(들)(120)을 이용하여 VR 헤드셋(108) 상에 디스플레이된 애니메이션들(128)을 생성할 수 있다. 일부 경우에, 원격 컴퓨팅 리소스(들)(112)은 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 사용하여 모델(들)(120)을 생성 및/또는 트레이닝시킬 수 있다. 원격 컴퓨팅 리소스(들)(112)은 사용자들과의 상호 작용들을 통해 그리고 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 수신하는 것을 통해 모델(들)(120)을 생성 및/또는 트레이닝시킬 수 있다. 프로세서(들)(116)는 모션 데이터(122)를 분석하고 모션 데이터(122)를 터치 데이터(124) 및/또는 힘 데이터(126)와 상관시킬 수 있다. 추가로, 프로세서(들)(116)는 터치 데이터(124)를 분석하고 터치 데이터(124)를 힘 데이터(126)와 연관시킬 수 있다.
프로세서(들)(116)은 사용자들의 특성들을 학습하기 위해 모션 데이터(122)의 캡처와 연관된 시간을 상관시킬 수 있다. 예를 들어, 프로세서(들)(116)은 터치 데이터(124)(예를 들어, 컨트롤러(110) 상의 위치) 및/또는 힘 데이터(126)의 특성들을 학습하고 이러한 특성들을 손의 특정 제스처들과 연관시킬 수 있다. 데이터 분석을 수행한 후, 프로세서(들)(116)는 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 상관시키기 위해 모델(들)(120)을 생성할 수 있다. 다시 말해, 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)를 분석하여 터치 데이터(124) 및/또는 힘 데이터(126)를 모션 데이터(122)에 의해 표현된 바와 같이 핸드 제스처들과 상관시키거나 그렇지 않으면 연관시킬 수 있다. 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 기반으로 모델(들)(120)을 트레이닝하면 모델(들)(120)이 사용자들의 후속 상호 작용들(즉, 게임플레이 동안)에서 수신된 터치 데이터(124) 및/또는 힘 데이터(126)를 사용하여 핸드 제스처들을 결정할 수 있다. 즉, 모델(들)(120)은 입력들로서 터치 데이터(124) 및/또는 힘 데이터(126)를 수신할 수 있고, 사용자(104)의 핸드 제스처를 결정하기 위해 터치 데이터(124) 및/또는 힘 데이터(126)를 이용할 수 있다. 예를 들어, 사용자가 컨트롤러(110)를 잡고 있을 때, 컨트롤러(110)는 근접 센서 어레이에 의해 생성된 터치 데이터(124)를 수신할 수 있으며, 여기서 터치 데이터(124)는 컨트롤러(110)에서 터치 입력의 위치를 나타낸다. 터치 데이터(124)는 또한 사용자의 손가락들과 컨트롤러(110) 사이의 정전 용량 값을 측정하는 것을 통해 컨트롤러(110)에 대한 사용자 손의 근접도를 나타낼 수 있다. 예를 들어, 사용자는 컨트롤러(110) 위로 자신의 손가락들을 호버링할 수 있다. 컨트롤러(110)는 터치 데이터(124)를 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있으며, 여기서 터치 데이터(124)는 모델(들)(120)에 입력된다. 추가로, 컨트롤러(110)의 FSR은 터치 입력과 연관된 힘의 양을 나타내는 힘 데이터(126)를 생성할 수 있다. 컨트롤러(110)는 힘 데이터(126)를 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있다.
컨트롤러(들)(110)로부터 터치 데이터(124) 및/또는 힘 데이터(126)를 수신 시, 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)의 특성들에 기초하여 모델(들)(120) 중 하나 이상을 선택할 수 있다. 예를 들어, 프로세서(들)(116)는 사용자(104)가 컨트롤러(110)를 잡는 힘의 양(힘 데이터(126)를 사용함) 및/또는 컨트롤러(110) 상에서 사용자(104)의 그립의 위치(터치 데이터(124)를 사용함)에 기초하여 핸드 제스처들을 생성하기 위한 특정 모델(들)(120)을 선택할 수 있다.
추가로, 일부 경우에, 프로세서(들)(116)는 사용자 관심사, 성별, 연령 등과 같은 기타 사용자 특성들에 부분적으로 기초하여 모델(들)(120)을 선택할 수 있다. 예를 들어, 사용자(104)가 컨트롤러(110)를 잡는 방법 및/또는 컨트롤러(110)가 터치 입력을 수신하는 위치에 따라, 프로세서(들)(116)는 사용자(104)의 연령 및/또는 손 크기를 식별할 수 있다. 이러한 정보는 상이한 모델(들)(120)을 선택하고/하거나 사용자(104)의 손들을 나타내는 애니메이션(들)(128)을 생성하는데 이용될 수 있다.
예를 들어, 프로세서(들)(116)은 터치 데이터를 모델(들)(120)로 입력할 수 있다. 모델(들)(120)을 사용하는 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)에 대응하는 애니메이션(들)(128)을 생성할 수 있다. 예로서, 터치 데이터(124) 및/또는 힘 데이터(126)를 사용하여, 그리고 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120)에 입력하는 것을 통해, 프로세서(들)(116)는 사용자가 주먹을 쥐고 컨트롤러(110)를 잡고 있다고 결정할 수 있다. 프로세서(들)(116)는 사용자 (104)의 주먹을 쥐고 있는 것을 묘사하는 애니메이션(128)을 생성하고 애니메이션(128)을 디스플레이용 VR 헤드셋(108)에 전송할 수 있다.
일부 경우에, 프로세서(들)(116)는 모델(들)(120)과 관련하여 저장된 프로파일들을 이용하여 터치 데이터(124) 및/또는 힘 데이터(126)에 의해 표현되는 가장 확률적인 핸드 제스처를 결정하기 위해 순위를 이용할 수 있다. 예를 들어, 프로세서(들)(116)는 특정 핸드 제스처들이 사용자의 터치 입력에 대응할 확률을 결정하기 위해 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120)의 일부 또는 모델(들)(120)의 전부와 비교할 수 있다. 이러한 경우, 모델(들)(120)은 컨트롤러(110)에서 수신된 터치 입력의 위치를 나타내는 터치 데이터(124) 및/또는 컨트롤러(110)에서 터치 입력의 상대적 힘을 나타내는 힘 데이터(126)와 관련하여 저장될 수 있다. 이러한 경우, 터치 데이터(124) 및/또는 힘 데이터(126)는 모델(들)(120)을 특성화할 수 있다. 따라서, 게이플레이 동안, 원격 컴퓨팅 리소스(들)(112)이 터치 데이터(124) 및/또는 힘 데이터(126)를 수신할 때, 원격 컴퓨팅 리소스(들)(112)는 각각 수신된 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120_과 관련하여 저장된 터치 데이터 및/또는 힘 데이터와 비교함으로써 애니메이션(128)을 생성하기 위해 하나 이상의 모델(들)(120)을 선택할 수 있다.
일부 경우에, 원격 컴퓨팅 리소스(들)(112)은 또한 장래 이벤트들에 대한 예측 모델링을 수행할 수 있다. 예측 모델링은 결과가 발생할 수 있는지 또는 발생할 수 없는지에 대한 확률을 결정할 수 있다. 예를 들어, 프로세서(들)(116)는 모션 데이터(122), 터치 데이터(124) 및/또는 메모리(118)로부터 이용 가능한 힘 데이터(126)를 이용하여 장래 핸드 제스처들의 확률을 결정할 수 있다. 예로서, 제1 터치 데이터(124) 및/또는 제1 힘 데이터(126)를 수신하고, 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120)에 입력하여 제1 핸드 제스처를 결정한 후, 프로세서(들)(116)는 이 다음의 제2 핸드 제스처를 예측하고 VR 헤드셋(108) 상에 디스플레이하기 위한 제2 핸드 제스처를 생성할 수 있다. 즉, 프로세서(들)(116)는 이전 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 이용하여 사용자(104)의 장래 핸드 제스처들을 예측하고 대응되는 애니메이션(들)(128)을 생성할 수 있다. 일부 예들에서, 예측은 VR 헤드셋(108) 상에 디스플레이되는 원격 컴퓨팅 리소스(들)(112)에 의해 생성된 제스처들 사이의 레이턴시 시간을 감소시킬 수 있다.
추가로, 프로세서(들)(116)는 예측된 제스처와 연관된 특정 확률 및/또는 신뢰를 결정할 수 있다. 예를 들어, 예측된 제2 핸드 제스처가 특정 신뢰 레벨 또는 임계값 내에 있으면, 프로세서(들)(116)는 제2 핸드 제스처에 대응하는 애니메이션(들)(128)을 생성하고 디스플레이용 VR 헤드셋(108)에 제스처를 제공할 수 있다.
일부 예들에서, 통계적 분석 기술들과 같은 검증 동작들은 모델(들)(120)의 정확성을 검증할 수 있다. 즉, 상기에 언급된 바와 같이, 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 반복적으로 캡처하는 것을 통해, 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)를 모션 데이터(122) 내에 표현된 핸드 제스처들(예를 들어, 기계 학습 알고리즘들 또는 기술들)과 더 잘 상관시키기 위해 모델(들)(120)을 트레이닝시킬 수 있다. 모델(들)(120)을 트레이닝시키는 것은 디스플레이된 애니메이션(들)(128)이 컨트롤러(110)에서 수신된 터치 데이터(124) 및/또는 힘 데이터(126)를 나타내는 정확도를 증가시킬 수 있다.
프로세서(들)(116)는 또한 상이한 유형들의 사용자들과의 상호 작용들에 기초하여 모델(들)(120)을 학습하는 컴포넌트들을 포함할 수 있다. 예를 들어, 프로세서(들)(116)는 모델(들)(120)을 구축 및/또는 개선할 수 있거나, 기존 모델(들)(120)의 조합들 및/또는 혼합들을 학습할 수 있다. 본원에 설명된 모델 생성 기술들은 또한 모델(들)을 트레이닝시키기 위한 그라디언트 부스팅 기술들 및/또는 하이퍼파라미터 튜닝 중 적어도 하나를 포함할 수 있다. 그라디언트 부스팅은 예를 들어, 결정 트리일 수 있는 약한 예측 모델의들 앙상블 형태로 예측 모델을 생성하는 것을 포함할 수 있다. 예측 모델은 단계적 방식으로 구축될 수 있으며 임의의 차등 손실 함수의 최적화를 허용할 수 있다. 하이퍼파라미터 튜닝은 트레이닝 프로세스 동안 하이퍼파라미터들의 최적화를 포함할 수 있다. 예를 들어, 모델(120)은 트레이닝 데이터 세트를 수신할 수 있다. 모델(120)의 총 정확도를 평가할 때, 하이퍼파라미터들이 튜닝될 수 있다.
추가로, 또는 대안으로, 모델(들)(120)을 트레이닝시키는 것은 모델(들)(120)의 정확도를 증가시키는 입력 특징들 및/또는 모델(들)(120)의 정확도를 감소시키거나 모델(들)(120)에 전혀 또는 거의 영향을 미치지 않는 다른 입력 특징들을 식별하는 것을 포함할 수 있다. 모델(들)(120)은 정확도를 감소시키거나 정확도에 전혀 또는 거의 영향을 미치지 않는 특징들을 사용하는 것을 자제하면서 정확도를 증가시키는 특징들을 이용하도록 재정비될 수 있다.
본원에 사용된 바와 같이, 프로세서(들)(116)와 같은, 프로세서는 다중 프로세서들 및/또는 다중 코어들을 갖는 프로세서를 포함할 수 있다. 또한, 프로세서들은 서로 다른 유형의 하나 이상이의 코어들을 포함할 수 있다. 예를 들어, 프로세서들은 어플리케이션 프로세서 유닛들, 그래픽 처리 유닛들 등을 포함할 수 있다. 일 구현예에서, 프로세서는 마이크로컨트롤러 및/또는 마이크로프로세서를 포함할 수 있다. 프로세서(들)(116)는 그래픽 처리 유닛(GPU), 마이크로프로세서, 디지털 신호 프로세서 또는 당업계에 알려진 다른 처리 유닛들 또는 컴포넌트들을 포함할 수 있다. 대안으로 또는 추가로, 본원에 기능적으로 설명된 것은 적어도 부분적으로 하나 이상의 하드웨어 로직 컴포넌트들에 의해 수행될 수 있다. 예를 들어, 그리고 제한 없이, 사용될 수 있는 예시적인 유형의 하드웨어 로직 컴포넌트들은 필드 프로그램 가능 게이트 어레이들(FPGA들), 어플리케이션별 집적 회로들(ASIC들), 어플리케이션별 표준 제품들(ASSP들), 시스템 온 칩시스템들(SOC), 복합 프로그램 가능 로직 장치들(CPLD들) 등을 CPLD (복잡한 프로그래밍 가능 논리 장치) 등을 포함한다. 추가로, 프로세서(들)(116) 각각은 프로그램 컴포넌트들, 프로그램 데이터 및/또는 하나 이상의 운영 체제들을 저장할 수 있는 자체 로컬 메모리를 가질 수 있다.
메모리는 컴퓨터 판독 가능 인스터럭션들, 데이터 구조들, 프로그램 컴포넌트들 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성 메모리, 착탈식 및 비착탈식 매체를 포함할 수 있다. 이러한 메모리(118)는 이에 제한되는 것은 아니나, RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD) 또는 기타 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 기타 자기 저장 장치들, RAID 저장 시스템들 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 장치에 의해 액세스될 수 있는 임의의 기타 매체를 포함할 수 있다. 메모리(118)는 컴퓨터 판독 가능 저장 매체("CRSM")로서 구현될 수 있으며, 이는 메모리(118)에 저장된 인스트럭션들 실행하기 위해 프로세서(들)(116)에 의해 액세스 가능한 임의의 이용 가능한 물리적 매체일 수 있다. 한 기본 구현예에서, CRSM은 랜덤 액세스 메모리("RAM") 및 플래시 메모리를 포함할 수 있다. 다른 구현예들에서, CRSM은 이에 제한되는 것은 아닌, 읽기 전용 메모리("ROM"), 전기적으로 소거 가능한 프로그램 가능 읽기 전용 메모리("EEPROM") 또는 원하는 정보를 저장하는 데 사용될 수 있고 프로세서(들)에 의해 처리될 수 있는 임의의 다른 유형의 매체를 포함할 수 있다.
예시적인 컨트롤러
도 2는 컨트롤러(110) (이는 도 1의 컨트롤러(110)를 나타낼 수 있고/있거나 이와 유사할 수 있음)를 잡고 있는 사용자(104)를 도시한다. 컨트롤러(110)는 핸들, 스트랩, 그립 등과 같은 컨트롤러(110)의 임의의 부분에 결합되고/되거나 부착될 수 있는 마커들(200)을 포함할 수 있다. 유사하게, 사용자(104)의 일부들은 손가락 끝, 너클, 손가락 관절, 손목 등과 같이, 사용자(104)의 손에 및/또는 이를 따라 부착되는 마커들(202)을 포함할 수 있다. 일부 경우에, 마커들(200, 202)은 접착제들을 사용하여, 각각 사용자(104) 및/또는 컨트롤러(110)에 부착될 수 있다.
마커들(200, 202)은 모션 캡처 시스템(들)(102)의 프로젝터(들)에 의해 방출되는 전자기 방사(예를 들어, 적외선 광)에 반응하는 적외선 요소들, 반사기들 및/또는 이미지들을 포함할 수 있다. 추가로 또는 대안으로, 마커들(200, 202)은 모션 캡처 시스템(들)(102)의 카메라들에 의해 캡처된 전자기 방사(예를 들어, 적외선 광)를 방출하는 트랙킹 비콘들을 포함할 수 있다.
상기에 언급된 바와 같이, 모션 캡처 시스템(들)(102)은 마커들(200, 202)을 검출하기 위해 환경(100) 및 그 안에 포함된 객체들과 같은, 환경의 적어도 일부를 스캔할 수 있다. 예를 들어, 프로젝터(들)는 사용자(104) 및 컨트롤러(들)(110)를 향해 적외선 광을 투사할 수 있고, 마커들(200, 202)은 광을 반사할 수 있으며, 모션 캡처 시스템(들)(102)의 카메라(들) 및/또는 센서들은 반사된 광을 캡처할 수 있다. 그 안에서, 이미지들을 분석하는 것을 통해, 컨트롤러(들)(110) 및/또는 사용자(104)의 손의 위치 및/또는 방향이 결정될 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)(또는 다른 컴퓨팅 장치들)는 카메라들에 의해 캡처된 이미지들을 분석 및 파싱할 수 있으며, 환경(100) 내의 마커들(200, 202)의 위치들을 식별할 수 있다. 원격 컴퓨팅 리소스(들)(112)는 마커들(200, 202)의 위치를 사용하여, 사용자(104)에 의해 수행된 제스처들, 손 위치들, 손가락 위치들(즉, 어떤 손가락들이 펴지고, 말려지는지 등) 등을 결정할 수 있다. 추가로, 모션 캡처 시스템(들)(102)(또는 기타 컴퓨팅 시스템들)은 마커들(200, 202)의 위치/패턴에 관한 정보를 활용하여 손을 나타내는 골격 모델(예를 들어, 애니메이션화된 3D 골격 모델) 및 손의 제스처(예를 들어, 주먹을 쥠)을 생성할 수 있다.
도 3 내지 7은 본 개시의 예시적인 실시예에 따른 예시적인 컨트롤러(300)(도 1 및 2의 컨트롤러(110)를 나타낼 수 있고/있거나 이와 유사할 수 있음)를 도시한다. 일부 경우, VR 비디오 게임 시스템, 로봇, 무기 또는 의료 장치와 같은 전자 시스템은 컨트롤러(300)를 활용할 수 있다. 컨트롤러(300)는 핸들(312)을 갖는 컨트롤러 본체(310) 및 컨트롤로(300)를 사용자의 손(예를 들어, 사용자의 왼손)에 유지하기 위한 핸드 리테이너(320)를 포함할 수 있다. 일부 경우, 핸들(312)은 실질적으로 원통형 관형 하우징을 포함할 수 있다. 이 맥락에서, 실질적으로 원통형 형상은 일정한 직경이나 완전한 원형 단면을 가질 필요가 없다.
컨트롤러 본체(310)는 헤드(핸들(312)과 원위 단부(311) 사이)를 포함할 수 있으며, 이는 하나 이상의 엄지 손가락으로 동작되는 컨트롤들(314, 315, 316)을 선택적으로 포함할 수 있다. 예를 들어, 헤드는 틸팅 버튼, 또는 정상 작동 동안 그리고 컨트롤러(300)가 사용자의 손에 쥐여져 있는 동안 사용자의 엄지 손가락으로 편리하게 조작되는 엄지 손가락으로 작동되는 컨트롤로 간주되는 임의의 다른 버튼, 노브, 휠, 조이스틱 또는 트랙볼을 포함할 수 있다.
일부 경우에, 컨트롤러(300)는 컨트롤러 본체(310)에 고정되는 트랙킹 부재(330)를 포함할 수 있으며, 트랙킹 부재(330)의 두 대향하는 원위 단부들 중 대응하는 하나로부터 각각 돌출된 두 개의 코들(332, 334)을 포함할 수 있다. 일부 경우, 트랙킹 부재(330)는 아치형 형상을 갖는 트랙킹 호를 포함할 수 있다. 일부 경우에, 트랙킹 부재(330)는 그 안에/그 위에 배치된 복수의 트랙킹 변환기들(도 2의 마커들(200, 202)을 나타낼 수 있고/있거나 이와 유사 할 수 있는)을 포함할 수 있다. 일부 경우에, 각 돌출 코(332, 334)는 적어도 하나의 추적 변환기를 포함할 수 있다. 추가로 또는 대안으로, 컨트롤러 본체(310)는 적어도 하나의 원위 트랙킹 트랜스듀서가 원위 단부(311)에 인접하게 배치된 트랙킹 트랜스듀서들을 포함할 수 있다. 트랙킹 센서들을 포함할 수 있는 트랙킹 트랜스듀서들은 모션 캡처 시스템(들)(102)에 의해 방출된 전자기 방사선(예를 들어, 적외선 광)에 응답할 수 있다. 추가로 또는 대안으로, 트랙킹 트랜스듀서들은 모션 캡처 시스템(들)(102)의 카메라들에 의해 수신되는 전자기 방사(예를 들어, 적외선 광)를 방출하는 트랙킹 비콘들을 포함할 수 있다. 예를 들어, 모션 캡처 시스템(들)(102)의 프로젝터들은 컨트롤러(300)를 향해 펄스 적외선 광을 널리 브로드 캐스트 할 수 있다. 여기서, 트랙킹 부재(330)의 복수의 트랙킹 트랜스듀서들은 브로드캐스팅된 펄스 적외선 광을 수신하거나 그림자를 드리우는 적외선 광 센서들을 포함할 수 있다. 일부 경우에, 각 코(332, 334)에 있는 트랙킹 트랜스듀서들(예를 들어, 각 코에 있는 3개의 센서들)은 증가된 노출(즉, 사용자의 손 주위)을 위해 트랙킹 부재(330)의 각 원위 단부에 사용자의 손을 오버행시키고 허용할 수 없는 양의 그림자 없이 더 많은 각도들에서 프로젝터들에 의해 방출된 전자기 방사선을 수신하거나 전자기 방사선을 카메라들로 전송할 수 있다.
트랙킹 부재(330) 및/또는 컨트롤러 본체(310)의 재료는 서로에 대해 뚜렷하게 병진이동하거나 회전하지 않도록 함께 견고하게 고정된 하드 플라스틱과 같은 실질적으로 단단한 재료를 포함할 수 있다. 예를 들어, 도 3 내지 7에 도시된 바와 같이, 트랙킹 부재(330)는 두 위치들에서 컨트롤러 본체(310)에 결합될 수 있다. 핸드 리테이너(320)는 두 위치들 사이의 핸들(312)의 외부 표면에 대해 사용자의 손바닥을 편향시키기 위해, 이들 두 위치들에 인접한 컨트롤러(300)(예를 들어, 컨트롤러 본체(310) 및/또는 트랙킹 부재(330))에 부착될 수 있다.
특정 실시예들에서, 트랙킹 부재(330) 및 컨트롤러 본체(310)는 함께 조립되는 것이 아니라 재료 연속성을 갖는 일체형 모놀리식 컴포넌트를 포함할 수 있다. 예를 들어, 단일 사출 성형 공정은 트랙킹 부재(330)와 컨트롤러 본체(310)를 함께 성형하여, 트랙킹 부재(330)와 컨트롤러 본체(310) 둘 모두를 포함하는 하나의 일체형 하드 플라스틱 컴포넌트를 생성할 수 있다. 대안으로, 트랙킹 부재(330) 및 컨트롤러 본체(310)는 나중에 함께 조립되는 개별적으로 제조된 부품들을 포함할 수 있다. 어느 경우든, 트랙킹 부재(330)는 컨트롤러 본체(310)에 부착될 수 있다.
핸드 리테이너(320)는 도 3의 개방 위치에 도시된다. 핸드 리테이너(320)는 사용자가 자신의 시야가 VR 헤드셋(예를 들어, VR 헤드셋(108))에 의해 차단된 컨트롤러(300)를 잡을 때 핸드 리테이너(320)와 컨트롤러 본체(310) 사이에 사용자의 왼손이 삽입되는 것을 용이하게 하기 위해 곡선형 탄성 부재(322)에 의해 개방 위치에서 선택적으로 편향될 수 있다. 예를 들어, 곡선형 탄성 부재(322)는 탄성적으로 구부러지는 가요성 금속 스트립을 포함할 수 있거나, 실질적으로 탄성적으로 구부릴 수 있는 나일론과 같은 대체 플라스틱 재료를 포함할 수 있다. 쿠션 또는 패브릭 재료(324)(예를 들어, 네오프렌 외피)는 사용자 편의를 제공하기 위해 곡선형 탄성 부재(322)를 부분적으로 또는 완전히 덮을 수 있다. 대안으로, 패브릭 재료(324)는 사용자의 손을 향하는 면과 같이 곡선형 타성 부재(322)의 면에만 부착될 수 있다.
핸드 리테이너(320)는 예를 들어, 스프링 편향 초크(328)에 의해 조여지는 드로우 코드(draw cord)(326)를 포함함으로써 길이를 조정할 수 있다. 드로우 코드(326)는 끈으로 사용되는 초과 길이를 가질 수 있다. 쿠션 또는 패브릭 재료(324)는 드로우 코드(326)에 결합될 수 있다. 특정 실시예들에서, 조여진 드로우 코드(326)의 장력은 곡선형 탄성 부재(322)를 프리로드할 수 있다. 이러한 실시예들에서, 곡선형 탄성 부재(322)가 (개방 위치에서 편향하기 위해) 핸드 리테이너(320)에 부여되는 장력은 드로우 코드(326)가 풀릴 때 핸드 리테이너(320)가 자동으로 개방되게 할 수 있다. 추가로 또는 대안으로, 핸드 리테이너(320)의 길이는 클리트, 탄성 밴드(손이 삽입될 때 일시적으로 늘어나므로 손등을 누르기 위해 탄성 장력을 가함), 길이 조절 등을 허용하는 후크 및 루프 스트랩 부착과 같은, 다른 방식으로 조정될 수 있다.
핸드 리테이너(320)는 핸들 (312)과 트랙킹 부재(330) 사이에 배치되고, 사용자의 손등과 접촉할 수 있다. 예를 들어, 도 4는 사용자의 왼손이 그 내부에 삽입되어 있지만 컨트롤러 본체(310)를 잡지 않은 상태로 동작하는 동안의 컨트롤러(300)를 나타낸다. 도 4에서, 핸드 리테이너(320)는 손 위로 닫히고 조여져 사용자의 손바닥을 핸들(312)의 외부 표면에 대해 물리적으로 편향되도록 한다. 닫혀 있을 때, 핸드 리테이너(320)는 사용자가 컨트롤러 본체(310)를 잡지 않는 경우에도 컨트롤러(300)를 사용자의 손 안에 유지할 수 있다.
컨트롤러 본체(310)의 핸들(312)은 외부 표면 주위에 부분적으로 또는 완전히 공간적으로 분포되는 근접 센서 어레이를 포함한다. 일부 경우에, 근접 센서 어레이의 근접 센서들은 반드시 동일한 크기일 필요는 없으며 그들 사이에 동일한 간격을 가질 필요는 없다. 일부 경우에, 근접 센서 어레이는 컨트롤러 본체(310) 주위에 공간적으로 분포된 그리드를 포함할 수 있다. 근접 센서 어레이는 핸들(312)의 외부 표면에 대한 사용자의 손가락(들)의 근접성에 반응한다. 예를 들어, 근접 센서 어레이는 핸들(312)의 외부 표면 아래에 임베디드된 용량성 센서 어레이를 포함할 수 있으며, 여기서 외부 표면은 사용자로부터 터치를 감지하기 위한 전기 절연 재료를 포함한다. 용량성 센서 어레이와 사용자 손의 일부 사이의 정전 용량은 그들 간 거리와 반비례할 수 있다. 정전 용량을 감지하기 위해, RC 오실레이터 회로는 정전 용량 센서 어레이의 요소에 연결될 수 있으며 RC 오실레이터 회로의 시정수, 및 이에 따른 진동 주기 및 주파수가 정전 용량에 따라 달라질 것이라는 점에 주목할 수 있다. 이러한 방식으로, 회로는 핸들(312)의 외부 표면으로부터 손가락(들)의 해제를 검출할 수 있다. 상기에 언급된 바와 같이, 근접 센서 어레이는 사용자로부터의 터치 입력에 응답하여 터치 데이터(예를 들어, 터치 데이터(124))를 생성할 수 있으며, 여기서 터치 데이터는 핸들(312)의 외부 표면에 대한 사용자의 손가락(들)의 근접성을 나타낸다.
핸드 리테이너 (320)는 사용자의 손 주위로 꽉 단단히 닫힐 때, 컨트롤러(300)가 손에서 떨어지는 것을 방지하고, 핸들 (312) 상의 근접 센서 어레이에 대해 손가락들이 과도하게 이동하는 것을 방지하여, 손가락 모션과 위치를 안정적으로 감지할 수 있다. 추가로, 모션 캡처 시스템(들)(102) 및/또는 원격 컴퓨팅 리소스(들)(112)는 제어된 캐릭터의 손의 펼침, 손가락 포인팅, 또는 컨트롤러 (300)에 대한 또는 서로에 대한 손가락들의 다른 모션들(예를 들어, 핸드 제스처들)을 렌더링하기 위해 근접 센서 어레이로부터의 터치 데이터(124)를 더 잘 사용하도록 해부학적으로 가능한 손가락들의 모션들을 구현하는 알고리즘을 포함할 수 있다. 이 방식으로, 컨트롤러(300) 및/또는 손가락들의 사용자의 움직임은 VR 게임 시스템, 방어 시스템, 의료 시스템, 산업용 로봇 또는 기계, 또는 다른 장치를 제어하는 데 도움이 될 수 있다. VR 시스템 어플리케이션들(예를 들어, 게임, 트레이닝 등을 위한)에서, 시스템은 트랙킹 트랜스듀서들의 움직임을 기반으로 던지기 모션을 렌더링할 수 있으며, 컨트롤러(300)의 핸들(312)의 외부 표면에서 사용자의 손가락들(예를 들어, 터치 데이터(124)를 사용함)의 해제를 감지하여 던진 객체의 해제를 렌더링할 수 있다.
따라서, 핸드 리테이너(320)는 컨트롤러(300)가 실제로 손에서 분리되거나, 바닥에 있거나, 던지거나 및/또는 떨어지지 않고도 사용자가 컨트롤러(300)를 "놓을" 수 있게 하며, 이는 제어된 전자 시스템의 추가 기능을 가능하게 할 수 있다. 예를 들어, 컨트롤러 본체(310)의 핸들(312)에 대한 사용자의 움켜 쥠의 해제 및/또는 복원을 감지하는 것은 게임플레이 내에서 객체들에 대한 대응되는 던지기 및/또는 잡기를 나타낼 수 있다. 따라서, 핸드 리테이너(320)는 이러한 애니메이션들 동안 사용자의 손을 안전하게 고정하고 유지할 수 있다. 일부 경우에, 도 3 내지 7의 실시예에서 핸드 리테이너(320)의 위치는 예를 들어, 사용자가 VR 환경에서 감지된 프롬프트에 응답하여 움직일 때(예를 들어, VR 헤드셋(108)에 의해 실질적으로 블라인드되는 동안) 현실 세계에서의 충격으로부터 사용자의 손등을 보호하도록 트랙킹 부재(330)를 도울 수 있다.
본원에 논의되는 바와 같이, 컨트롤러(300)는 사용자로부터의 터치들과 연관된 힘 값들(예를 들어, 힘 데이터(126))을 검출하기 위해 FSR을 포함할 수 있다. 힘 데이터(126)는 VR 환경에서 사용자의 움직임들 및/또는 그립들을 나타내기 위해 터치 데이터(124)와 함께 이용될 수 있다.
특정 실시예들에서, 컨트롤러(300)는 컨트롤러 본체(310) 내에 배치된 충전식 배터리를 포함할 수 있고/있거나 핸드 리테이너(320)(예를 들어, 손 고정 스트랩)는 충전식 배터리에 전기적으로 결합된 전기 전도성 충전 와이어를 포함할 수 있다. 컨트롤러(300)는 또한 나머지 모션 캡처 시스템(들)(102)과 통신하기 위한 무선 주파수(RF) 트랜스미터를 포함할 수 있다. 충전식 배터리는 RF 트랜스미터에 전력을 공급할 수 있으며, 엄지 손가락으로 동작되는 컨트롤들(314, 315, 316), 컨트롤러 본체(310)의 핸들(312)에 있는 근접 센서 어레이 및/또는 트랙킹 부재(330)에 있는 트랙킹 센서들에 응답할 수 있다.
도 5 및 6은 핸드 리테이너(320)가 닫혀 있을 때 및 손이 컨트롤러 본체(310)를 잡을 때의 동작 동안의 컨트롤러(300)를 도시한다. 도 5 및 6은 또한 엄지 손가락이 엄지 손가락으로 동작되는 컨트롤들(예를 들어, 트랙 패드(316)) 중 하나 이상을 동작시킬 수 있음을 예시한다.
도 7은 특정 실시예에서, 컨트롤러(300)는 유사한 우측 컨트롤러(700)를 포함할 수 있는 한 쌍의 컨트롤러들의 좌측 컨트롤러를 포함할 수 있음을 도시한다. 특정 실시예들에서, 컨트롤러들(300, 700)은 동시에, 사용자의 양 손으로부터, 각각, 근접 센서 및 FSR 어레이로부터 터치 데이터(124) 및/또는 힘 데이터(126)를 개별적으로 생성할 수 있다. 집합적으로, 원격 컴퓨팅 리소스(들)(112)는 (모션 캡처 시스템(들)(102)의 카메라(들)로부터) 모션 데이터(122)뿐만 아니라 터치 데이터(124) 및/또는 힘 데이터(126)(컨트롤러들(300, 700)로부터)를 수신하여 VR 경험을 향상시킬 수 있다.
도 8a 및 8b는 본 개시의 다른 예시적인 실시예에 따라, 각각, 우측 컨트롤러(800)의 전면도 우측 컨트롤러(800)의 후면도를 도시한다. 일부 경우에, 우측 컨트롤러(800)는 도 1의 컨트롤러(들)(110) 및 도 3 내지 7의 컨트롤러(300)에 대해 상기에 논의된 컴포넌트들을 포함할 수 있다.
컨트롤러(800)는 헤드(810) 및 핸들(812)을 포함하는 컨트롤러 본체를 포함할 수 있다. 도 8a 및 8b의 실시예에서, 머리(810)는 적어도 하나의 엄지 손가락으로 동작되는 컨트롤(A, B, 808)을 포함할 수 있으며, 검지 손가락으로 작동 가능한 컨트롤(예를 들어, 트리거(809))도 포함할 수 있다. 일부 경우에, 핸들(812)은 외부 쉘(840)에 의해 부분적으로 감싸인 관형 하우징을 포함할 수 있다.
외부 쉘(840)의 내부 표면은 공간적으로 분포된 근접 센서 어레이를 포함할 수 있다. 근접 센서 어레이는 외부 쉘(840)에 대한 사용자의 손가락들의 근접에 응답할 수 있다. 근접 센서 어레이의 근접 센서들을 반드시 동일한 크기일 필요는 없으며, 이들은 반드시 서로 규칙적으로 또는 균등하게 이격되지 않아도 된다. 특정 실시예들에서, 근접 센서 어레이는 외부 쉘(840)의 내부 표면에 접합된 플렉스 회로에 연결될 수 있는 복수의 용량성 센서들일 수 있다.
트랙킹 부재(830)는 헤드 (810) 및 핸들(812) 단부에서 컨트롤러 본체에 부착될 수 있다. 핸드 리테이너(820)는 헤드(810)와 핸들(812)의 단부 사이에서 외부 쉘(840)에 대해 사용자의 손바닥을 물리적으로 편향되도록 구성된다. 핸드 리테이너(820)는 바람직하게는 핸들(812)과 트택킹 부재(830) 사이에 배치되고, 길이가 조절되고 사용자의 손등에 접촉하는 핸드 리테이너 스트랩을 포함할 수 있다. 도 8a 및 8b의 실시예에서, 핸드 리테이너(820)는 코드 잠금 장치(826)의 위치에서 드로우 코드(828)에 의한 슬라이딩 모션을 선택적으로 방지하는 코드 잠금 장치(826)(핸들(812)의 원위 단부에 인접함)에 의해 길이를 조정할 수 있는 드로우 코드(828)를 포함할 수 있다.
도 8a 및 8b의 실시예에서, 트랙킹 트랜스듀서들(832, 833)은 트랙킹 부재(830) 상에 배치된다. 일부 경우에, 트랙킹 부재(830)의 대향하는 원위 단부에서 돌출된 코들은 트랙킹 트랜스듀서들(822, 833)을 포함할 수 있다. 일부 경우에, 헤드(810)의 원위 영역은 추가 트랙킹 트랜스듀서들(834)을 포함할 수 있다. 트랙킹 트랜스듀서들(832, 833 및 834)은 모션 캡처 시스템(들)(102)에 의해 방출된 전자기 방사선(예를 들어, 적외선 광)에 반응하는 트랙킹 센서들을 포함할 수 있거나, 모션 캡처 시스템(들)(102)에 의해 수신된 전자기 방사선(예를 들어, 적외선 광)을 방출하는 트랙킹 비콘들을 포함할 수 있다. 예를 들어, 모션 캡처 시스템(들)(102)은 컨트롤러(800)를 향해 펄스 적외선 광을 널리 브로드캐스트하는 프로젝터(들)을 포함할 수 있다. 여기서, 복수의 트랙킹 트랜스듀서들(832, 833, 834)은 브로드캐스트된 펄스 적외선 광을 수신하는 적외선 광 센서들을 포함할 수 있다. 모션 캡처 시스템(들)(102)은 트랙킹 센서들의 응답을 수신할 수 있고, 모션 캡처 시스템(들)(102) 및/또는 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(800)의 위치 및 방향을 효과적으로 추적하기 위해 이러한 응답을 해석할 수 있다.
인쇄 회로 기판(PCB)은 핸들(812) 내에 장착될 수 있으며, 컨트롤러(800) 내의 컴포넌트들(예를 들어, 버튼, 배터리 등)를 전기적으로 연결할 수 있다. PCB는 힘 감지 저항기(FSR)를 포함할 수 있으며, 컨트롤러(800)는 외부 쉘(840)을 통해 적용된 압축력을 핸들의 관형 하우징의 외부를 향해 FSR 내측으로 전달하는 플런저를 포함할 수 있다. 특정 실시예들에서, 근접 센서 어레이와 함께 FSR은 사용자에 의한 파지의 개시 및 사용자에 의한 이러한 파지의 상대적 강도 둘 모두의 감지를 용이하게 할 수 있으며, 이는 특정 게임플레이 특징들을 용이하게 할 수 있다.
예시적인 힘 감지 저항기(FSR)
도 9a 내지 9c는 본 개시의 예시적인 실시예에 따른 힘 감지 저항기(FSR)(900)의 서로 다른 도면들을 도시한다. 도 9c의 FSR(900)의 단면에 도시된 바와 같이, FSR(900)은 제1 기판(902)을 포함할 수 있으며, 이는 일부 경우에 폴리이미드를 포함할 수 있다. FSR(900)은 제1 기판(902) 상에 (또는 위에) 배치된 제2 기판(904)을 더 포함할 수 있다. 제1 기판(902) 및 제2 기판(904)은 FSR(900)(즉, 2-층 FSR(900))의 2개의 1차 기판들(또는 층들)을 포함할 수 있다. 그러나, FSR(900)은 추가 층들을 포함할 수 있다는 것을 이해해야 한다. 일부 경우에, 제1 기판(902)은 FSR(900)의 2개의 1차 기판들에 대해 "바닥" 또는 "베이스" 기판을 나타낼 수 있지만, 일부 경우에 제1 기판(902) 뒤에(또는 아래에) (즉, 도 9c에 도시된 바와 같은, 음의 Z 방향으로)재료 층들이 있을 수 있다.
제1 기판(902)은 제1 기판(902)의 전면(즉, 양의 Z 방향을 향하는 표면)에 배치된 전도성 재료를 포함한다. 전도성 재료는 복수의 맞물린 금속 핑거들을 포함할 수 있다. 한편, 제2 기판(904)(때로는 저항성 "막" 이라고도 함)은 제2 기판(904)의 후면(즉, 음의 Z 방향을 향하는 표면)에 배치된 저항성 재료를 포함할 수 있다. 저항성 재료는 일정 레벨의 전기 저항(예를 들어, 평방(kOhm/sq) 300 킬로옴(kOhm) 내지 400 kOhm/sq의 범위 내에서의 상대적으로 높은 시트 저항)을 나타내는, 잉크 조성물(예를 들어, 은 잉크, 탄소 잉크, 이들의 혼합물 등)과 같은, 반도체 재료를 포함할 수 있다. 일부 경우에, 제2 기판(904)의 시트 레지스턴스가 350 kOhm/sq이다. 그러나, 제2 기판(904)은 FSR(900)이 다른 어플리케이션들(예를 들어, 비-컨트롤러 기반 어플리케이션들)에서 사용될 때와 같이, 본원에 명시된 시트 저항 범위 밖의 값들을 포함하는 기타 시트 저항 값들을 포함할 수 있다. 일부 실시예들에서, 제2 기판(904)의 재료는 마일라를 포함할 수 있으며, 저항성 재료는 제2 기판(904)의 후면 상에 배치된다. 일부 실시예들에서, 제2 기판(904)은 후면에 저항성 재료(예를 들어, 전도성 잉크 조성물)을 갖는 폴리이미드로 제조될 수 있다. 제2 기판(904)에 폴리이미드를 사용하면 리플로우 오븐을 사용하여 FSR(900)을 대량 생산할 수 있는 반면, 마일라는 이러한 고온들을 견딜 수 없을 수 있다.
FSR (900)은 제1 기판(902)과 제2 기판(904) 사이에 개재된 하나 이상의 스페이서 층들을 포함할 수 있어서, 제2 기판(904)의 중앙 부분이 제1 기판(902) 위에 매달려 그로부터 이격될 수 있다. 도 9c는 제한없이, 제1 기판(902)의 주변에서 제1 기판(902) 상에 배치된 커버레이(906) 및 커버레이(906) 상에 배치된 접착제 층(908)을 포함하는 2개의 스페이서 층들을 도시한다. 커버레이(906)의 재료는 폴리이미드를 포함할 수 있으며, 따라서 제1 기판 (902)과 동일한 재료를 포함할 수 있다. 커버레이(906)의 두께(Z 방향으로 측정됨)는 10 마이크론 내지 15 마이크론 범위일 수 있다. 접착제 층(908)의 두께(Z 방향으로 측정됨)는 50 마이크론 내지 130 마이크론 범위일 수 있다. 따라서, 제2 기판(904)이 제1 기판(902)으로부터 이격되는 총 거리는 하나 이상의 스페이서 층들의 두께들(예를 들어, 커버레이(906)의 두께에 접착제 층(908)의 두께를 더한 값)의 합일 수 있다. 이러한 층들은 FSR(900)이 비-컨트롤러 기반 어플리케이션들과 같은 다른 어플리케이션들에서 사용될 때와 같이, 본원에 명시된 두께 범위를 벗어난 두께들을 포함할 수 있다. 이와 같이, 이러한 두께 범위들은 비제한적인 것으로 이해해야 한다. 추가로, 일부 경우에, 접착제 층(908)의 두께는 매우 가볍게 인가된 힘(F) 하에서 초기 반응(예를 들어, FSR(900)이 입력을 감지하기 시작함)을 허용하기 위해 가능한 한 얇게(예를 들어, 지정된 두께 범위의 하위 끝에서) 만들어진다. 접착제는 그 재료 및 두께 둘 다 FSR(900)의 강성을 증가 또는 감소시키기 위해 달라질 수 있다.
기판(904)은 제2 기판(904)의 전면 상에 힘(F)을 전달하도록 구성된 액추에이터(910)(예를 들어, 디스크 형, 순응성 플런저)를 포함할 수 있다. 액추에이터(910)의 재료는 액추에이터(910)에 힘을 가할 때 어느 정도 변형되는 순응성 재료인 포론(Poron)을 포함할 수 있다. 액추에이터(910)는 가해진 힘(F)의 중심을 맞추기 위해 FSR(900)의 활성 영역의 중심과 동심일 수 있다. 액추에이터(910)는 또한 FSR(900)의 활성 영역의 일부에 걸쳐 있어 인가된 힘(F)를 FSR(900)의 활성 영역의 해당 일부에 걸쳐 균등하게 분산시킬 수 있다.
제2 기판(904)의 두께(Z 방향으로 측정됨)는 50 마이크론 내지 130 마이크론 범위를 포함할 수 있다. 이 예시적인 두께에서, 제2 기판(904)는 플렉서블하다. 예를 들어, 제2 기판(904)의 재료는 전술한 범위 내의 두께로 플렉서블한 마일라를 포함할 수 있다. FSR(900)의 기능적 동작은 제2 기판(904)의 후면 상의 저항성 재료가 액추에이터(910)에 인가된 압축력(F) 하에서 제1 기판(902)의 전면 상의 전도성 재료와 접촉하도록 하기 위해 제2 기판(904)의 가요성에 의존한다. 제1 기판(902)의 두께(Z 방향으로 측정됨)는 20 마이크론 내지 30 마이크론 범위를 포함할 수 있다. 이 두께에서, 폴리이미드도 플렉서블하다. 따라서, 제1 기판(902)도 플렉서블하다. 한편, 액수에이터(910)의 두께(Z 방향으로 측정됨)는 780 마이크론 내지 810 마이크론 범위일 수 있다. 이러한 층들은 FSR(900)이 다른 어플리케이션들(예를 들어, 비-컨트롤러 기반 어플리케이션들)에서 사용될 때와 같이, 본원에 명시된 두께 범위를 벗어난 두께들을 포함할 수 있다. 이와 같이, 이러한 두께 범위들은 비제한적인 것으로 이해해야 한다.
FSR(900)은 액추에이터(910)에 가해지는 가변 힘(F)에 응답하여 다양한 저항을 나타낼 수 있다. 예를 들어, 액추에이터(910)에 가해진 힘(F)이 증가함에 따라, 저항이 감소될 수 있다. 이 방식으로, FSR(900)은 인가된 힘(F)에 의해 값이 제어되는 가변 저항기로 나타낼 수 있다. FSR(900)은 "션트 모드" FSR(900) 또는 "스루 모드" FSR(900)을 포함할 수 있다. 션트 모드 FSR(900)에서, 제1 기판(902)의 전면에 배치된 전도성 재료는 복수의 맞물린 금속 핑거들을 포함할 수 있다. 가해진 힘(F)가 액추에이터(910)의 전면 (또는 상단)에 가해지면, 제2 기판(904)의 후면에 있는 저항 재료가 맞물린 금속 핑거들 중 일부와 접촉할 수 있으며, 이는 맞물린 금속 핑거들을 션트시켜, 이에 따라 FSR(900)의 출력 단자들에 걸친 저항을 변화시킨다. 맞물린 금속 핑거들에 대한 전도성의 예는 HA 구리 또는 RA 구리와 같은 구리를 포함할 수 있다. 맞물린 금속 핑거들은 또한 금속 도금을 포함할 수 있다.
감산 제조 공정은 복수의 맞물린 금속 핑거들을 형성할 수 있다. 맞물린 금속 핑거들 사이의 핑거 폭과 간격은 FSR(900)의 최대 감도 사이에 최적의 균형을 제공하고 제조 에칭 허용 오차를 최소화할 수 있다. 일부 경우에, 맞물린 금속 핑거들은 균일한 패턴 또는 불균일한 패턴들(예를 들어, 중앙으로 향하는 더 조밀한 핑거들 및 외부로 향하는 덜 조밀한 핑거들)을 포함할 수 있다. 추가로, 일부 경우에, 금 도금 전에 기저층 구리 위에 추가 구리 도금을 추가하는 것은 감지된 저항의 바람직하지 않은 증가를 유발할 수 있으므로 금 도금 전에 기저층 구리 위에 추가 구리 도금이 없을 수 있다. 따라서, 일부 경우에, 금 도금 전에 맞물린 금속 핑거들에 임의의 추가 구리 도금의 생략은 FSR(900)에서 최적의 감도를 얻을 수 있다.
스루 모드 구현예에서, 제1 기판(902) 상의 전도성 재료는 전도성 재료 상에 배치된 반도체성(또는 저항성) 재료를 갖는 전도성 재료의 고체 영역을 포함할 수 있다. 제2 기판(904)은 유사한 구조(예를 들어, 반도체성(또는 저항성) 재료가 그 위에 배치된 전도성 재료의 고체 영역)를 가질 수 있다. 각 기판(902 및 904) 상의 전도성 재료의 고체 영역은 개별 출력 단자에 결합될 수 있으며, 두 기판들(902 및 904)이 가해진 힘(F) 하에서 접촉할 때 여기 전류가 한 층을 통해 다른 층으로 통과할 수 있다.
이러한 구현예들을 통해, FSR(900)은 하부 기판의 재료로 마일라를 사용하는 것과 같은, 기존 FSR들에 비해 히스테리시스가 적고 (한 FSR(900)에서 다른 FSR(900)까지) 반복성이 더 높을 수 있다. 로딩 히스테리시스는 이전에 적용된 힘이 현재 FSR(900) 저항에 미치는 영향을 설명한다. 반응 곡선은 또한 단조롭고 가상의 암석을 부수거나 가상 풍선을 압착하는 등과 같은 VR 게임 시스템의 다수의 게임 메커니즘들에 활용될 수 있는 진정한 아날로그 입력을 모델링한다. 그러나, 본원의 예들은 가해진 힘(F)을 설명하지만, 제2 기판(904)의 작은 지점 대 제1 표면의 큰 영역에 인가된 동일한 양의 힘은 FSR(900)의 다른 저항 반응을 초래할 수 있기 때문에, FSR(900)은 실제로 가해진 압력(힘 x 면적)에 민감하다. 따라서, 액추에이터(910)는 가해진 힘(F) 하에서 응답 곡선의 관점에서 FSR (900)에 걸쳐 반복성을 유지하는 역할을 할 수 있다.
FSR(900)은 외력(또는 로드)이 없는 상태에서 개방 회로를 포함할 수 있다. 일부 실시예들에서, 제로 또는 무시할 수 있는 가해진 힘 하에서 제1 기판(902) 및 제2 기판(904)의 임의의 접촉을 설명하기 위해, 임계 회로는 제1 기판(902) 및 제2 기판(904)이 "접촉하고 있는 것으로 간주되는 임계 저항 값을 설정할 수 있으며, 이는 "2개의 1차 기판들(즉, 902 및 904)이 실제로 접촉하더라도 FSR (900)은 임계 저항 값이 충족될 때까지 개방 회로를 나타낼 수 있음을 의미한다.
FSR(900)은 본원에 개시된 컨트롤러(110, 300, 800)와 같은, 핸드 헬드 컨트롤러 내의 구조물의 평면 표면에 장착될 수 있다. FSR(900)은 컨트롤러 본체의 외부 표면에 가해진 사용자의 터치 입력들과 연관된 힘(예를 들어, 컨트롤 시 누르는 손가락에 의해 가해진 힘, 컨트롤로의 핸들을 손으로 파지하여 인가된 힘)의 양에 대응되는 저항 값을 측정하기 위해 컨트롤러 본체 내의 임의의 적절한 위치에 장착될 수 있다. FSR(900)은 PCB의 평면형 표면에 장착될 수 있으며, 그 자체는 핸들의 관형 하우징 내에 장착될 수 있다. 이 구성에서, 플런저는 FSR(900)의 액추에이터(910)와 인터페이스할 수 있으며, 이는 플런저로부터 액추에이터(910)로 압축력을 전달하는 것을 허용할 수 있다. 그러나, 플런저가 생략되고 액추에이터(910)가 핸들의 관형 하우징의 일부와 인터페이스 할 수 있는 다른 구성들이 가능하다.
추가로, 또는 대안으로, FSR(900)은 헤드(핸들과 원위 단부 사이) 내의 구조물의 평면 표면에 장착할 수 있다. 구조는 엄지 손가락으로 작동되는 컨트롤들 중 하나 이상의 아래의 헤드 내부내에 장착될 수 있다. 예를 들어, FRS(900)는 엄지 손가락으로 작동되는 컨트롤(예를 들어, 트랙 패드) 아래에 장착될 수 있다. 따라서, 컨트롤러가 동작하는 동안 사용자의 엄지가 엄지로 작동되는 컨트롤을 누를 때, 엄지로 작동되는 컨트롤 아래에 위치한 FSR(900)은 사용자의 엄지가 엄지로 작동하는 컨트롤에 가해지는 힘의 양에 해당하는 저항 값을 측정할 수 있다. 일부 경우에, 컨트롤러는 핸들 내에 장착된 하나 이상의 FSR들(900) 및/또는 컨트롤러 본체의 헤드 상의 하나 이상의 대응하는 컨트롤들 아래에 장착된 하나 이상의 FSR들(900)과 같이, 컨트롤러 본체 내에 배치된 다수의 FSR들(900)을 포함할 수 있다.
FSR(900)은 컨트롤러에서 구현될 때 가변 아날로그 입력들을 활성화할 수 있다. 예를 들어, 다양한 양의 힘으로 핸들을 파지하거나 엄지 손가락으로 동작되는 컨트롤(들)을 누르면 FSR(900)의 저항이 인가된 힘(F)에 따라 변할 수 있도록 할 수 있다. 저항은 게임 메커니즘들(예를 들어, 객체들을 집어 던지기)을 제어하기 위한 FSR 입력을 나타내는 다양한 디지털 값으로 변환될 수 있다.
FSR(900)은 다양한 터치들 또는 터치 스타일들을 활용할 수 있다. 예를 들어, "단순 임계값" 스타일은 디지털화된 FSR 입력 값이 임계값을 충족하거나 초과할 때 FSR 입력 이벤트가 발생함을 의미할 수 있다. 디지털화된 FSR 입력 값은 FSR(900)에 의해 측정된 특정 저항값에 해당하고, 이는 다시 FSR(900)에 인가된 특정 힘의 양에 해당하므로, 이러한 스타일의 "소프트 프레스"는 FSR(900)에 의해 측정된 저항값이 임계 저항값을 충족할 때 및/또는 인가된 힘(F)가 힘의 임계량을 충족할 때 FSR 입력 이벤트를 등록하는 것으로 생각할 수도 있다. 예를 들어, 컨트롤러(예를 들어, 컨트롤러(110, 300 및/또는 800))의 핸들이 FSR(900)을 포함하는 경우, 핸들은 힘의 임계값에 도달될 때까지 압착될 수 있으며, 이에 응답하여 FSR(900) 입력 이벤트가 "소프트 프레스"로 등록된다. "언프레스"에 필요한 힘은 디바운스 목적 및/또는 물리적 스냅 비율로 택트 스위치(tact switch)를 모방하기 위한 임계값의 일부일 수 있다. "헤어 트리거" 스타일은 베이스라인 임계값을 설정할 수 있으며, FSR(900)과 관련된 디지털화된 FSR 입력 값은 베이스라인 임계값을 충족하거나 초과하면 바인딩이 활성화된다(즉, FSR 입력 이벤트가 등록되어 있으며, 프레스 앤 홀드 버튼 작동과 유사함). 이후, 임의의 후속 힘의 감소는 바인딩을 비활성화(즉, FSR 입력 이벤트가 "등록되지 않음", 사용자가 버튼을 놓는 것과 유사함)하고, 바인딩을 비활성화한 후 힘이 증가하면 바인딩이 다시 활성화된다. "힙 파이어" 스타일은 "힙 파이어" 스타일은 다수의 바인딩 레벨들을 갖는 구성에서, 시간 지연을 이용하여, 시간 지연이 더 높은 임계값에 빠르게 충분히 도달하는 경우 더 낮은 FSR 입력 값들을 무시하는 데 사용될 수 있다는 점을 제외하면, 소프트 프레스의 "단순 임계값" 스타일과 유사할 수 있다. 시간 지연의 양은 다양한 서브 스타일들(예를 들어, 적극, 보통 및 완화) 사이에서 달라진다.
일부 경우에, 추가 소프트 프레스 임계값은 소프트 프레스의 "힙 파이어" 스타일에 대한 임계값과 같은 멀티-레벨 임계값을 포함할 수 있다. FSR 기반 입력을 위한 다양한 스타일의 소프트 프레스는 사용자가 다양한 힘으로 FSR 기반 입력 메커니즘을 파지하거나 눌러서 다수의 다른 게임 관련 아날로그 입력들을 활성화시킬 수 있다. 예를 들어, VR 게임은 사용자가 힘을 증가시키면서 컨트롤러 본체의 핸들을 꽉 쥐어 바위를 부수거나 풍선을 압착하도록 할 수 있다. 다른 예로서, 슈팅 기반 게임은 사용자가 서로 다른 레벨의 인가된 함으로 엄지 손가락으로 작동하는 컨트롤을 눌러 서로 다른 유형의 무기들 사이를 토글링할 수 있도록 한다.
일부 경우에, 사용자는 FSR 기반 입력 메커니즘의 작동과 관련된 손의 피로를 줄이기 위해 임계값을 조정할 수 있다. 일부 경우에, 임계값은 특정 게임에 대한 기본 임계값(예를 들어, 슈팅 게임에 대한 더 낮은 기본 임계값, 탐험 게임에 대한 더 높은 기본 임계값 등)을 포함할 수 있다.
예시적인 핸드 제스처들
도 10a 내지 10f는 컨트롤러(1002)(이는 도 1 및 2의 컨트롤러(110), 도 3 내지 7의 컨트롤러(300) 및/또는 도 8의 컨트롤러(800)를 나타낼 수 있고/있거나 이와 유사할 수 있음)를 잡고 있는 사용자(1000)의 서로 다른 변형들을 예시한다. 일반적으로, 그리고 상기 개시에 따르면, 컨트롤러(1002)에서 사용자(1000)의 터치 입력의 위치 및 힘을 감지하는 것을 통해(예를 들어, 근접 센서 및/또는 FSR(900) 어레이를 사용하여), 원격 컴퓨팅 리소스(들)(112)는 VR 헤드셋(108) 상에서 디스플레이 하기 위한 애니메이션(예를 들어, 애니메이션(128))을 생성할 수 있다. 애니메이션은 각각 도 10a 내지 10f에 묘사된 핸드 제스처들과 유사할 수 있다. 즉, 이전에 트레이닝된 모델(들) (120)을 사용하여, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(들)(1002)로부터 수신된 터치 데이터(124) 및/또는 힘 데이터(126)에 기초하여 손의 이미지들을 생성할 수 있다.
도 10a를 시작으로, 사용자(1000)는 펼쳐 잡고 있는 컨트롤러(1002)를 유지하는 것으로 도시된다. 사용자(1000)의 손가락들 및 엄지가 컨트롤러(1002)에 접촉하지 않지만, 대신에 컨트롤러(1002)가 사용자(1000)의 손바닥에 접촉할 수 있다. 컨트롤러(1002)는 이 접촉을 검출하고, 터치 데이터(124) 및/또는 힘 데이터(126)를 생성하고, 터치 데이터(124) 및/또는 힘 데이터(126)를 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있다. 여기서, 터치 데이터(124)는 사용자(1000)의 손바닥이 컨트롤러(1002)를 터치함을 표현하거나 나타낼 수 있다. 사용자(1000)가 자신의 손가락들로 도 110a의 컨트롤러(1002)를 파지하지 않기 때문에, 힘 데이터(126)는 사용자(1000)의 손바닥이 컨트롤러(1002)에 대해 편향되는 힘의 수준을 나타낼 수 있다. 일부 경우에, 사용자(1000)가 컨트롤러(1002)를 파지하지 않기 때문에, 컨트롤러(1002)는 핸들(312)의 외부 표면에 대한 사용자의 손가락(들)의 근접성을 나타내는 터치 데이터(124)만 생성할 수 있다.
원격 컴퓨팅 리소스(들)는 핸드 제스처에 대응하는 손 이미지 데이터(예를 들어, 애니메이션(128))를 생성할 수 있는 모델(들)(120)에 터치 데이터(124) 및/또는 힘 데이터(126)를 입력할 수 있다. 일부 경우에, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)를 입력하기 위해 지정된 모델(들)(120)을 선택할 수 있다. 일부 경우에, 게임플레이에서, 펼쳐진 핸드 제스처는 객체를 집거나 객체를 떨어뜨리는 등을 나타낼 수 있다.
도 10b는 사용자(1000)가 네 개의 손가락과 엄지 손가락 모두로 컨트롤러(1002)를 잡고 있는 것을 예시한다. 여기서, 컨트롤러(1002)의 근접 센서 어레이에 의해 생성된 터치 데이터(124)는 사용자(1000)의 파지를 나타낼 수 있다. FSR(예를 들어, FSR(900))에 의해 생성된 힘 데이(126)는 사용자(1000)가 컨트롤러(1002)를 잡는 힘을 나타낼 수 있다. 컨트롤러(1002)는 터치 데이터(124) 및/또는 힘 데이터(126)를 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있으며, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)에 대응하는 모델(들)(120)을 선택할 수 있다. 모델(들)(120)에 대응하는 애니메이션(128)은 주먹을 쥔 제스처, 잡는 제스처 등을 나타내는 핸드 제스처를 생성할 수 있다.
도 10c는 사용자(1000)가 엄지 손가락은 제외하고 네 개의 손가락 모두로 컨트롤러(1002)를 잡고 있는 것을 예시한다. 이 예에서, 원격 컴퓨팅 리소스(들)(112)는 연관된 모델(들)(120)을 결정하기 위해 터치 데이터(124) 및/또는 힘 데이터(126)를 이용할 수 있으며, 여기서 모델(들)(120)은 사용자(1000)가 엄지는 제외하고 네 개의 손가락 모두로 객체를 잡고 있는 것을 나타낸다. 모델(들)(120)은 컨트롤러(1002) 상의 터치의 이러한 구성(예를 들어, 엄지 손가락, 트리거 액추에이터 등)을 나타내는 VR 헤드셋(108) 상에 디스플레이하기 위한 애니메이션(128)을 생성할 수 있다.
도 10d는 사용자(1000)가 가운데 손가락과 네 번째 손가락으로 컨트롤러(1002)를 잡고 있는 것을 예시한다. 여기서, 터치 데이터(124)는 가운데 손가락과 네 번째 손가락의 터치를 나타낼 수 있다. 터치 데이터(124)는 또한 컨트롤러(1002)의 핸들의 외부 표면에 대한 집게 손가락 및 새끼 손가락(이는 컨트롤러(1002)와 접촉하지 않음)의 근접성을 나타낼 수 있다. 힘 데이터(126)는 사용자(1000)의 가운데 손가락 및/또는 네번째 손가락의 그립과 연관된 힘 값들을 나타낼 수 있다. 모델(들)(120)은 가운데 손가락과 네 번째 손가락의 터치들 및 이들의 연관된 힘 값들에 따라 연관된 애니메이션(128)을 생성할 수 있다.
도 10e는 사용자(1000)가 네 번째 손가락과 새끼 손가락으로 컨트롤러(1002)를 잡고 있는 것을 예시한다. 원격 컴퓨팅 리소스(들)(112)는 네 번째 손가락과 새끼 손가락의 터치 및/또는 검지 손가락 및/또는 가운데 손가락의 터치의 결여와 연관된 터치 데이터(124)를 활용하여 관련 모델(들)(120), 해당 애니메이션(128)을 선택하고, VR 헤드셋(108) 상에 디스플레이하기 위해 핸드 제스처를 생성할 수 있다. 원격 컴퓨팅 리소스(들)(112)는 또한 모델(들)(120)을 선택하고 핸드 제스처를 생성할 때 FSR로부터 생성된 힘 데이터(126)를 이용할 수 있다.
도 10f는 사용자가 검지 손가락, 가운데 손가락 및 새끼 손가락으로 컨트롤러(1002)를 잡고 있는 것을 예시한다. 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)를 이용하여 사용자(1000)가 무기를 발사하는 것과 같이 VR 헤드셋(108) 상에서 연관된 핸드 제스처를 생성한다.
도 10a 내지 10f는 연관된 핸드 제스처를 생성하기 위해 컨트롤러(1002)를 터치하는 사용자(1000)의 손가락 및 엄지의 특정 조합들을 예시하며, 다른 조합들도 가능하다. 이러한 상황들에서, 컨트롤러(1002)는 FSR(900)을 사용하여 사용자(1000)의 터치 입력과 연관된 힘뿐만 아니라 근접 센서 어레이를 사용하여 터치 입력과 관련된 위치를 검출할 수 있다. 컨트롤러(1002)는 터치 데이터(124) 및/또는 힘 데이터(126)를 원격 컴퓨팅 리소스(들)(112)로 전송할 수 있으며, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)에 대응하는 모델(들)(120)을 선택할 수 있다. 상기에 언급된 바와 같이, 모델(들)(120)은 이전 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 이용하여 이전에 트레이닝 및/또는 생성된다. 따라서, 나중에, 터치 데이터(124) 및/또는 힘 데이터(126)를 수신하는 것을 통해, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)를 하나 이상의 모델(들)(120)과 연관시킬 수 있다. 모델(들)(120)이 애니메이션(128)과 연관됨에 따라, 원격 컴퓨팅 리소스(들)(112)는 하나 이상의 모델(들)(120)을 선택하고, 대응하는 애니메이션(128)을 생성하고, 애니메이션(128)을 디스플레이 하기 위한 VR 헤드셋(108)에 전송할 수 있다.
예시적인 프로세스들
도 11 내지 13은 본 출원의 실시예들에 따른 다양한 프로세스들을 예시한다. 본원에 설명된 프로세스들은 일련의 동작들을 나타내는 논리적 흐름도에서 블록들의 집합으로서 예시되며, 이들 중 일부 또는 전부는 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 소프트웨어의 맥락에서, 블록들은 하나 이상의 프로세서들에 의해 실행될 때, 프로세서들이 언급된 동작들을 수행하는 하나 이상의 컴퓨터 판독 가능 매체에 저장된 컴퓨터 실행 가능 인스트럭션들을 나타낼 수 있다. 일반적으로, 컴퓨터 실행 가능 인스트럭션들은 특정 기능들을 수행하거나 특정 데이터 유형들을 구현하는 루틴들, 프로그램들, 오브젝트들, 구성요소들, 데이터 구조들 등을 포함한다. 블록들이 설명되는 순서는 특별히 언급하지 않는 한, 제한하는 것으로 해석되어서는 안된다. 임의 개수의 설명된 블록들은 임의의 순서로 및/또는 병렬로 결합되어 프로세스 또는 대체 프로세스들을 구현할 수 있으며, 모든 블록이 실행될 필요는 없다. 논의 목적을 위해, 프로세스들은 예를 들어, 도 1 내지 10과 관련하여 설명된 것과 같은 본원의 예들에서 설명된 환경들, 아키텍처들 및 시스템들을 참조하여 설명되지만, 프로세스들은 다양한 다른 환경들, 아키텍처들 및 시스템들에서 구현될 수 있다.
도 11을 시작으로, 블록(1102)에서, 프로세스(1100)는 컨트롤러에서의 터치 입력에 대응하는 터치 데이터를 수신할 수 있다. 터치 데이터는 터치 입력이 수신된 컨트롤러 상의 위치(들) 및/또는 컨트롤러에 대한 사용자의 손가락(들)의 근접성(예를 들어, 근접 센서들 또는 용량성 센서들의 어레이로부터의 정전 용량 값)을 나타낼 수 있다.
블록(1104)에서, 프로세스(1100)는 컨트롤러에서의 터치 입력에 대응하는 힘 데이터를 수신할 수 있다. 힘 데이터는 컨트롤러에서 터치 입력과 관련된 힘의 양을 나타낼 수 있다. 일부 경우에, 힘 값들이 특정 힘 임계값을 초과할 때 힘 데이터가 수신될 수 있다.
블록(1106)에서, 프로세스(1100)는 컨트롤러를 조작하는 사용자의 움직임에 대응하는 모션 데이터를 수신할 수 있다. 모션 데이터는 사용자의 손가락(들) 및 손목(들)의 움직임과 같은 사용자의 움직임들을 나타낼 수 있다. 모션 데이터는 또한 컨트롤러의 모션을 나타낼 수 있다.
블록(1108)에서, 프로세스(1100)는 터치 데이터, 힘 데이터 및/또는 모션 데이터를 사용하여 모델(들)을 트레이닝시킬 수 있다. 예를 들어, 모델(들)을 트레이닝시키기 위해, 프로세스(1100)는 모션 데이터에 의해 표현되는 바와 같이, 터치 데이터, 힘 데이터 및/또는 모션 데이터를 사용자의 움직임에 대응하도록 연관시킬 수 있다. 즉, 터치 데이터, 힘 데이터 및/또는 모션 데이터를 사용하여, 프로세스(1100)는 사용자 터치의 특성들을 학습하고 이러한 특성들을 모션 데이터로부터 결정된 특정 핸드 제스처들과 연관시키기 위해 모델(들)을 트레이닝시킬 수 있다. 일부 경우에, 특성들은 컨트롤러 상의 터치 입력(들)의 위치 및 힘을 포함할 수 있다. 일부 경우에, 터치 데이터, 힘 데이터 및/또는 모션 데이터는 터치 데이터, 힘 데이터 및/또는 모션 데이터가 각각 캡처된 시기에 대응하는 타임 스탬프를 이용하여 연관될 수 있다. 터치 데이터, 힘 데이터 및/또는 모션 데이터를 시간 척도에 오버레이하는 것을 통해, 프로세스(1100)는 터치 데이터 및/또는 힘 데이터를 모션 데이터와 연관시키고 사용자의 핸드 제스처(들)를 식별할 수 있다. 모델(들)을 트레이닝시킬 때, 추후 예들에서, 프로세스(1100)는 터치 데이터 및/또는 힘 데이터를 수신하고 (모션 데이터를 수신하지 않고) 연관된 제스처를 결정할 수 있다.
블록(1108)에서, 프로세스(1100)는 추가 터치 데이터, 추가 힘 데이터(예를 들어, 블록(1104)) 및/또는 추가 모션 데이터(예를 들어, 블록(1106))를 수신하기 위해 블록(1102)으로 루프화할 수 있다. 이 추가 데이터는 모델(들)을 더 트레이닝시키기 위해 사용될 수 있으며, 이는 터치 데이터 및/또는 추후 예들에서(예를 들어, 게임플레이 동안) 수신된 힘 데이터에 기초하여 보다 정확한 핸드 제스처 결정을 허용할 수 있다. 즉, 프로세스(1100)는 프로세스(1100)가 후속 터치 데이터 및/또는 힘 데이터를 수신할 때, 프로세스(1100)가 터치 데이터 및/또는 힘 데이터(모델(들)을 통해)에 대응하는 연관된 핸드 제스처를 정확하게 결정할 수 있도록 터치 데이터, 힘 데이터 및/또는 모션 데이터를 계속 상관시킬 수 있다. 여기서, 상기에 논의된 바와 같이, 터치 데이터, 힘 데이터 및/또는 모션 데이터를 상관시키는 것은 터치 데이터의 타임 스탬프, 힘 데이터의 타임 스탬프, 및/또는 모션 데이터의 타임 스탬프의 매칭을 포함할 수 있다.
블록(1110)에서, 프로세스(1100)는 터치 데이터를 수신할 수 있다. 일부 경우에, 블록(1110)에서 수신된 터치 데이터는 게임플레이 동안 수신된 터치 데이터에 대응할 수 있다.
블록(1112)에서, 프로세스(1100)는 힘 데이터를 수신할 수 있다. 일부 경우에, 블록(1112)에서 수신된 힘 데이터는 게임플레이 동안 수신된 터치 데이터에 대응할 수 있다.
블록(1114)에서, 프로세스(1100)는 모델(들)을 선택할 수 있다. 일부 경우에, 모델(들)을 선택하기 위해, 블록(1100)에서 수신된 터치 데이터는 터치 데이터 또는 이전에 생성된 모델(들)에 대응하는 터치 프로파일과 비교될 수 있다. 추가로 또는 대안으로, 모델(들)을 선택하는 것은 블록(1112)에서 수신된 힘 데이터를 이전에 생성된 모델(들)에 대응하는 힘 데이터 또는 터치 프로파일과 비교하는 것을 포함할 수 있다. 모델(들)의 터치 프로파일은 모델(들)의 핸드 제스처를 나타내는 힘 데이터 및/또는 모델(들)의 핸드 제스처를 나타내는 터치 데이터와 관련된 위치와 관련된 힘 값들을 포함할 수 있다. 예로서, 터치 데이터는 컨트롤러를 터치하는 가운데 손가락 및/또는 검지 손가락과 같은(예를 들어, 도 10d) 컨트롤러의 중앙에서의 터치 입력을 나타낼 수 있다. 일부 경우에, 터치 데이터는 터치 입력을 사용자의 특정 손가락들과 연관시킬 수 있고/있거나 컨트롤러를 터치하지 않는 손가락들을 나타낼 수 있다. 터치 데이터 및/또는 힘 데이터를 사용하여, 해당 모델이 선택될 수 있다.
블록(1116)에서, 프로세스(1100)는 터치 데이터 및/또는 힘 데이터를 모델(들)에 입력할 수 있다. 보다 구체적으로, 모델(들)이 이전에 터치 데이터 및/또는 힘 데이터를 모션 데이터 및 대응하는 핸드 제스처와 연관시키도록 트레이닝되었기 때문에, 일단 트레이닝되면, 모델(들)은 터치 데이터 및/또는 힘 데이터를 수신하고 핸드 제스처들을 결정할 수 있다. 다시 말해, 터치 데이터는 어느 손가락들이 컨트롤러를 파지하는지 또는 어느 손가락들이 컨트롤러를 파지하지 않는지를 나타낼 수 있을 뿐만 아니라, 터치에 대응하는 컨트롤러 상의 위치 또는 그 결여를 나타낼 수 있다. 따라서, 모델(들)이 트레이닝된 후, 모델(들)은 게임플레이 동안 수신된 사용자로부터의 터치를 나타내는 터치 데이터 및/또는 힘 데이터를 수락할 수 있다.
블록(1118)에서, 프로세스(1100)는 터치 데이터 및/또는 힘 데이터에 대응하는 이미지 데이터를 생성할 수 있다. 예를 들어, 터치 데이터 및/또는 힘 데이터를 모델(들)에 입력한 후, 프로세스(1100)는 터치 데이터 및/또는 힘을 사용하여 핸드 제스처를 생성할 수 있다.
블록(1120)에서, 프로세스(1100)는 디스플레이 상에 이미지 데이터를 제시할 수 있다. 프로세스(1100)에서, 디스플레이 상의 핸드 제스처의 표현은 컨트롤러와 상호 작용하는 사용자의 핸드 제스처에 대응할 수 있다. 게다가, 터치 데이터의 수신과 이미지 데이터의 제시 사이의 레이턴시를 줄이기 위해, 프로세스는 블록들(1110-1120)을 실시간으로 및/또는 실질적으로 서로 동시에 수행할 수 있다.
블록(1120)으로부터, 프로세스(1100)는 블록(1110)으로 루프화할 수 있다. 그 안에서, 프로세스(1100)는 블록들(1110, 1120) 사이를 반복하여 터치 데이터 및 힘 데이터를 지속적으로 수신하고 사용자로부터의 터치 입력에 대응하는 애니메이션을 생성할 수 있다. 그렇게 함으로써, 사용자가 게임을 할 때, 컨트롤러로부터 수신되는 터치 데이터 및/또는 힘 데이터는 게임에서 레벨, 장면, 프레임 등에 따라 변경될 수 있다. 지속적으로 터치 데이터 및/또는 힘 데이터를 모델(들)에 입력하는 것을 통해, 프로세스(1100)는 해당 모델(들)을 선택하고 디스플레이하기 위해 핸드 제스처들을 지속적으로 생성할 수 있다.
앞서 언급된 바와 같이, 일부 경우에, 블록(1102)과 블록(1108) 간 프로세스(1100)는 사용자가 게임플레이 모드에서 플레이하지 않고 모델(들)이 트레이닝하는 제1 시간 인스턴스 동안 발생할 수 있다. 예를 들어, 모델(들)의 트레이닝(또는 생성)은 모션 데이터(모션 캡처 시스템(들)(102)로부터 캡처됨), 터치 데이터 및/또는 힘 데이터가 캡처되고 터치 데이터 및/또는 힘 데이터를 특정 핸드 제스처들과 연관되도록 서로 상관되는 시설에서 발생할 수 있다. 추후 시간 인스턴스에서, 모델(들)이 트레이닝된 후, 사용자가 게임플레이 모드에 있는 동안 블록(1110)과 블록(1120) 간에 프로세스(1100)가 발생할 수 있다.
도 12에 도시된 바와 같이, 블록(1202)에서, 프로세스(1200)는 컨트롤러에서의 터치 입력에 대응하는 터치 데이터를 수신할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(예를 들어, 컨트롤러(110, 300 및/또는 800))로부터 터치 데이터(124)를 수신할 수 있다. 터치 데이터(124)는 사용자의 터치 입력(들)에 대응하는 컨트롤러 상의 위치(들)를 나타낼 수 있다. 예로서, 터치 데이터(124)는 사용자의 네 손가락 모두가 컨트롤러를 터치하고 있으며, 터치(들)의 위치를 나타낼 수 있으며, 또는 일부 경우에는 어떤 손가락들이 컨트롤러를 터치하지 않는지 및/또는 컨트롤러의 어느 영역이 터치 입력을 수신하지 않는지를 나타낼 수 있다.
블록(1204)에서, 프로세스(1200)는 컨트롤러에서의 터치 입력에 대응하는 힘 데이터를 수신할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(예를 들어, 컨트롤러(110, 300 및/또는 800))로부터 힘 데이터(126)를 수신할 수 있다. 힘 데이터(126)는 컨트롤러에서의 터치 입력과 관련된 힘의 양 또는 컨트롤러에서 사용자의 그립과 관련된 상대적 강도를 나타낼 수 있다. 예에서, 사용자가 컨트롤러를 잡지 않는 예에서(예를 들어, 도 10a에 도시된 바와 같이), 원격 컴퓨팅 리소스(들)(112)는 컨트롤러로부터 힘 데이터(126)를 수신하지 않을 수 있다.
블록(1206)에서, 프로세스(1200)는 컨트롤러를 조작하는 사용자의 움직임에 대응하는 모션 데이터를 수신할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)은 모션 캡처 시스템(들)(102)으로부터 모션 데이터(122)를 수신할 수 있다. 모션 데이터(122)는 마커들(200, 202)을 사용하여 사용자의 움직임들 및/또는 컨트롤러의 움직임들을 나타낼 수 있다. 상기에 언급된 바와 같이, 모션 캡처 시스템(들)(102)의 프로젝터(들)는 사용자 및/또는 컨트롤러 상에 배치된 마커들(200, 202) 상에 광을 투사할 수 있다. 마커들(200, 202)은 이 광을 반사할 수 있으며, 그런 다음 이는 모션 캡처 시스템(들)(102)의 카메라(들)에 의해 캡처된다.
블록(1208)에서, 프로세스(1200)는 터치 데이터, 힘 데이터 및/또는 모션 데이터를 사용하여 모델(들)을 트레이닝시킬 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 모션 데이터(122), 터치 데이터(124) 및/또는 힘 데이터(126)를 사용하여 모델(들)(120)을 트레이닝(또는 생성)할 수 있다. 일부 예들에서, 모델(들)(120)을 트레이닝시키는 것은 사용자의 움직임에 대응하는 터치 데이터(124) 및/또는 힘 데이터(126)의 특성들을 결정하기 위해 터치 데이터(124), 힘 데이터(126) 및/또는 모션 데이터(122)를 연관시키는 것을 포함할 수 있다. 그렇게 함으로써, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러로부터 수신된 터치 데이터(124)에 대응하는 이미지 데이터 또는 애니메이션(들)을 생성할 수 있다. 즉, 터치 데이터(124), 힘 데이터(126) 및/또는 모션 데이터(122)를 연관시키는 것을 통해, 나중의 경우, 터치 데이터(124) 및/또는 힘 데이터(126)를 수신 시, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)를 이전 모션 데이터(122)를 사용하는 사용자의 제스처와 상관시킬 수 있다. 일부 경우에, 터치 데이터(124), 힘 데이터(126) 및/또는 모션 데이터(122)를 연관시키는 것은 터치 데이터(124)의 타임 스탬프, 힘 데이터(126)의 타임 스탬프, 및/또는 모션 데이터(122)의 타임 스탬프의 매칭을 포함할 수 있다. 그렇게 함으로써, 원격 컴퓨팅 리소스(들)(112)는 (예를 들어, 기계 학습 알고리즘을 사용하여), 터치 데이터(124) 및/또는 힘 데이터(126)가 사용자의 핸드 제스처들과 관련되는 방법을 학습할 수 있다.
블록(1208)으로부터, 프로세스(1200)는 추가 터치 데이터(124), 추가 힘 데이터(126), 및/또는 추가 모션 데이터(122)를 수신하기 위해 블록(1202)으로 루프화할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 모델(들)(120)을 트레이닝시키기 위해 추가 터치 데이터(124)(예를 들어, 블록(1202)), 추가 힘 데이터(126)(예를 들어, 블록(1204)), 및/또는 추가 모션 데이터(122)(예를 들어, 블록(1206))를 수신할 수 있다. 모델(들)(120)을 트레이닝시키는 것은 사용자에 의해 수행된 핸드 제스처의 보다 정확한 결정을 허용할 수 있다.
도 13에 도시된 바와 같이, 블록(1302)에서, 프로세스(1300)는 터치 데이터를 수신할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(예를 들어, 컨트롤러(110, 300 및/또는 800))로부터 터치 데이터(124)를 수신할 수 있다. 일부 경우에, 컨트롤러의 근접 센서 어레이는 터치 데이터(124)를 생성할 수 있다. 터치 데이터(124)는 컨트롤러(110)에 사용자의 손가락 또는 손의 배치를 나타낼 수 있다.
블록(1304)에서, 프로세스(1300)는 힘 데이터를 수신할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 컨트롤러(예를 들어, 컨트롤러(110, 300 및/또는 800))로부터 힘 데이터(126)를 수신할 수 있다. 일부 경우에, 컨트롤러의 FSR(예를 들어, FSR(900))은 컨트롤러 상의 사용자의 터치들과 관련된 힘의 양을 나타낼 수 있는 힘 데이터(126)를 생성할 수 있다.
블록(1306)에서, 프로세스(1300)는 터치 데이터 및/또는 힘 데이터를 모델(들)에 입력할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)의 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120)에 입력할 수 있다. 보다 구체적으로, 모델(들)(102)이 이전에 터치 데이터(124) 및/또는 힘 데이터(126)를 모션 데이터(122) 및 핸드 제스처들과 연관시키도록 트레이닝되었기 때문에, 일단 트레이닝되면, 모델(들)(120)은 터치 데이터(124) 및/또는 힘 데이터(126)를 수신하여 핸드 제스처들을 결정할 수 있다. 일부 경우에, 원격 컴퓨팅 리소스(들)(112)는 터치 데이터(124) 및/또는 힘 데이터(126)를 터치 데이터(124) 및/또는 힘 데이터(126)와 밀접하게 일치하거나 연관된 모델(들)(120)에 선택적으로 입력할 수 있다. 예를 들어, 터치 데이터(124)가 사용자가 네 손가락들로 컨트롤러(110)를 파지하는 것을 나타내는 경우, 프로세서(들)(116)는 네 손가락 그립에 대응하는 모델(120)을 선택할 수 있다.
블록(1318)에서, 프로세스(1300)는 터치 데이터 및/또는 힘 데이터에 대응하는 이미지 데이터를 생성할 수 있다. 예를 들어, 모델(들)(120)을 사용하여 원격 컴퓨팅 리소스(들)(112)의 프로세서(들)(116)는 터치 데이터(124) 및/또는 힘 데이터(126)에 대응하는 핸드 제스처를 결정할 수 있다. 원격 컴퓨팅 리소스(들)(112)는 핸드 제스처에 대응하는 애니메이션(128)과 같은 이미지 데이터를 생성할 수 있다. 예를 들어, 모델(들)(120)은 터치 데이터(124) 및/또는 힘 데이터(126)를 이용하여 손의 애니메이션(128)(예를 들어, 바위를 부수거나 객체를 떨어뜨리는 것)을 생성할 수 있다.
블록(1320)에서, 프로세스(1300)는 디스플레이 상에 이미지 데이터를 제시할 수 있다. 예를 들어, 원격 컴퓨팅 리소스(들)(112)는 이미지 데이터를 VR 헤드셋(108)(또는 다른 컴퓨팅 장치)에 전송할 수 있으며, 이에 의해 VR 헤드셋(108)은 이미지 데이터를 디스플레이할 수 있다. VR 헤드셋(108)은 컨트롤러(들)(110)에서 수신된 터치 데이터(124) 및/또는 힘 데이터(126)에 따라 디스플레이에 핸드 제스처를 표시할 수 있다. 이와 같이, VR 헤드셋(108)의 디스플레이 상의 핸드 제스처의 표현은 사용자가 컨트롤러(들)(110)와 상호 작용하는 핸드 제스처와 상관될 수 있다. 게다가, 터치 데이터(124)의 수신과 VR 헤드셋(108) 상의 이미지 데이터의 제시 사이의 레이턴시를 줄이기 위해, 프로세스(1300)는 블록들(1302-1310)을 실시간으로 및/또는 실질적으로 서로 동시에 수행할 수 있다. 추가적으로, 모델(들)(120)의 사전 생성은 연관된 핸드 제스처를 생성하기 위해 터치 데이터(124) 및/또는 힘 데이터(126)를 수신할 때 더 빠른 컴퓨팅을 허용할 수 있다.
블록(1310)으로부터, 프로세스(1300)는 블록(1302)으로 루프화할 수 있으며, 여기서 프로세스(1300)는 이미지 데이터를 연속적으로 생성하기 위해 블록들(1302 및 1310) 사이에서 반복될 수 있다. 결과적으로, 사용자가 컨트롤러(110)를 잡고 파지하는 방식에 대응하는 터치 데이터(124) 및/또는 힘 데이터(126)가 업데이트될 수 있으며, 터치 데이터(124) 및/또는 힘 데이터(126)를 모델(들)(120)에 입력하는 것을 통해, 프로세스(1300)는 VR 헤드셋(108) 상에 디스플레이하기 위한 핸드 제스처들을 지속적으로 생성할 수 있다.
결론
전술한 발명이 특정 예들과 관련하여 설명되었지만, 본 발명의 범위는 이러한 특정 예들로 제한되지 않음을 이해해야 한다. 특정 동작 요구 사항들 및 환경들에 맞게 변경된 다른 수정들 및 변경들은 당업자에게 명백할 것이기 때문에, 본 발명은 개시의 목적으로 선택된 예에 제한되는 것으로 간주되지 않으며, 본 발명의 진정한 사상과 범위로부터의 방침을 구성하지 않는 모든 변경들 및 수정들을 포함한다.
본 출원은 특정 구조적 특징들 및/또는 방법론적 행위들을 갖는 실시예들을 설명하지만, 청구 범위가 설명된 특정 특징들 또는 행위들로 반드시 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 특정 특징들 및 행위들은 단지 본 출원의 청구항들의 범위에 속하는 일부 실시예들에 불과하다.
예시적인 조항들
본 개시의 실시예들은 다음의 조항들의 면에서 설명될 수 있다:
1. 시스템에 있어서,
하나 이상의 프로세서들; 및
하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
하나 이상의 센서들을 통해, 하나 이상의 컨트롤러들을 동작시키는 사용자 손의 제1 움직임에 대응되는 제1 모션 데이터를 수신하는 단계;
상기 하나 이상의 컨트롤러들을 통해, 상기 하나 이상의 컨트롤러를 동작시키는 상기 사용자 손의 제1 터치에 대응되는 제1 터치 데이터를 수신하는 단계;
상기 하나 이상의 컨트롤러들을 통해, 상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 상기 제1 터치에 대응되는 제1 힘 데이터를 수신하는 단계;
상기 제1 모션 데이터를 상기 제1 터치 데이터와 및 상기 제1 힘 데이터와 연관시키는 단계;
상기 제1 모션 데이터, 상기 제1 터치 데이터 및 상기 제1 힘 데이터에 적어도 부분적으로 기초하여, 상기 손의 제스처에 대응하는 모델을 생성하는 단계;
상기 하나 이상의 센서들을 통해, 상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 제2 움직임에 대응되는 제2 모션 데이터를 수신하는 단계;
상기 하나 이상의 컨트롤러들을 통해, 상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 제2 터치에 대응되는 제2 터치 데이터를 수신하는 단계;
상기 하나 이상의 컨트롤러들을 통해, 상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 상기 제2 터치에 대응되는 제2 힘 데이터를 수신하는 단계;
상기 제2 모션 데이터를 상기 제2 터치 데이터 및 상기 제2 힘 데이터와 연관시키는 단계;
상기 제2 모션 데이터, 상기 제2 터치 데이터 및 상기 제2 힘 데이터에 적어도 부분적으로 기초하여, 상기 손의 상기 제스처에 대응되는 상기 모델을 트레이닝시키는 단계;
상기 하나 이상의 컨트롤러들을 통해, 상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 제3 터치에 대응되는 제3 터치 데이터를 수신하는 단계;
상기 하나 이상의 컨트롤러들을 동작시키는 상기 사용자 손의 상기 제3 터치에 대응되는 제3 힘 데이터를 수신하는 단계; 및
상기 제스처 및 상기 제3 힘 데이터에 대응되는 상기 모델에 적어도 부분적으로 기초하여, 상기 손의 표현에 대응되는 이미지 데이터를 생성하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 시스템.
2. 제1항에 있어서, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이 상기 손의 상기 표면에 대응되는 상기 이미지 데이터를 가상 현실 디스플레이로 전송하는 단계를 포함하는 동작을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
3. 제1항에 있어서, 상기 하나 이상의 센서들을 깊이 센서를 포함하는, 시스템.
4. 제1항에 있어서,
상기 제1 모션 데이터를 상기 제1 터치 데이터 및 상기 제1 힘 데이터와 연관시키는 단계는 상기 제1 모션 데이터의 제1 시간 스탬프를 상기 제1 터치 데이터의 제1 시간 스탬프 및 상기 제1 힘 데이터의 제1 시간 스탬프와 매칭시키는 단계를 포함하고,
상기 제2 모션 데이터를 상기 제2 터치 데이터 및 제2 힘 데이터와 연관시키는 단계는 상기 제2 모션 데이터의 제2 시간 스탬프를 상기 제2 터치 데이터의 제2 시간 스탬프 및 상기 제2 힘 데이터의 제2 시간 스탬프와 매칭시키는 단계를 포함하는, 시스템.
5. 시스템에 있어서,
하나 이상의 프로세서들; 및
하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
컨트롤러를 동작시키는 손의 움직임에 대응되는 모션 데이터를 수신하는 단계;
상기 컨트롤러를 동작시키는 상기 손의 터치 입력에 대응되는 터치 데이터를 수신하는 단계;
상기 모션 데이터와 상기 터치 데이터를 연관시키는 단계; 및
상기 모션 데이터와 상기 터치 데이터를 연관시키는 것에 적어도 부분적으로 기초하여, 상기 손의 제스처에 대응되는 트레이닝 모델을 생성하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 시스템.
6. 제5항에 있어서, 상기 모션 데이터는 제1 모션 데이터를 포함하고 상기 터치 데이터는 제1 터치 데이터를 포함하며, 상기 손의 상기 움직임은 제1 움직임을 포함하고, 상기 손의 상기 터치 입력은 제1 터치 입력을 포함하며, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
상기 컨트롤러를 동작시키는 상기 사용자 손의 제2 움직임에 대응되는 제2 모션 데이터를 수신하는 단계;
상기 컨트롤러를 동작시키는 상기 손의 제2 터치 입력에 대응되는 제2 터치 데이터를 수신하는 단계; 및
상기 제2 모션 데이터와 상기 제2 터치 데이터에 적어도 부분적으로 기초하여, 상기 손의 상기 제스처에 대응되는 업데이트된 트레이닝 모델을 생성하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
7. 재6항에 있어서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
상기 업데이트된 트레이닝 모델을 사용하여, 상기 손의 표면에 대응되는 이미지 데이터를 생성하는 단계; 및
상기 손의 상기 표면에 대응되는 상기 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
8. 제7항에 있어서, 상기 이미지를 전송하는 것은 원격 장치가 상기 손의 상기 표현을 디스플레이하도록 하는, 시스템.
9. 제5항에 있어서, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이 상기 터치 입력과 연관된 힘의 양에 대응되는 힘 데이터를 수신하는 단계를 포함하는 동작을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하고,
상기 손의 상기 제스처에 대응되는 상기 트레이닝 모델을 생성하는 것은 상기 힘 데이터에 적어도 부분적으로 더 기초하는, 시스템.
10. 제5항에 있어서, 상기 터치 데이터는 상기 터치 입력을 수신하는 상기 컨트롤러 상에 하나 이상의 위치들을 나타내는, 시스템.
11. 제5항에 있어서, 상기 모션 데이터 및 상기 터치 데이터를 연관시키는 단계는 상기 모션 데이터의 시간 스탬프를 상기 터치 데이터의 시간 스탬프와 연관시키는 단계를 포함하는, 시스템.
12. 제5항에 있어서,
상기 시스템에 통신 가능하게 결합된 카메라로부터 상기 모션 데이터를 수신하는 단계를 포함하고,
상기 시스템에 통신 가능하게 결합된 컨트롤러로부터 상기 터치 데이터를 수신하는 단계를 포함하는, 시스템.
13. 시스템에 있어서,
하나 이상의 프로세서들; 및
하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
컨트롤러로부터,
상기 컨트롤러에서 수신된 터치 입력을 나타내는 터치 데이터; 또는
상기 터치 입력과 연관된 힘의 양을 나타내는 힘 데이터 중 적어도 하나를 수신하는 단계;
핸드 제스처와 연관되는 트레이닝된 모델에 대해 상기 터치 데이터 또는 상기 힘 중 적어도 하나를 분석하는 단계;
상기 분석에 적어도 부분적으로 기초하여, 상기 터치 데이터 또는 상기 힘 데이터 중 적어도 하나가 상기 핸드 제스처에 대응된다고 결정하는 단계;
상기 핸드 제스처를 나타내는 이미지 데이터를 생성하는 단계; 및
디스플레이하기 위해 상기 이미지 데이터를 전송하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 시스템.
14. 제13항에 있어서, 상기 터치 데이터는 상기 터치 입력에 대응하는 상기 컨트롤러 상의 위치를 나타내는, 시스템.
15. 제13항에 있어서, 상기 터치 데이터는 제1 터치 데이터를 포함하고, 상기 힘 데이터는 제1 힘 데이터를 포함하고, 상기 트레이닝된 모델은 제1 트레이닝된 모델을 포함하고, 상기 터치 입력은 제1 터치 입력을 포함하고, 상기 이미지 데이터는 제1 이미지 데이터를 포함하고, 상기 핸드 제스처는 제1 핸드 제스처를 포함하고, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
상기 컨트롤러로부터,
상기 컨트롤러에서 수신된 제2 터치 입력을 나타내는 제2 터치 데이터; 또는
상기 제2 터치 입력과 연관된 힘의 양을 나타내는 제2 힘 데이터 중 적어도 하나를 수신하는 단계;
제2 핸드 제스처와 연관되는 제2 트레이닝된 모델에 대해 상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 적어도 하나를 분석하는 단계;
상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 적어도 하나가 제2 핸드 제스처에 대응된다고 결정하는 단계;
상기 제2 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계; 및
디스플레이하기 위해 상기 제2 이미지 데이터를 전송하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
16. 제13항에 있어서, 상기 이미지 데이터는 제1 이미지 데이터를 포함하고 상기 핸드 제스처는 제1 핸드 제스처를 포함하고, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
적어도 하나 이상의 예측 모델링 기술들을 사용하고 상기 제1 핸드 제스처에 적어도 부분적으로 기초하여 제2 핸드 제스처를 결정하는 단계;
상기 제2 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계; 및
디스플레이하기 위해 상기 제2 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
17. 제13항에 있어서, 상기 트레이닝된 모델은,
제1 시간 기간 동안 하나 이상의 컨트롤러들로부터 수신된 이전 터치 데이터;
상기 제1 시간 기간 동안 상기 하나 이상의 컨트롤러들로부터 수신된 이전 힘 데이터; 또는
상기 제1 시간 기간 동안 하나 이상의 카메라들로부터 수신된 이전 이미지 데이터 중 적어도 하나를 사용하여 이전에 트레이닝된 모델을 포함하는, 시스템
18. 제13항에 있어서, 상기 컨트롤러는 제1 컨트롤러를 포함하고, 상기 터치 데이터는 제1 터치 데이터를 포함하고, 상기 힘 데이터는 제1 힘 데이터를 포함하고, 상기 이미지 데이터는 제1 이미지 데이터를 포함하고, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세스들에 의해 실행 시, 상기 하나 이상의 프로세스들이,
제2 컨트롤러로부터,
상기 제2 컨트롤러에서 수신된 터치 입력을 나타내는 제2 터치 데이터; 또는
상기 제2 컨트롤러에서 수신된 상기 터치 입력과 연관된 힘의 양을 나타내는 제2 힘 데이터 중 적어도 하나를 수신하는 단계;
하나 이상의 핸드 제스처들과 연관되는 하나 이상의 트레이닝된 모델들에 대해 상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 적어도 하나를 분석하는 단계;
상기 제2 컨트롤러에서 수신된 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계; 및
디스플레이하기 위해 상기 제2 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
19. 제13항에 있어서, 상기 이미지 데이터는 상기 핸드 제스처의 3차원(3D) 표현을 포함하는, 시스템.
20. 제13항에 있어서, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
상기 터치 데이터 또는 상기 힘 데이터 중 적어도 하나를 하나 이상의 트레이닝된 모델들과 비교하는 단계로서, 상기 하나 이상의 트레이닝된 모델들은 상기 트레이닝된 모델을 포함하고, 상기 트레이닝된 모델들 중 개별 트레이닝된 모델들은 하나 이상의 핸드 제스처들과 연관되는, 상기 비교하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하고,
상기 트레이닝된 모델에 대해 상기 터치 데이터 또는 상기 힘 데이터 중 적어도 하나를 분석하는 것은 상기 비교에 적어도 부분적으로 기초하는, 시스템.

Claims (15)

  1. 시스템에 있어서,
    하나 이상의 프로세서들; 및
    하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
    컨트롤러를 동작시키는 손의 움직임에 대응되는 모션 데이터를 수신하는 단계;
    상기 컨트롤러를 동작시키는 상기 손의 터치 입력에 대응되는 터치 데이터를 수신하는 단계;
    상기 모션 데이터와 상기 터치 데이터를 연관시키는 단계; 및
    상기 모션 데이터와 상기 터치 데이터를 연관시키는 것에 적어도 부분적으로 기초하여, 상기 손의 제스처에 대응되는 트레이닝 모델을 생성하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스럭션들을 저장하는, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 시스템.
  2. 제5항에 있어서, 상기 모션 데이터는 제1 모션 데이터를 포함하고 상기 터치 데이터는 제1 터치 데이터를 포함하며, 상기 손의 상기 움직임은 제1 움직임을 포함하고, 상기 손의 상기 터치 입력은 제1 터치 입력을 포함하며, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
    상기 컨트롤러를 동작시키는 상기 사용자 손의 제2 움직임에 대응되는 제2 모션 데이터를 수신하는 단계;
    상기 컨트롤러를 동작시키는 상기 손의 제2 터치 입력에 대응되는 제2 터치 데이터를 수신하는 단계; 및
    상기 제2 모션 데이터와 상기 제2 터치 데이터에 적어도 부분적으로 기초하여, 상기 손의 상기 제스처에 대응되는 업데이트된 트레이닝 모델을 생성하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
  3. 제2항에 있어서, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
    상기 업데이트된 트레이닝 모델을 사용하여, 상기 손의 표면에 대응되는 이미지 데이터를 생성하는 단계; 및
    상기 손의 상기 표면에 대응되는 상기 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
  4. 제3항에 있어서, 상기 이미지를 전송하는 것은 원격 장치가 상기 손의 상기 표현을 디스플레이하도록 하는, 시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이 상기 터치 입력과 연관된 힘의 양에 대응되는 힘 데이터를 수신하는 단계를 포함하는 동작을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하고,
    상기 손의 상기 제스처에 대응되는 상기 트레이닝 모델을 생성하는 것은 상기 힘 데이터에 적어도 부분적으로 더 기초하는, 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 터치 데이터는 상기 터치 입력을 수신하는 상기 컨트롤러 상에 하나 이상의 위치들을 나타내는, 시스템.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 모션 데이터 및 상기 터치 데이터를 연관시키는 단계는 상기 모션 데이터의 시간 스탬프를 상기 터치 데이터의 시간 스탬프와 연관시키는 단계를 포함하는, 시스템.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 시스템에 통신 가능하게 결합된 카메라로부터 상기 모션 데이터를 수신하는 단계를 포함하고,
    상기 시스템에 통신 가능하게 결합된 컨트롤러로부터 상기 터치 데이터를 수신하는 단계를 포함하는, 시스템.
  9. 시스템에 있어서,
    하나 이상의 프로세서들; 및
    하나 이상의 비일시적 컴퓨터 판독 가능 매체로서, 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
    컨트롤러로부터,
    상기 컨트롤러에서 수신된 터치 입력을 나타내는 터치 데이터; 또는
    상기 터치 입력과 연관된 힘의 양을 나타내는 힘 데이터 중 적어도 하나를 수신하는 단계;
    핸드 제스처와 연관되는 트레이닝된 모델에 대해 상기 터치 데이터 또는 상기 힘 중 적어도 하나를 분석하는 단계;
    상기 분석에 적어도 부분적으로 기초하여, 상기 터치 데이터 또는 상기 힘 데이터 중 적어도 하나가 상기 핸드 제스처에 대응된다고 결정하는 단계;
    상기 핸드 제스처를 나타내는 이미지 데이터를 생성하는 단계; 및
    디스플레이하기 위해 상기 이미지 데이터를 전송하는 단계를 포함하는 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체를 포함하는, 시스템.
  10. 제9항에 있어서, 상기 터치 데이터는 상기 터치 입력에 대응하는 상기 컨트롤러 상의 위치를 나타내는, 시스템.
  11. 제9항 또는 제10항 중 어느 한 항에 있어서, 상기 터치 데이터는 제1 터치 데이터를 포함하고, 상기 힘 데이터는 제1 힘 데이터를 포함하고, 상기 트레이닝된 모델은 제1 트레이닝된 모델을 포함하고, 상기 터치 입력은 제1 터치 입력을 포함하고, 상기 이미지 데이터는 제1 이미지 데이터를 포함하고, 상기 핸드 제스처는 제1 핸드 제스처를 포함하고, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
    상기 컨트롤러로부터,
    상기 컨트롤러에서 수신된 제2 터치 입력을 나타내는 제2 터치 데이터; 또는
    상기 제2 터치 입력과 연관된 힘의 양을 나타내는 제2 힘 데이터 중 적어도 하나를 수신하는 단계;
    제2 핸드 제스처와 연관되는 제2 트레이닝된 모델에 대해 상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 적어도 하나를 분석하는 단계;
    상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 적어도 하나가 제2 핸드 제스처에 대응된다고 결정하는 단계;
    상기 제2 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계; 및
    디스플레이하기 위해 상기 제2 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
  12. 제9항 또는 제10항 중 어느 한 항에 있어서, 상기 이미지 데이터는 제1 이미지 데이터를 포함하고 상기 핸드 제스처는 제1 핸드 제스처를 포함하고, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
    적어도 하나 이상의 예측 모델링 기술들을 사용하고 상기 제1 핸드 제스처에 적어도 부분적으로 기초하여 제2 핸드 제스처를 결정하는 단계;
    상기 제2 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계; 및
    디스플레이하기 위해 상기 제2 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서, 상기 트레이닝된 모델은,
    제1 시간 기간 동안 하나 이상의 컨트롤러들로부터 수신된 이전 터치 데이터;
    상기 제1 시간 기간 동안 상기 하나 이상의 컨트롤러들로부터 수신된 이전 힘 데이터; 또는
    상기 제1 시간 기간 동안 하나 이상의 카메라들로부터 수신된 이전 이미지 데이터 중 적어도 하나를 사용하여 이전에 트레이닝된 모델을 포함하는, 시스템.
  14. 제9항, 제10항 또는 제13항 중 어느 한 항에 있어서, 상기 컨트롤러는 제1 컨트롤러를 포함하고, 상기 터치 데이터는 제1 터치 데이터를 포함하고, 상기 힘 데이터는 제1 힘 데이터를 포함하고, 상기 이미지 데이터는 제1 이미지 데이터를 포함하고, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세스들에 의해 실행 시, 상기 하나 이상의 프로세스들이,
    제2 컨트롤러로부터,
    상기 제2 컨트롤러에서 수신된 터치 입력을 나타내는 제2 터치 데이터; 또는
    상기 제2 컨트롤러에서 수신된 상기 터치 입력과 연관된 힘의 양을 나타내는 제2 힘 데이터 중 적어도 하나를 수신하는 단계;
    하나 이상의 핸드 제스처들과 연관되는 하나 이상의 트레이닝된 모델들에 대해 상기 제2 터치 데이터 또는 상기 제2 힘 데이터 중 적어도 하나를 분석하는 단계;
    상기 제2 컨트롤러에서 수신된 핸드 제스처를 나타내는 제2 이미지 데이터를 생성하는 단계; 및
    디스플레이하기 위해 상기 제2 이미지 데이터를 전송하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하는, 시스템.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서, 상기 하나 이상의 비일시적 컴퓨터 판독 가능 매체는 상기 하나 이상의 프로세서들에 의해 실행 시, 상기 하나 이상의 프로세서들이,
    상기 터치 데이터 또는 상기 힘 데이터 중 적어도 하나를 하나 이상의 트레이닝된 모델들과 비교하는 단계로서, 상기 하나 이상의 트레이닝된 모델들은 상기 트레이닝된 모델을 포함하고, 상기 트레이닝된 모델들 중 개별 트레이닝된 모델들은 하나 이상의 핸드 제스처들과 연관되는, 상기 비교하는 단계를 포함하는 동작들을 더 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 저장하고,
    상기 트레이닝된 모델에 대해 상기 터치 데이터 또는 상기 힘 데이터 중 적어도 하나를 분석하는 것은 상기 비교에 적어도 부분적으로 기초하는, 시스템.
KR1020217001241A 2018-06-20 2019-05-17 가상 현실 핸드 제스처 생성 KR20210021533A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862687780P 2018-06-20 2018-06-20
US62/687,780 2018-06-20
US16/195,718 2018-11-19
US16/195,718 US10987573B2 (en) 2016-10-11 2018-11-19 Virtual reality hand gesture generation
PCT/US2019/032928 WO2019245681A1 (en) 2018-06-20 2019-05-17 Virtual reality hand gesture generation

Publications (1)

Publication Number Publication Date
KR20210021533A true KR20210021533A (ko) 2021-02-26

Family

ID=68982963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217001241A KR20210021533A (ko) 2018-06-20 2019-05-17 가상 현실 핸드 제스처 생성

Country Status (5)

Country Link
EP (1) EP3807747A4 (ko)
JP (1) JP7337857B2 (ko)
KR (1) KR20210021533A (ko)
CN (1) CN112437909A (ko)
WO (1) WO2019245681A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024085829A1 (en) * 2022-10-17 2024-04-25 İstanbul Geli̇şi̇m Üni̇versi̇tesi̇ A system for learning to play old in a meta verse environment using virtual reality technology
US11991222B1 (en) 2023-05-02 2024-05-21 Meta Platforms Technologies, Llc Persistent call control user interface element in an artificial reality environment
CN116650950B (zh) * 2023-06-08 2024-02-06 廊坊市珍圭谷科技有限公司 一种用于vr游戏的控制系统及方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8717291B2 (en) * 2009-10-07 2014-05-06 AFA Micro Co. Motion sensitive gesture device
US9529523B2 (en) * 2010-04-23 2016-12-27 Handscape Inc. Method using a finger above a touchpad for controlling a computerized system
US8761437B2 (en) * 2011-02-18 2014-06-24 Microsoft Corporation Motion recognition
US20130154952A1 (en) * 2011-12-16 2013-06-20 Microsoft Corporation Gesture combining multi-touch and movement
WO2014100045A1 (en) * 2012-12-17 2014-06-26 Qi2 ELEMENTS II, LLC Foot-mounted sensor systems for tracking body movement
US9864461B2 (en) * 2014-09-26 2018-01-09 Sensel, Inc. Systems and methods for manipulating a virtual environment
EP3262486A4 (en) * 2015-02-27 2018-10-24 Hewlett-Packard Development Company, L.P. Detecting finger movements
US9898091B2 (en) * 2015-06-03 2018-02-20 Oculus Vr, Llc Virtual reality system with head-mounted display, camera and hand-held controllers
US10514766B2 (en) * 2015-06-09 2019-12-24 Dell Products L.P. Systems and methods for determining emotions based on user gestures
US10307669B2 (en) * 2016-10-11 2019-06-04 Valve Corporation Electronic controller with finger sensing and an adjustable hand retainer
US10549183B2 (en) * 2016-10-11 2020-02-04 Valve Corporation Electronic controller with a hand retainer, outer shell, and finger sensing
WO2019142329A1 (ja) 2018-01-19 2019-07-25 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Also Published As

Publication number Publication date
JP7337857B2 (ja) 2023-09-04
JP2021527896A (ja) 2021-10-14
EP3807747A1 (en) 2021-04-21
WO2019245681A1 (en) 2019-12-26
CN112437909A (zh) 2021-03-02
EP3807747A4 (en) 2022-03-09

Similar Documents

Publication Publication Date Title
US11992751B2 (en) Virtual reality hand gesture generation
US11294485B2 (en) Sensor fusion algorithms for a handheld controller that includes a force sensing resistor (FSR)
US11625898B2 (en) Holding and releasing virtual objects
US10888773B2 (en) Force sensing resistor (FSR) with polyimide substrate, systems, and methods thereof
US20220040566A1 (en) Holding and Releasing Virtual Objects
JP7459108B2 (ja) 動的センサ割当
KR20210021533A (ko) 가상 현실 핸드 제스처 생성
US10241577B2 (en) Single actuator haptic effects
JP2021518612A (ja) タッチセンシティブコントロールを備えるハンドヘルドコントローラ
KR20210130159A (ko) 연속적인 제어기 보정
US10649583B1 (en) Sensor fusion algorithms for a handheld controller that includes a force sensing resistor (FSR)
JP7358408B2 (ja) 仮想物体の保持および解放
KR102644888B1 (ko) 폴리이미드 기판을 갖는 힘 감지 저항기(fsr), 시스템 및 이의 방법
JP7361725B2 (ja) 力検知抵抗器(fsr)を含むハンドヘルドコントローラのセンサ融合アルゴリズム
JP7383647B2 (ja) 仮想物体の保持および解放
CN113474748B (zh) 用于包括力感测电阻器(fsr)的手持式控制器的传感器融合算法
JP2024079737A (ja) 動的センサ割当

Legal Events

Date Code Title Description
E902 Notification of reason for refusal