KR20210020926A - 가상 객체의 유지 및 해제 - Google Patents

가상 객체의 유지 및 해제 Download PDF

Info

Publication number
KR20210020926A
KR20210020926A KR1020207036571A KR20207036571A KR20210020926A KR 20210020926 A KR20210020926 A KR 20210020926A KR 1020207036571 A KR1020207036571 A KR 1020207036571A KR 20207036571 A KR20207036571 A KR 20207036571A KR 20210020926 A KR20210020926 A KR 20210020926A
Authority
KR
South Korea
Prior art keywords
virtual object
time
fsr
virtual
speed
Prior art date
Application number
KR1020207036571A
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/389,629 external-priority patent/US11185763B2/en
Application filed by 밸브 코포레이션 filed Critical 밸브 코포레이션
Publication of KR20210020926A publication Critical patent/KR20210020926A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • 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/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • 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/20Input arrangements for video game devices
    • A63F13/22Setup operations, e.g. calibration, key configuration or button assignment
    • 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
    • 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/44Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • 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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • 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/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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8082Virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Optics & Photonics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

수신된 센서 데이터에 적어도 부분적으로 기초하여 가상 객체의 해제를 제시하는 방법을 결정하기 위한 기술 및 디바이스가 본 명세서에서 설명된다.  예를 들어, 하드웨어 및/또는 소프트웨어가 가상 객체가 해제될 것이라고 결정할 때, 하드웨어 및/또는 소프트웨어는 객체의 속도(예를 들어, 속력 및 방향), 가상 객체가 해제될 위치, 해제 위치로부터 가상 객체의 착지 지점까지의 가상 객체의 궤적, 가상 객체의 착지 위치 등 중 하나 이상을 계산할 수 있다.  이어서 하드웨어 및/또는 소프트웨어는 이 결정된 정보에 따라 해제되는 가상 객체를 제시할 수 있다. 

Description

가상 객체의 유지 및 해제
관련 출원에 대한 상호 참조
본 출원은 2019년 4월 19일자로 출원된 미국 특허 출원 제16/389,499호에 대한 우선권을 주장하며, 이는 2018년 6월 20일자로 출원되고 발명의 명칭이 "HOLDING AND RELEASING VIRTUAL OBJECTS"인 계류 중인 미국 가특허 출원 제62/687,774호에 대한 계속 출원으로서 35 U.S.C. §120 하의 우선권을 주장하고, 이는 또한 2018년 6월 21일자로 출원되고 발명의 명칭이 "STEAMVR KNUCKLES DRIVER"인 계류 중인 미국 가특허 출원 제62/687,806호에 대한 계속 출원으로서 35 U.S.C. §120 하의 우선권을 주장한다.
또한, 본 출원은 2017년 12월 7일자로 출원되고 발명의 명칭이 "ELECTRONIC CONTROLLER WITH FINGER SENSING AND AN ADJUSTABLE HAND RETAINER"인 계류 중인 미국 특허 출원 제15/834,372호에 대한 일부 계속 출원으로서 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호에 대한 우선권을 주장한다.
비디오 게임 산업은 크고 중요해졌으며 소프트웨어 및 관련 하드웨어 둘 모두에서 많은 혁신을 낳았다. 다양한 게임 애플리케이션을 위해 다양한 핸드헬드 비디오 게임 제어기가 설계, 제조 및 판매되었다. 이러한 혁신 중 일부는 산업용 기계, 방어 시스템, 로봇 공학 등의 제어기와 같은 비디오 게임 산업의 밖에서 적용가능성을 가진다. 가상 현실(virtual reality, VR) 시스템은 비디오 게임 산업의 내부 및 외부 둘 모두에서 큰 현대적 관심과 빠른 기술 발전의 애플리케이션이다. VR 시스템용 제어기는 여러 상이한 기능을 수행하고, 엄격한 (때때로 경쟁적인) 설계 제약 조건을 충족하면서, 종종 사용 편의성 등과 같은 특정한 원하는 특성들을 최적화해야 한다.
VR 시스템에 사용되는 제어기의 하나의 예시적인 목표는 가상 객체의 파지하기(grasp), 던지기, 꽉 쥐기(squeeze), 또는 다른 방식으로 그와 상호작용하는 것과 같은, 자연스러운 상호작용을 모방하는 것이다.  그러나, VR 및 기타 유형의 시스템은 사용자가 언제 가상 객체를 파지하거나, 던지거나, 꽉 쥐거나, 또는 다른 방식으로 조작하려고 의도하는지를 결정하는 데 어려움이 있을 수 있으므로, 이들 상호작용을 디스플레이 상에 정확하게 묘사하는 데 어려움이 있다.
도 1은 핸드 리테이너가 개방 위치에 있는, 본 개시내용의 예시적인 실시예에 따른 제어기를 도시한다.
도 2는 펴져 있고 손바닥을 위로 한 사용자의 손에 있는, 도 1의 제어기를 도시한다.
도 3은 사용자의 닫힌 손에 있는, 도 1의 제어기를 도시한다.
도 4는 손바닥을 아래로 한 사용자의 손에 있는, 도 1의 제어기를 도시한다.
도 5는 핸드 리테이너들을 개방 위치에 있는, 본 개시내용의 예시적인 실시예에 따른 한 쌍의 제어기를 도시한다.
도 6a는 본 개시내용의 다른 예시적인 실시예에 따른 오른손 제어기의 정면도를 도시한다.
도 6b는 도 6a의 오른손 제어기의 배면도를 도시한다.
도 7a는 본 개시내용의 일 실시예에 따른, 적외선 광 센서를 위한 윈도우를 도시한다.
도 7b는 본 개시내용의 다른 실시예에 따른, 적외선 광 센서를 위한 윈도우를 도시한다.
도 8은 도 6a의 오른손 제어기의 측면도를 도시하며, 제어기 핸들의 관형 하우징을 부분적으로 감싸는 외부 쉘은 내측 표면 상의 기구류를 드러내도록 따로 분해되어 있다.
도 9a는 도 6a의 오른손 제어기의 단면을 도시하며, 제어기 핸들의 관형 하우징을 부분적으로 감싸는 외부 쉘이 따로 분해되어 있다.
도 9b는 외부 쉘이 정상 작동 위치에 설치되어 있는 것을 제외하고는, 도 9a의 단면을 도시한다.
도 10a는 부분적으로-폐쇄된 핸드 리테이너를 갖는, 본 개시내용의 다른 예시적인 실시예에 따른 오른손 제어기의 정면도를 도시한다.
도 10b는 핸드 리테이너가 완전히 개방되어 있는 것을 제외하고는, 도 10a의 제어기의 정면도를 도시한다.
도 11a는 헤드 둘레에서 주변으로 이동할 수 있는 핸드 리테이너 앵커를 포함하는, 본 개시내용의 예시적인 실시예에 따른 제어기의 헤드 및 핸들 구성요소들의 정면도를 도시한다.
도 11b는, 헤드 둘레에서 주변으로 핸드 리테이너 앵커의 선택적인 조정을 용이하게 할 수 있는 잠금가능한 칼라 부분을 노출시키기 위해 면판이 헤드로부터 제거된 것을 제외하고는, 도 11a의 헤드 및 핸들 구성요소들을 도시한다.
도 12a는 핸드 리테이너 구성요소가 제거된, 본 개시내용의 대안적인 실시예에 따른 부분적으로 조립된 제어기를 도시한다.
도 12b는 도 12a의 제어기의 채널 특징부의 더 자세한 도면을 도시한다.
도 12c는 도 12b에 도시된 채널의 단면도이다.
도 13a는 본 개시내용의 예시적인 실시예에 따른 힘 감지 저항기(force sensing resistor, FSR)를 도시한다.
도 13b는 도 13a의 FSR의 정면도를 도시한다.
도 13c는 섹션 A-A를 따라 취해진 도 13b의 FSR의 단면을 도시하며, 단면은 폴리이미드로 제조된 제1 기판을 보여준다.
도 14는 FSR을 구성하는 예시적인 프로세스에서의 점진적인 단계들에서 FSR의 다양한 정면도를 도시한다.
도 15는 본 개시내용의 다른 실시예에 따른 FSR의 예시적인 층들을 도시한다. 도 15는 축척에 맞지 않는다. 오히려, 도 15는 재료의 예시적인 층들을 예시하기 위해 제시되며, FSR의 실제 단면도를 나타내는 것으로 의도되지 않는다.
도 16은 본 개시내용의 다른 실시예에 따른 FSR의 예시적인 층들을 도시한다. 도 16은 축척에 맞지 않는다. 오히려, 도 16은 재료의 예시적인 층들을 예시하기 위해 제시되며, FSR의 실제 단면도를 나타내는 것으로 의도되지 않는다.
도 17은 본 개시내용의 다른 실시예에 따른 FSR의 예시적인 층들을 도시한다. 도 17은 축척에 맞지 않는다. 오히려, 도 17은 재료의 예시적인 층들을 예시하기 위해 제시되며, FSR의 실제 단면도를 나타내는 것으로 의도되지 않는다.
도 18a는 본 개시내용의 다른 실시예에 따른, 완전한 FSR을 형성하기 위한 접힘 단계 이전의 FSR의 정면도를 도시한다.
도 18b는 접힘 단계가 수행된 후, 도 18a의 FSR의 정면도를 도시한다.
도 18c는 섹션 B-B를 따라 취해진, 도 18a의 FSR의 단면을 도시한다.
도 18d는 도 18a의 FSR의 예시적인 층들을 도시한다. 도 18d는 축척에 맞지 않는다.  오히려, 도 18d는 재료의 예시적인 층들을 예시하기 위해 제시된 것이며, FSR의 실제 단면도를 나타내는 것으로 의도되지 않는다.
도 19는 FSR을 제조하기 위한 예시적인 프로세스의 흐름도이다.
도 20은 전자 시스템이 상이한 압력 모드들에서 작동하도록 제어기의 FSR-기반 입력 메커니즘을 구성하는 데 사용될 수 있는 예시적인 사용자 인터페이스(user interface, UI)를 예시한다.
도 21은 FSR-기반 입력을 위한 소프트 프레스(Soft Press)의 "헤어 트리거(Hair Trigger)" 스타일을 예시하는 힘 대 시간 그래프를 도시한다.
도 22는 FSR-기반 입력을 위한 소프트 프레스의 "힙 파이어(Hip Fire)" 스타일을 예시하는 힘 대 시간 그래프를 도시한다.
도 23은 제어기 본체 내에 배치된 다양한 센서를 갖는 도 1의 제어기를 도시한다.
도 24는 터치 센서에 의해 제공된 터치 데이터에 기초하여 핸드헬드 제어기의 FSR을 재교정하기 위한 예시적인 프로세스의 흐름도이다.
도 25는 인접한 제어부에 대한 터치 센서에 의해 제공된 터치 데이터에 기초하여 핸드헬드 제어기의 FSR에서의 스퓨리어스(spurious) 입력을 무시하기 위한 예시적인 프로세스의 흐름도이다.
도 26은 핸드헬드 제어기의 핸들 내의 근접 센서들의 어레이에 의해 검출된 손 크기에 기초하여 FSR에 대한 FSR 입력 임계치를 조정하기 위한 예시적인 프로세스의 흐름도이다.
도 27은 FSR 입력 값들에 기초한 핸드헬드 제어기의 제어부에 대한 바인딩(binding)을 활성화 및 비활성화하기 위한 예시적인 프로세스의 흐름도이다.
도 28은 다수의 임계치 중 제1 임계치에 대해 FSR 입력을 무시할지 여부를 결정하기 위해 시간-지연을 사용하기 위한 예시적인 프로세스의 흐름도이다.
도 29는 도 1의 제어기와 같은 핸드헬드 제어기의 예시적인 구성요소들을 예시한다.
도 30은 도 1의 핸드헬드 제어기를 사용하여 수행될 수 있는 예시적인 일련의 제스처를 예시한다. 예시된 바와 같이, 사용자는 디스플레이 디바이스로 하여금 가상 객체를 유지하고(hold) 그 후에 해제하는(release) 사용자의 가상 손을 묘사하게 하도록 핸드헬드 제어기를 작동시킬 수 있다.
도 31은 핸드헬드 제어기 및/또는 제어기에 결합될 수 있는 디스플레이 디바이스들의 예시적인 구성요소들을 예시한다. 제어기 및/또는 디스플레이 디바이스들 중 하나 이상은 도 31의 예시적인 일련의 제스처 및 다른 예시적인 제스처를 가능하게 하기 위해 객체-상호작용 모듈 및 다른 구성요소를 저장하거나 그렇지 않으면 그에 대한 액세스를 가질 수 있다.
도 32 내지 도 35는 디스플레이 디바이스로 하여금 가상 객체의 파지 및 해제를 제시하게(present) 하기 위해 객체-상호작용 모듈이 구현할 수 있는 예시적인 프로세스를 집합적으로 예시한다.
도 36은 낙하-객체 모듈이 수행할 수 있는 상이한 계산들을 예시하며, 이들 계산은 가상 객체의 속력, 궤적, 착지 위치, 및/또는 발사(launch) 위치와 같은, 가상 객체의 해제를 제시하는 방법을 결정하는 데 사용된다.
도 37a는 낙하-객체 모듈이 해제 시 가상 객체의 속도를 계산하는 예를 예시하며, 계산된 속도는 사용자가 가상 객체를 해제하도록 의도한다고 결정하기 전 미리 결정된 시간 범위 내에서 발생하는 피크 속도에 적어도 부분적으로 기초한다.
도 37b는 낙하-객체 모듈이 사용자가 객체를 해제하려고 의도한 시간에 가상 객체의 위치를 결정할 뿐만 아니라, 낙하-객체 모듈이 그 위치로부터 해제되는 가상 객체를 제시하는 예를 예시한다.
도 37c는 사용자가 가상 객체를 해제하려고 의도한 시간에 가상 객체가 해제된 경우 낙하-객체 모듈이 가상 객체의 궤적을 계산하고, 비록 디스플레이 상의 가상 객체의 현재 위치에서 시작할지라도, 이 궤적을 따라 이동하는 가상 객체를 제시하는 예를 예시한다.
도 37d는 사용자가 가상 객체를 해제하려고 의도한 시간에 객체가 해제된 경우 낙하-객체 모듈이 가상 객체의 궤적에 기초하여 가상 객체의 착지 위치를 계산하는 예를 예시한다.
도 38은 제1 시간에 가상 손이 가상 객체를 해제할 것이라고 결정하고, 제1 시간 이전의 미리 결정된 시간 범위 내의 가상 객체의 피크 속도, 또는 피크 속도와 연관된 가상 객체의 위치에 적어도 부분적으로 기초하여 가상 객체를 해제하는 가상 손을 디스플레이 상에 제시하는 예시적인 프로세스를 예시한다.
도 39는 제1 시간에 가상 객체가 해제될 것이라고 결정하고, 제1 시간 이전의 미리 결정된 시간 범위 내의 가상 객체의 피크 속도, 또는 피크 속도와 연관된 가상 객체의 위치에 적어도 부분적으로 기초하여 해제되는 가상 객체를 디스플레이 상에 제시하는 예시적인 프로세스를 예시한다.
하나 이상의 핸드헬드 제어기로부터 수신된 입력에 기초하여, 디스플레이 상에 제시된 가상 객체들을 유지 및 해제하기 위한 기술 및 디바이스가 본 명세서에서 설명된다. 일부 경우에서, 핸드헬드 제어기는 근접 센서, 힘 센서(예를 들어, 힘 저항 센서 등), 가속도계, 및/또는 핸드헬드 제어기를 그립하고/하거나 이동시키는 사용자의 손으로부터의 입력을 수신하도록 구성된 다른 유형의 센서와 같은 하나 이상의 센서를 포함한다. 제어기 및/또는 제어기에 결합된 디바이스(예를 들어, 게임 콘솔, 서버 등) 상의 하드웨어, 소프트웨어 및/또는 펌웨어는 이들 센서로부터 데이터를 수신하고 대응하는 제스처의 표현을 모니터, 가상 현실(VR) 헤드셋 등과 같은 디스플레이 상에 생성할 수 있다.
일례에서, 센서 데이터는 사용자가 디스플레이 상에 제시된 가상 객체를 픽업하려고(pick up) 시도하고 있을 때를 결정하는 데 사용된다. 예를 들어, 시스템(예를 들어, 콘솔, 서버 등)은 게임 또는 기타 유형의 애플리케이션의 일부로서 디스플레이 상에 하나 이상의 가상 객체를 제시할 수 있다. 사용자는 자신의 손에 있는 제어기를 이용하여 가상 객체를 유지하려고 - 즉, 시스템으로 하여금 가상 객체를 픽업하는 사용자의 가상 손의 표현을 제시하게 하려고 - 시도할 수 있다. 가상 객체를 유지하는 가상 손을 제시한 후, 사용자가 가상 객체를 해제하려고 의도할 때를 결정하기 위해 추가 센서 데이터가 사용될 수 있다. 객체의 해제를 나타내는 센서 데이터를 식별하면, 시스템은 해제되는(예를 들어, 낙하되거나, 던져지는 등) 객체의 제시를 야기할 수 있다.
일례에서, 핸드헬드 제어기는 사용자에 의해 선택적으로 그립될 수 있는 제어기 본체를 포함한다. 제어기 본체는 커패시턴스 값 또는 다른 센서 판독치에 기초하여 사용자의 손가락의 근접성을 검출하도록 구성된 근접 센서들의 어레이를 포함할 수 있다. 또한, 제어기는 제어기 본체의 다양한 위치 상에서의 힘의 양을 결정하도록 구성된 하나 이상의 힘 센서(예를 들어, 힘 저항 센서)를 포함할 수 있다. 제어기는 또한 사용자가 자신의 손을 움직일 때 핸드헬드 제어기의 변화하는 속력을 나타내는 속도 데이터를 생성하도록 구성된 가속도계 또는 다른 센서를 포함할 수 있다.
제어기 상의 또는 제어기에 유선 또는 무선으로 결합된 디바이스 상의 하드웨어 및/또는 소프트웨어는 이들 커패시턴스 값, 힘 값 및/또는 속도 값을 수신하여 상이한 사용자 제스처들을 식별할 수 있다. 예를 들어, 사용자가 현재 가상 객체를 "유지하고 있지" 않는 경우, 이들 변화하는 유형의 센서 데이터를 수신하면, 하드웨어 및/또는 소프트웨어는, 센서 데이터가 사용자가 가상 객체를 유지하려고 의도함을 나타낼 때를 결정하려고 시도할 수 있다. 일부 경우에서, 하드웨어 및/또는 소프트웨어는 센서 데이터가 "힘-핀치(force-pinch) 상태", "힘-그립(force-grip) 상태", "용량성-핀치(capacitive-pinch)(캡-핀치(cap-pinch)) 상태", 및/또는 "캡-그립(cap-grip) 상태"와 같은 하나 이상의 상이한 유형의 유지 상태에 대한 기준들을 충족하는 때를 결정할 수 있다. 일부 경우에서, 하드웨어 및/또는 소프트웨어는, 하나 이상의 힘 센서가 힘 임계치를 초과하는 힘 값들을 생성하고 하나 이상의 버튼이 눌리는 것에 응답하여 힘-핀치 상태를 식별할 수 있다. 예를 들어, 사용자의 엄지가 놓이는 곳 아래에 있는 핸드헬드 제어기의 상부 면 상에 위치된 힘 센서가 특정 임계치(예를 들어, 센서의 최대 힘 판독치의 1%, 최대 힘 판독치의 25% 등)보다 큰 힘 값을 반환하는 경우 그리고 포인터 또는 사용자의 다른 손가락에 의해 선택가능한 트리거 버튼이 눌리는 경우, 설명된 기술은 힘-핀치 상태를 식별할 수 있다. 즉, 이들 센서 판독치에 응답하여, 하드웨어 및/또는 소프트웨어는 사용자가 "핀치"를 통해 가상 객체를 유지하려고 시도하고 있다고 결정할 수 있다. 한편, 소프트웨어 및/또는 하드웨어는, 핸드헬드 제어기의 제어기 본체 상의 하나 이상의 힘 센서가 힘 임계치(예를 들어, 센서의 최대 힘 판독치의 10%, 센서의 최대 힘 판독치의 25% 등)보다 큰 하나 이상의 힘 값을 측정하는 것에 응답하여 힘-그립 상태를 식별할 수 있다.
또 다른 예에서, 하드웨어 및/또는 소프트웨어는, 근접 센서들 중 하나 이상에 의해 측정된 하나 이상의 근접성 값(예를 들어, 용량성 값), 예컨대 사용자의 엄지가 놓이는 곳에서 제어기의 상부 부분 상의 근접 센서에 의해 그리고 사용자의 검지 또는 다른 손가락이 놓이는 곳에서 제어기의 제어기 본체 상의 근접 센서에 의해 측정된 값에 기초하여 캡-핀치 상태를 식별할 수 있다. 일부 경우에서, 소프트웨어 및/또는 하드웨어는 이 두 판독치의 평균을 내고 평균을 임계치와 비교할 수 있다. 평균 값이 임계치(예를 들어, 최대 센서 판독치의 30%, 최대 센서 판독치의 60% 등)보다 큰 경우, 캡-핀치 상태가 식별될 수 있다. 다른 경우에서, 소프트웨어 및/또는 하드웨어는 이들 두 값의 최대 또는 최소 판독치를 비교하고 그 수를 임계치와 비교할 수 있다. 또 다른 예에서, 캡-그립 유지는 제어기의 제어기 본체 상에 상주하는 하나 이상의 근접 센서에 의해 기록된 근접성 값들에 기초하여 식별될 수 있다. 예를 들어, 사용자의 가운데, 넷째, 및 새끼 손가락에 대응하는 근접 센서들에 의해 측정된 근접성 값들은 평균화되어 임계치와 비교될 수 있다. 이 평균이 임계치보다 큰 경우(예를 들어, 최대 센서 판독치의 50%, 최대 센서 판독치의 70% 등), 캡-그립 상태가 식별될 수 있다. 다른 경우에서, 소프트웨어 및/또는 하드웨어는 이들 두 값의 최대 또는 최소 판독치를 비교하고 그 수를 임계치와 비교할 수 있다. 물론, 몇 가지 예시적인 유지 상태가 설명되지만, 다른 유형의 유지 상태들이 채용될 수 있다.
수신된 센서 데이터가 유지 상태를 나타낸다고 결정하면, 하드웨어 및/또는 소프트웨어는 특정 가상 객체가 이제 유지되고 있다는 표시를 저장할 수 있다. 예를 들어, 하드웨어 및/또는 소프트웨어는 실행되고 있는 애플리케이션에서 사용자의 가상 손의 위치를 결정할 수 있을 뿐만 아니라, 가상 손의 위치에 가장 가까운 가상 객체를 결정할 수 있으며, 이 가상 객체가 이제 사용자에 의해 유지되고 있다는 표시를 저장할 수 있다. 하드웨어 및/또는 소프트웨어는 이어서, 결정된 유지 유형(예를 들어, 핀치, 그립 등)에 따라 사용자의 가상 손에 의해 유지되는 가상 객체를 디스플레이 상에 제시하는 것을 야기하도록 진행할 수 있다. 제시된 가상 손이 인간 손의 표현을 포함할 수 있지만, "가상 손"은 아이템을 유지하기 위해 디스플레이될 수 있는 것으로서 가능한 임의의 다른 메커니즘의 형태(예를 들어, 발 또는 발톱, 도구 등)를 취할 수 있다는 것을 이해해야 한다. 더욱이, 가상 객체를 "유지하는 것"은 "가상 손"이 객체를 직접 유지하거나 다른 방식으로 객체를 제어하는 것, 예컨대 객체가 가상 공간에서 저절로 움직이게, 하지만 핸드헬드 제어기를 통해 사용자의 제어 하에서 움직이게 하는 것을 포함할 수 있다.
유지 유형이 "힘-핀치" 또는 "캡-핀치"인 경우에서, 표현은 사용자의 (예를 들어) 엄지와 집게손가락으로 가상 객체를 핀치하는 가상 손에 대응할 수 있다. 유지 유형이 힘-그립 또는 캡-그립인 경우, 표현은 (예를 들어, 가상 손가락들이 객체 둘레에 감싸진 상태에서 사용자의 가상 손의 손바닥에서) 가상 객체를 그립하는 가상 손에 대응할 수 있다.
하드웨어 및/또는 소프트웨어가 가상 객체가 유지되고 있다고 결정한 후, 그것은 가상 객체가 해제될 때를 결정하기 위해 센서 데이터를 계속해서 모니터링할 수 있다. 예를 들어, 하드웨어 및/또는 소프트웨어는 사용자가 아이템의 해제를 개시하려고 의도하는 때를 결정하기 위해 힘 데이터, 근접성 데이터 및/또는 속도 데이터를 분석할 수 있다. 해제의 개시를 식별하면, 하드웨어 및/또는 소프트웨어는 센서 데이터를 분석하여 해제를 실행할 때 - 예를 들어, 낙하되거나, 던져지는 등으로서 가상 객체를 표현할 때 - 를 결정할 수 있다. 일부 경우에서, 속도 데이터, 커패시턴스 데이터, 힘 데이터 등은 이러한 결정을 내리기 위해 분석될 수 있다. 또한, 하드웨어 및/또는 소프트웨어가 객체의 해제를 나타내는 센서 데이터를 식별하지 않는 경우, 가상 객체는 해제의 개시 후 미리 결정된 시간량(예를 들어, 초 단위, 프레임 수 등으로 측정된) 뒤에 해제될 수 있다. 각각의 경우에, 가상 객체는 사용자의 가상 손에서 해제되는 것으로서 디스플레이 상에 제시될 수 있다.
물론, 상기의 예는 던져지거나 낙하되는 객체를 설명하지만, 다른 경우에서 본 명세서에 설명된 기술은 센서 데이터를 이용하여 다른 가상 제스처를 생성할 수 있다. 예를 들어, 힘 데이터는 사용자가 임계량의 힘으로 제어기 본체를 그립하는 것에 응답하여 파쇄(smash)되는 가상 객체의 표현을 생성하는 데 사용될 수 있다.
상기 내용에 추가하여, 본 명세서에 설명된 기술은 수신된 센서 데이터에 적어도 부분적으로 기초하여 가상 객체의 해제를 제시하는 방법을 결정할 수 있다. 예를 들어, 하드웨어 및/또는 소프트웨어가 가상 객체가 해제될 것이라고 결정할 때, 하드웨어 및/또는 소프트웨어는 객체의 속도(예를 들어, 속력 및 방향), 가상 객체가 해제될 위치, 해제 위치로부터 가상 객체의 착지 또는 다른 중단 지점까지의 가상 객체의 궤적, 가상 객체의 착지 위치 등 중 하나 이상을 계산할 수 있다.
일부 경우에서, 하드웨어 및/또는 소프트웨어는 사용자가, 예를 들어, 사용자에 의해 의도된 실제 시간보다 약간 뒤인 시점에 객체를 해제하려고 의도했다고 결정할 수 있다. 즉, 이 센서 데이터가 생성된 후 하드웨어 및/또는 소프트웨어가 핸드헬드 제어기로부터의 센서 데이터를 분석하는 경우, 핸드헬드 제어기를 유지하는 사용자에 의해 표현된 객체를 해제하려는 의도와, 의도의 결정 사이에는 지연이 존재할 수 있다. 따라서 기술들은 이러한 지연의 영향을 줄이려고 시도할 수 있다.
그렇게 하기 위해, 센서 데이터가 가상 객체가 해제될 것임을 나타낸다고 결정하면, 본 명세서에 설명된 하드웨어 및/또는 소프트웨어는 사용자가 객체를 해제하려고 의도했을 가능성이 있는 시간(예를 들어, 프레임)을 결정하기 위해 "되돌아보기(look back)"를 수행할 수 있다. 예를 들어, 제1 시간에 객체의 해제의 개시를 인식하면, 하드웨어 및/또는 소프트웨어는 제1 시간 이전의 미리 결정된 시간량으로부터의 센서 데이터를 분석할 수 있다. 이러한 미리 결정된 시간량은 프레임 단위로(예를 들어, 이전 5개 프레임, 15개 프레임, 50개 프레임 등), 가공되지 않은(raw) 시간의 관점에서(예를 들어, 이전 5 밀리초, 5 초 등), 또는 임의의 다른 방식으로 정의될 수 있다.
하나의 특정 예에서, 하드웨어 및/또는 소프트웨어는 이전의 15개 프레임과 연관된 센서 데이터를 분석하여, 사용자가 해제를 개시하려고 의도했을 가능성이 있는 때를 결정할 수 있다. 일부 경우에서, 하드웨어 및/또는 소프트웨어는 이 시간 범위 동안 피크 속도를 식별하기 위해 이전의 15개 프레임 각각에서 핸드헬드 제어기의 속도의 크기를 분석할 수 있다. 피크 속도와 연관된 프레임은 사용자가 객체를 해제하려고 의도한 시간에 대응하여 지정될 수 있다. 이 프레임을 식별하면, 하드웨어 및/또는 소프트웨어는 이 프레임과 연관된 정보 및/또는 이 프레임과 연관된 센서 데이터에 적어도 부분적으로 기초하여 가상 객체의 해제를 디스플레이 상에 제시할 수 있다.
일례에서, 피크 속도와 연관된 프레임을 식별한 후, 하드웨어 및/또는 소프트웨어는 이 프레임, 이 프레임 이전의 프레임, 및 이 프레임 이후의 프레임의 평균 속도를 계산할 수 있다. 평균 속도는 3개 프레임 사이의 평균 속력 및 평균 방향 둘 모두를 포함할 수 있다. 이어서 하드웨어 및/또는 소프트웨어는 이 평균 속도에 적어도 부분적으로 기초하여 가상 객체의 해제를 디스플레이 상에 제시할 수 있다. 예를 들어, 하드웨어 및/또는 소프트웨어는 계산된 평균 속도의 평균 속력 및 평균 방향으로 가상 손을 떠나는 가상 객체를 제시할 수 있다.
추가로, 또는 대안으로, 하드웨어 및/또는 소프트웨어는 피크 속도와 연관된 시간에 가상 객체의 위치에서 해제되는 가상 객체를 제시할 수 있다. 즉, 가상 객체는 하드웨어 및/또는 소프트웨어가 사용자가 해제를 개시하려고 시도했다고 결정한 시간에 제1 위치에 있을 수 있지만, 가상 객체는 피크 속도(제1 시간의 미리 결정된 시간 범위 내에서)가 발생했을 때 제2의, 상이한 위치에 위치되었을 수 있다. 따라서 가상 객체는 이러한 제2의, 이전 위치에서 해제되는 것으로서 제시될 수 있다.
또 다른 예에서, 하드웨어 및/또는 소프트웨어는 의도된 시간에 가상 객체가 해제되었을 경우의 가상 객체의 착지 위치를 계산할 수 있고, 이 위치에 착지하는 가상 객체를 디스플레이할 수 있다. 즉, 피크 속도와 연관된 프레임을 식별하면, 하드웨어 및/또는 소프트웨어는 피크 속도 및 이 프레임에서의 가상 객체의 위치를 사용하여, 가상 객체가 그 순간에 해제되었을 경우의 가상 객체의 궤적을 계산할 수 있다. 이 궤적은 착지 위치(예를 들어, 지면의 한 지점, 목표 상의 한 지점 등)에서 종료될 수 있다. 이어서, 하드웨어 및/또는 소프트웨어는 현재 시간에서의 가상 객체의 현재 위치와 착지 위치 사이의 궤적을 계산할 수 있고, 디스플레이 상에, 이 계산된 궤적으로 이동하는 가상 객체를 제시하게 할 수 있다. 한편, 또 다른 예에서, 하드웨어 및/또는 소프트웨어는 객체가 피크 속도의 지점에서 해제되었더라면 발생했을 궤적을 따라 이동하는 가상 객체를 디스플레이 상에 제시할 수 있지만, 그 궤적은 현재 시간에 가상 객체의 현재 위치에서 시작한다.
물론, 가상 객체의 속도, 궤적, 착지 위치, 또는 발사 위치를 결정하는 몇 가지 예가 전술되고 도 36 내지 도 39를 참조하여 아래에서 논의되지만, 설명된 하드웨어 및/또는 소프트웨어는 다수의 다른 방식으로 해제되는 가상 객체를 제시할 수 있다는 것을 이해해야 한다.
상기 내용에 추가하여, 이들 힘 값을 생성하기 위한 힘 감지 저항기(FSR)들도 본 명세서에서 설명된다. 본 명세서에 설명된 바와 같이 FSR은 저항성이고 가요성인 제2 기판 아래에 배치된 폴리이미드로 제조된 제1 기판으로 구성될 수 있다. 제1 기판은 전방 표면 상에 배치된 전도성 재료(예를 들어, 복수의 상호맞물린 금속 핑거들)를 갖는다. 제2 기판의 중심 부분이 제1 기판 위에 현수되도록, 제1 기판과 제2 기판 사이에 하나 이상의 스페이서 층이 또한 개재된다. 인가된 힘을 제2 기판의 전방 표면 상으로 전달하기 위해 제2 기판 상에 액추에이터가 배치된다. 이것이 발생할 때, 제2 기판의 중심 부분은 제1 기판을 향해 내향으로 휘어지고, 제2 기판의 후방 표면 상의 저항성 재료의 일부는 제1 기판의 전방 표면 상의 전도성 재료의 일부와 접촉하게 된다. 인가된 힘이 증가함에 따라, 저항성 재료에 의해 접촉되는 전도성 재료의 표면적은 증가한다. 마찬가지로, 인가된 힘이 감소함에 따라, 저항성 재료에 의해 접촉되는 전도성 재료의 표면적은 감소한다. 가변적인 인가된 힘 하에서의 표면적 접촉의 이러한 변화는, FSR로 하여금 인가된 힘에 의해 값이 제어되는 가변 저항기 역할을 하게 한다.
적어도 부분적으로는 제1 기판에 사용되는 폴리이미드 재료로 인해, 개시된 FSR은, 다른 가능한 최종-용도 응용들 중에서, VR 시스템의 제어기에서 사용하기에 바람직한 특성을 나타낸다. 예를 들어, 폴리이미드 기판은 선택적으로 부피가 큰 헤더 커넥터를 사용하지 않고도 FSR의 출력 단자(또는 리드)를 보드(예를 들어, PCB) 상으로 직접 납땜하는 것을 가능하게 하며, 이는, 크고 부피가 큰 헤더 커넥터를 필요로 하는 마일러(mylar)-기반 FSR에 비해, FSR이 더 작은 풋프린트를 갖도록 허용한다. 폴리이미드가 일반적으로 플렉스 회로의 선택된 재료로서 사용되기 때문에, FSR의 폴리이미드 기판은 FSR을 다른 플렉스 회로에 편리하게 연결할 수 있도록 하며, 이는 종래의 FSR을 제조하는 비용에 비해, 개시된 FSR을 제조하는 비용을 줄일 수 있다. 폴리이미드는 또한 리플로우 오븐의 것과 같은 고온을 견딜 수 있어서, 비용을 절감하는 제조 공정으로의 기회를 열어 줄 수 있다. 또한, 폴리이미드 - 개시된 FSR의 제1 기판으로서 사용될 때 - 는 종래의 FSR에 비해, 더 낮은 히스테리시스 및 더 높은 반복성과 같은 바람직한 특성들을 나타낸다. 전반적으로, 폴리이미드로 제조된 제1 기판을 갖는 개시된 FSR은, 진정한(true) 아날로그 입력을 모델링하는 힘 대 저항 응답 곡선을 나타내어, FSR을 VR 시스템의 제어기에서 사용하기에 바람직하게 한다.
폴리이미드로 제조된 제1 기판을 갖는 개시된 FSR을 포함하는 전자 시스템(예를 들어, VR 시스템)을 위한 제어기가 또한 본 명세서에 개시된다. 제어기는 사용자의 손에 유지되도록 구성될 수 있으며, 제어기 본체를 포함할 수 있다. 개시된 FSR은 제어기 본체의 핸들 내에 장착된 구조체, 또는 제어기 본체의 헤드 상에 포함되는 적어도 하나의 엄지-작동식 제어부 아래에 장착된 구조체와 같은, 제어기 본체 내의 구조체의 평면 표면 상에 장착될 수 있다. FSR은, 전자 시스템을 위한 제어기에서 구현될 때, 제어기의 연관된 부분에 인가된 힘(예를 들어, 핸들의 외측 표면에 인가된 힘, 적어도 하나의 엄지-작동식 제어부에 인가된 힘 등)의 양에 대응하는 저항 값을 측정하도록 구성된다.
VR 시스템을 위한 제어기에서 FSR을 구현하는 것은, 종래의 제어기를 사용하여 그것의 현재 상태를 넘어서 자연스러운 상호작용의 스펙트럼을 확장하는 것을 허용할 수 있다. 예를 들어, 전자 시스템 및/또는 제어기는, FSR을 통해, 사용자가 제어기의 핸들을 꽉 쥐는 힘, 및/또는 사용자가 엄지-작동식 제어부를 누르는 힘을 결정할 수 있다. 개시된 FSR은 바람직한 응답 곡선을 나타내기 때문에, 그러한 제어기는 변화하는 힘의 누르기 또는 꽉 쥐기를, 비디오 게임이 게임 메카닉을 제어하기 위해(예를 들어, 바위를 부수고, 벌룬을 꽉 쥐고, 게임 캐릭터에 의해 사용가능한 이용가능한 무기들을 통해 토글링하는 등을 위해) 사용될 수 있는 다양한 디지털화된 수치로 변환할 수 있다. 바람직한 응답 특성을 가진 FSR은 사용자의 피로를 감소시키고/시키거나 제어부의 우발적인 작동을 감소시키기 위해 종래의 기계적 스위치를 대체할 수 있다. 예를 들어, FSR은 인가된 힘이 임계치를 초과할 때를 검출함으로써 스위치로서 작용할 수 있다. 이 임계치는 동적으로 조정된다. 예를 들어, 게임플레이 중에 손의 피로를 감소시키기 위해 임계치는 더 낮은 값으로 조정될 수 있다(예를 들어, 사용자가 게임플레이 중에 빈번하게 무기를 쏘기 위해 FSR과 연관된 제어부를 누르고 있을 때). 반대로, 우발적인 제어부 작동의 인스턴스를 감소시키기 위해 임계치는 더 높은 값으로 조정될 수 있는데, 이는 사용자가 비디오 게임에서의 자극들에 반응할 수 있는 스릴있거나 흥미진진한 게임에서 유용할 수 있다.
터치 센서 또는 근접 센서들의 어레이 각각에 의해 제공되는 터치 데이터 또는 근접성 데이터와 조합하여 제어기의 FSR에 의해 제공되는 힘 데이터에 기초하여 센서 융합 알고리즘을 구현하는 로직을 포함하는 핸드헬드 제어기가 또한 본 명세서에 개시된다. 예시적인 센서 융합 알고리즘은, 터치 센서에 의해 검출된 바와 같이, 객체가 FSR과 연관된 제어부와 접촉할 때 FSR을 재-교정하는 데 사용될 수 있다. 예를 들어, 로직은, 터치 센서에 의해 제공된 터치 데이터에 기초하여, 눌리도록 구성된 제어기 본체의 제어부와 객체가 접촉했다고 결정할 수 있다. 로직은 또한, 객체가 제어부와 접촉한 시간에 FSR에 의해 제공된 힘 데이터에 기초하여, FSR에 의해 측정된 저항 값을 결정할 수 있고, 제어부에서 터치를 검출할 때 FSR을 "재교정"하기 위해 저항 값을 0의 디지털화된 FSR 입력 값과 상관시킬 수 있다.
객체가 인접한 제어부와 접촉할 때 FSR에 의해 검출된 스퓨리어스 입력을 무시하기 위해 다른 예시적인 센서 융합 알고리즘이 사용될 수 있다. 예를 들어, 로직은, FSR에 의해 제공된 힘 데이터에 기초하여, 핸드헬드 제어기의 제1 제어부에 대해 FSR 입력 이벤트를 등록하기 위해 충족되어야 할 임계값을 충족하거나 초과하는 디지털화된 FSR 입력 값에 대응하는 FSR에 의해 측정된 저항 값을 결정할 수 있다. 로직은 또한, FSR에 의해 FSR 저항 값이 측정되는 시간에 터치 센서에 의해 제공된 터치 데이터에 기초하여, 객체가 제1 제어부에 인접한 핸드헬드 제어기의 제2 제어부와 접촉 상태에 있다고 결정할 수 있고, 객체가 제2 제어부와 접촉하는 동안에는 FSR 입력 이벤트를 등록하는 것을 억제할 수 있다.
다른 예시적인 센서 융합 알고리즘은 근접 센서들의 어레이에 의해 검출된 제어기의 핸들을 파지하는 손의 크기를 검출하기 위해, 그리고 손 크기에 따라 FSR에서 FSR 입력 이벤트를 등록하기 위해 임계치 힘을 조정하기 위해 사용될 수 있다. 이는, 손이 작은 사용자들에게 힘-기반 입력을 더 쉽게(그리고 손이 큰 사용자들에게는, 더 힘들지만(harder), 어렵지는(difficult) 않게) 만드는 데 유용할 수 있다. 예를 들어, 핸드헬드 제어기의 핸들 상에 공간적으로 분포된 근접 센서들의 어레이는 핸들을 파지하고 있는 손의 크기를 결정하는 데 사용될 수 있으며, 로직은, 손의 크기에 기초하여, 임계값을, 핸들에 대한 FSR 입력 이벤트를 등록하기 위해 충족되어야 하는 조정된 임계값으로 조정할 수 있다.
도 1 내지 도 4는 본 개시내용의 예시적인 실시예에 따른 전자 시스템을 위한 제어기(100)를 도시한다. 제어기(100)는 VR 비디오 게임 시스템, 로봇, 무기, 또는 의료 디바이스와 같은 전자 시스템에 의해 이용될 수 있다. 제어기(100)는 핸들(112)을 갖는 제어기 본체(110), 및 제어기(100)를 사용자의 손(예를 들어, 사용자의 왼손)에 보유하기 위한 핸드 리테이너(hand retainer)(120)를 포함할 수 있다. 핸들(112)은, 선택적으로 실질적으로 원통형일 수 있는 관형 하우징을 포함한다. 이와 관련하여, 실질적으로 원통형인 형상은 일정한 직경, 또는 완전히 원형인 단면을 가질 필요가 없다.
도 1 내지 도 4의 실시예에서, 제어기 본체(110)는 선택적으로 하나 이상의 엄지-작동식 제어부들(114, 115, 116)을 포함할 수 있는 (핸들(112)과 원위 단부(111) 사이에) 헤드를 포함할 수 있다. 예를 들어, 틸팅 버튼, 또는 임의의 다른 버튼, 노브, 휠, 조이스틱, 또는 트랙볼은, 제어기(100)가 사용자의 손에서 유지되는 동안 정상 작동 동안 사용자의 엄지에 의해 편리하게 조작될 수 있다면 엄지-작동식 제어부로 간주될 수 있다.
제어기(100)는 바람직하게는 제어기 본체(110)에 고정되는 추적 부재(130)를 포함하고, 선택적으로 추적 부재(130)의 2개의 대향하는 원위 단부 중 대응하는 것으로부터 각각 돌출되는 2개의 노우즈(nose)(132, 134)를 포함한다. 도 1 내지 도 4의 실시예에서, 추적 부재(130)는 바람직하게는 아치형 형상을 갖는 추적 호(tracking arc)이지만, 반드시 그렇지는 않다. 추적 부재(130)는 그 내부에 배치된 복수의 추적 트랜스듀서들을 포함하며, 이때 바람직하게는 적어도 하나의 추적 트랜스듀서가 각각의 돌출 노우즈(132, 134) 내에 배치된다. 추가의 추적 트랜스듀서가 또한 제어기 본체(110) 내에 배치될 수 있으며, 이때 바람직하게는 적어도 하나의 원위 추적 트랜스듀서가 원위 단부(111)에 인접하게 배치된다.
전술한 추적 트랜스듀서들은 전자 시스템에 의해 방출된 전자기 방사선(예컨대, 적외선 광)에 반응하는 추적 센서일 수 있거나, 또는 이들은 대안적으로 전자 시스템에 의해 수신되는 전자기 방사선(예컨대, 적외선 광)을 방출하는 추적 비콘일 수 있다. 예를 들어, 전자 시스템은 제어기(100)를 향해 펄스형 적외선 광을 광범위하게 브로드캐스트하는, 즉, 페인트(paint)하는, VR 게임 시스템일 수 있으며, 이때 추적 부재(130)의 복수의 추적 트랜스듀서들은 브로드캐스트 펄스형 적외선 광을 수신하거나 그로부터 새도잉(shadow)될 수 있는 적외선 광 센서들이다. 각각의 노우즈(132, 134) 내의 추적 트랜스듀서들(예컨대, 각각의 노우즈 내의 3개의 센서)은 바람직하게는 추적 부재(130)의 각각의 원위 단부 상에서 사용자의 손 위로 돌출되고(overhang), 따라서, 허용불가능한 양의 새도잉 없이 더 많은 각도들로, 전자 시스템에 의해 방출된 전자기 방사선을 수신하거나 또는 전자기 방사선을 전자 시스템에 송신하도록 (사용자의 손 주위에서) 더 잘 노출된다.
일부 경우에서, 추적 부재(130) 및 제어기 본체(110)는 경질 플라스틱과 같은 실질적으로 강성인 재료로 제조되고, 서로에 대해 현저하게 병진이동 또는 회전하지 않도록 함께 단단히 고정된다. 이러한 방식으로, 공간에서 추적 트랜스듀서들의 무리(constellation)의 병진이동 및 회전의 추적은, 바람직하게는 서로에 대한 추적 트랜스듀서들의 모션에 의해 복잡해지지 않는다. 예를 들어, 도 1 내지 도 4에 도시된 바와 같이, 추적 부재(130)는 2개의 위치에서 제어기 본체(110)에 결합됨으로써 제어기 본체(110)에 고정될 수 있다. 핸드 리테이너(120)는 이들 두 위치에 인접한 제어기(100)(제어기 본체(110) 또는 추적 부재(130) 중 어느 하나)에 부착되어, 두 위치 사이에서 핸들(112)의 외부 표면에 대하여 사용자의 손바닥을 편향(bias)시킬 수 있다.
특정 실시예에서, 추적 부재(130) 및 제어기 본체(110)는, 함께 조립되기보다는, 재료 연속성을 갖는 일체형 모놀리식 구성요소를 포함할 수 있다. 예를 들어, 추적 부재(130) 및 제어기 본체(110)는 단일 사출 성형 프로세스 단계에 의해 함께 성형되어, 추적 부재(130) 및 제어기 본체(110) 둘 모두를 포함하는 하나의 일체형 경질 플라스틱 구성요소를 생성할 수 있다. 대안적으로, 추적 부재(130) 및 제어기 본체(110)는 초기에 별도로 제작된 후, 나중에 함께 조립될 수 있다. 어느 쪽이든, 추적 부재(130)는 제어기 본체(110)에 고정된 것으로 간주될 수 있다.
핸드 리테이너(120)는 도 1에서 개방 위치로 도시되어 있다. 핸드 리테이너(120)는 선택적으로, 사용자가 VR 고글에 의해 시야가 차단된 채 제어기를 파지하고 있을 때 핸드 리테이너(120)와 제어기 본체(110) 사이에서 사용자의 왼손의 삽입을 용이하게 하기 위해 만곡된 탄성 부재(122)에 의해 개방 위치에서 편향될 수 있다. 예를 들어, 만곡된 탄성 부재(122)는 선택적으로 탄성적으로 구부러지는 가요성 금속 스트립일 수 있거나, 실질적으로 탄성적으로 구부러질 수 있는 나일론과 같은 대안적인 플라스틱 재료를 포함할 수 있다. 만곡된 탄성 부재(122)는 선택적으로 사용자의 편의를 위해 쿠션 또는 패브릭 재료(124)(예를 들어, 네오프렌 시스)에 대해 부분적으로 또는 완전히 내부에 있거나 또는 그에 의해 덮일 수 있다. 대안적으로, 쿠션 또는 패브릭 재료(124)는 사용자의 손에 대면하는 만곡된 탄성 부재(122)의 면에만 배치(예컨대, 접착)될 수 있다.
핸드 리테이너(120)는 선택적으로, 예를 들어 스프링-편향된(spring-biased) 초크(chock)(128)에 의해 죄이는(cinched) 드로우 코드(draw cord)(126)를 포함함으로써 길이가 조정가능할 수 있다. 드로우 코드(126)는 선택적으로 끈(lanyard)으로 사용될 수 있는 초과 길이를 가질 수 있다. 시스(124)는 선택적으로 드로우 코드에 부착될 수 있다. 특정 실시예에서, 만곡된 탄성 부재(122)는 죄이는 드로우 코드(126)의 장력에 의해 프리로딩(preload)될 수 있다. 이러한 실시예에서, 만곡된 탄성 부재(122)가 핸드 리테이너(120)에 부여하는 장력(개방 위치에서 편향시키기 위해)은 드로우 코드(126)가 죄이지 않을(un-cinched) 때 핸드 리테이너가 자동으로 개방되게 한다. 본 개시내용은 또한 클리트(cleat), 탄성 밴드(손이 삽입될 때 일시적으로 신장되어, 손등에 맞닿아 누르도록 탄성 장력을 가함), 길이 조정을 가능하게 하는 후크 & 루프 스트랩 부착물 등과 같은, 핸드 리테이너(120)의 길이를 조정하는 대안적인 종래의 방법을 고려한다.
핸드 리테이너(120)는 핸들(112)과 추적 부재(130) 사이에 배치될 수 있고, 사용자의 손등과 접촉하도록 구성될 수 있다. 도 2는 사용자의 왼손이 삽입되어 있지만 제어기 본체(110)를 파지하지 않은 상태로 작동하는 동안의 제어기(100)를 도시한다. 도 2에서, 핸드 리테이너(120)는 사용자 손바닥을 핸들(112)의 외부 표면에 맞닿게 물리적으로 편향시키기 위해 손 위로 폐쇄되고 조여진다. 이러한 방식으로, 핸드 리테이너(120)는, 폐쇄될 때, 손이 제어기 본체(110)를 파지하고 있지 않을 때에도 제어기(100)를 손에 보유시킬 수 있다. 도 3 및 도 4는 핸드 리테이너(120)가 폐쇄되어 있고 손이 제어기 본체(110)를 파지하고 있고 엄지가 엄지-작동식 제어부들 중 하나 이상(예를 들어, 트랙 패드(116))을 작동시키고 있을 때 작동 동안의 제어기(100)를 도시한다.
제어기 본체(110)의 핸들(112)은 바람직하게는 그 외측 표면 주위에 부분적으로 또는 완전히 공간적으로 분포된 근접 센서들의 어레이를 포함한다. 어레이의 근접 센서들은 반드시 동일한 크기일 필요는 없으며, 어레이가 그리드를 포함할 수 있지만 반드시 그들 사이에 동일한 간격을 가질 필요는 없다. 근접 센서들의 어레이는 바람직하게는 핸들(112)의 외부 표면에 대한 사용자의 손가락의 근접성에 반응한다. 예를 들어, 근접 센서들의 어레이는 핸들(112)의 외측 표면 아래에 매립된 복수의 용량성 센서들일 수 있으며, 이때 그 외측 표면은 전기 절연 재료를 포함한다. 이러한 용량성 센서들의 어레이와 사용자 손의 일부분 사이의 커패시턴스는 그 사이의 거리에 반비례한다. 커패시턴스는 RC 발진기 회로를 커패시턴스 센서 어레이의 요소에 연결함으로써 감지될 수 있고, 회로의 시상수(따라서 발진 주기 및 주파수)가 커패시턴스에 따라 변화할 것이라는 점에 유의한다. 이러한 방식으로, 회로는 핸들(112)의 외측 표면으로부터의 사용자의 손가락의 릴리즈를 검출할 수 있다.
핸드 리테이너(120)(예를 들어, 손-보유(hand-retention) 스트랩)가 단단히 페쇄될 때, 그것은 제어기(100)가 손에서 떨어지는 것을 방지할 뿐만 아니라, 손가락이 핸들(112)의 근접 센서 어레이에 대해 과도하게 병진이동하는 것을 방지하여, 손가락 모션을 더 신뢰성있게 감지하는 역할을 할 수 있다. 전자 시스템은 제어되는 캐릭터의 손의 개방, 손가락 포인팅, 또는 제어기에 대한 또는 서로에 대한 손가락의 다른 모션을 렌더링하기 위해 근접 센서 어레이로부터의 감지를 더 잘 사용하기 위해, 해부학적으로-가능한 손가락의 모션을 구현하는 알고리즘을 포함할 수 있다. 이러한 방식으로, 사용자의 제어기(100) 및/또는 손가락의 이동은 VR 게임 시스템, 방어 시스템, 의료 시스템, 산업용 로봇 또는 기계, 또는 다른 디바이스를 제어하는 것을 도울 수 있다. VR 시스템 애플리케이션(예를 들어, 게임, 훈련 등을 위한)에서, 시스템은 추적 트랜스듀서들의 이동에 기초하여 던지는 모션을 렌더링할 수 있고, 제어기의 핸들의 외측 표면으로부터의 사용자의 손가락의 감지된 해제에 기초하여 던져진 객체의 해제를 렌더링할 수 있다.
따라서, 핸드 리테이너(120)의 기능(제어기(100)가 실제로 손에서 분리되거나 바닥에 던져지거나 낙하되지 않고 사용자로 하여금 제어기(100)를 "놓아줄(let go)" 수 있도록 함)은 제어된 전자 시스템의 추가 기능을 가능하게 할 수 있다. 예를 들어, 제어기 본체(110)의 핸들(112)의 사용자의 파지의 해제 및 복원이 감지되는 경우, 그러한 해제 또는 파지는 객체를 던지거나 파지하는 것을 (예를 들어, VR에서) 디스플레이하기 위해 게임에 통합될 수 있다. 핸드 리테이너(120)는 이러한 기능이 반복적이고 안전하게 달성될 수 있게 할 수 있다. 예를 들어, 도 1 내지 도 4의 실시예에서의 핸드 리테이너(120)의 위치는 예를 들어 사용자가 VR 환경에서 감지된 프롬프트에 반응하여 이동할 때(예를 들어, VR 고글에 의해 실제로 앞이 안 보이는(blinded) 동안) 실제 세계에서의 충격으로부터 사용자의 손등을 보호하도록 추적 부재(130)를 도울 수 있다.
특정 실시예에서, 제어기(100)는 제어기 본체(110) 내에 배치된 재충전가능 배터리를 포함할 수 있고, 핸드 리테이너(120)(예를 들어, 손 보유 스트랩)는 재충전가능 배터리에 전기적으로 결합되는 전기-전도성 충전 와이어를 포함할 수 있다. 제어기(100)는 바람직하게는 또한 전자 시스템의 나머지 부분과 통신하기 위한 무선 주파수(RF) 송신기를 포함한다. 이러한 RF 송신기는 재충전가능 배터리에 의해 전력을 공급받을 수 있고, 엄지-작동식 제어부들(114, 115, 116), 제어기 본체(110)의 핸들(112) 내의 근접 센서들, 및/또는 추적 부재(130) 내의 추적 센서들에 반응할 수 있다.
도 5에 도시된 바와 같이, 특정 실시예에서, 제어기(100)는 유사한 우측 제어기(200)를 포함하는 한 쌍의 제어기에서의 좌측 제어기일 수 있다. 특정 실시예에서, 제어기들(100 및 200)은 예를 들어 VR 경험을 향상시키기 위해 동시에 사용자의 양손의 모션 및 파지를 (함께) 추적할 수 있다.
도 6a는 본 개시내용의 다른 예시적인 실시예에 따른 오른손 제어기(600)의 정면도를 도시한다. 도 6b는 오른손 제어기(600)의 배면도를 도시한다. 제어기(600)는 헤드(610) 및 핸들(612)을 포함하는 제어기 본체를 갖는다. 도 6a 및 도 6b의 실시예에서, 헤드(610)는 적어도 하나의 엄지-작동식 제어부(A, B, 608)를 포함하고, 또한 검지손가락에 의해 작동되도록 구성된 제어부(예를 들어, 트리거(609))를 포함할 수 있다. 핸들(612)은 외부 쉘(640)에 의해 부분적으로 감싸지는 관형 하우징을 포함한다.
도 6a 및 도 6b의 실시예에서, 추적 부재(630)는 헤드(610)에서 그리고 핸들(612)의 단부에서 제어기 본체에 고정된다. 핸드 리테이너(620)는 헤드(610)와 핸들(612)의 단부 사이의 외부 쉘(640)에 대항하여 사용자의 손바닥을 물리적으로 편향시키도록 구성된다. 핸드 리테이너(620)는 바람직하게는 핸들(612)과 추적 부재(630) 사이에 배치되고, 길이가 조정가능하고 사용자의 손등과 접촉하도록 구성된 손 보유 스트랩을 포함할 수 있다. 도 6a 및 도 6b의 실시예에서, 핸드 리테이너(620)는 선택적으로 드로우 코드(628)를 포함하고, 선택적으로 코드 락(cord lock)(626)의 위치에서 드로우 코드(628)에 의한 슬라이딩 모션을 선택적으로 방지하는 코드 락(626)(핸들(612)의 원위 단부에 인접함)에 의해 길이가 조정될 수 있다.
도 6a 및 도 6b의 실시예에서, 추적 트랜스듀서들(632, 633)은 추적 부재(630) 상에 배치되며, 이때 추적 트랜스듀서들(633)은 추적 부재(630)의 대향 원위 단부들에서 돌출된 노우즈들 상에 배치된다. 추가 추적 트랜스듀서들(634)은 선택적으로 헤드(610)의 원위 영역 상에 배치된다. 추적 트랜스듀서들(632, 633, 634)은 전자 시스템(예컨대, 가상 현실 게임 시스템)에 의해 방출된 전자기 방사선(예를 들어, 적외선 광)에 반응하는 추적 센서일 수 있거나, 또는 전자 시스템에 의해 수신되는 전자기 방사선(예를 들어, 적외선 광)을 방출하는 추적 비콘일 수 있다. 예를 들어, 전자 시스템은 제어기(600)를 향해 펄스형 적외선 광을 광범위하게 브로드캐스트하는, 즉, 페인트하는, VR 게임 시스템일 수 있으며, 추적 트랜스듀서들(632, 633, 634)은 브로드캐스트 펄스형 적외선 광을 수신할 수 있는 적외선 광 센서들이다. 이러한 추적 센서들의 반응은 전자 시스템으로 다시 전달될 수 있고, 시스템은 제어기(600)의 위치 및 배향을 효과적으로 추적하기 위해 이러한 반응을 해석할 수 있다.
하나 이상의 추적 트랜스듀서(632, 633, 634)는 선택적으로 도 7a의 실시예에 도시된 바와 같이, 또는 대안적으로 도 7b의 실시예에 도시된 바와 같이, 또는 대안적으로 도시되지 않은 종래의 방식으로 구조화될 수 있다. 도 7a의 하부 부분은 적외선-불투명 플라스틱을 포함하는 위에 놓이는(overlying) 윈도우형 하우징 벽(755)의 직사각형 부분 아래에 도시된, 플렉스 회로(751)에 전기적으로 연결되는 적외선 광 센서(750)의 분해 사시도를 도시한다. 윈도우형 하우징 벽(755)은 윈도우(756)를 포함한다. 윈도우(756)는 바람직하게는 적외선-투과성 폴리카보네이트 플라스틱을 포함하고, 적외선 광 센서(750)의 두께를 수용하기 위해 밑면 오목부(underside recession)를 포함할 수 있다.
도 7a의 실시예에 따르면, 윈도우형 하우징 벽(예를 들어, 추적 부재(630)의 외부 구조체, 또는 도 6a의 헤드(610))은 소위 "더블 샷" 사출 성형 공정으로 제작될 수 있어서, 하우징 벽의 대부분은 적외선-불투명 플라스틱으로 제작되지만, 적외선-투과성 플라스틱은 적외선 광 센서(750) 위의 윈도우(756)에 배치된다.
도 7a의 상부 부분은 조립된 상태의 적외선 광 센서(750), 플렉스 회로(751), 및 윈도우형 하우징 벽(755)의 단면도를 도시한다. 위로부터 윈도우(756)에 입사하는 3개의 하향 화살표로서 도 7a에 도시된 적외선 광은 윈도우(756)를 통과하여 아래에 놓인(underlying) 적외선 광 센서(750)에 의해 수신된다. 하우징 벽(755)은 적외선-불투명 플라스틱을 포함하기 때문에, 그것에 부딪치는 적외선 광은 통과하지 않을 것이고, 일부분은 윈도우 내로 다시 반사되어 적외선 광 센서(750)에 의해 수신될 수 있다. 이러한 방식으로, 윈도우(756)는 적외선-불투명 플라스틱을 포함하는 하우징 벽(755)의 대부분에도 불구하고 적외선 광이 적외선 광 센서(750)에 영향을 미치도록 허용하여, 적외선 광 센서(750)가 바람직한 각도 범위로부터만 적외선 광을 수신하도록 한다.
대안적으로, 추적 트랜스듀서들 중 하나 이상(632, 633, 634)은 선택적으로 도 7b의 실시예에 도시된 바와 같이 구조화될 수 있다. 도 7b의 하부 부분은 IR-투과성 플라스틱을 포함하는 위에 놓이는 하우징 벽(758)의 직사각형 부분 아래에 도시된, 플렉스 회로(751)에 전기적으로 연결되는 적외선 광 센서(750)의 분해 사시도를 도시한다. 하우징 벽(758)은 윈도우(759)(적외선-불투명 필름(757)이 없는 곳)를 포함하도록 패턴화되는 적외선-불투명 필름(757)으로 코팅된다.
도 7b의 상부 부분은 조립된 상태의 적외선 광 센서(750), 플렉스 회로(751), 하우징 벽(758), 및 IR-불투명 필름(757)의 단면도를 도시한다. 위로부터 하우징 벽(758)에 입사하는 3개의 하향 화살표로서 도 7b에 도시된 적외선 광은 적외선-불투명 필름(757) 내의 윈도우(759)를 통과하여 거기서 하우징 벽(758)을 통과하여 아래에 놓인 적외선 광 센서(750)에 의해 수신된다. 하우징 벽(758)은 적외선-투과성 플라스틱을 포함하기 때문에, 그것에 부딪치는 적외선 광은 그것 내로 통과하여 손실될 수 있으며, 아마도 의도치 않게 그리고 바람직하지 않게 내부 반사를 통해 근처의 센서에 도달할 수도 있다. 이러한 방식으로, 적외선-불투명 필름(757) 내의 윈도우(759)는 적외선 광이 적외선 광 센서(750)에 주로 영향을 미칠 수 있게 한다.
도 8은 오른손 제어기(600)의 측면도를 도시하며, 이때 핸들(612)의 관형 하우징을 부분적으로 감싸는 외부 쉘(640)은 내측 표면 상의 기구류를 드러내도록 따로 분해되어 있다. 도 8의 실시예에서, 기구류는 외부 쉘(640)의 내측 표면 상에 공간적으로 분포되는 근접 센서들(800)의 어레이를 포함할 수 있고, 근접 센서들(800)의 어레이는 외부 쉘(640)에 대한 사용자의 손가락의 근접성에 반응한다. 어레이의 근접 센서들(800)은 반드시 동일한 크기일 필요는 없으며, 서로 규칙적으로 또는 동일하게 이격될 필요도 없다. 특정 실시예에서, 근접 센서들(800)의 어레이는 바람직하게는 외부 쉘(640)의 내측 표면에 접합되는 플렉스 회로에 연결될 수 있는 복수의 용량성 센서들일 수 있다. 도 8의 실시예에서, 외부 쉘(640)은 (도 9a 및 도 9b에서 더 상세히 도시된 바와 같이) 핸들(612)의 정합하는 제2 전기 커넥터 부분에 연결될 수 있는 제1 전기 커넥터 부분(805)을 포함한다.
도 9a 및 도 9b는 도 6a의 오른손 제어기(600)의 단면도를 도시하며, 제어기의 핸들이 선택적으로 관형 하우징(612a, 612b)을 포함할 수 있음을 보여주며, 이는 관형 하우징 부분들(612a, 612b)이 인접하는 이음새(613)에 의해 길이방향으로 분할된다. 도 9a에서, 외부 쉘(640)은 핸들의 나머지 부분으로부터 따로 분해된 것으로 도시되어 있다. 도 9b는 외부 쉘(640)이 정상 작동 위치에 설치되어 있는 것을 제외하고는, 도 9a의 단면을 도시한다. 도 9a 및 도 9b의 실시예에서, 외부 쉘(640)의 제1 전기 커넥터 부분(805)은 제어기 핸들의 제2 전기 커넥터 부분(905)에 정합되고 있고 연결가능한 것으로 도시된다.
도 9a 및 도 9b의 실시예에서, 외부 쉘(640)은 바람직하게는 길이방향 이음새(613)와 중첩하는 방식으로 관형 하우징(612a, 612b)을 부분적으로 감싸서, 길이방향 이음새(613)가 근접 센서 어레이(800)의 원하는 원주 위치를 수용하는 것보다는 오히려 제조 프로세스를 최적화하도록 위치될 수 있게 한다. 특정 실시예에서, 외부 쉘(640)은 핸들의 관형 하우징(612a, 612b)의 원주 부분(C)과 중첩하고, 원주 부분(C)은 핸들의 관형 하우징(612a, 612b)의 전체 원주의 100도 이상 170도 이하의 각도에 걸쳐 있다. 이러한 원주방향 중첩은, 특정 실시예에서, 근접 센서 어레이(800)가 사용자의 손가락 또는 손바닥의 원하는 부분, 예를 들어 파지를 가장 잘 나타내는 손의 영역의 근접성을 감지할 수 있게 한다.
핸들의 관형 하우징(612a, 612b)은 원형 단면을 가질 필요가 없으며, "원주"라는 단어는 핸들의 관형 하우징(612a, 612b)이 원형 단면을 갖는지 여부에 관계없이 본 명세서에서 사용된다. 본 명세서에서, "원주"라는 용어는 핸들의 관형 하우징(612a, 612b) 주위의 완전한 둘레를 의미하며, 이는 관형 하우징(612a, 612b)이 우측 원형 중공 실린더인 경우 원형일 수 있지만, 관형 하우징이 비-원형 실린더 또는 중공 프리즘으로서 형상화되는 경우 원형 이외의 폐쇄된 형상일 수 있다.
도 9a 및 도 9b의 실시예에서, 인쇄 회로 기판(PCB)(920)은 핸들의 관형 하우징(612a, 612b) 내에 장착될 수 있으며, 이때 제2 전기 커넥터 부분(905)은 PCB(920)에 전기적으로 결합된다. PCB(920)는 선택적으로 힘 감지 저항기(FSR)(922)를 포함하고, 제어기는 FSR(922)에 대해 내향으로 핸들의 관형 하우징(612a, 612b)의 외부를 향해 외부 쉘(640)을 통해 인가된 압축력을 전달하는 플런저(924)를 추가로 포함할 수 있다. 특정 실시예에서, 근접 센서 어레이(800)와 함께 FSR(922)은 사용자에 의한 파지의 시작 및 사용자에 의한 그러한 파지의 상대적 강도 둘 모두의 감지를 용이하게 할 수 있으며, 이는 특정 게임플레이 특징들을 용이하게 할 수 있다.
특정 실시예에서, 외부 쉘(640)은 핸들의 관형 하우징 부분들(612a 또는 612b)의 하우징 벽 두께의 1/3보다 작은 쉘 두께(도 9a 및 도 9b에서 방사상으로 측정된)를 갖는다. 이들 실시예에서, 이러한 두께 불균등은 근접 센서 어레이(800)가 핸들의 관형 하우징(612a, 612b) 상에 또는 그 내에 배치되는 대안적인 실시예에 비해 근접 센서 어레이(800)의 감도를 향상시킬 수 있다.
도 10a는 부분적으로-폐쇄된 핸드 리테이너(220)(예를 들어, 손 보유 스트랩)를 갖는, 본 개시내용의 다른 예시적인 실시예에 따른 오른손 제어기(200)의 정면도를 도시한다. 도 10b는 핸드 리테이너(220)가 완전히 개방되어 있는 것을 제외하고는, 제어기(200)의 정면도를 도시한다. 도 10a 및 도 10b의 실시예에서, 제어기(200)는 헤드(210) 및 핸들(212)을 갖는 제어기 본체를 포함한다. 헤드(210)는 제어기(200)의 목 영역(neck region)(211)에서 핸들(212)에 인접한다. 핸들(212)은, 바람직하게는 그 외부 표면 바로 아래에 공간적으로 분포되고, 바람직하게는 핸들(212)의 외측 표면에 대한 사용자의 손가락의 근접성에 반응하는 근접 센서들의 어레이를 포함한다.
도 10a 및 도 10b의 실시예에서, 헤드(210)는 엄지-작동식 제어부들(A, B, 및 208)을 포함한다. 제어기(200)는 또한 바람직하게는 헤드(210)에서 그리고 핸들(212)의 원위 단부에서 제어기 본체에 고정되는 추적 부재(230)를 포함한다. 추적 부재(230)는 바람직하게는 전자 시스템에 의해 방출된 전자기 방사선(예를 들어, 가상 현실 게임 시스템에 의해 방출된 펄스형 적외선 광)에 반응하는 센서들, 또는 전자 시스템에 의해 수신될 전자기 방사선을 방출하는 추적 비콘들일 수 있는 복수의 추적 트랜스듀서들을 포함한다. 도 10a 및 도 10b의 실시예에서, 추적 부재(230)는 바람직하게는 아치형 형상을 갖는 추적 호이지만, 반드시 그렇지는 않다. 핸드 리테이너(220)는 바람직하게는 핸들(212)과 추적 호(230) 사이에 배치된다.
도 10a 및 도 10b의 실시예에서, 제어기(200)는 드로우 코드(228), 및 핸들(212)의 원위 단부에 인접한 코드 락(226)을 포함한다. 코드 락(226)은 코드 락(226)에서 드로우 코드(228)에 의한 슬라이딩 모션을 선택적으로 방지할 수 있다. 도 10a의 실시예에서, 드로우 코드(228)가 코드 락(226)을 지나서 점진적으로 더 당겨질 때, 핸드 리테이너(220)는 (도 10a에 도시된 모션 화살표에 의해 도시된 바와 같이) 폐쇄 위치로 더 단단히 당겨진다. 폐쇄 위치는 핸들(212)의 외측 표면에 대항하여 사용자의 손바닥을 물리적으로 편향시킨다.
도 10a 및 도 10b의 실시예에서, 핸드 리테이너(220)는 바람직하게는 도 10b에 도시된 개방 위치를 향해 핸드 리테이너(220)를 편향시키는 탄성 부재(예를 들어, 금속 스트립과 같은 내부 또는 외부 탄성적으로 변형가능한 스트립)를 포함한다. 도 10b의 실시예에서, 사용자가 선택적으로 코드 락(226)이 해제되게 하고 드로우 코드(228)의 상대적인 슬라이딩을 허용하게 할 때, 탄성적으로 변형된 탄성 부재의 직선화를 향한 프리로딩된 편향은 핸드 리테이너(220)가 자연적으로 개방되게 한다(도 10b에 도시된 모션 화살표에 의해 도시된 바와 같이). 개방 위치는, 특히 가상 현실 고글의 착용에 의해 사용자의 시야가 차단될 수 있을 때, 제어기(200)로부터의 사용자의 손의 삽입 또는 인출을 용이하게 할 수 있다.
도 11a는 헤드(210) 둘레에서 주변으로 이동하도록 조정될 수 있는 핸드 리테이너 앵커(302)를 포함하는, 제어기(200)의 헤드(210) 및 핸들(212) 구성요소들의 정면도를 도시한다. 도 11b는, 헤드(210) 둘레에서 주변으로 핸드 리테이너 앵커(302)의 선택적인 조정을 용이하게 할 수 있는 잠금가능한 칼라 부분(311)을 노출시키기 위해 면판이 헤드(210)로부터 제거된 것을 제외하고는, 동일한 헤드(210) 및 핸들(212) 구성요소들을 도시한다.
도 11b의 실시예에서, 잠금가능한 칼라 부분(311)은 내부 아치형 가이드(315)에 의해 정의된 아치형 경로를 따라 병진이동할 수 있다. 잠금가능한 칼라 부분(311)은 헤드(210)의 주변부 둘레에서 앵커(302)의 추가 이동을 방지하기 위해 사용자에 의해 선택적으로 잠금될 수 있다. 이제 도 4 및 도 10a 내지 도 11b를 참조하면, 핸드 리테이너(220)의 탄성 부재는 헤드(210)의 핸드 리테이너 앵커(302)에 부착되며, 이는 핸드 리테이너(220)가 사용자의 펄리큐(purlicue)(사용자의 엄지와 손가락들 사이)를 향해 또는 그로부터 멀어지게 조정될 수 있도록 한다. 특정 실시예에서, 핸드 리테이너(220)의 탄성 부재는 바람직하게는 피벗 또는 회전가능한 부착에 의해 헤드(210)의 핸드 리테이너 앵커(302)에 부착되어, 핸드 리테이너(220)가 부착의 위치에서 핸드 리테이너 앵커(302)에 대해 피벗할 수 있게 한다. 이러한 자유도는 헤드(210)의 주변부에 대한 핸드 리테이너 앵커(302)의 위치의 조정가능성에 추가된다.
도 12a, 도 12b, 및 도 12c는 헤드(410) 및 목 영역(411)에서 헤드에 결합된 핸들(412)을 포함하는 제어기 본체를 갖는 부분적으로 조립된 제어기(400)의 대안적인 실시예를 도시한다. 도 12a 내지 도 12c의 대안적인 실시예에서, 제어기 본체는 목 영역(411)에 인접하게 배치되는 채널(414)을 포함한다. 채널(414)이 부분적으로 가려지지 않도록 도 12a에 도시되지 않은 핸드 리테이너는 채널(414) 내로 연장되는 돌출부(425)에서 종단되는 탄성 부재(420)를 포함한다.
도 12b 및 12c의 실시예에서, 돌출부(425)는 핸드 리테이너가 폐쇄 위치에 있을 때 채널(414) 내에서 돌출부의 길이방향 이동을 방지하는 캐치(catch)(427)를 포함한다. 예를 들어, 도 12c의 실시예에서, 캐치(427)는, 핸드 리테이너 돌출부(425)의 상대 각도가 핸드 리테이너의 폐쇄 위치에 대응할 때 - 즉, 핸드 리테이너의 폐쇄 위치가 탄성 부재(420)에 장력을 야기할 때(예를 들어, 도 12c의 단면에 도시된 바와 같이 하향 방향으로) - 채널(414)의 내부 표면과의 마찰을 증가시키는 캠(cam)이다.
대조적으로, 핸드 리테이너 돌출부(425)가 핸드 리테이너의 개방 위치에 대응하는 상대 각도로 회전될 때(예를 들어, 도 12c의 단면에 도시된 바와 같이 상향 방향으로), 캐치(427)와 채널(414) 사이의 마찰은 감소되고, 핸드 리테이너 돌출부(425)는 채널(414) 내에서 병진이동될 수 있다(도 12b에 도시된 모션 화살표로 표시된 바와 같이). 채널(414)은 바람직하게는, 채널(414)을 따른 핸드 리테이너 돌출부의 병진이동이 바람직하게는 사용자의 손의 펄리큐를 향하는 또는 그로부터 멀어지는 핸드 리테이너 돌출부(425)의 상대 위치를 조정하도록 배향되어, 예를 들어, 제어기(400)가 상이한 손 크기들 또는 손가락 길이들을 수용할 수 있도록 한다. 대안적인 실시예에서, 핸드 리테이너 돌출부(425)는 종래의 피벗 조인트에 의해 핸드 리테이너의 나머지에 피벗가능하게 부착될 수 있다. 이러한 회전 자유도는 채널(414)을 따른 핸드 리테이너 돌출부(425)의 조정가능한 병진이동에 추가된다.
도 13a 내지 도 13c는 본 개시내용의 예시적인 실시예에 따른 힘 감지 저항기(FSR)(1300)의 상이한 뷰들을 도시한다. 도 13c의 FSR(1300)의 단면에 도시된 바와 같이, FSR(1300)은 폴리이미드로 제조된 제1 기판(1302)을 포함할 수 있다. FSR(1300)은 제1 기판(1302) 상에(또는 위에) 배치된 제2 기판(1304)을 추가로 포함할 수 있다. 제1 기판(1302) 및 제2 기판(1304)은 FSR(1300)의 2개의 주 기판들(또는 층들)로 간주될 수 있으며, 이는 2-층 FSR(1300)로 간주될 수 있지만, FSR(1300)은 본 명세서에서 더 상세히 설명되는 바와 같이 추가 층들을 포함한다는 것이 이해되어야 한다. 이와 관련하여, 제1 기판(1302)은 FSR(1300)의 2개의 주 기판에 대해 "저부" 또는 "베이스" 기판으로 간주될 수 있지만, 제1 기판(1302) 뒤에(또는 아래에)(즉, 도 13c에 도시된 바와 같이, 음의 Z 방향으로) 재료 층들이 있을 수 있음을 이해해야 한다.
제1 기판(1302)은 제1 기판(1302)의 전방 표면(즉, 양의 Z 방향으로 향하는 표면) 상에 배치된 전도성 재료를 갖는다. 도 14를 참조하여 더 상세히 설명되는 바와 같이, 이 전도성 재료는 복수의 상호맞물린 금속 핑거들을 포함할 수 있다. 한편, 제2 기판(1304)(때때로 저항성 "멤브레인"으로 지칭됨)은 제2 기판(1304)의 후방 표면(즉, 음의 Z 방향을 향하는 표면) 상에 배치된 저항성 재료를 갖는다. 이 저항성 재료는 잉크 조성물(예를 들어, 은 잉크, 탄소 잉크, 이들의 혼합물 등)과 같은 반도체성 재료일 수 있으며, 이는 어느 정도의 전기 저항(예를 들어, 스퀘어당 300 킬로옴(kOhm) 내지 400 kOhm/sq의 범위 내의 비교적 높은 시트 저항)을 나타낸다. 바람직하게는, 제2 기판(1304)의 시트 저항은 350 kOhm/sq이지만, 예컨대 FSR(1300)이 비-제어기 기반 응용들에서와 같은 다른 응용들에서 사용될 때, 본 명세서에서 특정된 시트 저항 범위들 밖의 것들을 포함하는 다른 시트 저항 값들이 사용될 수 있음을 이해해야 한다. 이와 같이, 본 명세서에 특정된 시트 저항 범위(들)는 비-제한적인 것으로 이해되어야 한다. 일부 실시예에서, 제2 기판(1304)은 마일러로 제조될 수 있으며, 이때 저항성 재료는 제2 기판(1304)의 후방 표면 상에 배치된다. 일부 실시예에서, 제2 기판(1304)은 후방 표면 상에 저항성 재료(예를 들어, 전도성 잉크 조성물)를 갖는 폴리이미드로 제조된다. 제2 기판(1304)에 폴리이미드를 사용하는 예시적인 이점은 리플로우 오븐을 사용하여 대량 제조될 수 있는 FSR(1300)을 생성하는 것인 반면, 마일러는 이러한 고온을 견딜 수 없다.
FSR(1300)은, 제2 기판(1304)의 중심 부분이 제1 기판(1302) 위에 현수되고 그로부터 일정 거리 이격되도록, 제1 기판(1302)과 제2 기판(1304) 사이에 개재된 하나 이상의 스페이서 층을 포함할 수 있다. 도 13c는 제1 기판(1302)의 주변부에서 제1 기판(1302) 상에 배치된 커버레이(1306), 및 커버레이(1306) 상에 배치된 접착제 층(1308)을 제한 없이 포함하는 2개의 스페이서 층을 도시한다. 커버레이(1306)는 폴리이미드로 제조될 수 있고, 따라서 제1 기판(1302)과 동일한 재료일 수 있다. 커버레이(1306)의 두께(Z 방향으로 측정된)는 10 마이크로미터 내지 15 마이크로미터의 범위 내에 있을 수 있다. 접착제 층(1308)의 두께(Z 방향으로 측정된)는 50 마이크로미터 내지 130 마이크로미터의 범위 내에 있을 수 있다. 따라서, 제2 기판(1304)이 제1 기판(1302)으로부터 이격되는 총 거리는 하나 이상의 스페이서 층의 두께의 합(예를 들어, 커버레이(1306)의 두께에 접착제 층(1308)의 두께를 더한 값)일 수 있다. 이들 층은, 예컨대 FSR(1300)이 비-제어기 기반 응용들에서와 같은 다른 응용들에서 사용될 때, 본 명세서에서 특정된 두께 범위들을 벗어난 두께들로 제공될 수 있다. 이와 같이, 이러한 두께 범위들은 비-제한적인 것으로 이해되어야 한다.
액추에이터(1310)(예컨대 디스크-형상의, 순응성 플런저)가 제2 기판(1304) 상에 배치될 수 있고, 제2 기판(1304)의 전방 표면 상으로 힘(F)을 전달하도록 구성된다. 액추에이터(1310)는 액추에이터(1310) 상으로의 힘의 인가 시 일정 정도 변형되는 순응성 재료인 포론(Poron)으로 제조될 수 있다. 액추에이터(1310)는 인가된 힘(F)을 중심에 놓기 위해 FSR(1300)의 활성 영역의 중심과 동심일 수 있다. 또한 액추에이터(1310)는 FSR(1300)의 활성 영역의 일부분에 걸쳐 있어, FSR(1300)의 활성 영역의 그 부분에 걸쳐 인가된 힘(F)을 균등하게 분배하도록 한다.
제2 기판(1304)의 두께(Z 방향으로 측정된)는 50 마이크로미터 내지 130 마이크로미터의 범위 내에 있을 수 있다. 이 예시적인 두께에서, 제2 기판(1304)은 가요성이다. 예를 들어, 제2 기판(1304)은 마일러로 제조될 수 있으며, 이는 위에서-특정된 범위 내의 두께에서 가요성이다. FSR(1300)의 기능적 동작은, 액추에이터(1310)에 인가된 압축력(F) 하에서 제2 기판(1304)의 후방 표면 상의 저항성 재료가 제1 기판(1302)의 전방 표면 상의 전도성 재료와 접촉하도록 하기 위해, 제2 기판(1304)의 가요성에 의존한다. 제1 기판(1302)의 두께(Z 방향으로 측정된)는 20 마이크로미터 내지 30 마이크로미터의 범위 내에 있을 수 있다. 폴리이미드는, 이 두께에서, 또한 가요성이다. 따라서, 제1 기판(1302)도 가요성이다. 한편, 액추에이터(1310)의 두께(Z 방향으로 측정된)는 780 마이크로미터 내지 810 마이크로미터의 범위 내에 있을 수 있다. 이들 층은, 예컨대 FSR(1300)이 비-제어기 기반 응용들에서와 같은 다른 응용들에서 사용될 때, 본 명세서에서 특정된 두께 범위들을 벗어난 두께들로 제공될 수 있다. 이와 같이, 이러한 두께 범위들은 비-제한적인 것으로 이해되어야 한다.
FSR(1300)은 액추에이터(1310)에 인가되는 가변 힘(F)에 응답하여 다양한 저항을 나타낼 수 있다. 예를 들어, 액추에이터(1310) 상의 힘(F)이 증가함에 따라, 저항은 감소된다. 이러한 방식으로, FSR(1300)은 인가된 힘(F)에 의해 값이 제어되는 가변 저항기로 취급될 수 있다. FSR(1300)은 "션트모드(ShuntMode)" FSR(1300) 또는 "스루모드(ThruMode)" FSR(1300)일 수 있지만, 바람직하게는 션트모드 FSR(1300)이다. 션트모드 FSR(1300)에서, 제1 기판(1302)의 전방 표면 상에 배치된 전도성 재료는 복수의 상호맞물린 금속 핑거들의 형태일 수 있다. 힘(F)이 액추에이터(1310)의 전방(또는 상부)에 인가될 때, 제2 기판(1304)의 후방 표면 상의 저항성 재료는 상호맞물린 금속 핑거들 중 일부와 접촉하며, 이는 금속 핑거들을 션트함으로써, FSR(1300)의 출력 단자들에 걸쳐 저항을 변화시킨다. 스루모드 구현에서, 제1 기판(1302) 상의 전도성 재료는 전도성 재료 상에 배치된 반도체성(또는 저항성) 재료를 갖는 전도성 재료의 중실 영역일 수 있고, 제2 기판(1304)은 유사한 구성(예를 들어, 그 위에 배치된 반도체성(또는 저항성) 재료를 갖는 전도성 재료의 중실 영역)을 가질 수 있다. 각각의 기판(1302 및 1304) 상의 전도성 재료의 중실 영역은 개별 출력 단자에 결합되고, 두 기판(1302 및 1304)이 인가된 힘(F) 하에서 접촉하게 될 때 여자 전류(excitation current)가 하나의 층을 통해 다른 층으로 통과할 수 있다.
적어도 선호되는 션트모드 구현에서, 힘 대 저항 응답 곡선 - 여기서 FSR(1300) 저항은 인가된 힘(F)의 함수로서 도표화됨 - 은 VR 시스템의 제어기(100/600)에서 사용하기에 바람직한 특성을 나타낸다. 예를 들어, FSR(1300)의 응답 곡선은, 저부 기판의 재료로서 마일러를 사용하는 것들과 같은 종래의 FSR에 비해, (하나의 FSR(1300)로부터 다른 FSR(1300)로) 더 높은 반복성 및 더 적은 히스테리시스를 나타낼 수 있다. 부하 히스테리시스(loading hysteresis)는 이전에 인가된 힘이 현재 FSR(1300) 저항에 미치는 영향을 설명한다. 응답 곡선은 또한 단조롭고, 가상 바위를 부수거나, 가상 벌룬을 꽉 쥐는 등과 같은 VR 게임 시스템 내의 다수의 게임 메카닉에 대해 이용될 수 있는 진정한 아날로그 입력을 모델링한다. 본 명세서의 예들이 인가된 힘(F)을 설명하지만, FSR(1300)은, 실제로, 인가된 압력(힘 x 면적)에 민감하며, 이는 제2 기판(1304)의 전방 표면 상의 더 큰 영역과 대조적으로 작은 지점에서 인가된 동일한 양들의 힘은 FSR(1300)의 상이한 저항 응답을 야기할 것이기 때문이라는 것을 이해해야 한다. 따라서, 액추에이터(1310)는 인가된 힘(F) 하에서 응답 곡선의 관점에서 FSR(1300)에 걸쳐 반복성을 유지하는 역할을 한다.
도 14는 FSR(1300)을 구성하는 예시적인 프로세스에서의 점진적인 단계들에서 FSR(1300)의 다양한 정면도를 도시한다. 도 14의 단계 1에서, 복수의 상호맞물린 금속 핑거들(1400)이 폴리이미드의 제1 기판(1302)의 전방 표면 상에 형성될 수 있다. 금속 핑거들(1400)은 전기 전도성이다. 금속 핑거들(1400)에 사용된 예시적인 전도성 금속은 구리, 예컨대 1/3 oz. HA 구리이다. 이 구리는 또한 금 도금될 수 있다. 복수의 상호맞물린 금속 핑거들(1400)은 감산 제조 공정을 사용하여 형성될 수 있다. 예를 들어, 단계 1 이전에, 폴리이미드의 제1 기판(1302)은 구리 클래드 층이 전방 표면 상에 배치된 상태로 형성될 수 있고, 구리 클래드 층은 (예를 들어, 구리 재료의 스트립들을 제거함으로써) 에칭되어 도 14의 단계 1에 도시된 상호맞물린 금속 핑거들(1400)의 패턴을 생성할 수 있다. 에칭된 패턴의 크기 및 간격은 0.2 밀리미터(mm)인 인접한 금속 핑거들(1400)의 쌍들 사이에 거리(Y 방향으로 측정된), 및 0.2 mm인 복수의 상호맞물린 금속 핑거들(1400)의 각각의 금속 핑거의 폭(Y 방향으로 측정된)을 생성하도록 선택될 수 있다. 이러한 핑거 폭 및 핑거들 사이의 간격은 FSR(1300)의 최대 감도와, 최소화된 제조 에칭 허용오차 사이의 최적의 균형을 제공할 수 있다. 금속 핑거들(1400)의 균일한 패턴이 도 14에 도시되어 있지만, 다른 불균일한 패턴들(예를 들어, 중심을 향하는 더 조밀한 핑거들, 및 외부를 향하는 덜 조밀한 핑거들)이 채용될 수 있음을 이해해야 한다. 도 14는 두 세트의 상호맞물린 금속 핑거들(1400)을 도시하며, 각각은 제1 출력 단자(1402(1)) 및 제2 출력 단자(1402(2))를 갖는 2-단자 FSR(1300)의 출력 단자(1402)(또는 리드)로 이어진다.
언급된 바와 같이, 금속 핑거들(1400)을 구성하는 구리는 금 도금될 수 있다. 따라서, 상호맞물린 금속 핑거들(1400)의 패턴을 에칭한 후에, 금 도금 층이 구리 핑거들 상으로 침착되어 금-도금된 핑거들을 생성할 수 있다. 따라서, 도 14의 단계 1에 도시된 복수의 상호맞물린 금속 핑거들(1400)은 금-도금된 핑거들을 나타낼 수 있다. 금-도금은 무전해 니켈 침지 금(electroless nickel immersion gold, ENIG)일 수 있다. 특히, 금 도금 이전에 베이스 층 구리 위에 추가의 구리 도금은 없을 수 있다. 추가의 구리 도금은 일반적으로, 다층 플렉스 기판에 비아(via)를 추가할 때, 베이스 층 구리 상부에(atop) 적용된다. 그러나, 금-도금 이전에 베이스 층 구리 위에 추가의 구리 도금을 추가하는 것은 실제로, 금 도금 이전에 베이스 층 구리 위에 어떠한 추가의 구리 도금도 포함하지 않는 개시된 FSR(1300)과 비교하여, 검출된 저항의 바람직하지 않은 증가를 야기할 수 있다. 따라서, 금 도금 이전에 금속 핑거들(1400) 상의 임의의 추가 구리 도금을 생략하면 FSR(1300)에서의 최적의 감도를 달성한다. 따라서, 금속 핑거들(1400)이 금 재료로 도금될 때 금속 핑거들(1400)을 구성하는 구리 클래드 층은 노출된 채로 남아있다. 이러한 방식으로, 금 재료는 베이스 층 구리와 금 도금 사이에 어떠한 추가의 구리 도금도 없이 금속 핑거들(1400)의 베이스 구리 재료와 직접 접촉한다.
도 14의 단계 2에서, 커버레이(1306)는 제1 기판(1302)의 주변부에서 제1 기판(1302) 상부에 침착될 수 있다. 예를 들어, 커버레이(1306)는 금속 핑거들(1400)의 주변 부분을 덮도록 형상이 환형일 수 있고, 금속 핑거들(1400)의 나머지 부분은 침착 후에 커버레이(1306)에 의해 덮이지 않은 채로 남는다. 커버레이(1306)는 폴리이미드로 제조될 수 있다.
도 14의 단계 3에서, 접착제 층(1308)이 커버레이(1306) 상부에 침착되어, 금속 핑거들(1400)의 나머지 부분(커버레이(1306)에 의해 덮이지 않은 채 남겨진 금속 핑거들(1400)의 부분)이 또한 접착제 층(1308)에 의해 덮이지 않은 채로 남도록 할 수 있다. 예를 들어, 접착제 층(1308)은, 접착제 층(1308)이 커버레이(1306)의 상당 부분을 덮고 접착제 층(1308)이 FSR(1300)의 활성 영역을 덮지 않도록, C- 형상일 수 있다. FSR(1300)의 "활성 영역"은 도 14의 단계 3에서, 직경 B를 갖는 것으로 도시되어 있다. 또한, C-형상인 접착제 층(1308)은 커버레이(1306)의 섹션을 접착제 층(1308)에 의해 덮이지 않은 채로 남길 수 있다. 커버레이(1306)의 이러한 덮이지 않은 섹션은 도 14의 단계 3에서, 폭 w을 갖는 것으로 도시되어 있다. 제2 기판(1304)이 제1 기판(1302)의 상부 위에 배치된 후, 이러한 커버레이(1306)의 덮이지 않은 섹션은 제1 기판(1302)과 제2 기판(1304) 사이의 공간으로부터 공기가 유입 및/또는 유출되는 것을 허용하는 공기 간극을 생성하며, 이는 대기압의 변화로 인한 센서-대-센서 반응 변화를 방지할 수 있다. 공기 간극(즉, 커버레이(1306)의 커버되지 않은 섹션)의 폭 w는 1 mm일 수 있으며, 이는 인가된 힘 하에서 접촉 표면적의 대칭을 보존하기에 충분히 작고 공기가 공기 간극을 통해 유입/유출할 수 있도록 충분히 크다. 일부 실시예에서, 접착제 층(1308)은 미국 미네소타 주, 메이플우드 소재의 3M® 컴퍼니로부터의 467 접착제(즉, 3M 467 접착제)일 수 있다. 커버레이(1306) 및 접착제 층(1308)은 현수된 방식으로 제1 기판(1304)으로부터 거리를 두고 제2 기판(1304)을 이격시키기 위해 제1 기판(1302) 상부에 제공될 수 있는 스페이서 층들의 예를 나타낸다. 언급된 바와 같이, 커버레이(1306)의 두께(Z 방향으로 측정된)는 10 마이크로미터 내지 15 마이크로미터의 범위 내에 있을 수 있고, 접착제 층(1308)의 두께(Z 방향으로 측정된)는 50 마이크로미터 내지 130 마이크로미터의 범위 내에 있을 수 있다. 바람직하게는, 접착제 층(1308)의 두께는 매우 낮은 인가된 힘(F) 하에서 초기 응답(예를 들어, FSR(1300)이 입력을 검출하기 시작함)을 허용하도록 가능한 한 얇게(예를 들어, 특정된 두께 범위의 하단에서) 제조된다. 그러나, 이들 층은, 예컨대 FSR(1300)이 비-제어기 기반 응용들에서와 같은 다른 응용들에서 사용될 때, 본 명세서에서 특정된 두께 범위들을 벗어난 두께들로 제공될 수 있다. 이와 같이, 이러한 두께 범위들은 비-제한적인 것으로 이해되어야 한다.
단계 4에서, 제2 기판(1304)이 제1 기판(1302) 상부에 제공될 수 있다. 단계 4에서, 제2 기판(1304)의 중심 부분은, 제1 기판(1302)과 제2 기판(1304) 사이에 개재된 하나 이상의 스페이서 층(예를 들어, 커버레이(1306) 및 접착제 층(1308))에 의하여, 제1 기판(1302) 위에 현수된다(도 13c 참조). 비록 도 14에 도시되지 않았지만, 액추에이터(1310)는 도 13a 내지 도 13c에 도시된 바와 같이 FSR(1300)의 구성을 완료하기 위해 제2 기판(1304)의 전방 표면에 부착될 수 있다. 액추에이터의 크기(X-Y 평면에서 측정됨)는 FSR(1300)의 활성 영역의 80%(즉, 도 14의 단계 3에 도시된, 직경(B)의 80%)에 걸쳐 있을 수 있다. 예를 들어, 디스크 형상의 액추에이터(1310)는 0.8*B와 동일한 직경을 가질 수 있다. 일부 실시예에서, FSR(1300)의 전체 직경은 14.5 mm일 수 있다. 이 치수에서, 활성 영역은 10.5 mm의 직경(B)을 가질 수 있으며, 이는 커버레이(1306) 및 접착제 층(1308)이 제1 기판(1302)과 제2 기판(1304) 사이에서 2 mm 링으로서 침착될 수 있음을 의미한다. 이 실시예에서, 액추에이터(1310)는 8.4 mm(즉, 0.8*10.5 mm)의 직경을 가질 수 있다.
FSR(1300)은 외부 힘(또는 부하)이 없을 때 개방 회로일 수 있다. 일부 실시예에서, 0의 또는 무시할 수 있는 인가된 힘 하에서 제1 기판(1302)과 제2 기판(1304)의 임의의 접촉을 고려하기 위해, 임계 회로가 제1 기판(1302)과 제2 기판(1304)이 "접촉 상태"인 것으로 간주되는 임계 저항 값을 설정하는 데 사용될 수 있으며, 이는 2개의 주 기판(즉, 1302 및 1304)이 실제로 접촉하더라도 임계 저항 값이 충족될 때까지 FSR(1300)이 개방 회로일 수 있음을 의미한다.
도 15는 본 개시내용의 다른 실시예에 따른 FSR(1300)의 예시적인 층들을 도시한다. 도 15는 축척에 맞지 않는다. 오히려, 도 15는 재료의 예시적인 층들을 예시하기 위해 제시되며, FSR(1300)의 실제 단면도를 나타내는 것으로 의도되지 않는다. 이전 도면을 참조하여 전술된 바와 같이, FSR(1300)은, 도 15에 도시된 바와 같이, 폴리이미드로 제조된 제1 기판(1302), 제1 기판(1302)의 전방 표면 상에 배치된 금속 핑거들(1400)(즉, 전도성 재료), 및 제1 기판(1302) 상에 배치된 제2 기판(1304)을 포함하며, 이때 하나 이상의 스페이서 층이 제1 기판(1302)과 제2 기판(1304) 사이에 개재되어 있는데; 이 경우, 2개의 주 기판 사이에 배치된, 전술한 커버레이(1306) 및 접착제 층(1308)을 포함하는 다수의 스페이서 층이 있다. 액추에이터(1310)가 또한 제2 기판(1304) 상에 배치된다.
도 15의 실시예에서, 액추에이터(1310)는 포론으로 제조될 수 있고, 794 마이크로미터의 두께(Z 방향으로 측정된)를 가질 수 있다. 액추에이터 접착제 층(1500)이 액추에이터(1310)를 제2 기판(1304)에 부착하는 데 사용될 수 있다. 이 액추에이터 접착제(1500)는 두께가 70 마이크로미터일 수 있다(Z 방향으로 측정된). 액추에이터 접착제(1500)에 대한 적합한 접착제는 미국 캘리포니아 주, 글렌데일 소재의 에이버리 데니슨(Avery Dennison)으로부터의 FT 8397 접착제이다. 도 15의 실시예에서, 제2 기판(1304)의 두께(Z 방향으로 측정된)는 125 마이크로미터일 수 있다. 제2 기판(1304)의 후방 표면 상의 저항성 재료의 시트 저항은 350 kOhm/sq일 수 있다. 접착제 층(1308)은 3M MP467 접착제와 같은 필오프(peel-off) 접착제일 수 있다. 접착제 층(1308)의 두께(Z 방향으로 측정된)는 50 마이크로미터일 수 있다. 커버레이(1306)는 폴리이미드로 제조될 수 있고, 12.5 마이크로미터의 두께(Z 방향으로 측정된)를 가질 수 있다. 커버레이 접착제(1502)(예를 들어, 양측에 접착제가 있는 폴리에틸렌)는 커버레이(1306)를 금속 핑거들(1400) 상부에서 제1 기판(1302)의 전방 표면에 부착하기 위해 사용될 수 있다. 커버레이 접착제(1502)는 25 마이크로미터의 두께(Z 방향으로 측정된)를 가질 수 있다. 금속 핑거들(1400)은 구리(예를 들어, 금-도금된 구리)로 제조될 수 있고, 12.5 마이크로미터의 두께(Z 방향으로 측정된)를 가질 수 있다. 제1 기판(1302)은 25 마이크로미터의 두께(Z 방향으로 측정된)를 가질 수 있다.
감압 접착제(pressure sensitive adhesive, PSA)(1504)가 제1 기판(1302)의 후방 표면에 부착될 수 있다. PSA(1504)는 3M 467MP일 수 있으며, 50 마이크로미터의 두께를 가질 수 있다. PSA 라이너(1506)가 PSA(1504) 위에 배치될 수 있고, FSR(1300)을 평면 표면(예를 들어, 제어기 본체(110) 내부에 장착된 구조체의 평면 표면)에 부착하기 전에 필오프될 수 있다.
FSR(1300)의 커넥터 부분에서, 보강재 폴리이미드(1508)가 보강재 접착제(1510)를 사용하여 제1 기판(1302)의 후방 표면에 부착될 수 있다. 보강재 폴리이미드(1508)는 137.5 마이크로미터의 두께(Z 방향으로 측정된)를 가질 수 있고, 커넥터 부분의 추가된 내구성을 위해 FSR(1300)의 더 강성인 커넥터 부분을 생성할 수 있다. 보강재 접착제의 두께(Z 방향으로 측정된)는 25 마이크로미터일 수 있다.
도 15의 실시예는 본 명세서에 개시된 바와 같이, 전자 시스템(예를 들어, VR 시스템)을 위한 제어기(100/600)의 핸들(112/612) 내에 장착되는 구조체의 평면 표면 상에 장착하기에 적합한 FSR(1300)을 나타낼 수 있다. FSR(1300)이 비-제어기 기반 응용들과 같은 다른 응용들에서 사용될 때와 같이, 도 15를 참조하여 특정되는 것들 이외의 다른 두께 값, 시트 저항 값, 및/또는 재료가 이용될 수 있음을 이해해야 한다. 이와 같이, 이러한 값들 및 재료들은 비-제한적인 것으로 이해되어야 한다.
도 16은 본 개시내용의 다른 실시예에 따른 FSR(1300)의 예시적인 층들을 도시한다. 도 16은 축척에 맞지 않는다. 오히려, 도 16은 재료의 예시적인 층들을 예시하기 위해 제시되며, FSR(1300)의 실제 단면도를 나타내는 것으로 의도되지 않는다. 제1 기판(1302) 및 제1 기판(1302) 위의(즉, 양의 Z 방향으로) 층들에 대해 도 16에 도시된 FSR(1300)은 도 15에 도시된 FSR(1300)과 유사한 구성을 가질 수 있다. 도 16은 제1 기판(1302) 아래의(즉, 음의 Z 방향으로) 층들에 있어서 도 15와 상이하다. 따라서, 간결함을 위해, 도 16에서 제1 기판(1302) 및 제1 기판(1302) 위의(즉, 양의 Z 방향으로) 층들은 다시 설명되지 않을 것인데, 이는 도 16에서의 이들 층에 대해 도 15의 설명을 참조할 수 있기 때문이다.
도 16의 실시예에서, 보강재(1600)는 보강재 접착제(1510)를 사용하여 FSR(1300)의 주 본체 부분 아래에 있는 제1 기판(1302)의 후방 표면에 부착될 수 있다. 보강재 접착제의 두께(Z 방향으로 측정된)는 도 15의 실시예에서와 같이 25 마이크로미터일 수 있지만, 보강재(1600)는 FSR(1300)의 주 본체 부분 아래에 위치되는 반면, 보강재 폴리이미드(1508)는 FSR(1300)의 커넥터 부분 아래에 위치된다. 더욱이, 보강재(1600)는 530 마이크로미터의 두께(Z 방향으로 측정된)를 갖는 FR4 보강재일 수 있으며, 이는 도 15의 실시예의 보강재 폴리이미드(1508)보다 두껍다. 풀탭(pulltab)(1602)이 접착제 층(1604)을 사용하여 보강재(1600)의 후방 표면에 부착될 수 있다. 접착제 층(1604)은 3M MP467 접착제와 같은 풀탭 접착제일 수 있다. 접착제 층(1604)의 두께(Z 방향으로 측정된)는 50 마이크로미터일 수 있다.
도 16의 실시예는 본 명세서에 개시된 바와 같이, 전자 시스템(예를 들어, VR 시스템)을 위한 제어기(100/600)의 엄지-작동식 제어부(116) 아래에 장착되는 구조체의 평면 표면 상에 장착하기에 적합한 FSR(1300)을 나타낼 수 있다. FSR(1300)이 비-제어기 기반 응용들과 같은 다른 응용들에서 사용될 때와 같이, 도 16을 참조하여 특정되는 것들 이외의 다른 두께 값, 시트 저항 값, 및/또는 재료가 이용될 수 있음을 이해해야 한다. 이와 같이, 이러한 값들 및 재료들은 비-제한적인 것으로 이해되어야 한다.
도 17은 본 개시내용의 다른 실시예에 따른 FSR(1300)의 예시적인 층들을 도시한다. 도 17은 축척에 맞지 않는다. 오히려, 도 17은 재료의 예시적인 층들을 예시하기 위해 제시되며, FSR(1300)의 실제 단면도를 나타내는 것으로 의도되지 않는다. 도 17에 도시된 FSR(1300)의 일부 층은 도 15에 도시된 FSR(1300)과 유사한 구성을 가질 수 있다. 그러나, 도 17은 여러 측면에서 도 15와 상이하다.
도 17의 실시예에서, 제2 기판(1304)의 두께(Z 방향으로 측정된)는 127 마이크로미터일 수 있다. 접착제 층(1308)은 3M 468MP 접착제와 같은 필오프 접착제일 수 있다. 리플로우 오븐의 고온을 견딜 수 있는 FSR(1300)의 경우, 접착제 층(1308)은 3M 9085 또는 3M 9082와 같은 필오프 접착제일 수 있다. 접착제 층(1308)의 두께(Z 방향으로 측정된)는 125 마이크로미터일 수 있다. 일부 경우에, 접착제 층(1308)의 두께는 50 마이크로미터일 수 있다. 또한, 금속 핑거들(1400)은 RA 구리로 제조될 수 있다. 또한, 전도성 재료(1700)가 제1 기판(1302)의 후방 표면 상에 배치될 수 있다. 전도성 재료(1700)는 12.5 마이크로미터의 두께(Z 방향으로 측정된)를 갖는 HA 구리 또는 RA 구리일 수 있다. 추가 커버레이(1702)가 전도성 재료(1700) 상에 침착될 수 있다. 이 추가 커버레이(1702)는 폴리이미드로 제조될 수 있고 커버레이 접착제(1704)를 사용하여 전도성 재료(1700)에 부착될 수 있다. 추가 커버레이(1702)의 두께(Z 방향으로 측정된)는 12.5 마이크로미터일 수 있고, 커버레이 접착제(1704)의 두께(Z 방향으로 측정된)는 25 마이크로미터일 수 있다. 접착제 층(1706)이 커버레이(1702) 상에 배치될 수 있다. 접착제 층(1706)은 60 마이크로미터의 두께(Z 방향으로 측정된)로, 3M 467MP 접착제와 같은, 필오프 접착제일 수 있다. 리플로우 오븐의 고온을 견딜 수 있는 FSR(1300)의 경우, 접착제 층(1706)은 3M 9085 또는 3M 9082와 같은 필오프 접착제일 수 있다.
도 17의 실시예는 비-VR 제어기의 제어기 본체(110) 내에 장착되는 구조체의 평면 표면 상에 장착하기에 적합한 FSR(1300)을 나타낼 수 있다. FSR(1300)이 비-제어기 기반 응용들과 같은 다른 응용들에서 사용될 때와 같이, 도 17을 참조하여 특정되는 것들 이외의 다른 두께 값, 시트 저항 값, 및/또는 재료가 이용될 수 있음을 이해해야 한다. 이와 같이, 이러한 값들 및 재료들은 비-제한적인 것으로 이해되어야 한다.
도 18a 내지 도 18d는 본 개시내용의 다른 실시예에 따른 FSR(1800)을 도시한다. FSR(1800)은 폴리이미드로 제조된 제1 기판(1802), 및 가요성이고 그 후방 표면 상에 저항성 재료를 갖는 제2 기판(1804)과 같은, FSR(1300)을 참조하여 설명된 것들과 유사한 구성요소 층들을 가질 수 있다. 하나 이상의 스페이서 층(예를 들어, 커버레이(1806) 및 접착제 층(1808))이 제1 기판(1802)과 제2 기판(1804) 사이에 개재될 수 있다.
도 18b 및 도 18c에서 FSR(1800)의 제1 기판(1802)의 일부분은 제2 기판(1804) 둘레에 감싸지고 또한 제2 기판(1804)의 전방 표면 상에 배치된다. 도 18a는 "접힘 전"으로 라벨링되고 제1 기판(1802)의 일부분이 제2 기판(1804) 둘레에 감싸지기 전의 FSR(1800)을 도시한다. 도 18a에서, FSR(1800)은 제1 본체 부분(1812(1))(때때로 "하부 벌룬"(1812(1))으로 지칭됨) 및 제2 본체 부분(1812(2))(때때로 "상부 벌룬"(1812(2))으로 지칭됨)을 포함한다. 하부 벌룬(1812(1))은 하부 벌룬(1812(1))의 제1 단부에서 접힘 목부(1814)에 의해 상부 벌룬(1812(2))에 연결된다. 솔더링 피그테일(soldering pigtail)(1816)은 하부 벌룬(1812(1))의 제2 단부로부터 연장되고, 솔더링 패드들(1818)은 솔더링 피그테일(1816)의 말단 단부 상에 있다. 택트 스위치 형태의 액추에이터(1810)가 상부 벌룬(1812(2)) 상에 배치되어, 액추에이터(1810)가 도 18b 및 도 18c에 도시된 바와 같이, 접힘 작업 후에 FSR(1800)의 전방 또는 상부 층이 되도록 한다. 따라서, FSR(1800)의 제2 기판(1804) 둘레에 감싸지는 제1 기판(1802)의 부분은 상부 벌룬(1812(2))이다.
FSR(1800)의 예시적인 층들을 도시하기 위해 접힘 작업 후의 FSR(1800)의 단면이 도 18c에 도시되어 있다. 도 18c에 도시된 층들 중 일부는 도 18d를 참조하여 더 상세히 설명된다. 도 18c의 이 실시예에서, 힘(F)이 액추에이터(1810)(예를 들어, 택트 스위치)에 인가되어 FSR(1800)의 가변 저항을 야기할 수 있으며, 이는 가변 디지털화된 값으로 변환된다. 액추에이터(1810)에 대한 택트 스위치(예를 들어, 미리 정의된 양의 힘(F)의 인가 하에 상이한 이진 상태로 토글링된 스위치)의 사용은 이중-단계(dual-stage) FSR(1800)을 생성하며, 이는 택트 스위치(1810)가 작동될 때 먼저 "클릭"되고, 이어서 FSR(1800)은 증가된 힘(F)이 인가됨에 따라 가변 저항을 출력할 수 있다. 이는, 눌릴 때마다 택트 스위치(1810)가 동일한 양의 힘(F)에서 작동한다고 가정함으로써, FSR(1800)의 개별 작동들에 대해 FSR(1800)을 교정하는 역할을 할 수 있다. 즉, FSR(1800)은 택트 스위치(1810)의 작동을 검출하는 것에 응답하여 택트 스위치(1810)의 작동과 연관된, 알려진 양의 힘(F)으로 리셋될 수 있다. 이는 FSR(1800)의 내재하는(inherent) 부정확성을 완화할 수 있다.
도 18c 및 도 18d에 도시된 바와 같이, FSR(1800)은 25 마이크로미터의 두께(Z 방향으로 측정된)를 갖는 폴리이미드로 제조된 제1 기판(1802)을 포함한다. 12.5 마이크로미터의 두께(Z 방향으로 측정된)를 갖는 전도성 재료(예를 들어, 도 18d에 도시된 HA 구리(예를 들어, 금-도금된 구리)로 제조된 금속 핑거들(1820))가 하부 벌룬(1812(1))에서 제1 기판(1802)의 전방 표면 상에 배치되어, 전도성 재료가 제2 기판(1804) 상의 저항성 재료 아래에 있도록 할 수 있다. 커버레이 접착제(1822)는 커버레이(1806)를 금속 핑거들(1820) 상부에서 제1 기판(1802)의 전방 표면에 부착하기 위해 사용될 수 있다. 커버레이 접착제(1822)는 25 마이크로미터의 두께(Z 방향으로 측정된)를 가질 수 있다. 커버레이(1806)는 폴리이미드로 제조될 수 있고, 12.5 마이크로미터의 두께(Z 방향으로 측정된)를 가질 수 있다. 커버레이(1806) 상에 배치된 접착제 층(1808)은 3M MP467 접착제와 같은 필오프 접착제일 수 있다. 접착제 층(1808)의 두께(Z 방향으로 측정된)는 60 마이크로미터일 수 있다. 제2 기판(1804)의 두께(Z 방향으로 측정된)는 127 마이크로미터일 수 있다. 제2 기판(1804)의 후방 표면 상의 저항성 재료의 시트 저항은 350 kOhm/sq일 수 있다. 접착제 층(1824)은 상부 벌룬(1812(2))이 접힘 목부(1814)에서 하부 벌룬(1812(1)) 위로 접힐 때 상부 벌룬(1812(2))을 하부 벌룬(1812(1))에 부착하는 데 사용될 수 있다. 접착제 층(1824)은 두께가 125 마이크로미터일 수 있다(Z 방향으로 측정된). 접착제 층(1824)에 대한 적합한 접착제는 3M 468MP이다. 접착제 층(1824)은 또한 C-형상일 수 있다.
FSR(1800)의 상부 벌룬(1812(2)) 상에서, 제1 보강재 폴리이미드(1834)가 보강재 접착제(1836)를 사용하여 (접힘 전에) 제1 기판(1802)의 전방 표면에 부착될 수 있다. 제1 보강재 폴리이미드(1834)는 75 마이크로미터의 두께(Z 방향으로 측정된)를 가질 수 있다. 보강재 접착제의 두께(Z 방향으로 측정된)는 25 마이크로미터일 수 있다. 또한, FSR(1800)의 상부 벌룬(1812(2)) 상에서, 제2 보강재 폴리이미드(1838)가 접착제 층(1840)을 사용하여 (접힘 전에) 제1 보강재 폴리이미드(1834)의 전방 표면에 부착될 수 있다. 제2 보강재 폴리이미드(1838)는 75 마이크로미터의 두께(Z 방향으로 측정된)를 가질 수 있다. 접착제 층의 두께(Z 방향으로 측정된)는 125 마이크로미터일 수 있다. 상부 벌룬(1812(2))이 접힘 목부(1814)에서 하부 벌룬(1812(1)) 위로 접힐 때, 제2 보강재 폴리이미드(1838)는 도 18c에 도시된 바와 같이 제2 기판(1804)과 접촉하게 되고, 접착제 층(1824)은 접힘 작업 후에 FSR(1800)의 2개의 주 본체 부분(1812(1) 및 1812(2))을 적층된 관계로 접착시킨다. FSR(1800)이 비-제어기 기반 응용들과 같은 다른 응용들에서 사용될 때와 같이, 도 18d를 참조하여 특정되는 것들 이외의 다른 두께 값, 시트 저항 값, 및/또는 재료가 이용될 수 있음을 이해해야 한다. 이와 같이, 이러한 값들 및 재료들은 비-제한적인 것으로 이해되어야 한다.
또한, 도 18d에 도시된 바와 같이, 전도성 재료(1826)가 제1 기판(1802)의 후방 표면 상에 배치될 수 있다. 전도성 재료(1826)는 12.5 마이크로미터의 두께(Z 방향으로 측정된)를 갖는 HA 구리일 수 있다. 추가 커버레이(1828)가 전도성 재료(1826) 상에 침착될 수 있다. 이 추가 커버레이(1828)는 폴리이미드로 제조될 수 있고 커버레이 접착제(1830)를 사용하여 전도성 재료(1826)에 부착될 수 있다. 추가 커버레이(1828)의 두께(Z 방향으로 측정된)는 12.5 마이크로미터일 수 있고, 커버레이 접착제(1830)의 두께(Z 방향으로 측정된)는 25 마이크로미터일 수 있다. 추가 커버레이(1828) 및 커버레이 접착제(1830)는 솔더링 피그테일(1816), 하부 벌룬(1812(1)), 접힘 목부(1814), 및 상부 벌룬(1812(2))의 일부분에 걸쳐 있어서, 액추에이터(1810)에 대한 풋프린트(또는 공간)(도 18d의 "버튼 풋프린트")를 남길 수 있다. 접착제 층(1832)이 추가 커버레이(1828) 상에 배치될 수 있다. 접착제 층(1832)은 125 마이크로미터의 두께(Z 방향으로 측정된)로, 3M 468MP 접착제와 같은, 필오프 접착제일 수 있다. 접착제 층(1832)은 솔더링 피그테일(1816) 및 하부 벌룬(1812(1))에 걸쳐 있을 수 있다.
예시적인 FSR(1300/1800)이 대체로 원형인 형상을 갖는 것으로 도시되지만, FSR(1300/1800)은 정사각형, 직사각형 등과 같은 상이한 단면 형상의 층들로 구성될 수 있음을 이해해야 한다. FSR(1300/1800)은 특정 응용에 따라, 본 명세서에서 설명된 예들보다 전체 크기가 더 크거나 작을 수 있다. 더욱이, FSR들의 어레이들은 다수의 FSR(1300/1800)을 함께 연결함으로써 구현될 수 있음을 이해해야 한다. 이러한 어레이에서, FSR 재료의 층들은 긴 재료 스트립으로 구성될 수 있다.
도 19는 본 명세서에 개시된 FSR(1300) 또는 FSR(1800)과 같은 FSR을 제조하기 위한 예시적인 프로세스(1900)의 흐름도이다. 본 명세서에 설명된 프로세스들은 동작들의 시퀀스를 나타내는, 논리적 흐름 그래프의 블록 모음으로서 예시된다. 동작들이 설명되는 순서는 제한으로서 해석되게 하려는 의도는 아니며, 임의의 수의 설명된 블록들은 프로세스들을 구현하도록 병렬로 그리고/또는 임의의 순서로 조합될 수 있다.
1902에서, 폴리이미드로 제조된 제1 기판(1302)이 제1 기판(1302)의 전방 표면 상에 배치된 구리 클래드 층을 가지면서 형성될 수 있다.
1904에서, 구리 클래드 층은 제1 기판(1302)의 전방 표면 상에 복수의 상호맞물린 구리 핑거들(즉, 금속 핑거들(1400)의 예)을 형성하도록 에칭될 수 있다. 블록(1904)에서의 에칭은 복수의 상호맞물린 구리 핑거들 중에서 인접한 구리 핑거들의 쌍들 사이에 0.2 mm의 거리를 생성하기 위해 0.2 mm의 폭을 갖는 구리 재료의 스트립들을 제거하는 것을 포함할 수 있다. 제거된 구리 재료의 연속적인 스트립들 사이의 간격은 0.2 mm의 폭을 갖는 구리 핑거들을 제공하기 위해 0.2 mm로 유지될 수 있다.
1906에서, 금-도금된 핑거들을 생성하기 위해 복수의 상호맞물린 구리 핑거들 상에 금 도금 층이 침착될 수 있다. 이 금 도금은 ENIG일 수 있다.
1908에서, 하나 이상의 스페이서 층이 제1 기판(1302)의 주변부에서 제1 기판(1302) 상부에 제공될 수 있으며, 이에 의해 금-도금된 핑거들의 일부분을 하나 이상의 스페이서 층에 의해 덮이지 않은 채로 남긴다. 서브블록들(1910 및 1912)에 의해 도시된 바와 같이, 다수의 스페이서 층이 2개의 동작으로 제공될 수 있다.
1910에서, 커버레이(1306)(예를 들어, 폴리이미드로 제조됨)가 제1 기판의 주변부에서 제1 기판(1302) 상에 침착될 수 있다. 커버레이(1306)는 금-도금된 핑거들의 주변 부분을 덮을 수 있으며, 여기서 금-도금된 핑거들의 나머지 부분은 커버레이(1306)에 의해 덮이지 않은 채로 남는다.
1912에서, 접착제 층(1308)이 커버레이(1306) 상에 침착되어, 금-도금된 핑거들의 나머지 부분이 접착제 층(1308)에 의해 덮이지 않은 채로 남도록 할 수 있다. 또한, 블록(1912)에서의 동작은 제1 기판(1302)과 제2 기판(1304) 사이의 공간으로부터 공기가 유입 또는 유출되는 것을 허용하는 공기 간극을 생성하기 위해 커버레이(1306)의 섹션을 접착제 층(1308)에 의해 덮이지 않은 채로 남겨 두는 것을 포함할 수 있다.
1914에서, 제2 기판(1304)이 제1 기판(1302) 상부에 제공되어, 제2 기판(1304)의 중심 부분이 제1 기판(1302)과 제2 기판(1304) 사이에 개재된 하나 이상의 스페이서 층에 의해 제1 기판(1302) 위에 현수되도록 할 수 있다. 이 제2 기판(1304)은 가요성이고 제2 기판(1304)의 후방 표면에 배치된 저항성 재료를 갖는다.
1916에서, FSR(1800)을 구성하기 위해, 제1 기판(1802)의 연장된 부분이 제2 기판(1804) 둘레에 감싸지고 제2 기판(1804)의 전방 표면에 부착될 수 있으며, 여기서 제1 기판(1802)의 연장된 부분은 부착될(to-be-attached) 액추에이터(1810)와 제2 기판(1804) 사이에 개재될 것이다. 블록(1916)의 점선 윤곽선으로 도시된 바와 같이, 이 동작은 FSR(1800)을 구성하기 위해 수행되지만, FSR(1300)을 구성할 때 생략될 수 있다.
1918에서, 액추에이터(1310)는, 예컨대 FSR(1300)을 구성하기 위해 액추에이터(1310)를 제2 기판(1304)의 전방 표면에 부착함으로써, 또는 제1기판 제2 기판(1804)과 액추에이터(1810) 사이에 개재된 제1 기판(1802)에 액추에이터(1810)(예를 들어, 택트 스위치)를 부착함으로써, 제2 기판(1304) 상부에 제공될 수 있다.
본 명세서에 개시된 FSR(1300/1800)은 본 명세서에 개시된 제어기(100/600)와 같은 핸드헬드 제어기 내의 구조체의 평면 표면 상에 장착될 수 있으며, 이 구조체는 제어기 본체(110)의 외측 표면에 인가된 힘의 양(예를 들어, 제어부를 누르는 손가락에 의해 인가된 힘, 핸들(112/612)을 꽉 쥐는 손에 의해 인가된 힘)에 대응하는 저항 값을 측정하기 위해 제어기 본체(110) 내의 임의의 적합한 위치에 위치될 수 있다. 도 9a 및 도 9b를 구체적으로 참조하면, FSR(1300/1800)은 PCB(920)의 평면 표면 상에 장착될 수 있으며, 이는 그 자체가 핸들(612)의 관형 하우징(612a, 612b) 내에 장착될 수 있다. 이러한 구성에서, 플런저(924)는 FSR(1300/1800)의 액추에이터(1310/1810)와 인터페이스할 수 있으며, 이는 플런저(924)로부터 액추에이터(1310/1810)로 압축력을 전달하는 것을 허용할 수 있다. 그러나, 플런저(924)가 생략되고 액추에이터(1310/1810)가 핸들(612)의 관형 하우징(612a, 612b)의 일부분과 인터페이스하는 다른 구성이 가능하다. 도 1을 구체적으로 참조하면, FSR(1300/1800)은 (핸들(112)과 원위 단부(111) 사이의) 헤드 내의 구조체의 평면 표면 상에 장착될 수 있다. 헤드 내에 장착된 구조체는 엄지-작동식 제어부들(114, 115, 116) 중 하나 이상 아래에 장착될 수 있다. 예를 들어, FSR(1300/1800)은 엄지-작동식 제어부(116)(예를 들어, 트랙 패드) 아래에 위치될 수 있다. 따라서, 제어기(100)가 동작 동안 사용자의 엄지가 엄지-작동식 제어부(116)를 누를 때, 엄지-작동식 제어부(116) 아래에 위치된 FSR(1300/1800)은 사용자의 엄지에 의해 엄지-작동식 제어부(116)에 인가된 힘의 양에 대응하는 저항 값을 측정하도록 구성될 수 있다. 핸들(112/612) 내에 장착된 하나 이상의 FSR(1300/1800) 및 제어기 본체(110)의 헤드 상의 대응하는 하나 이상의 제어부(114, 115, 116) 아래에 장착된 하나 이상의 FSR(1300/1800)과 같이, 제어기의 제어기 본체(110) 내에 다수의 FSR(1300/1800)이 배치될 수 있음을 이해해야 한다.
본 명세서에 개시된 FSR(1300/1800)은 제어기(100/600)에서 구현될 때 가변 아날로그 입력들을 가능하게 할 수 있다. 예를 들어, 핸들(112/612)을 꽉 쥐거나 변화하는 양의 힘으로 엄지-작동식 제어부(들)(예를 들어, 116)를 누르는 것은 FSR(1300/1800)의 저항이 인가된 힘에 따라 변화하게 할 수 있으며, 저항은 게임 메카닉을 제어하기 위한 FSR 입력을 나타내는 변화하는 디지털화된 값으로 변환될 수 있다.
도 20은 전자 시스템이 상이한 모드들에서 작동하도록, 제어기(100/600)와 같은 핸드헬드 제어기의 FSR-기반 입력 메커니즘을 구성하는 데 사용될 수 있는 예시적인 사용자 인터페이스(UI)(2000)를 예시한다. UI(2000)는 헤드 마운트 디스플레이(HMD)와 같은 전자 시스템의 디스플레이, 또는 개인용 컴퓨터(PC) 또는 게임 콘솔과 함께 사용되는 임의의 다른 유형의 디스플레이 상에 출력될 수 있다. UI(2000)는 "활성화 유형" 드롭 다운 메뉴(2002)를 포함한다. "활성화 유형" 드롭 다운 메뉴(2002)는 FSR-기반 입력 메커니즘(예를 들어, 엄지-작동식 제어부(116), 핸들(112/612) 등)에 대한 "소프트 프레스" 유형의 활성화를 선택하는 데 사용될 수 있다. 여기서, "소프트 프레스"는 "소프트웨어 프레스"를 의미하며, 이는 제어기(100/600) 및/또는 제어기(100/600)가 연관되는 전자 시스템이, 로직을 사용하여, FSR(1300/1800)의 아날로그 입력(예를 들어, FSR(1300/1800) 상의 인가된 힘에 대응하고, 디지털화된 FSR 입력 값으로 변환되는, FSR 저항)에 기초하여, 그리고 또한 곧 논의될 추가 구성 설정에 기초하여, FSR-기반 입력 이벤트를 등록할 때를 결정할 수 있도록 한다. 다시 말하면, 저항 값은 FSR(1300/1800)에 의해 측정될 수 있으며, 이는 디지털화된 FSR 입력 값으로 변환될 수 있다. 이 디지털화된 FSR 입력 값이 "소프트 프레스"에 대한 구성 설정에 의해 특정된 기준을 충족하는 경우, FSR-기반 입력 이벤트가 등록될 수 있다.
UI(2000)는 "바인딩" 드롭 다운 메뉴(2004)를 추가로 포함할 수 있으며, 이는 제어기(100/600) 상의 대응하는 FSR-기반 입력 메커니즘에 바인딩하기 위해 PC-기반 입력 제어부를 선택하는 데 사용될 수 있다. 여기서, 바인딩은 좌측 마우스 버튼으로서 선택되지만, 바인딩은 다른 PC-기반 입력 제어부들로서 선택될 수 있음을 이해해야 한다. 바인딩은 또한 아날로그일 수 있다. 예를 들어, 레이싱 게임의 경우, FSR(1300/1800)은 가속 페달로 사용될 수 있다(예를 들어, 사용자가 FSR-기반 제어 메커니즘을 더 세게 누를수록, 레이싱 차량은 게임에서 더 빨리 간다).
UI(2000)는 "소프트 프레스 스타일" 드롭 다운 메뉴(2006)를 추가로 포함할 수 있으며, 이는 소프트 프레스의 다양한 스타일 중 하나를 선택하는 데 사용될 수 있다. "단순 임계치" 스타일은 디지털화된 FSR 입력 값이 임계값을 충족하거나 초과할 때 FSR 입력 이벤트가 발생함을 의미한다. 디지털화된 FSR 입력 값이 FSR에 의해 측정된 특정 저항 값에 대응하고, 이는 이어서, FSR(1300/1800)에 인가된 특정 양의 힘에 대응하기 때문에, 이러한 스타일의 소프트 프레스는 FSR에 의해 측정된 저항 값이 임계 저항 값을 충족할 때, 및/또는 인가된 힘의 양이 임계량의 힘을 충족할 때 FSR 입력 이벤트를 등록하는 것으로 생각할 수 있다. 예를 들어, 제어기(100/600)의 핸들(112/612)이 FSR(1300/1800)을 포함하는 경우, 핸들(112/612)은 임계량의 힘에 도달할 때까지 꽉 쥐어질 수 있고, 이에 응답하여, FSR 입력 이벤트는 "소프트 프레스"로 등록된다. "언프레스(unpress)"에 필요한 힘은 디바운스(debounce) 목적을 위한 그리고/또는 물리적 스냅 비율로 택트 스위치를 모방하기 위한 임계값의 일부일 수 있다. 따라서 "단순 임계치" 스타일은 종래의 기계적 스위치를 대체할 수 있다. UI(200)는 FSR 입력 이벤트를 등록할지 여부를 결정하기 위해 디지털화된 FSR 입력 값들과 비교되는 임계값을 증가 또는 감소시키기 위해 사용자에 의해 구성가능한 소프트 프레스 임계치(2008(1))가 조정될 수 있음을 보여준다. 사용자는 FSR-기반 입력 메커니즘의 작동과 관련된 손의 피로를 감소시키기 위해 소프트 프레스 임계치(2008(1))를 더 낮게 조정할 수 있다(예를 들어, 슬라이더를 좌측으로 이동시킴으로써). 사용자는 FSR-기반 입력 메커니즘에 의해 우발적인 입력이 등록되는 인스턴스를 감소시키기 위해 소프트 프레스 임계치(2008(1))를 더 높게 조정할 수 있다(예를 들어, 슬라이더를 우측으로 이동시킴으로써). 일부 경우에, 소프트 프레스 임계치(2008(1))는 특정 게임에 대해 디폴트 임계값으로 설정될 수 있다(예를 들어, 사격 게임에 대해 더 낮은 디폴트 임계값, 탐험 게임의 경우 더 높은 디폴트 임계값 등).
"헤어 트리거" 스타일은 기준 임계값을 설정할 수 있으며, FSR(1300/1800)과 연관된 디지털화된 FSR 입력 값이 기준 임계값을 충족하거나 초과하면, 바인딩이 활성화된다(즉, FSR 입력 이벤트가 눌러서 유지하기(press-and-hold) 버튼 작동과 유사하게 등록된다). 그 후, 임의의 후속적인 힘의 감소는 바인딩을 비활성화하고(즉, FSR 입력 이벤트는, 사용자가 버튼을 놓는 것과 유사하게, "unregistered"), 바인딩을 비활성화한 후 임의의 힘의 증가는 바인딩을 다시 활성화하도록 작동한다. 소프트 프레스의 "헤어 트리거" 스타일에 약간의 디바운스가 있을 수 있다. 간단히 도 21로 돌아가면, "헤어 트리거" 로직의 예가 힘 대 시간 그래프(2100) 상에 도시된다. 힘 축은 FSR(1300/1800)에 의해 측정가능한 저항 값들의 범위에 대응하는, 0으로부터 임의의 적합한 최대 값까지 범위의 디지털화된 FSR 입력 값들을 나타낼 수 있다. 도 21에 도시된 바와 같이, 디지털화된 FSR 입력 값이 증가함에 따라(예를 들어, 사용자가 FSR-기반 입력 메커니즘을 점점 더 세게 누름), 디지털화된 FSR 입력 값은 결국 기준 임계값(2102)을 가로지르고, 이에 응답하여, 바인딩이 활성화되고(즉, FSR 입력 이벤트는 눌러서 유지하기 유형의 사용자 입력과 유사하게 등록됨), 그 후, 바인딩은 디지털화된 FSR 입력 값의 감소에 응답하여 비활성화된다(예를 들어, 사용자는 FSR-기반 입력 메커니즘에 대해 약간 "약화(let up)"된다). 사용자가 FSR-기반 입력 메커니즘을 더 세게 누르는 경우, 바인딩은 다시 활성화되고, 힘이 기준 임계값(2102)보다 큰 값으로 유지되는 한 계속해서 그렇게 될 수 있다.
다시 도 20을 참조하면, 소프트 프레스의 "힙 파이어" 스타일은 3개의 상이한 하위-스타일(예를 들어, 공격적(Aggressive), 보통(Normal), 및 완화(Relaxed))에서 선택될 수 있다. "힙 파이어" 스타일은 소프트 프레스의 "단순 임계치" 스타일과 유사할 수 있는데, 단, "힙 파이어" 스타일은 시간 지연을 이용하여, 다수의 수준의 바인딩을 갖는 구성에서, 더 높은 임계값에 충분히 빠르게 도달하는 경우 더 낮은 FSR 입력 값을 무시하는 데 시간 지연이 사용될 수 있도록 한다. 시간 지연의 양은 상이한 하위-스타일(예를 들어, 공격적, 보통 및 완화) 사이에서 변화한다. 간단히 도 22로 돌아가면, "힙 파이어" 로직의 예가 힘 대 시간 그래프(2200) 상에 도시된다. 다시, 힘 축은 FSR(1300/1800)에 의해 측정가능한 저항 값들의 범위에 대응하는, 0으로부터 임의의 적합한 최대 값까지 디지털화된 FSR 입력 값들의 범위를 나타낼 수 있다. 도 22에 도시된 바와 같이, A1(2202)은 제1 액션에 대응하는 제1 임계값에 대응하고 A2(2204)는 제2 액션에 대응하는 제2 임계값에 대응한다고 가정한다. 시간 지연(t)은 힙 파이어 스타일이 공격적 유형, 보통 유형, 또는 완화 유형인지에 기초하여 설정될 수 있다. 도 22에 도시된 "빠른(Fast)" 곡선에서, FSR 입력 값들은 A1(2202)에 빠르게 도달하며, 이는 실행을 시작하도록 시간 지연을 트리거한다. 이어서, FSR 입력 값은 시간 지연이 경과하기 전에 A2(2204)에 도달하며, 이는 로직으로 하여금 A1(2202)을 무시하고 A2(2204)에 대응하는 제2 액션에 대해 독점적으로 FSR 입력 이벤트를 등록하게 한다. 도 22에 도시된 "느린(Slow)" 곡선에서, FSR 입력 값은 A1(2202)에 도달하고, 시간 지연이 시작된다. 그러나, FSR 입력 값은 시간 지연이 경과하기 전에 A2(2204)에 도달할 만큼 충분히 빠르게 증가하지 않기 때문에, 로직은 A1(2202)에 대응하는 제1 액션에 대해 FSR 입력 이벤트를 등록하고, 그 후, FSR 입력 값은 결국 A2(2204)에 도달하고, 로직은 A2(2204)에 대응하는 제2 액션에 대해 추가 FSR 입력 이벤트를 등록한다. 시간 지연(t)은 밀리초 단위로 특정될 수 있으며, 구성가능한다.
다시 도 20을 참조하면, 예를 들어 "힙 파이어" 스타일의 소프트 프레스에 대한 임계치들과 같은 다중-레벨 임계치를 설정하기 위해 추가 소프트 프레스 임계치(2008(2))가 사용가능할 수 있다. FSR-기반 입력에 대한 상이한 스타일의 소프트 프레스는, 사용자가 변화하는 힘으로 FSR-기반 입력 메커니즘을 꽉 쥐거나 누르는 것에 의하여, 다수의 상이한 게임-관련 아날로그 입력들을 가능하게 하는 데 사용될 수 있다. 예를 들어, VR 게임은 사용자가 힘을 증가시키면서 제어기 본체(110)의 핸들(112/612)을 꽉 쥠으로써 바위를 부수거나 벌룬을 꽉 쥐게 할 수 있다. 다른 예로서, 사격-기반 게임은 사용자가 상이한 레벨의 인가된 힘으로 엄지-작동식 제어부(116)를 누름으로써 상이한 유형의 무기들 사이에서 토글링하도록 할 수 있다.
도 23은 제어기 본체(110) 내에 배치된 다양한 센서를 갖는 도 1의 제어기(100)를 도시한다. 예를 들어, 제1 FSR(1300(1))은 제어기 본체(110)의 헤드(113) 상에 포함되는 엄지-작동식 제어부(116)와 같은, 눌리도록 구성된 제어부 아래에 장착될 수 있다. 제2 FSR(1300(2))은 근접 센서들의 어레이(800)와 함께, 제어기 본체(110)의 핸들(112) 내에 장착될 수 있다. 어느 하나의 FSR(1300(1) 또는 1300(2))이 제어기(100) 내에 제공될 수 있거나, FSR 둘 모두(1300(1) 및 1300(2))가 제어기(100) 내에 제공될 수 있음을 이해해야 한다. 근접 센서들의 어레이(800)에 추가로, 또는 대안적으로, 하나 이상의 터치 센서(2300)(예를 들어, 터치 센서들(2300(1) 내지 2300(3)))가 엄지-작동식 제어부(114), 엄지-작동식 제어부(115), 및/또는 엄지-작동식 제어부(116), 및/또는 손가락-작동식 제어부(예를 들어, 트리거(609))와 같은, 눌리도록 구성된 하나 이상의 제어부와 연관될 수 있다. 터치 센서(들)(2300)는 연관된 제어부(예를 들어, 엄지-작동식 제어부들(114 내지 116) 중 하나 이상)와 접촉하는 객체(예를 들어, 손가락, 엄지 등)를 나타내는 터치 데이터를 제공하도록 구성될 수 있다. 일례에서, 터치 센서(들)(2300)는 제어기 본체(110)의 헤드(113) 내에 장착되는(예를 들어, 외측 하우징의 후방 표면에 그리고 제어부들(114 내지 116) 아래에서 접착되거나 달리 부착되는, 헤드(113) 내에서 PCB와 같은 구조체에 부착되는 등) 용량성 센서(또는 용량성 센서들의 어레이)를 포함한다. 다른 예에서, 터치 센서(들)(2300)는 적외선 또는 음향 터치 센서와 같은 다른 터치 감지 기술에 기초할 수 있다. 한편, 핸들(112) 상에 공간적으로 분포된 근접 센서들의 어레이(800)는 핸들(112)을 파지하는 손을 나타내는 근접성 데이터를 제공하도록 구성될 수 있다. 근접 센서들(800)은 또한, 본 명세서에 개시된 바와 같이, 핸들(112) 상의/그에 대한 손의 접촉 및/또는 근접성을 감지하기 위한 임의의 적합한 기술을 사용할 수 있다. FSR들(1300)은 제어부의 누르기(예를 들어, 제어부(116)의 누르기), 또는 핸들(112)의 꽉 쥐기의 힘의 양을 나타내는 힘 데이터를 제공하도록 구성된다. 도 23에 도시된 다양한 센서의 세트는 플렉스 회로에 의해 연결될 수 있다. 예를 들어, 헤드(113) 내의 터치 센서들(2300) 및 FSR(1300(1))은 공통 플렉스 회로에 의해 연결될 수 있다. 본 명세서에 개시된 FSR(1300)의 폴리이미드 기판은 플렉스 회로에 대한 FSR 출력 단자들의 이러한 유형의 직접 솔더링을 허용한다.
본 명세서에 설명된 프로세스들은 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 나타내는, 논리적 흐름 그래프의 블록 모음으로서 예시된다. 소프트웨어의 맥락에서, 블록들은, 하나 이상의 프로세서에 의해 실행될 때, 언급된 동작들을 수행하는 컴퓨터 실행가능 명령어들을 나타낸다. 일반적으로, 컴퓨터 실행가능 명령어들은, 특정 기능들을 수행하거나 특정한 추상적 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함한다. 동작들이 설명되는 순서는 제한으로서 해석되게 하려는 의도는 아니며, 임의의 수의 설명된 블록들은 프로세스들을 구현하도록 병렬로 그리고/또는 임의의 순서로 조합될 수 있다.
도 24는 터치 센서에 의해 제공된 터치 데이터에 기초하여 핸드헬드 제어기(100/600)의 FSR(1300/1800)을 재교정하기 위한 예시적인 프로세스(2400)의 흐름도이다.
2402에서, 핸드헬드 제어기(100/600)의 로직은, 터치 센서에 의해 제공된 터치 데이터에 적어도 부분적으로 기초하여, 객체(예를 들어, 손가락, 엄지 등)가 핸드헬드 제어기의 적어도 하나의 제어부와 접촉했다고 결정할 수 있다. 적어도 하나의 제어부는 제어기(100/600)의 제어기 본체(110) 상에 포함될 수 있고, 눌리도록 구성될 수 있다. 예를 들어, 제어부는 제어기 본체(110)의 헤드(113) 상에 포함된 엄지-작동식 제어부(116)일 수 있다. 이 실시예에서, 터치 센서는 터치 센서들(2300) 중 하나일 수 있다. 대안적으로, 제어부는 제어기 본체(110)의 핸들(112)일 수 있다. 이 실시예에서, 터치 센서는 근접 센서들의 어레이(800)일 수 있다.
2404에서, 로직은, 객체가 적어도 하나의 제어부와 접촉한 시간에 FSR(1300/1800)에 의해 제공된 힘 데이터에 적어도 부분적으로 기초하여, FSR(1300/1800)에 의해 측정된 저항 값을 결정할 수 있다.
2406에서, 로직은 저항 값을 0의 디지털화된 FSR 입력 값과 상관시킬 수 있다. 다시 말하면, 객체가 적어도 하나의 제어부와 접촉할 때 감지된 저항은 0의 힘 입력으로서 간주될 수 있으며, 이는 그 시점 이후에 FSR(1300/1800)에 인가된 힘의 임의의 증가는 양의 FSR 입력 값과 상관된다는 것을 의미한다. 따라서, 프로세스(2400)는 제어부의 터치의 검출에 대한 재교정을 통해 FSR(1300/1800)의 임의의 내재하는 부정확성 - 이는 객체가 제어부를 누르고 있지 않을 때에도 약간의 저항을 측정할 수 있음 - 을 완화하는 데 도움을 줄 수 있는 센서 융합 알고리즘을 나타낸다.
도 25는 인접한 제어부에 대한 터치 센서에 의해 제공된 터치 데이터에 기초하여 핸드헬드 제어기(100/600)의 FSR(1300/1800)에서의 스퓨리어스 입력을 무시하기 위한 예시적인 프로세스(2500)의 흐름도이다.
2502에서, 핸드헬드 제어기(100/600)의 로직은, 핸드헬드 제어기의 제1 제어부(예를 들어, 엄지-작동식 제어부(116))와 연관된 FSR(1300/1800)에 의해 제공된 힘 데이터에 적어도 부분적으로 기초하여, FSR(1300/1800)에 의해 측정된 저항 값을 결정할 수 있다.
2504에서, 로직은 저항 값을 디지털화된 FSR 입력 값으로 변환할 수 있다.
2506에서, 로직은 디지털화된 FSR 입력 값이 제1 제어부에 대해 FSR 입력 이벤트를 등록하기 위해 충족되어야 할 임계값을 충족하거나 초과하는지 여부를 결정할 수 있다. 임계치가 2506에서 충족되지 않는 경우, 프로세스(2500)는 추가 힘 데이터를 기다리기 위해 블록(2506)으로부터 블록(2502)으로 "아니오" 경로를 따른다. 임계치가 2506에서 충족되는 경우, 프로세스(2500)는 블록(2506)으로부터 블록(2508)으로 "예" 경로를 따른다.
2508에서, 로직은, 제1 제어부에 인접한 제2 제어부(예를 들어, 엄지-작동식 제어부(114 또는 115))와 연관된 터치 센서(2300)에 의해 제공된 터치 데이터 - FSR(1300/1800)에 의해 FSR 저항 값이 측정되는 시간에 제공된 터치 데이터 - 에 적어도 부분적으로 기초하여, 객체(예를 들어, 손가락, 엄지 등)가 인접한 제2 제어부와 접촉하는지 여부를 결정할 수 있다.  객체가 인접한 제2 제어부와 접촉하지 않는 경우, 프로세스(2500)는 블록(2508)으로부터 블록(2510)으로 "아니오" 경로를 따르며, 여기서 로직은 제1 제어부에 대해 FSR 입력 이벤트를 등록한다(예를 들어, 제1 제어부에 대한 바인딩을 활성화함으로써). 객체가 인접한 제2 제어부와 접촉하는 경우, 프로세스(2500)는 블록(2508)으로부터 블록(2512)으로 "예" 경로를 따른다.
2512에서, 로직은, 객체가 제2 제어부와 접촉한다고 결정하는 것에 적어도 부분적으로 기초하여, 제1 제어부에 대해 FSR 입력 이벤트를 등록하는 것을 억제할 수 있다. 이와 같이, 프로세스(2500)는 핸드헬드 제어기 상의 인접한 제어부의 누르기에 기초하여 FSR(1300/1800)에서의 스퓨리어스 입력들을 무시하는 데 사용할 수 있는 센서 융합 알고리즘을 나타낸다.
도 26은 핸드헬드 제어기(100/600)의 핸들(112/612) 내의 근접 센서들의 어레이(800)에 의해 검출된 손 크기에 기초하여 FSR(1300/1800)에 대한 FSR 입력 임계치를 조정하기 위한 예시적인 프로세스(2600)의 흐름도이다.
2602에서, 핸드헬드 제어기(100/600)의 로직은, 제어기(100/600)의 핸들 상에 공간적으로 분포된 근접 센서들의 어레이(800)에 의해 제공된 근접성 데이터에 적어도 부분적으로 기초하여, 핸들(112/612)을 파지하고 있는 손의 크기를 결정할 수 있다. 손의 크기는 복수의 미리 정의된 손 크기들(예를 들어, 작은 및 큰, 또는 작은, 중간, 및 큰 등) 중에서 결정될 수 있다.
2604에서, 로직은, 블록(2602)에서 결정된 손의 크기에 적어도 부분적으로 기초하여, 임계값을, 핸들(112/612)에 대한 FSR 입력 이벤트를 등록하기 위해 충족되어야 할 조정된 임계값으로 조정할 수 있다. 이 조정된 임계값은 핸들(112/612)이 꽉 쥐어질 수 있는 힘의 특정 양에 대응한다. 예를 들어, 힘의 양은 핸들(112/612) 내의 FSR(1300/1800)의 측정된 저항에 대응하고, 그 저항은 디지털화된 FSR 입력 값에 대응할 수 있다. 사용자가 핸들을 꽉 쥘 때, 디지털화된 FSR 입력 값이 조정된 임계값을 충족하거나 초과하는 경우, FSR 입력 이벤트가 등록될 수 있다. 따라서, 블록(2602)에서 근접 센서들의 어레이(800)에 의해 검출된 바와 같이, 임계값은 더 작은 손을 가진 사용자에 대해 더 낮은 값으로 조정될 수 있는 반면, 임계값은 더 큰 손을 가진 사용자에 대해 더 큰 값으로 조정될 수 있다. 일부 경우에, 블록(2602)에서 손 크기의 검출 이전에 제어기(100/600)에 대해 디폴트 임계값이 구성될 수 있고, 블록(2604)에서의 조정은 디폴트 값에 대해 임계값을 증가 또는 감소시키는 것일 수 있다.
도 26의 서브블록들에 의해 도시된 바와 같이, 프로세스(2600)는 더 상세한 동작들을 수반할 수 있다. 예를 들어, 블록(2602)에서 손 크기를 결정하는 것은 서브블록들(2606 및 2608)을 포함할 수 있다.
2606에서, 로직은 근접성 데이터를 제공한 근접 센서들의 어레이(800) 중 근접 센서들의 수를 결정할 수 있다. 예를 들어, 작은 손은 근접 센서들의 어레이(800) 내의 근접 센서들의 작은 서브세트에만 걸쳐 있을 수 있고, 작은-크기의 손을 검출하지 않는 나머지 근접 센서들은 전술한 근접성 데이터를 제공하지 않을 수 있다. 대조적으로, 큰 손은 근접 센서들의 어레이(800) 전체에 걸쳐 있을 수 있고, 이 경우, 근접 센서들(800) 모두(또는 적어도 임계 수 초과의 수)가 근접성 데이터를 제공할 수 있다.
2608에서, 로직은 근접성 데이터를 제공한 (어레이(800)의) 근접 센서들의 수에 적어도 부분적으로 기초하여 손의 크기를 결정할 수 있다.
추가로, 서브블록들(2610 및 2612)에 의해 도시된 바와 같이, 블록(2604)에서의 임계값의 조정은 제어기(100/600)의 하나 이상의 FSR에 대한 임계값을 조정하는 것을 포함할 수 있다.
예를 들어, 2610에서, 로직은 제어부(116)에 대해 FSR 입력 이벤트를 등록하기 위해 충족되어야 할 제1 임계값(제1 FSR(1300(1))과 연관됨)을 조정할 수 있다. 2612에서, 로직은, 추가적으로 또는 대안적으로, 핸들(112/612)에 대해 FSR 입력 이벤트를 등록하기 위해 충족되어야 할 제2 임계값(제2 FSR(1300(2))과 연관됨)을 조정할 수 있다.
도 27은 FSR 입력 값들에 기초한 핸드헬드 제어기의 제어부에 대한 바인딩을 활성화 및 비활성화하기 위한 예시적인 프로세스(2700)의 흐름도이다. 도 27의 오프-페이지 참조 "A"에 의해 도시된 바와 같이, 프로세스(2700)는 프로세스들(2400, 2500 또는 2600) 중 임의의 프로세스로부터 계속될 수 있지만, 반드시 그럴 필요는 없다.
2702에서, 핸드헬드 제어기(100/600)의 로직은, 제어기(100/600)의 FSR(1300/1800)에 의해 제공된 힘 데이터에 적어도 부분적으로 기초하여, 제1 시간에, 제1 디지털화된 FSR 입력 값을 결정할 수 있다. 이 제1 디지털화된 FSR 입력 값은 제1 시간에 FSR(1300/1800)에 의해 측정된 제1 저항 값으로부터 변환될 수 있다.
2704에서, 로직은, 제1 디지털화된 FSR 입력 값이 FSR 입력 이벤트를 등록하기 위해(예를 들어, FSR(1300/1800)과 연관된 제어부를 바인딩하기 위해) 충족되어야 하는 임계값을 충족하거나 초과하는지 여부를 결정할 수 있다. 임계치가 2704에서 충족되지 않는 경우, 프로세스(2700)는 블록(2704)으로부터 블록(2702)으로 "아니오" 경로를 따르며, 여기서 로직은 추가 힘 데이터를 기다린다. 임계치가 2704에서 충족되는 경우, 프로세스(2700)는 블록(2704)으로부터 블록(2706)으로 "예" 경로를 따른다.
2706에서, 로직은, 임계값을 충족하거나 초과하는 제1 디지털화된 FSR 입력 값에 적어도 부분적으로 기초하여, (예를 들어, FSR(1300/1800)과 연관된 제어부와 연관된 바인딩을 활성화하기 위해) FSR 입력 이벤트를 등록할 수 있다.
2708에서, 로직은, FSR(1300/1800)에 의해 제공된 힘 데이터에 적어도 부분적으로 기초하여, 제1 시간 이후의 제2 시간에, 제2 디지털화된 FSR 입력 값을 결정할 수 있다. 이 제2 디지털화된 FSR 입력 값은 제2 시간에 FSR(1300/1800)에 의해 측정된 제2 저항 값으로부터 변환될 수 있다.
2710에서, 로직은 제2 디지털화된 FSR 입력 값이 제1 디지털화된 FSR 입력 값보다 작은지 여부(즉, FSR(1300/1800)에 의한 이전 측정 이후로 FSR 입력이 감소했는지 여부)를 결정할 수 있다. 제2 디지털화된 FSR 입력 값이 제1 디지털화된 FSR 입력 값보다 작은 경우, 프로세스(2700)는 블록(2710)으로부터 블록(2712)으로 "예" 경로를 따르며, 여기서 로직은 FSR(1300/1800)과 연관된 제어부에 대한 바인딩을 비활성화할 수 있다(이는 눌러서 유지하기 입력에 해당하는 이전에 등록된 FSR 입력 이벤트를 등록해제하는 것으로 간주될 수 있음). 블록(2710)에서 제2 디지털화된 FSR 입력 값이 제1 디지털화된 FSR 입력 값보다 작지 않은 경우, 프로세스(2700)는 블록(2710)으로부터 블록(2708)으로 "아니오" 경로를 따르며, 여기서 로직은 FSR(1300/1800)로부터의 추가 힘 데이터를 기다린다. 프로세스(2700)는 도 21에 예시되고 위에서 설명된 FSR 검출 모드를 반영할 수 있다. 따라서, 블록(2704)에서 평가된 임계치는 도 21을 참조하여 설명된 기준 임계값(2102)에 대응할 수 있다.
도 28은 다수의 임계치 중 제1 임계치에 대해 FSR 입력을 무시할지 여부를 결정하기 위해 시간-지연을 사용하기 위한 예시적인 프로세스(2800)의 흐름도이다. 도 28의 오프-페이지 참조 "A"에 의해 도시된 바와 같이, 프로세스(2800)는 프로세스들(2400, 2500 또는 2600) 중 임의의 프로세스로부터 계속될 수 있지만, 반드시 그럴 필요는 없다.
2802에서, 핸드헬드 제어기(100/600)의 로직은, 제어기(100/600)의 FSR(1300/1800)에 의해 제공된 힘 데이터에 적어도 부분적으로 기초하여, 제1 시간에, 제1 디지털화된 FSR 입력 값을 결정할 수 있다. 이 제1 디지털화된 FSR 입력 값은 제1 시간에 FSR(1300/1800)에 의해 측정된 제1 저항 값으로부터 변환될 수 있다.
2804에서, 로직은, 제1 디지털화된 FSR 입력 값이 제1 FSR 입력 이벤트를 등록하기 위해(예를 들어, FSR(1300/1800)과 연관된 제어부를 바인딩하기 위해) 충족되어야 하는 제1 임계값(예를 들어, 도 22의 A1(2202))을 충족하거나 초과하는지 여부를 결정할 수 있다. 제1 FSR 입력 이벤트는 제1 액션(예를 들어, 제1 게임 메카닉)과 연관될 수 있다. 제1 임계치가 2804에서 충족되지 않는 경우, 프로세스(2800)는 블록(2804)으로부터 블록(2802)으로 "아니오" 경로를 따르며, 여기서 로직은 추가 힘 데이터를 기다린다. 임계치가 2804에서 충족되는 경우, 프로세스(2800)는 블록(2804)으로부터 블록(2806)으로 "예" 경로를 따른다.
2806에서, 로직은 미리 정의된 시간 기간(예를 들어, 도 22의 시간 지연(t))을 모니터링하기 시작할 수 있다.
2808에서, 로직은, FSR(1300/1800)에 의해 제공된 힘 데이터에 적어도 부분적으로 기초하여, 제1 시간 이후의 제2 시간에, 제2 디지털화된 FSR 입력 값을 결정할 수 있다. 이 제2 디지털화된 FSR 입력 값은 제2 시간에 FSR(1300/1800)에 의해 측정된 제2 저항 값으로부터 변환될 수 있다.
2810에서, 로직은, 제2 디지털화된 FSR 입력 값이 제2 FSR 입력 이벤트를 등록하기 위해(예를 들어, FSR(1300/1800)과 연관된 제어부를 바인딩하기 위해) 충족되어야 하는 제2 임계값(예를 들어, 도 22의 A2(2204))을 충족하거나 초과하는지 여부를 결정할 수 있다. 제2 FSR 입력 이벤트는 제1 액션과 상이한 제2 액션(예를 들어, 제2 게임 메카닉)과 연관될 수 있고, 제2 임계치는 제1 임계치보다 크다. 2810에서 제2 임계치가 충족되지 않는 경우, 프로세스(2800)는 블록(2810)으로부터 블록(2812)으로 "아니오" 경로를 따르며, 여기서 로직은 미리 정의된 시간 기간이 경과했는지 여부(예를 들어, 제2 시간과 제1 시간 사이의 차이가 미리 정의된 시간 기간보다 작은지 여부)를 결정하는 것을 기다린다. 블록(2812)에서 시간 기간이 아직 경과하지 않은 경우, 프로세스(2800)는 블록(2812)으로부터 블록(2810)으로 다시 "아니오" 경로를 따름으로써 반복한다. 블록(2812)에서 시간 기간이 경과했고 제2 임계치가 충족되지 않은 경우, 프로세스(2800)는 블록(2812)으로부터 블록(2814)으로 "예" 경로를 따르며, 여기서 로직은 (예를 들어, 제1 액션 또는 게임 메카닉과 연관될 수 있는) 제1 임계치에 대한 제1 FSR 입력 이벤트를 등록할 수 있다.
2810에서 제2 임계치가 충족되는 경우, 프로세스(2800)는 블록(2810)으로부터 블록(2816)으로 "예" 경로를 따르며, 여기서 로직은 미리 정의된 시간 기간을 평가한다. 블록(2816)에서 시간 기간이 아직 경과하지 않은 경우, 프로세스(2800)는 블록(2816)으로부터 블록(2818)으로 다시 "아니오" 경로를 따르며, 여기서 로직은 제1 FSR 입력 이벤트를 등록하는 것을 억제하고, (예를 들어, 제2 액션 또는 게임 메카닉과 연관될 수 있는) 제2 임계치와 연관된 제2 FSR 입력 이벤트를 등록한다. 블록(2816)에서 시간 기간이 경과했고 제2 임계치가 충족된 경우, 프로세스(2800)는 블록(2816)으로부터 블록(2820)으로 "예" 경로를 따르며, 여기서 로직은 제1 임계치에 대한 제1 FSR 입력 이벤트 및 제2 임계치에 대한 제2 FSR 입력 이벤트 둘 모두를 등록할 수 있다. 프로세스(2800)는 도 22에 예시되고 위에서 설명된 FSR 검출 모드를 반영할 수 있다.
도 29는 도 1의 제어기(100)와 같은 핸드헬드 제어기의 예시적인 구성요소들을 예시하지만, 도 29에 도시된 구성요소들은 또한 제어기(600)에 의해 구현될 수 있다. 예시된 바와 같이, 핸드헬드 제어기는 하나 이상의 입력/출력(I/O) 디바이스(2902), 예컨대 전술된 제어부들(예를 들어, 조이스틱, 트랙패드, 트리거 등), 잠재적으로 임의의 다른 유형의 입력 또는 출력 디바이스를 포함한다. 예를 들어, I/O 디바이스들(2902)은 사용자 음성 입력과 같은 오디오 입력을 수신하기 위한 하나 이상의 마이크로폰을 포함할 수 있다. 일부 구현예에서, 하나 이상의 카메라 또는 다른 유형의 센서(예를 들어, 관성 측정 유닛(inertial measurement unit, IMU))는 핸드헬드 제어기(100)의 모션과 같은 제스처 입력을 수신하는 입력 디바이스로서 기능할 수 있다. 일부 실시예에서, 추가 입력 디바이스는 키보드, 키패드, 마우스, 터치 스크린, 조이스틱, 제어 버튼 등의 형태로 제공될 수 있다. 입력 디바이스(들)는 볼륨 증가/감소를 위한 기본 볼륨 제어 버튼(들)뿐만 아니라 전원 및 리셋 버튼과 같은 제어 메커니즘들을 추가로 포함할 수 있다.
한편, 출력 디바이스들은 디스플레이, 조명 요소(예를 들어, LED), 햅틱 감각을 생성하는 진동기, 스피커(들)(예를 들어, 헤드폰) 등을 포함할 수 있다. 예를 들어 전원이 켜져 있을 때와 같은 상태를 나타내는 간단한 조명 요소(예를 들어, LED)가 또한 있을 수 있다. 몇 가지 예가 제공되었지만, 핸드헬드 제어기는 추가로 또는 대안적으로 임의의 다른 유형의 출력 디바이스를 포함할 수 있다.
또한, 핸드헬드 제어기(100)는 네트워크 및/또는 하나 이상의 원격 시스템(예를 들어, 애플리케이션을 실행하는 호스트 컴퓨팅 디바이스, 게임 콘솔 등)에 대한 무선 연결을 용이하게 하기 위한 하나 이상의 통신 인터페이스(2904)를 포함할 수 있다. 통신 인터페이스들(2904)은 Wi-Fi, 블루투스, 무선 주파수(RF) 등과 같은 다양한 무선 기술 중 하나 이상을 구현할 수 있다. 핸드헬드 제어기(100)는 네트워크, 연결된 주변 디바이스, 또는 다른 무선 네트워크와 통신하는 플러그인 네트워크 디바이스로의 유선 연결을 용이하게 하는 물리적 포트들을 추가로 포함할 수 있다는 것을 이해해야 한다.
예시된 구현예에서, 핸드헬드 제어기는 하나 이상의 프로세서(2906) 및 컴퓨터 판독가능 매체(2908)를 추가로 포함한다. 일부 구현예에서, 프로세서(들)(2906)는 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), CPU 및 GPU 둘 모두, 마이크로프로세서, 디지털 신호 프로세서 또는 당업계에 알려진 다른 처리 장치 또는 구성요소를 포함할 수 있다. 대안적으로 또는 추가적으로, 본 명세서에 설명된 기능은, 적어도 부분적으로, 하나 이상의 하드웨어 로직 구성요소에 의해 수행될 수 있다. 예를 들어, 그리고 제한없이, 사용될 수 있는 하드웨어 로직 구성요소의 예시적인 유형은 FPGA(field-programmable gate array), ASIC(application-specific integrated circuit), ASSP(application-specific standard product), SOC(system-on-a-chip system), CPLD(complex programmable logic device) 등을 포함한다. 또한, 프로세서(들)(2906) 각각은 자체 로컬 메모리를 소유할 수 있으며, 이는 또한 프로그램 모듈, 프로그램 데이터, 및/또는 하나 이상의 운영 체제를 저장할 수 있다.
일반적으로, 제어기는 본 명세서에 설명된 기술, 기능 및/또는 동작을 구현하도록 구성된 로직(예를 들어, 소프트웨어, 하드웨어, 및/또는 펌웨어 등)을 포함할 수 있다. 컴퓨터 판독가능 매체(2908)는 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 메모리, 제거가능 및 제거불가능 매체를 포함할 수 있다. 이러한 메모리는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 다른 광학 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스, RAID 저장 시스템, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 디바이스에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 한정되지 않는다. 컴퓨터 판독가능 매체(2908)는 컴퓨터 판독가능 저장 매체("CRSM")로서 구현될 수 있으며, 이는 컴퓨터 판독가능 매체(2908) 상에 저장된 명령어들을 실행하기 위해 프로세서(들)(2906)에 의해 액세스가능한 임의의 이용가능한 물리적 매체일 수 있다. 하나의 기본 구현예에서, CRSM은 랜덤 액세스 메모리("RAM") 및 플래시 메모리를 포함할 수 있다. 다른 구현예에서, CRSM은 판독 전용 메모리("ROM"), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리("EEPROM"), 또는 원하는 정보를 저장하는 데 사용될 수 있고 프로세서(들)(2906)에 의해 액세스될 수 있는 임의의 다른 유형의(tangible) 매체를 포함할 수 있지만, 이에 한정되지 않는다.
명령어, 데이터저장소 등과 같은 여러 모듈이 컴퓨터 판독가능 매체(2908) 내에 저장되고 프로세서(들)(2906) 상에서 실행되도록 구성될 수 있다. 몇 가지 예시적인 기능 모듈이 컴퓨터 판독가능 매체(2908)에 저장되고 프로세서(들)(2906) 상에서 실행되는 것으로 도시되지만, 동일한 기능은 대안적으로 하드웨어, 펌웨어에서, 또는 시스템 온 칩(SOC)으로서 구현될 수 있다.
운영 체제 모듈(2910)은 다른 모듈의 이익을 위해 핸드헬드 제어기(100) 내에 있고 그에 결합된 하드웨어를 관리하도록 구성될 수 있다. 또한, 컴퓨터 판독가능 매체(2908)는, 핸드헬드 제어기(100)가 애플리케이션(예를 들어, 게임 애플리케이션)을 실행하는 개인용 컴퓨팅 디바이스, 게임 콘솔, HMD, 원격 서버 등과 같은 하나 이상의 다른 디바이스와 통신 인터페이스(2904)를 통해 통신할 수 있도록 하는, 네트워크-통신 모듈(2912)을 저장할 수 있다. 컴퓨터 판독가능 매체(2908)는 핸드헬드 제어기 상에서 또는 핸드헬드 제어기(100)가 결합되는 컴퓨팅 디바이스 상에서 실행되는 게임(또는 다른 애플리케이션)과 연관된 데이터를 저장하기 위한 게임-세션 데이터베이스(2914)를 추가로 포함할 수 있다. 컴퓨터 판독가능 매체(2908)는 또한 개인용 컴퓨팅 디바이스, 게임 콘솔, HMD, 원격 서버 등과 같은, 핸드헬드 제어기(100)가 결합되는 디바이스와 연관된 데이터를 저장하는 디바이스-레코드 데이터베이스(2916)를 포함할 수 있다. 컴퓨터 판독가능 매체(2908)는 핸드헬드 제어기(100)가 게임 제어기로서 기능하도록 구성하는 게임-제어 명령어들(2918), 및 핸드헬드 제어기(100)가 다른 비-게임 디바이스의 제어기로서 기능하도록 구성하는 범용-제어 명령어들(2920)을 추가로 저장할 수 있다.
도 30은 본 명세서에 설명된 핸드헬드 제어기(100)를 사용하여 수행될 수 있는 예시적인 일련의 제스처를 예시한다. 예시된 바와 같이, 핸드헬드 제어기는 하나 이상의 디스플레이 디바이스(3000)에 (유선 또는 무선으로) 결합될 수 있다. 디스플레이 디바이스들(3000)은 가상 객체 등과 같은 이미지를 디스플레이 상에 제시하도록 구성된 임의의 유형의 디바이스를 나타낼 수 있다. 예시된 바와 같이, 디스플레이 디바이스들(3000)은 서버, 게임 콘솔, 클라이언트 컴퓨팅 디바이스, 가상 현실 헤드셋, 또는 디스플레이 상의 이미지의 제시를 야기하도록 구성된 임의의 다른 유형의 디바이스를 포함할 수 있다. 일부 경우에서, 디스플레이 디바이스는 (예를 들어, VR 헤드셋의 경우) 디스플레이를 포함할 수 있는 반면, 다른 경우에서 디스플레이 디바이스는 로컬 디스플레이(예를 들어, 로컬 게임 콘솔의 경우) 또는 원격 디스플레이(예를 들어, 서버 컴퓨팅 디바이스의 경우) 상의 제시를 위해 데이터를 전달할 수 있다.
이 예에서, 핸드헬드 제어기(100)는 근접 센서, 힘 센서, 가속도계 등과 같은 전술된 센서들의 일부 또는 전부를 포함할 수 있다. 제어기(100) 및/또는 제어기(100)에 결합된 디스플레이 디바이스(3000)는 이러한 센서들에 의해 수집된 데이터를 이용하여, 디스플레이 상에 제시되는 가상 객체를 픽업 및/또는 해제하려고 의도하는 사용자를 식별할 수 있다. 예시된 예에서, 디스플레이 디바이스(3000)는 가상 손(3004) 및 가상 객체(3006)를 포함하는 제1 프레임(3002(1))을 제시한다. 제1 프레임(3002(1))에 또는 이후 언젠가, 제어기(100) 및/또는 연결된 디스플레이 디바이스는 센서 데이터를 분석하여, 사용자가 가상 객체를 파지하려고 의도한다고 결정할 수 있다. 이와 같이, 제2 프레임(3002(2))은 가상 객체(3006)를 유지하는 가상 손(3004)을 예시한다.
다시, 제2 프레임(3002(2))에 또는 이후 언젠가, 제어기 및/또는 디스플레이 디바이스(3000)는 제어기에 의해 수집된 센서 데이터를 분석하여, 사용자가 아이템을 해제하려고 의도한다고 결정할 수 있다. 해제가 개시되었다는 표시를 저장한 후, 이후에 수집된 센서 데이터는 해제를 실행할 때 - 예를 들어, 가상 객체(3006)를 해제하는 가상 손(3004)의 디스플레이 상의 표현을 생성할 때 - 를 결정하기 위해 분석될 수 있다. 이 예에서, 제3 프레임(3002(3))은 센서 데이터의 분석에 기초하여 가상 객체(3006)를 해제하는 가상 손(3004)을 예시한다.
도 31은 예시적인 디스플레이 디바이스들(3000)의 예시적인 구성요소들 및 예시적인 핸드헬드 제어기(100)의 예시적인 구성요소들을 예시하며, 이는 가상 객체가 픽업 및/또는 해제될 때를 식별하는 데 사용될 수 있다. 예시된 바와 같이, 핸드헬드 제어기(100)는 하나 이상의 프로세서(3100), 하나 이상의 센서(3102) 및 하나 이상의 컴퓨터 판독가능 매체(3104)를 포함한다. 센서들은 제어기(100)의 현재 속도에 대응하는 속도 데이터를 생성하도록 구성된 가속도계(3106), 제어기(100)에 대한 객체들(예를 들어, 손가락, 또는 사용자의 손의 다른 부분)의 근접성을 (예를 들어, 커패시턴스 판독치들을 통해) 결정하도록 구성된 근접 센서들(3108), 제어기(100)에 인가된 힘을 결정하도록 구성된 힘 감지 저항기들(3110), 및/또는 하나 이상의 다른 센서(3112)를 포함할 수 있다.
한편, 컴퓨터 판독가능 매체는 이들 센서(3102)에 의해 수집된 센서 데이터(3114)를 저장하거나 그렇지 않으면 그에 대한 액세스를 가질 수 있다. 예시된 바와 같이, 센서 데이터(3114)는 힘 감지 저항기들(3110)에 의해 측정된 힘 값들, 근접 센서들(3108)에 의해 측정된 커패시턴스 값들, 가속도계(3106)에 의해 측정된 속도 데이터, 상이한 시간들에서의 판독치들 간의 차이에 기초한 차이 값들(예를 들어, 시간 경과에 따른 속도 차이들) 등을 포함할 수 있다. 또한, 컴퓨터 판독가능 매체는 임계치 데이터(3116)를 저장하거나 그렇지 않으면 그에 대한 액세스를 가질 수 있다. 임계치 데이터(3116)는 대응하는 액션이 취해질 임계치들을 나타낼 수 있다. 예를 들어, 임계치 데이터(3116)는 힘 임계치, 커패시턴스 임계치, 차이 임계치, 시간 임계치 등을 포함할 수 있다. 이들 임계치는 도 32 내지 도 35를 참조하여 더 설명된다.
컴퓨터 판독가능 매체(3104)는 디스플레이 상에 제시되는 가상 객체와 관련하여 특정 액션을 취할 때를 결정하기 위해, 임계 데이터(3116)를 참조하여, 센서 데이터(3114)를 분석하도록 구성되는 객체-상호작용 모듈(3118)을 추가로 저장할 수 있다. 예를 들어, 객체-상호작용 모듈(3118)은 객체가 픽업, 해제, 파쇄 등이 될 때를 결정하도록 구성될 수 있다. 예시된 바와 같이, 객체-상호작용 모듈(3118)은 센서 데이터(3114)를 분석하고 센서 데이터가 가상 객체가 유지될 기준들을 충족하는 때를 결정하도록 구성된 객체-그립(object-grip) 모듈(3120)을 포함할 수 있다. 객체-그립 모듈(3120)은 힘-핀치 계산기(3122), 힘-그랩(force-grab) 계산기(3124), 캡-핀치 계산기(3126), 및 캡-그랩(cap-grab) 계산기(3128)를 포함할 수 있다. 일부 예에서, 힘-핀치 계산기(3122)는, 하나 이상의 힘 센서가 힘 임계치를 초과하는 힘 값들을 생성하고 하나 이상의 버튼이 눌리는 것에 응답하여 힘-핀치 상태를 식별할 수 있다. 예를 들어, 사용자의 엄지가 놓이는 곳 아래에 있는 핸드헬드 제어기의 상부 면 상에 위치된 힘 센서가 특정 임계치(예를 들어, 센서의 최대 힘 판독치의 1%, 최대 힘 판독치의 25% 등)보다 큰 힘 값을 반환하는 경우 그리고 포인터 또는 사용자의 다른 손가락에 의해 선택가능한 트리거 버튼이 눌리는 경우, 설명된 기술은 힘-핀치 상태를 식별할 수 있다. 즉, 이들 센서 판독치에 응답하여, 힘-핀치 계산기(3122)는 사용자가 "핀치"를 통해 가상 객체를 유지하려고 시도하고 있다고 결정할 수 있다. 한편, 힘-그랩 계산기(3124)는, 핸드헬드 제어기의 제어기 본체 상의 하나 이상의 힘 센서가 힘 임계치(예를 들어, 센서의 최대 힘 판독치의 10%, 센서의 최대 힘 판독치의 25% 등)보다 큰 하나 이상의 힘 값을 측정하는 것에 응답하여 힘-그립 상태를 식별할 수 있다.
한편, 캡-핀치 계산기(3126)는 근접 센서들 중 하나 이상에 의해 측정된 하나 이상의 근접성 값(예를 들어, 용량성 값), 예컨대 사용자의 엄지가 놓이는 곳에서 제어기의 상부 부분 상의 근접 센서에 의해 그리고 사용자의 검지 또는 다른 손가락이 놓이는 곳에서 제어기의 제어기 본체 상의 근접 센서에 의해 측정된 값들에 기초하여 캡-핀치 상태를 식별할 수 있다. 일부 경우에서, 소프트웨어 및/또는 하드웨어는 이 두 판독치의 평균을 내고 평균을 임계치와 비교할 수 있다. 평균 값이 임계치(예를 들어, 최대 센서 판독치의 30%, 최대 센서 판독치의 60% 등)보다 큰 경우, 캡-핀치 상태가 식별될 수 있다. 한편, 캡-그랩 계산기(3128)는 제어기의 제어기 본체 상에 상주하는 하나 이상의 근접 센서에 의해 기록된 근접성 값들에 기초하여 캡-그립 상태를 식별할 수 있다. 예를 들어, 사용자의 가운데, 넷째, 및 새끼 손가락에 대응하는 근접 센서들에 의해 측정된 근접성 값들은 평균화되어 임계치와 비교될 수 있다. 이 평균이 임계치보다 큰 경우(예를 들어, 최대 센서 판독치의 50%, 최대 센서 판독치의 70% 등), 캡-그립 상태가 식별될 수 있다. 물론, 몇 가지 예시적인 유지 상태가 설명되지만, 다른 유형의 유지 상태들이 이용될 수 있다. 또한, 도 33은 객체-그립 모듈(3120)의 동작을 아래에서 더 상세히 설명한다.
객체-상호작용 모듈(3118)은 낙하-개시 모듈(3130) 및 낙하-객체 모듈(3132)을 추가로 포함할 수 있다. 객체-그립 모듈(3120)이 가상 객체가 유지되고 있다고 결정한 후(따라서 유지되는 가상 객체의 제시를 야기함), 낙하-개시 모듈(3130)은 센서 데이터(3114)를 분석하여 가상 객체의 해제를 개시할 때를 결정할 수 있다. 일부 경우에서, 제어기(100) 상의 힘의 상당한 강하에 기초하여, 제어기(100)의 속도의 증가에 기초하여, 사용자의 손 또는 손의 일부분의 존재의 결여를 나타내는 근접성 판독치에 기초하여 등으로, 가상 객체의 해제가 개시될 수 있다. 도 34는 낙하-개시 모듈(3122)의 동작을 아래에서 더 상세히 설명한다.
한편, 낙하-객체 모듈(3132)은 낙하-개시 모듈(3130)이 해제가 개시되었음을 나타낸 후에 아이템의 해제를 실행하도록 구성될 수 있다. 예를 들어, 낙하-객체 모듈(3132)은 던져지거나, 낙하되거나, 파쇄되는 객체 등과 같은 객체의 해제를 나타내는 것을 시작할 때를 결정하기 위해 센서 데이터를 분석할 수 있다. 일부 경우에서, 낙하-객체 모듈(3132)은 제어기가 사실상 이동을 중단했거나 그렇지 않으면 속도가 떨어졌다는 것을 나타내는 속도 데이터에 기초하여, 미리 결정된 시간량의 만료에 기초하여 등으로, 가상 객체를 해제하기로 결정할 수 있다. 도 35 내지 도 39는 객체-낙하 모듈(3132)의 동작을 아래에서 더 상세히 설명한다.
도 31은 객체-상호작용 모듈(3118)의 구성요소들을 포함하는 것으로 핸드헬드 제어기(100)를 예시하고 있지만, 일부 경우에서 이들 구성요소의 일부 또는 전부는 추가적으로 또는 대안적으로 디스플레이 디바이스들(3000) 중 하나 이상에 상주할 수 있다는 점에 유의한다. 이와 같이, 도 31은 객체-상호작용 모듈(3118), 센서 데이터(3114), 및 임계 데이터(3116)를 점선으로 예시한다.
도 32 내지 도 35는 디스플레이 디바이스로 하여금 가상 객체의 파지 및 해제를 제시하게 하기 위해 객체-상호작용 모듈이 구현할 수 있는 예시적인 프로세스(3200)를 집합적으로 예시한다. 일부 경우에서, 객체-상호작용 모듈(3118)은, 잠재적으로 디스플레이 드라이버, 센서 등과 같은 하나 이상의 다른 컴퓨팅-디바이스 구성요소와 조합하여, 프로세스(3200)의 일부 또는 전부를 수행할 수 있다. 더욱이, 일부 경우에서, 객체-상호작용 모듈의 기능은 다수의 디바이스에 걸쳐 상주할 수 있으므로, 동작들은 디바이스들의 조합에 의해 수행될 수 있다.
동작(3202)은 제어기 프레임이 업데이트되었는지 여부를 결정하는 것을 나타낸다. 예를 들어, 동작은, 예를 들어, 사용자와 핸드헬드 제어기의 상호작용에 기초하여 그리고/또는 게임 애플리케이션과 같은 현재 실행중인 애플리케이션의 다른 입력에 기초하여 디스플레이가 업데이트되어야 하는지 여부를 결정하는 것을 나타낸다. 제어기 프레임이 업데이트되지 않은 경우, 프로세스(3200)는 제어기 프레임 업데이트를 기다리기 위해 단순히 루프백한다. 그러한 업데이트 시, 객체-상호작용 모듈(3118)은, 동작(3204)에서, 가상 객체가 현재 유지되고 있는지, 해제되고 있는지, 또는 유지되지도 해제되지도 않는지를 결정할 수 있다. 후자의 경우, 프로세스(3200)는 도 33을 참조하여 후술되는 동작들로 진행한다. 객체-상호작용 모듈(3118)이 가상 객체가 현재 유지되고 있다고 결정하는 경우, 프로세스(3200)는 도 34를 참조하여 아래에 설명된 동작들로 진행할 수 있다. 마지막으로, 객체-상호작용 모듈(3118)이 가상 객체가 해제되고 있다고 결정하는 경우, 프로세스(3200)는 도 35를 참조하여 설명된 동작들로 진행할 수 있다.
도 33은, 동작(3302)에서, 근접 센서, 힘 저항 센서, 가속도계 등과 같은 전술된 센서들 중 하나 이상으로부터 센서 데이터를 수신하는 것을 포함한다. 동작(3304)에서, 객체-그립 모듈(3120)은 수신된 센서 데이터가 위에서 논의된 바와 같이 힘-핀치-유형 그랩에 대한 기준들을 충족할 때를 결정할 수 있다. 예를 들어, 객체-그립 모듈(3120)은, 하나 이상의 힘 센서가 힘 임계치를 초과하는 힘 값들을 생성하고 하나 이상의 버튼이 눌리는 것에 응답하여 힘-핀치 상태를 식별할 수 있다. 예를 들어, 사용자의 엄지가 놓이는 곳 아래에 있는 핸드헬드 제어기의 상부 면 상에 위치된 힘 센서가 특정 임계치(예를 들어, 센서의 최대 힘 판독치의 1%, 최대 힘 판독치의 25% 등)보다 큰 힘 값을 반환하는 경우 그리고 포인터 또는 사용자의 다른 손가락에 의해 선택가능한 트리거 버튼이 눌리는 경우, 객체-그립 모듈(3120)은 힘-핀치 상태를 식별할 수 있다. 즉, 이들 센서 판독치에 응답하여, 객체-그립 모듈(3120)은 사용자가 "핀치"를 통해 가상 객체를 유지하려고 시도하고 있다고 결정할 수 있다. 힘-핀치 그랩에 대한 기준들이 충족되는 경우, 동작(3306)에서 객체-그립 모듈(3120)은 가상 손의 위치에 가장 가까운 객체에 대한 힘-핀치 유지의 표시를 저장할 수 있다. 즉, 객체-그립 모듈(3120)은 수신된 센서 데이터에 기초하여 가장 가까운 가상 객체가 사용자의 가상 손에 의해 유지될 것이라고 결정할 수 있다. 동작(3308)에서, 이어서 객체-그립 모듈(3120)은 힘-핀치 그립을 통해(예를 들어, 사용자의 집게손가락 및 엄지를 통해) 가장 가까운 가상 객체를 유지하는 사용자의 가상 손의 제시를 야기할 수 있다. 그 후, 프로세스(3300)는 동작(3310)으로 진행하며, 이는 동작(3202)으로의 복귀를 포함한다.
그러나, 객체-그립 모듈(3120)이 수신된 센서 데이터가 힘-핀치 그랩 유형에 대한 기준들을 충족하지 않는다고 결정하는 경우, 3312에서 객체-그립 모듈(3120)은, 위에서 논의된 바와 같이, 수신된 센서 데이터가 힘-그립-유형 그랩에 대한 기준들을 충족할 때를 결정할 수 있다. 예를 들어, 객체-그립 모듈(3120)은, 핸드헬드 제어기의 제어기 본체 상의 하나 이상의 힘 센서가 힘 임계치(예를 들어, 센서의 최대 힘 판독치의 10%, 센서의 최대 힘 판독치의 25% 등)보다 큰 하나 이상의 힘 값을 측정하는 것에 응답하여 힘-그립 상태를 식별할 수 있다. 이들 기준이 충족되는 경우, 동작(3314)에서 객체-그립 모듈(3120)은 가상 손의 위치에 가장 가까운 객체에 대한 힘-그립 유지의 표시를 저장할 수 있다. 즉, 객체-그립 모듈(3120)은 수신된 센서 데이터에 기초하여 가장 가까운 가상 객체가 사용자의 가상 손에 의해 유지될 것이라고 결정할 수 있다. 동작(3316)에서, 이어서 객체-그립 모듈(3120)은 힘-그립 그랩을 통해(예를 들어, 사용자의 다수의 손가락을 통해) 가장 가까운 가상 객체를 유지하는 사용자의 가상 손의 제시를 야기할 수 있다. 그 후, 프로세스(3300)는 동작(3310)으로 진행하며, 이는 동작(3202)으로의 복귀를 포함한다.
그러나, 객체-그립 모듈(3120)이 수신된 센서 데이터가 힘-파지 그랩 유형에 대한 기준들을 충족하지 않는다고 결정하는 경우, 3318에서 객체-그립 모듈(3120)은, 위에서 논의된 바와 같이, 수신된 센서 데이터가 캡-핀치 그랩에 대한 기준들을 충족할 때를 결정할 수 있다. 예를 들어, 객체-그립 모듈(3120)은 근접 센서들 중 하나 이상에 의해 측정된 하나 이상의 근접성 값(예를 들어, 용량성 값), 예컨대 사용자의 엄지가 놓이는 곳에서 제어기의 상부 부분 상의 근접 센서에 의해 그리고 사용자의 검지 또는 다른 손가락이 놓이는 곳에서 제어기의 제어기 본체 상의 근접 센서에 의해 측정된 값들에 기초하여 캡-핀치 상태를 식별할 수 있다. 일부 경우에서, 객체-그립 모듈(3120)은 이 두 판독치의 평균을 내고 평균을 임계치와 비교할 수 있다. 평균 값이 임계치(예를 들어, 최대 센서 판독치의 30%, 최대 센서 판독치의 60% 등)보다 큰 경우, 캡-핀치 상태가 식별될 수 있다. 만약 그렇다면, 동작(3320)에서 객체-그립 모듈(3120)은 가상 손의 위치에 가장 가까운 객체에 대한 캡-핀치 유지의 표시를 저장할 수 있다. 즉, 객체-그립 모듈(3120)은 수신된 센서 데이터에 기초하여 가장 가까운 가상 객체가 사용자의 가상 손에 의해 유지될 것이라고 결정할 수 있다. 동작(3322)에서, 이어서 객체-그립 모듈(3120)은 캡-핀치 그랩을 통해(예를 들어, 사용자의 집게손가락과 엄지 사이에서) 가장 가까운 가상 객체를 유지하는 사용자의 가상 손의 제시를 야기할 수 있다. 그 후, 프로세스(3300)는 동작(3310)으로 진행하며, 이는 동작(3202)으로의 복귀를 포함한다.
그러나, 객체-그립 모듈(3120)이 수신된 센서 데이터가 캡-핀치 그랩 유형에 대한 기준들을 충족하지 않는다고 결정하는 경우, 3324에서 객체-그립 모듈(3120)은, 위에서 논의된 바와 같이, 수신된 센서 데이터가 캡-그립-유형 그랩에 대한 기준들을 충족할 때를 결정할 수 있다. 예를 들어, 객체-그립 모듈(3120)은 제어기의 제어기 본체 상에 상주하는 하나 이상의 근접 센서에 의해 기록된 근접성 값들에 기초하여 캡-그립 유지를 식별할 수 있다. 예를 들어, 사용자의 가운데, 넷째, 및 새끼 손가락에 대응하는 근접 센서들에 의해 측정된 근접성 값들은 평균화되어 임계치와 비교될 수 있다. 이 평균이 임계치보다 큰 경우(예를 들어, 최대 센서 판독치의 50%, 최대 센서 판독치의 70% 등), 캡-그립 상태가 식별될 수 있다. 만약 그렇다면, 동작(3326)에서 객체-그립 모듈(3120)은 가상 손의 위치에 가장 가까운 객체에 대한 캡-그립 유지의 표시를 저장할 수 있다. 즉, 객체-그립 모듈(3120)은 수신된 센서 데이터에 기초하여 가장 가까운 가상 객체가 사용자의 가상 손에 의해 유지될 것이라고 결정할 수 있다. 동작(3328)에서, 이어서 객체-그립 모듈(3120)은 캡-그립 그랩을 통해(예를 들어, 사용자의 다수의 손가락을 통해) 가장 가까운 가상 객체를 유지하는 사용자의 가상 손의 제시를 야기할 수 있다. 그 후, 프로세스(3300)는 동작(3310)으로 진행하며, 이는 동작(3202)으로의 복귀를 포함한다.
도 33은 객체가 유지되고 있는지 여부를 결정하기 위한 하나의 예시적인 프로세스(3200(1))를 설명하지만, 다른 프로세스가 사용될 수 있다는 것을 이해해야 한다. 예를 들어, 프로세스(3200(1))는 힘-기반 그랩들이 캡-기반 그랩들 이전에 분석되고 식별되는 우선순위화를 구현하는 반면, 다른 경우에서 이것은 반전될 수 있다. 즉, 다른 구현예에서 캡-기반 그랩은 힘-기반 그랩보다 우선될 수 있거나, 우선순위 측면에서 힘-기반 그랩과 혼합될 수 있는 등이다. 일부 경우에서, 그랩 유형들의 우선순위화는 그랩되는 객체, 마지막으로 그랩된 객체 등에 의존할 수 있다. 예를 들어, 제1 유형의 객체는 캡 그랩이 아닌 힘 그랩을 먼저 체크하는 우선순위화와 연관될 수 있는 반면, 제2 유형의 객체에 대해서는 그 반대일 수 있다. 추가로 또는 대안으로, 제1 유형의 객체는 그립 그랩을 체크하기 전에 먼저 핀치 그랩(힘 또는 캡)을 체크하는 우선순위화와 연관될 수 있는 반면, 제2 유형의 객체에 대해서는 그 반대일 수 있다. 예를 들어, 사용자가 임계치보다 작은 제1 크기의 객체(예를 들어, 탁구 공)를 그랩하려고 시도하는 경우, 기술은 먼저 핀치 그랩을 식별하려고 시도할 수 있는 반면, 사용자가 임계치보다 작지 않은 제2 크기의 객체(예를 들어, 수류탄)를 그랩하려고 시도하는 경우, 기술은 그립 그랩을 식별하려고 시도할 수 있다.
또한, 사용자의 손에 대한 "가장 가까운" 객체의 결정은 많은 방식으로 결정될 수 있다. 일부 경우에서, 가상 환경 내의 각각의 객체와 사용자의 가상 손(또는 다른 도구) 사이의 거리는 객체의 제1 지점(예를 들어, 중심, 객체의 표면 상의 가장 가까운 지점 등)과 가상 손의 특정 지점 사이에서 측정될 수 있다. 이러한 후자의 지점은 사용자가 수행하려고 시도하고 있는 그랩의 유형, 사용자가 수행한 가장 최근의 그랩, 사용자가 그랩하려고 시도하고 있는 객체의 유형, 사용자가 가장 최근에 유지한 객체 등에 기초할 수 있다. 예를 들어, 사용자가 핀치-유형 그랩을 수행하려고 시도하고 있는 경우(또는 사용자의 가장 최근 그랩이 핀치-유형 그랩이었던 경우), 환경 내의 각각의 객체까지의 거리를 결정하기 위한 가상 손의 기준점은 사용자의 가상 손의 엄지와 검지손가락 사이의 지점일 수 있다. 그러나, 사용자가 그립-유형 그랩을 수행하려고 시도하고 있는 경우(또는 사용자의 가장 최근 그랩이 그립-유형 그랩이었던 경우), 환경 내의 각각의 객체까지의 거리를 결정하기 위한 가상 손의 기준점은 사용자의 가상 손 또는 주먹의 중심에 대응하는 지점일 수 있다. 물론, 몇 가지 예가 설명되지만, "가장 가까운 객체"는 다수의 다른 방식으로 결정될 수 있음을 이해해야 한다.
동작(3202)으로 되돌아가면, 가상 객체가 이제 사용자의 가상 손에 의해 유지되고 있는 것을 고려하면, 프로세스는 결정 블록(3204)의 "유지" 분기점 아래로 진행한다. 따라서 프로세스(3200)는 도 34로 진행하며, 이는, 3402에서, 다시 제어기(100)에 탑재된 센서들로부터 추가 센서 데이터를 수신하는 것(3402)을 포함한다. 3404에서, 낙하-개시 모듈(3130)은 현재 그랩-유형이 용량성인지 여부를 결정할 수 있다. 만약 그렇다면, 이어서 3406에서 낙하-개시 모듈(3130)은, 센서 데이터가 용량성 그랩-유형이 이제 대응하는 힘 그랩에 대한 기준들을 이제 충족함을 나타내는지 여부를 결정할 수 있다. 만약 그렇다면, 이어서 3408에서 객체-그립 모듈(3120)은, 사용자에 의해 유지되고 있는 가상 객체(이는 또한 가상 손에 가장 가까운 가상 객체를 나타냄)가 힘-유형 그랩(예를 들어, 힘-핀치, 힘-그립 등)을 통해 유지되고 있다는 표시를 저장한다. 3410에서, 가상 객체는 사용자의 가상 손에 의해 유지되고 있는 것으로서 계속 제시된다. 또한, 3406은 센서 데이터가 용량성 그랩-유형이 이제 대응하는 힘 그랩에 대한 기준들을 충족함을 나타내는지 여부를 결정하는 것을 설명하지만, 일부 경우에서 프로세스(3200(2))는 또한 센서 데이터가 상이한 유형의 그랩에 대한 기준들을 충족하는지 여부를 결정할 수 있다. 예를 들어, 현재 그랩이 핀치-유형 그랩인 경우, 낙하-개시 모듈(3130) 또는 다른 구성요소는 센서 데이터가 그립-유형 그랩에 대한 기준들을 충족하는지 여부를 결정할 수 있다. 또는, 현재 그랩이 그립-유형 그랩인 경우, 낙하-개시 모듈(3130) 또는 다른 구성요소는 센서 데이터가 핀치-유형 그랩에 대한 기준들을 충족하는지 여부를 결정할 수 있다.
도면으로 돌아가면, 낙하-개시 모듈(3130)이 동작(3404)에서 현재 그랩 유형이 용량성이 아니라고 결정하는 경우, 또는 낙하-개시 모듈(3130)이 센서 데이터가 그랩이 대응하는 힘-그랩 유형의 기준들을 충족함을 나타낸다고 결정하는 것에 응답하여, 동작(3414)에서 낙하-개시 모듈(3130)은 센서 데이터가 현재 그랩 유형에 대한 기준들이 충족됨을 나타내는지 여부를 결정한다. 만약 그렇다면, 3416에서, 낙하-개시 모듈(3130)은 현재 힘 판독치와 이전 힘 판독치 사이의 힘 차이가 힘 임계치보다 큰 경우를 결정한다. 즉, 낙하-개시 모듈(3130)은 센서 데이터가 상당한 힘의 강하가 제어기에서 발생했음을 나타내는지 여부를 결정한다. 만약 그렇다면, 3418에서, 낙하-개시 모듈(3130)은 가상 객체의 해제를 개시하고, 동작(3412)에서, 동작(3202)으로 복귀한다. 그러나, 힘의 차이가 힘 임계치보다 크지 않은 경우, 프로세스는 동작(3202)으로 다시 진행한다.
그러나, 낙하-개시 모듈(3130)이 동작(3414)에서 센서 데이터가 현재 그랩 유형에 대한 기준들이 충족되지 않음을 나타낸다고 결정하는 경우, 동작(3420)에서 낙하-개시 모듈(3130)은 핸드헬드 제어기의 현재 속도가 속도 임계치(예를 들어, 1m/초 등)보다 큰지 여부를 결정한다. 만약 그렇다면, 동작(3418)에서, 낙하-개시 모듈(3130)은 객체의 해제(예를 들어, 던지기, 낙하, 파쇄 등)를 개시한다. 그러나, 만약 그렇지 않다면, 동작(3422)에서 낙하-개시 모듈(3130)은 현재 그랩 유형이 힘-그랩 유형인지 여부를 결정한다. 만약 그렇지 않다면, 그랩 유형은 다운그레이드될 수 없으며, 따라서 프로세스(3200)는 동작(3418)에서 객체의 해제를 개시하도록 진행한다.
그러나, 낙하-개시 모듈(3130)이 동작(3422)에서 현재 그랩 유형이 힘-그랩 유형이라고 결정하는 경우, 동작(3424)에서 낙하-개시 모듈(3130)은 대응하는 캡-기반 그랩(예를 들어, 핀치, 그립 등)이 존재하는지 여부를 결정한다. 만약 그렇다면, 동작(3426)에서 캡-유형 그랩의 표시가 저장된다. 낙하-개시 모듈(3130)이 동작(3424)에서 대응하는 캡-기반 그랩이 존재하지 않는다고 결정하는 경우, 낙하-개시 모듈(3130)은 동작(3418)에서 해제를 개시하고 그 후에 동작(3202)으로 복귀한다.
도 34는 객체의 해제를 개시할 때를 결정하기 위한 하나의 예시적인 프로세스(3200(2))를 설명하지만, 다른 프로세스가 있을 수 있음을 이해해야 한다. 예를 들어, 현재 그랩 유형에 대한 기준들이 더 이상 충족되지 않는다고 결정하는 것에 직접 응답하여 해제가 개시될 수 있다는 점에 유의한다. 즉, 기술이 동작(3414)에서 현재 그랩 유형에 대한 기준들이 더 이상 충족되지 않는다고 결정하는 경우, 프로세스는 동작(3418)에서 유지된 객체의 해제를 개시하는 것으로 바로 진행할 수 있다. 따라서, 동작들(3416, 3420, 3422, 3424)(잠재적으로 다른 동작들 중에서)의 일부 또는 전부는 일부 상황에서 선택적일 수 있다.
도 35는 가상 객체가 유지된 후 그리고 가상 객체가 해제되기 전(예를 들어, 해제의 개시 직후) 프로세스(3200(3))를 예시한다. 동작(3502)에서, 낙하-객체 모듈(3132)은 추가 센서 데이터를 수신한다. 동작(3504)에서, 낙하-객체 모듈(3132)은 이것이 객체의 해제를 개시한 후의 첫 번째 프레임인지 여부를 결정한다. 만약 그렇다면, 동작(3506)에서 낙하-객체 모듈(3132)은 핸드헬드 제어기(100)의 현재 속도가 이전 속도보다 큰지 여부를 결정한다. 만약 그렇지 않다면, 동작(3508)에서 낙하-객체 모듈(3132)은, 예를 들어, 객체가 해제되었다는 표시를 저장하고/하거나 객체의 해제의 제시를 야기함으로써, 객체를 해제하도록 진행한다. 예를 들어, 객체는 낙하되거나, 던져지거나, 파쇄되는 등의 것으로서 예시될 수 있다.
그러나, 낙하-객체 모듈(3132)이 현재 속도가 이전 속도보다 크다고 결정하는 경우, 동작(3512)에서 낙하-객체 모듈(3132)은 새로운 피크 값의 표시(예를 들어, 해제의 개시 이후로 최고 속도) 및 바닥 값의 표시(예를 들어, 해제의 개시 이후로 최저 속도)를 저장한다. 낙하-객체 모듈(3132)은 또한 바닥 값과 피크 값 사이의 값을 포함하는 새로운 종료 값을 계산할 수 있다. 일부 경우에서, 종료 값은 피크 값과 바닥 값의 평균에 대응한다. 그 후, 프로세스(3200(3))는 동작(3202)으로 복귀한다.
일부 경우에서, 위에서 언급된 바와 같이, 바닥 값은 객체의 해제의 개시 이후로 핸드헬드 제어기의 최저 속도에 대응할 수 있다. 다른 경우에서, 한편, 바닥 속도(floor velocity)는 그것의 소정 백분율(예를 들어, 50%, 75% 등), 객체의 해제의 개시 전의 이전 시간량(예를 들어, 5개의 프레임) 동안의 최저 속도, 상수 값, 또는 임의의 다른 값을 포함할 수 있다. 또한, 종료 값은 피크 및 바닥 속도들의 값(예를 들어, 이들 두 값의 평균 등)에 기초할 수 있지만, 다른 경우에서 종료 값은 피크 속도 단독(예를 들어, 피크 속도의 절반), 바닥 속도(예를 들어, 바닥 속도의 2배) 등에 기초할 수 있다.
그러나, 낙하-객체 모듈(3132)이 현재 프레임이 가상 객체의 해제의 개시 이후로 첫 번째 프레임이 아니라고 결정하는 경우, 동작(3514)에서 낙하-객체 모듈(3132)은 해제의 개시 이후로 미리 결정된 시간량이 경과했는지 여부를 결정한다. 일부 경우에서, 이 시간은 초, 분 등으로 측정되는 반면, 다른 경우에서 그것은 다수의 프레임(예를 들어, 5개 프레임) 등으로 측정될 수 있다. 낙하-객체 모듈(3132)이 객체를 해제하지 않고서 미리 결정된 시간량이 경과했다고 결정하는 경우, 낙하-객체 모듈(3132)은 동작(3508)에서 객체를 해제할 수 있다. 그러나, 미리 결정된 시간량이 경과하지 않은 경우, 낙하-객체 모듈(3132)은 동작(3516)에서 현재 속도가 이전 속도(예를 들어, 바로 다음 프레임에서 측정됨)보다 큰지 여부를 결정하는 것으로 진행할 수 있다. 만약 그렇다면, 동작(3518)에서 낙하-객체 모듈(3132)은 현재 속도가 현재 피크 속도보다 큰지 여부를 결정할 수 있다. 만약 그렇다면, 프로세스는 동작(3512)으로 진행할 수 있으며, 이 시점에서 새로운 피크 값이 저장될 수 있고 새로운 종료 값이 계산될 수 있다. 그러나, 현재 속도가 피크 값보다 크지 않은 경우, 프로세스는 동작(3202)으로 복귀할 수 있다.
그러나, 낙하-객체 모듈(3132)이 동작(3516)에서 현재 속도가 이전 속도보다 크지 않다고 결정하는 경우, 동작(3520)에서 낙하-객체 모듈(3132)은 현재 속도가 바닥 속도보다 작은지 여부를 결정할 수 있다. 만약 그렇다면, 낙하-객체 모듈(3132)은 동작(3508)에서 객체를 해제할 수 있다. 만약 그렇지 않은 경우, 낙하-객체 모듈(3132)은 종료 속도(ending velocity)가 현재 종료 속도보다 작은지 여부 및 그것이 미리 결정된 시간량 동안 종료 속도 미만으로 유지되었는지 여부를 결정할 수 있다. 만약 그렇다면, 낙하-객체 모듈(3132)은 동작(3508)에서 객체를 해제하도록 진행할 수 있다. 그러나, 만약 그렇지 않은 경우, 낙하-객체 모듈(3132)은 동작(3510)으로 진행할 수 있으며, 이는 동작(3202)으로의 복귀를 나타낸다.
도 36은 낙하-객체 모듈(3132)이 수행할 수 있는 상이한 계산들(3602)을 예시하며, 이들 계산은 가상 객체의 속력, 궤적, 착지 위치, 및/또는 발사 위치와 같은, 가상 객체(3006)의 해제를 제시하는 방법을 결정하는 데 사용된다.
상기 내용으로부터 예시된 예를 계속하면, 가상 손(3004)은 가상 객체(3006)를 유지하고 있을 수 있고 그 후에 해제할 수 있다. 이 예시는 가상 객체가 각각의 디스플레이 프레임(F)에 대해 속도(V) 및 위치(P)와 연관될 수 있음을 추가로 보여준다. 이들 속도 및 위치는 설명된 바와 같이 하나 이상의 핸드헬드 제어기로부터 수신된 센서 데이터에 기초할 수 있다.
도 36의 예시된 예에서, 낙하-개시 모듈(3130), 낙하-객체 모듈(3132), 및/또는 다른 소프트웨어 및/또는 하드웨어는, 제1 프레임(F1)에서, 객체가 해제될 것이라고 결정하였다. 일부 예에서, 낙하-객체 모듈(3132)은 프로세스(3500) 또는 유사한 프로세스를 사용하여 이 결정을 할 수 있다. 가상 객체(3006)의 해제를 위한 트리거에 관계없이, 객체를 해제하기로 결정하면, 낙하-객체 모듈은 가상 객체(3006)를 해제할 위치, 가상 객체(3006)를 해제할 속도, 가상 객체(3006)가 이동할 궤적, 가상 객체(3006)의 착지 위치 등을 결정할 수 있다.
이러한 결정을 하기 위해, 낙하-객체 모듈(3132)은, 낙하-객체 모듈(3132)이 해제가 발생할 것이라고 결정한 시간(이 경우, F1) 이전에 미리 결정된 시간 범위 동안 수신된 핸드헬드 제어기로부터의 센서 데이터를 분석할 수 있다. 예를 들어, 낙하-객체 모듈(3132)은 객체의 해제 이전 15개 프레임과 같은, 이전 프레임 개수 동안 센서 데이터를 분석할 수 있다. 이어서 낙하-객체 모듈(3132)은 이 시간 기간 동안 최고 속도(즉, 피크 속도)와 연관된 프레임을 식별할 수 있으며, 일부 경우에서, 이 최고 속도와 연관된 프레임이 사용자가 가상 객체(3006)를 해제하려고 의도한 프레임에 대응한다는 표시를 저장할 수 있다. 이어서 낙하-객체 모듈(3132)은 이 프레임과 연관된 정보를 사용하여, 디스플레이 상에 가상 객체의 해제를 제시하는 방법(예를 들어, 속력, 방향, 궤적 등)을 결정할 수 있다.
하나의 경우에서, 낙하-객체 모듈(3132)은 피크 속도에서 가상 객체(3006)를 해제하는 가상 손(3004)을 제시할 수 있는 반면, 다른 경우에서 낙하-객체 모듈(3132)은 피크 속도, 피크-속도 프레임 이전의 제1 개수의 프레임에서의 가상 객체(3006)의 속도, 및 피크-속도 이후의 제2 개수의 프레임에서의 가상 객체(3006)의 속도의 평균에 기초하여 평균 속도를 계산할 수 있다. 예를 들어, 낙하-객체 모듈(3132)은 피크 속도, 피크-속도 프레임 직전 프레임에서의 가상 객체(3006)의 속도 및 피크-속도 프레임 직후 프레임에서의 가상 객체(3006)의 속도의 평균 속도를 계산할 수 있다.
예를 들어, 도 36은, 낙하-객체 모듈(3132)이 피크 속도(VN)를 갖는 F1 이전의 미리 결정된 시간량 내의 프레임으로서 프레임(FN)을 식별했음을 예시한다. 따라서, 이 예에서 낙하-객체 모듈(3132)은 FN 직전의 프레임(FN-1)에서의 가상 객체(3006)의 속도(VN-1), 및 FN 직후의 프레임(FN+1)에서의 가상 객체(3006)의 속도(VN+1)를 식별할 수 있다. 이어서 낙하-객체 모듈(3132)은 이 3개의 프레임의 평균 속도를 계산할 수 있고, 이 평균 속도에 따라 가상 손(3004)으로부터 해제되는 가상 객체(3006)를 제시할 수 있다.
일부 경우에서, 낙하-객체 모듈(3132)은 가상 객체(3006)의 현재 위치에서 평균 속도에 따라 해제되는 가상 객체(3006)를 제시할 수 있다. 아래에서 설명되는 도 37a는 그러한 예를 예시한다. 한편, 다른 경우에서, 낙하-객체 모듈(3132)은 이전 위치에서 평균 속도로 해제되는 가상 객체(3006)를 제시할 수 있다. 예를 들어, 낙하-객체 모듈(3132)은, 낙하-객체 모듈(3132)이 객체가 해제될 것이라고 결정한 시간과 연관된 위치(P1)로부터 평균 속도로 또는 다른 속도로 가상 객체(3006)를 해제하는 가상 손(3004)을 제시할 수 있다. 또한 아래에서 설명되는 도 37b는 그러한 예를 예시한다. 한편, 다른 경우에서, 낙하-객체 모듈(3132)은 P1과 연관된 프레임 이전 또는 이후의 임의의 프레임에서, 예컨대 FN에서 가상 객체(3006)의 위치(PN)로부터, 또는 임의의 다른 위치(예를 들어, FN-1, FN+1 등)로부터, 해제되는 가상 객체(3006)를 제시할 수 있다.
또 다른 경우에서, 낙하-객체 모듈(3132)은 이동하는 가상 객체를 제시할 궤적 및/또는 가상 객체의 착지 위치를 계산할 수 있다. 예를 들어, 낙하-객체 모듈(3132)은, 가상 객체(3006)가 피크 속도로 그리고 피크 속도의 위치(PN)에서 해제되었을 경우 가상 객체(3006)의 궤적을 계산할 수 있다. 이어서 낙하-객체 모듈(3132)은, 피크 속도와 연관된 지점(PN)에서 시작하거나 가상 객체(3006)의 현재 위치(예를 들어, P1)에서 시작하는, 이러한 계산된 궤적을 따라 이동하는 가상 객체(3006)를 디스플레이 상에 제시할 수 있다. 후자의 경우에서, 낙하-객체 모듈(3132)은 계산된 궤적을 위치(PN)로부터 객체의 현재 위치(P1)로 효과적으로 병진이동시킬 수 있다. 아래에서 설명되는 도 37c는 그러한 예를 예시한다.
또 다른 경우에서, 낙하-객체 모듈(3132)은 가상 객체(3006)가 FN에서 해제되었을 경우의 가상 객체(3006)의 착지 위치(LL)를 계산할 수 있다. 이어서 낙하-객체 모듈(3132)은 그것의 현재 위치(예를 들어, P1)로부터 이 착지 위치까지의 가상 객체의 궤적을 계산할 수 있다. 이어서 낙하-객체 모듈(3132)은 이 궤적을 따라 이동하는 가상 객체(3006)를 제시할 수 있다. 이들 경우에서, 따라서 가상 객체(3006)는 객체 해제가 정확히 FN에서 식별되었더라면 착지했을 위치에 착지할 것이지만, 여전히 P1과 같은 현재 위치로부터, 객체가 해제되기 직전의 PN과 같은 이전 위치로 이동하는 객체의 제시를 회피할 것이다. 아래에서 설명되는 도 37d는 그러한 예를 예시한다.
또한, 위에서 설명된 상이한 유형의 시정 조치가 즉시 도입될 수 있거나, 또는 선택된 조치를 취하기로 결정한 후에 도입될 수 있다는 것을 이해해야 한다. 예를 들어, 낙하-객체 모듈(3132)이 위에서 논의된 평균 속도로 객체를 해제하기로 결정하는 경우, 낙하-객체 모듈(3132)은 객체가, 현재 속도로부터 평균 속도로 즉시 점핑하기보다는, 객체의 현재 속도로부터 평균 속도로 시간에 걸쳐 (적절하게) 가속하거나 감속하게 할 수 있다. 유사하게, 낙하-객체 모듈(3132)이 객체의 현재 궤적과 상이한 궤적을 구현하기로 결정하는 경우, 모듈(3132)은 디스플레이 상의 하나의 위치로부터 다른 위치로 즉시 점핑하는 객체의 출현을 피하기 위해 시간 경과에 따라 상이한 궤적을 구현할 수 있다.
도 37a는 낙하-객체 모듈(3132)이 해제 시 가상 객체(3006)의 속도를 계산하는 예를 예시하며, 계산된 속도는 사용자가 가상 객체(3006)를 해제하도록 의도한다고 결정하기 전 미리 결정된 시간 범위 내에서 발생하는 피크 속도에 적어도 부분적으로 기초한다. 예를 들어, 낙하-객체 모듈(3132)은 피크 속도(VN)와, 피크-속도 프레임의 양측에 있는 프레임들과 연관된 속도들(VN-1 및 VN+1) 사이의 평균에 기초하여 이 평균 속도(Vavg)를 계산할 수 있다. 이들 속도는 속력의 크기 및 방향 둘 모두를 나타낼 수 있음을 이해해야 한다. 또한, 어느 속도가 Vavg를 계산하는 데 사용되는지에 관계없이, 낙하-객체 모듈(3132)은 P1과 같은 가상 객체의 현재 위치로부터 Vavg에 적어도 부분적으로 기초하여 해제되는 가상 객체(3006)를 디스플레이 상에 제시할 수 있다. 전술된 바와 같이, 이것은, 잠재적으로 Vavg에 도달할 때까지, Vavg를 향해 현재 속도를 (적절하게) 가속하거나 감속하는 것을 포함할 수 있다.
도 37b는 낙하-객체 모듈(3132)이 사용자가 객체(3006)를 해제하려고 의도한 시간에 가상 객체(3006)의 위치를 결정할 뿐만 아니라, 낙하-객체 모듈이 그 위치로부터 해제되는 가상 객체(3006)를 제시하는 예를 예시한다. 예를 들어, 그리고 전술된 바와 같이, 낙하-객체 모듈(3132)은 가상 객체의 의도된 해제 지점이 현재 시간으로부터 미리 결정된 시간량 내에서(예를 들어, F1 이전의 15개 프레임), 피크 속도(VN)를 갖는, 프레임(FN)과 연관된, 위치(PN)에서 발생했다는 표시를 저장할 수 있다. 이어서 낙하-객체 모듈(3132)은 디스플레이가, 피크 속도, 도 37a를 참조하여 위에서 논의된 평균 속도, 또는 임의의 다른 속도와 같은 특정 속도로 또는 달리 그에 기초하여, 이 위치(PN)로부터의 객체의 해제를 제시하게 할 수 있다. 전술된 바와 같이, 이것은, 잠재적으로 선택된 속도에 도달할 때까지, 선택된 속도를 향해 현재 속도를 (적절하게) 가속하거나 감속하는 것을 포함할 수 있다.
도 37c는 사용자가 가상 객체(3006)를 해제하려고 의도한 시간에 가상 객체(3006)가 해제된 경우 낙하-객체 모듈(3132)이 가상 객체(3006)의 궤적을 계산하고, 비록 디스플레이 상의 가상 객체(3006)의 현재 위치에서 시작할지라도, 이 궤적을 따라 이동하는 가상 객체(3006)를 제시하는 예를 예시한다. 달리 언급하면, 이 예에서 낙하-객체 모듈(3132)은 가상 객체(3006)가 그 위치(PN)에서 해제되는 것으로 제시되었더라면 발생했을 궤적(TN)을 결정하기 위해 피크 속도(VN)를 사용할 수 있다. 이어서 낙하-객체 모듈(3132)은 위치(P1)와 같은, 디스플레이 상의 가상 객체(3006)의 현재 위치에서 시작하지만 궤적(TN)을 향해 전이하는 궤적과 같은 이 궤적에 기초하여 궤적을 이동하는 가상 객체(3006)를 제시할 수 있다. 이 예에서, 디스플레이된 궤적은 실제 궤적에 해당할 수 있지만, 착지 위치는, 객체 해제의 시작 위치가 PN가 아닌 P1에서 시작되었다는 점을 고려하면 상이할 수 있다.
도 37d는 사용자가 가상 객체를 해제하려고 의도한 시간에 객체가 해제된 경우 낙하-객체 모듈(3132)이 가상 객체(3006)의 궤적에 기초하여 가상 객체(3006)의 착지 위치를 계산하는 예를 예시한다. 이 예에서, 낙하-객체 모듈(3132)은 피크 속도(VN), 및 피크 속도의 시간에서의 가상 객체(3006)의 위치(PN)를 사용하여, 궤적(TN)을 계산한다. 이어서 이 궤적은, 가상 객체(3006)의 환경에 관한 정보와 함께, 착지 위치(LLN)를 결정하는 데 사용된다. 이 착지 위치는, 가상 객체(3006)가 FN에서 해제된 것으로 제시되었더라면 가상 객체(3006)가 착지했을 환경에서의 위치를 나타낸다.
이 정보로, 이어서 낙하-객체 모듈(3132)은 가상 객체의 현재 위치(예를 들어, P1)와 착지 위치(LLN) 사이의 새로운 궤적을 계산할 수 있다. 이 해결책이 가상 객체의 계산된 궤적을 변경하는 동안, 그것은, 가상 객체(3006)가 이전 프레임과 연관된 위치(예를 들어, PN)에서 그것의 해제를 시작하도록 제시하지 않고, 가상 객체(3006)가 FN에서 해제되었더라면 착지했을 위치에서 착지하는 것으로 디스플레이되도록 한다.
도 38은 제1 시간에 가상 손이 가상 객체를 해제할 것이라고 결정하고, 제1 시간 이전의 미리 결정된 시간 범위 내의 가상 객체의 피크 속도, 또는 피크 속도와 연관된 가상 객체의 위치에 적어도 부분적으로 기초하여 가상 객체를 해제하는 가상 손을 디스플레이 상에 제시하는 예시적인 프로세스(3800)를 예시한다. 일부 경우에서, 낙하-객체 모듈(3132)은 프로세스(3800)의 일부 또는 전부를 수행할 수 있다.
동작(3802)에서, 낙하-객체 모듈(3132)은, 디스플레이가 가상 객체를 유지하는 가상 손을 제시하는 동안, 핸드헬드 제어기의 하나 이상의 센서로부터 센서 데이터를 수신할 수 있다. 전술된 바와 같이, 이 센서 데이터는 힘 데이터, 커패시턴스 데이터, 속도 데이터 등을 포함할 수 있다. 동작(3804)에서, 낙하-객체 모듈(3132)은, 제1 시간에 그리고 센서 데이터에 적어도 부분적으로 기초하여, 가상 손이 가상 객체를 해제할 것이라고 결정할 수 있다. 일부 경우에서, 낙하-객체 모듈(3132)은 프로세스(3200(3))를 사용하여 이 결정을 할 수 있는 반면, 다른 경우에서는 상이한 프로세스를 사용할 수 있다.
동작(3806)에서, 낙하-객체 모듈(3132)은, 가상 손이 가상 객체를 해제할 것이라고 결정하는 것에 적어도 부분적으로 응답하여, 제1 시간 이전에 미리 결정된 시간 범위 내에서 핸드헬드 제어기의 피크 속도를 결정할 수 있다. 일부 예에서, 제1 시간은 제1 프레임과 연관될 수 있으며, 이 결정은 이전 15개 프레임과 같은, 제1 프레임 직전에 미리 결정된 수의 프레임 내에서 핸드헬드 제어기의 피크 속도를 결정하는 것을 포함할 수 있다.
동작(3808)에서, 낙하-객체 모듈(3132)은 미리 결정된 시간 범위 내의 피크 속도가 제1 시간 이전의 특정 프레임에서와 같이, 제1 시간 이전의 제2 시간에 발생했다고 결정할 수 있다. 동작(3810)에서, 낙하-객체 모듈은 제2 시간에 핸드헬드 제어기의 속력, 제2 시간에 핸드헬드 제어기의 방향, 또는 제2 시간에 핸드헬드 제어기의 위치 중 적어도 하나에 적어도 부분적으로 기초하여, 그리고/또는 제2에 가상 객체의 회전 속도에 기초하여 가상 객체를 해제하는 가상 손을 디스플레이 상에 제시할 수 있다.
일부 경우에서, 예를 들어, 낙하-객체 모듈(3132)은 제2 시간 이전의 제3 시간에 핸드헬드 제어기의 속도 또는 제2 시간 이후의 제4 시간에 핸드헬드 제어기의 속도 중 적어도 하나를 결정할 수 있고, 이들 속도를 사용하여 평균 속도(예를 들어, 속력 및 방향)를 계산할 수 있다. 이어서 낙하-객체 모듈(3132)은 이 평균 속도에 따라 또는 달리 이에 기초하여 가상 객체를 해제하는 가상 손을 제시할 수 있다. 다른 경우에서, 낙하-객체 모듈(3132)은 추가적으로 또는 대안적으로, 제2 시간에 가상 객체의 위치를 결정할 수 있고, 이러한 제2 위치로부터 또는 달리 이에 기초하여 가상 객체를 해제하는 가상 손을 제시할 수 있다.
또 다른 경우에서, 낙하-객체 모듈(3132)은, 피크 속도로부터, 제2 시간에 핸드헬드 제어기의 방향을 결정할 수 있다. 이들 경우에서, 가상 객체는 제2 시간에 핸드헬드 제어기의 이 방향에 따라 또는 달리 이에 기초하여 해제되는 것으로 제시될 수 있다. 일부 경우에서, 낙하-객체 모듈(3132)은 추가적으로 또는 대안적으로, 제2 시간에 가상 객체의 피크 속도 및/또는 위치를 사용하여 가상 객체의 궤적 및/또는 착지 위치를 계산할 수 있다. 이어서 낙하-객체 모듈은 이 궤적에 따라 또는 착지 위치에서 종단되는 궤적에 따라 가상 객체를 해제하는 가상 손을 제시할 수 있다.
또 다른 경우에서, 낙하-객체 모듈은 가상 객체의 회전 속도에 적어도 부분적으로 기초하여 해제되는 가상 객체를 제시할 수 있다. 회전 속도를 결정하기 위해, 낙하-객체 모듈은 초기에, 핸드헬드 제어기의 피크 속도에 대응하거나 그에 근접한 시간에 핸드헬드 제어기의 회전 변화의 속도를 결정할 수 있다. 추가로, 낙하-객체 모듈 또는 다른 모듈은 핸드헬드 제어기(예를 들어, 핸드헬드 제어기의 질량 중심)와 가상 객체의 질량 중심 사이의 길이를 결정할 수 있다. 이 길이는, 핸드헬드 제어기의 회전 변화의 속도와 결합되어, 핸드헬드 제어기의 피크 속도의 시간 또는 그 근처에서 가상 객체의 회전 속도를 계산하는 데 사용될 수 있다. 이어서 낙하-객체 모듈은 이 회전 속도에 적어도 부분적으로 기초하여 해제되는 가상 객체를 제시할 수 있다. 예를 들어, 객체의 회전량은 이 값에 기초할 수 있다. 예를 제공하기 위해, 사용자가 가상 해머를 유지하고 있는 경우, 낙하-객체 모듈은 객체의 해제 시간에 가상 해머의 회전 속도를 결정할 수 있으며, 가상 해머의 해제를 제시하는 방법을 결정하는 데 이 정보를 사용할 수 있다.
도 39는 제1 시간에 가상 객체가 해제될 것이라고 결정하고, 제1 시간 이전의 미리 결정된 시간 범위 내의 가상 객체의 피크 속도, 또는 피크 속도와 연관된 가상 객체의 위치에 적어도 부분적으로 기초하여 해제되는 가상 객체를 디스플레이 상에 제시하는 예시적인 프로세스(3900)를 예시한다. 일부 경우에서, 낙하-객체 모듈(3132)은 프로세스(3900)의 일부 또는 전부를 수행할 수 있다.
동작(3902)에서, 낙하-객체 모듈(3132)은, 제1 시간에, 디스플레이 상에 제시된 가상 객체가 해제될 것이라고 결정할 수 있다. 동작(3904)에서, 낙하-객체 모듈(3132)은, 가상 객체가 해제될 것이라고 결정하는 것에 적어도 부분적으로 응답하여, 제1 시간 이전에 미리 결정된 시간 범위 내에서 핸드헬드 제어기의 피크 속도를 결정할 수 있다. 동작(3906)에서, 낙하-객체 모듈(3132)은 미리 결정된 시간 범위 내의 피크 속도가 제1 시간 이전의 제2 시간에 발생했다고 결정할 수 있다. 동작(3908)에서, 낙하-객체 모듈(3132)은 제2 시간에 핸드헬드 제어기의 속력, 제2 시간에 핸드헬드 제어기의 방향, 또는 제2 시간에 핸드헬드 제어기의 위치 중 적어도 하나에 적어도 부분적으로 기초하여, 그리고/또는 제2에 가상 객체의 회전 속도에 기초하여 해제되는 가상 객체를 디스플레이 상에 제시할 수 있다.
예를 들어, 낙하-객체 모듈은 가상 객체의 회전 속도에 적어도 부분적으로 기초하여 해제되는 가상 객체를 제시할 수 있다. 회전 속도를 결정하기 위해, 낙하-객체 모듈은 초기에, 핸드헬드 제어기의 피크 속도에 대응하거나 그에 근접한 시간에 핸드헬드 제어기의 회전 변화의 속도를 결정할 수 있다. 추가로, 낙하-객체 모듈 또는 다른 모듈은 핸드헬드 제어기(예를 들어, 핸드헬드 제어기의 질량 중심)와 가상 객체의 질량 중심 사이의 길이를 결정할 수 있다. 이 길이는, 핸드헬드 제어기의 회전 변화의 속도와 결합되어, 핸드헬드 제어기의 피크 속도의 시간 또는 그 근처에서 가상 객체의 회전 속도를 계산하는 데 사용될 수 있다. 이어서 낙하-객체 모듈은 이 회전 속도에 적어도 부분적으로 기초하여 해제되는 가상 객체를 제시할 수 있다. 예를 들어, 객체의 회전량은 이 값에 기초할 수 있다. 예를 제공하기 위해, 사용자가 가상 해머를 유지하고 있는 경우, 낙하-객체 모듈은 객체의 해제 시간에 가상 해머의 회전 속도를 결정할 수 있으며, 가상 해머의 해제를 제시하는 방법을 결정하는 데 이 정보를 사용할 수 있다.
주제가 구조적 특징들에 대해 특정한 언어로 설명되었지만, 첨부된 청구범위에서 정의된 주제는 설명된 구체적 특징들에 반드시 제한되지는 않는다는 것을 이해하여야 한다. 오히려, 구체적 특징들은 청구범위를 구현하는 예시적인 형태로 개시된다.
본 개시내용은 본 명세서에서 특정한 예시적인 실시예를 참조하여 설명되지만, 당업자는 본 개시내용이 이에 제한되지 않음을 인식할 것이다. 본 개시내용의 다양한 특징 및 양태가 개별적으로 또는 공동으로 그리고 가능하게는 상이한 환경 또는 응용에서 사용될 수 있다는 것이 고려된다. 예를 들어, 오른손 제어기와 관련하여 도시된 특징은 왼손 제어기에서도 구현될 수 있으며, 그 반대의 경우도 마찬가지이다. 따라서, 명세서 및 도면은 제한적이기보다는 도시적이고 예시적인 것으로 간주되어야 한다. 예를 들어, "바람직하게는"라는 단어 및 "바람직하지만 반드시 그런 것은 아님"이라는 구절이 "반드시 그런 것은 아닌" 또는 선택적으로의 의미를 일관되게 포함하기 위해 본 명세서에서 동의어로 사용된다. "포함하는 (comprising)", "포함하는(including)", 및 "갖는(having)"은 개방형 용어이도록 의도된다.

Claims (20)

  1. 방법으로서, 
    디스플레이가 가상 손에 의해 유지(hold)되는 가상 객체를 제시하는(present) 동안, 핸드헬드 제어기의 하나 이상의 센서로부터 센서 데이터를 수신하는 단계; 
    제1 시간에 그리고 상기 센서 데이터에 적어도 부분적으로 기초하여, 상기 가상 손이 상기 가상 객체를 해제할(release) 것이라고 결정하는 단계; 
    상기 가상 손이 상기 가상 객체를 해제할 것이라고 결정하는 것에 적어도 부분적으로 응답하여, 상기 제1 시간 이전에 미리 결정된 시간 범위 내에서 상기 핸드헬드 제어기의 피크 속도를 결정하는 단계; 
    상기 미리 결정된 시간 범위 내의 상기 피크 속도가 상기 제1 시간 이전의 제2 시간에 발생했다고 결정하는 단계; 및 
    상기 제2 시간에 상기 핸드헬드 제어기의 속력, 상기 제2 시간에 상기 핸드헬드 제어기의 방향, 상기 제2 시간에 상기 핸드헬드 제어기의 위치, 또는 상기 제2 시간에 상기 가상 객체의 회전 속도 중 적어도 하나에 적어도 부분적으로 기초하여 상기 가상 객체를 해제하는 상기 가상 손을 상기 디스플레이 상에 제시하는 단계를 포함하는, 방법. 
  2. 제1항에 있어서, 상기 방법은, 
    상기 제2 시간 이전의 제3 시간에 상기 핸드헬드 제어기의 속도 또는 상기 제2 시간 이후의 제4 시간에 상기 핸드헬드 제어기의 속도 중 적어도 하나를 결정하는 단계; 및 
    상기 피크 속도와, 상기 제3 시간에 상기 핸드헬드 제어기의 속도 또는 상기 제4 시간에 상기 핸드헬드 제어기의 속도 중 상기 적어도 하나의 평균을 계산하는 단계를 추가로 포함하며, 
    상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계는, 상기 평균에 대응하는 속도에 적어도 부분적으로 기초하여 상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계를 포함하는, 방법. 
  3. 제1항에 있어서, 상기 방법은, 
    상기 제2 시간에 상기 가상 객체의 위치를 결정하는 단계를 추가로 포함하며, 
    상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계는, 상기 제2 시간에 상기 가상 객체의 위치에 적어도 부분적으로 기초하여 상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계를 포함하는, 방법. 
  4. 제1항에 있어서, 상기 방법은, 
    상기 피크 속도로부터, 상기 제2 시간에 상기 핸드헬드 제어기의 방향을 결정하는 단계를 추가로 포함하며, 
    상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계는, 상기 제2 시간에 상기 핸드헬드 제어기의 방향에 적어도 부분적으로 기초하여 상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계를 포함하는, 방법. 
  5. 제1항에 있어서, 상기 방법은, 
    적어도 상기 피크 속도를 사용하여 상기 가상 객체의 궤적을 계산하는 단계를 추가로 포함하며, 
    상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계는, 상기 궤적에 적어도 부분적으로 기초하여 상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계를 포함하는, 방법. 
  6. 제1항에 있어서, 상기 방법은, 
    적어도 상기 피크 속도 및 상기 제2 시간에 상기 가상 객체의 위치를 사용하여 상기 가상 객체의 착지 위치를 계산하는 단계를 추가로 포함하며, 
    상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계는 상기 계산된 착지 위치에 착지하는 상기 가상 객체를 제시하는 단계를 포함하는, 방법. 
  7. 제1항에 있어서, 상기 방법은, 
    적어도 상기 피크 속도 및 상기 제2 시간에 상기 가상 객체의 위치를 사용하여 상기 가상 객체의 착지 위치를 계산하는 단계; 
    현재 시간에 상기 가상 객체의 위치를 결정하는 단계; 및 
    상기 현재 시간에서의 상기 가상 객체의 위치로부터 상기 계산된 착지 위치까지의 궤적을 계산하는 단계를 추가로 포함하며, 
    상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계는, 상기 계산된 궤적에 적어도 부분적으로 기초하여 상기 가상 객체를 해제하는 상기 가상 손을 제시하는 단계를 포함하는, 방법. 
  8. 제1항에 있어서, 
    상기 제1 시간은 제1 프레임과 연관되고; 
    상기 제1 시간 이전에 상기 미리 결정된 시간 범위 내에서 상기 핸드헬드 제어기의 상기 피크 속도를 결정하는 단계는 상기 제1 프레임 직전의 미리 결정된 양의 프레임 내에서 상기 핸드헬드 제어기의 상기 피크 속도를 결정하는 단계를 포함하는, 방법. 
  9. 실행될 때 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 컴퓨터 실행가능 명령어들을 저장하는 하나 이상의 컴퓨터 판독가능 매체로서, 상기 동작들은, 
    제1 시간에, 디스플레이 상에 제시된 가상 객체가 해제될 것이라고 결정하는 것; 
    상기 가상 객체가 해제될 것이라고 결정하는 것에 적어도 부분적으로 응답하여, 상기 제1 시간 이전에 미리 결정된 시간 범위 내에서 핸드헬드 제어기의 피크 속도를 결정하는 것; 
    상기 미리 결정된 시간 범위 내의 상기 피크 속도가 상기 제1 시간 이전의 제2 시간에 발생했다고 결정하는 것; 및 
    상기 제2 시간에 상기 핸드헬드 제어기의 속력, 상기 제2 시간에 상기 핸드헬드 제어기의 방향, 상기 제2 시간에 상기 핸드헬드 제어기의 위치, 또는 상기 제2 시간에 상기 가상 객체의 회전 속도 중 적어도 하나에 적어도 부분적으로 기초하여 해제되는 상기 가상 객체를 상기 디스플레이 상에 제시하는 것을 포함하는, 하나 이상의 컴퓨터 판독가능 매체. 
  10. 제9항에 있어서, 상기 동작들은, 
    상기 제2 시간 이전의 제3 시간에 상기 핸드헬드 제어기의 속도 또는 상기 제2 시간 이후의 제4 시간에 상기 핸드헬드 제어기의 속도 중 적어도 하나를 결정하는 것; 및 
    상기 피크 속도와, 상기 제3 시간에 상기 핸드헬드 제어기의 속도 또는 상기 제4 시간에 상기 핸드헬드 제어기의 속도 중 상기 적어도 하나의 평균을 계산하는 것을 추가로 포함하며, 
    해제되는 상기 가상 객체를 제시하는 것은 상기 평균에 대응하는 속도에 적어도 부분적으로 기초하여 해제되는 상기 가상 객체를 제시하는 것을 포함하는, 하나 이상의 컴퓨터 판독가능 매체. 
  11. 제9항에 있어서, 상기 동작들은, 
    상기 제2 시간에 상기 가상 객체의 위치를 결정하는 것을 추가로 포함하며, 
    해제되는 상기 가상 객체를 제시하는 것은 상기 제2 시간에 상기 가상 객체의 위치에 적어도 부분적으로 기초하여 해제되는 상기 가상 객체를 제시하는 것을 포함하는, 하나 이상의 컴퓨터 판독가능 매체. 
  12. 제9항에 있어서, 상기 동작들은, 
    상기 피크 속도로부터, 상기 제2 시간에 상기 핸드헬드 제어기의 방향을 결정하는 것을 추가로 포함하며, 
    해제되는 상기 가상 객체를 제시하는 것은 상기 제2 시간에 상기 핸드헬드 제어기의 방향에 적어도 부분적으로 기초하여 해제되는 상기 가상 객체를 제시하는 것을 포함하는, 하나 이상의 컴퓨터 판독가능 매체. 
  13. 제9항에 있어서, 상기 동작들은, 
    적어도 상기 피크 속도를 사용하여 상기 가상 객체의 궤적을 계산하는 것을 추가로 포함하며, 
    해제되는 상기 가상 객체를 제시하는 것은 상기 궤적에 적어도 부분적으로 기초하여 해제되는 상기 가상 객체를 제시하는 것을 포함하는, 하나 이상의 컴퓨터 판독가능 매체. 
  14. 제9항에 있어서, 상기 동작들은, 
    적어도 상기 피크 속도 및 상기 제2 시간에 상기 가상 객체의 위치를 사용하여 상기 가상 객체의 착지 위치를 계산하는 것을 추가로 포함하며, 
    해제되는 상기 가상 객체를 제시하는 것은 상기 계산된 착지 위치에 착지하는 상기 가상 객체를 제시하는 것을 포함하는, 하나 이상의 컴퓨터 판독가능 매체. 
  15. 제9항에 있어서, 상기 동작들은, 
    적어도 상기 피크 속도 및 상기 제2 시간에 상기 가상 객체의 위치를 사용하여 상기 가상 객체의 착지 위치를 계산하는 것; 
    현재 시간에 상기 가상 객체의 위치를 결정하는 것; 및 
    상기 현재 시간에서의 상기 가상 객체의 위치로부터 상기 계산된 착지 위치까지의 궤적을 계산하는 것을 추가로 포함하며, 
    해제되는 상기 가상 객체를 제시하는 것은 상기 계산된 궤적에 적어도 부분적으로 기초하여 해제되는 상기 가상 객체를 제시하는 것을 포함하는, 하나 이상의 컴퓨터 판독가능 매체. 
  16. 제9항에 있어서, 
    상기 제1 시간은 제1 프레임과 연관되고; 
    상기 제1 시간 이전에 상기 미리 결정된 시간 범위 내에서 상기 핸드헬드 제어기의 상기 피크 속도를 결정하는 것은 상기 제1 프레임 직전의 미리 결정된 양의 프레임 내에서 상기 핸드헬드 제어기의 상기 피크 속도를 결정하는 것을 포함하는, 하나 이상의 컴퓨터 판독가능 매체. 
  17. 시스템으로서, 
    하나 이상의 프로세서; 및 
    실행될 때 상기 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 컴퓨터 실행가능 명령어들을 저장하는 하나 이상의 컴퓨터 판독가능 매체를 포함하며, 상기 동작들은, 
    제1 시간에, 가상 객체가 해제될 것이라고 결정하는 것; 
    상기 가상 객체가 해제될 것이라고 결정하는 것에 적어도 부분적으로 응답하여, 상기 제1 시간 이전에 미리 결정된 시간 범위 내에서 핸드헬드 제어기의 피크 속도를 결정하는 것; 
    상기 미리 결정된 시간 범위 내의 상기 피크 속도가 상기 제1 시간 이전의 제2 시간에 발생했다고 결정하는 것; 및 
    상기 제2 시간에 상기 핸드헬드 제어기의 속력, 상기 제2 시간에 상기 핸드헬드 제어기의 방향, 상기 제2 시간에 상기 핸드헬드 제어기의 위치, 또는 상기 제2 시간에 상기 가상 객체의 회전 속도 중 적어도 하나에 적어도 부분적으로 기초하여 해제되는 상기 가상 객체를 디스플레이 상에 제시하는 것을 포함하는, 시스템. 
  18. 제17항에 있어서, 상기 동작들은, 
    상기 제2 시간 이전의 제3 시간에 상기 핸드헬드 제어기의 속도 또는 상기 제2 시간 이후의 제4 시간에 상기 핸드헬드 제어기의 속도 중 적어도 하나를 결정하는 것; 및 
    상기 피크 속도와, 상기 제3 시간에 상기 핸드헬드 제어기의 속도 또는 상기 제4 시간에 상기 핸드헬드 제어기의 속도 중 상기 적어도 하나의 평균을 계산하는 것을 추가로 포함하며, 
    해제되는 상기 가상 객체를 제시하는 것은 상기 평균에 대응하는 속도에 적어도 부분적으로 기초하여 해제되는 상기 가상 객체를 제시하는 것을 포함하는, 시스템. 
  19. 제17항에 있어서, 상기 동작들은, 
    상기 제2 시간에 상기 가상 객체의 위치를 결정하는 것을 추가로 포함하며, 
    해제되는 상기 가상 객체를 제시하는 것은 상기 제2 시간에 상기 가상 객체의 위치에 적어도 부분적으로 기초하여 해제되는 상기 가상 객체를 제시하는 것을 포함하는, 시스템. 
  20. 제17항에 있어서, 상기 동작들은, 
    적어도 상기 피크 속도를 사용하여 상기 가상 객체의 궤적을 계산하는 것을 추가로 포함하며, 
    해제되는 상기 가상 객체를 제시하는 것은 상기 궤적에 적어도 부분적으로 기초하여 해제되는 상기 가상 객체를 제시하는 것을 포함하는, 시스템. 
KR1020207036571A 2018-06-20 2019-06-18 가상 객체의 유지 및 해제 KR20210020926A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862687774P 2018-06-20 2018-06-20
US62/687,774 2018-06-20
US201862687806P 2018-06-21 2018-06-21
US62/687,806 2018-06-21
US16/389,629 2019-04-19
US16/389,629 US11185763B2 (en) 2016-10-11 2019-04-19 Holding and releasing virtual objects
PCT/US2019/037802 WO2019246150A1 (en) 2018-06-20 2019-06-18 Holding and releasing virtual objects

Publications (1)

Publication Number Publication Date
KR20210020926A true KR20210020926A (ko) 2021-02-24

Family

ID=68984339

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207036571A KR20210020926A (ko) 2018-06-20 2019-06-18 가상 객체의 유지 및 해제

Country Status (5)

Country Link
EP (1) EP3807746B1 (ko)
JP (1) JP7383647B2 (ko)
KR (1) KR20210020926A (ko)
CN (1) CN112437910A (ko)
WO (1) WO2019246150A1 (ko)

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4202366B2 (ja) * 2006-03-08 2008-12-24 任天堂株式会社 動き判別装置および動き判別プログラム
JP4410284B2 (ja) * 2008-02-19 2010-02-03 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム制御方法、ならびに、プログラム
JP5289031B2 (ja) * 2008-12-22 2013-09-11 任天堂株式会社 ゲーム装置およびゲームプログラム
JP5420954B2 (ja) 2009-03-31 2014-02-19 任天堂株式会社 ゲーム装置及びゲームプログラム
JP5430246B2 (ja) * 2009-06-23 2014-02-26 任天堂株式会社 ゲーム装置およびゲームプログラム
US9152306B2 (en) * 2011-03-29 2015-10-06 Intel Corporation Techniques for touch and non-touch user interaction input
US8929612B2 (en) * 2011-06-06 2015-01-06 Microsoft Corporation System for recognizing an open or closed hand
WO2013077883A1 (en) * 2011-11-23 2013-05-30 Intel Corporation Gesture input with multiple views, displays and physics
US9022870B2 (en) * 2012-05-02 2015-05-05 Aquimo, Llc Web-based game platform with mobile device motion sensor input
US20140123077A1 (en) * 2012-10-29 2014-05-01 Intel Corporation System and method for user interaction and control of electronic devices
US20150120777A1 (en) * 2013-10-24 2015-04-30 Olivia Ramos System and Method for Mining Data Using Haptic Feedback
US10203762B2 (en) * 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
JP6355978B2 (ja) * 2014-06-09 2018-07-11 株式会社バンダイナムコエンターテインメント プログラムおよび画像生成装置
JP2016024707A (ja) * 2014-07-23 2016-02-08 国立大学法人東京工業大学 触覚提示装置及び力触覚提示システム
US10055018B2 (en) * 2014-08-22 2018-08-21 Sony Interactive Entertainment Inc. Glove interface object with thumb-index controller
US9696795B2 (en) * 2015-02-13 2017-07-04 Leap Motion, Inc. Systems and methods of creating a realistic grab experience in virtual reality/augmented reality environments
US9652038B2 (en) * 2015-02-20 2017-05-16 Sony Interactive Entertainment Inc. Magnetic tracking of glove fingertips
US9898091B2 (en) * 2015-06-03 2018-02-20 Oculus Vr, Llc Virtual reality system with head-mounted display, camera and hand-held controllers
EP3329484A4 (en) * 2015-07-29 2019-06-05 Sensel Inc. SYSTEMS AND METHODS FOR HANDLING A VIRTUAL ENVIRONMENT
US10101803B2 (en) * 2015-08-26 2018-10-16 Google Llc Dynamic switching and merging of head, gesture and touch input in virtual reality
US9804693B2 (en) * 2015-12-18 2017-10-31 Oculus Vr, Llc Handheld controller with activation sensors
US10067636B2 (en) * 2016-02-09 2018-09-04 Unity IPR ApS Systems and methods for a virtual reality editor
JP6877893B2 (ja) * 2016-06-06 2021-05-26 任天堂株式会社 ゲーム装置、ゲームシステム、ゲームプログラム、および振り入力判定方法
WO2018005690A1 (en) * 2016-06-28 2018-01-04 Against Gravity Corp. Systems and methods for assisting virtual gestures based on viewing frustum
US10198855B2 (en) * 2016-07-20 2019-02-05 Colopl, Inc. Method of providing virtual space, method of providing virtual experience, system and medium for implementing the methods
KR101824532B1 (ko) * 2016-09-20 2018-02-02 한국과학기술연구원 가상 손 모델에 의한 파지 및 해제를 위한 가상 모델 제어 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
US10307669B2 (en) * 2016-10-11 2019-06-04 Valve Corporation Electronic controller with finger sensing and an adjustable hand retainer

Also Published As

Publication number Publication date
CN112437910A (zh) 2021-03-02
EP3807746B1 (en) 2023-07-26
EP3807746A1 (en) 2021-04-21
EP3807746A4 (en) 2022-04-20
WO2019246150A1 (en) 2019-12-26
JP2021529374A (ja) 2021-10-28
JP7383647B2 (ja) 2023-11-20

Similar Documents

Publication Publication Date Title
US11625898B2 (en) Holding and releasing virtual objects
US20220040566A1 (en) Holding and Releasing Virtual Objects
US11294485B2 (en) Sensor fusion algorithms for a handheld controller that includes a force sensing resistor (FSR)
US11465041B2 (en) Force sensing resistor (FSR) with polyimide substrate, systems, and methods thereof
US10649583B1 (en) Sensor fusion algorithms for a handheld controller that includes a force sensing resistor (FSR)
KR20210023864A (ko) 가상 객체의 유지 및 해제
JP2021527896A (ja) 仮想現実の手のジェスチャ生成
KR102644888B1 (ko) 폴리이미드 기판을 갖는 힘 감지 저항기(fsr), 시스템 및 이의 방법
KR20210020926A (ko) 가상 객체의 유지 및 해제
JP7361725B2 (ja) 力検知抵抗器(fsr)を含むハンドヘルドコントローラのセンサ融合アルゴリズム
KR20210129075A (ko) 힘 감지 저항기(fsr)를 포함하는 핸드헬드 제어기를 위한 센서 융합 알고리즘
JP7512296B2 (ja) システムおよびコンピュータ実装方法