KR102059737B1 - 햅틱 트리거 제어 시스템 - Google Patents

햅틱 트리거 제어 시스템 Download PDF

Info

Publication number
KR102059737B1
KR102059737B1 KR1020180003200A KR20180003200A KR102059737B1 KR 102059737 B1 KR102059737 B1 KR 102059737B1 KR 1020180003200 A KR1020180003200 A KR 1020180003200A KR 20180003200 A KR20180003200 A KR 20180003200A KR 102059737 B1 KR102059737 B1 KR 102059737B1
Authority
KR
South Korea
Prior art keywords
haptic
trigger
haptic effect
controller
effect definition
Prior art date
Application number
KR1020180003200A
Other languages
English (en)
Other versions
KR20180006481A (ko
Inventor
로버트 라크로와
대니 그랜트
코스타 헨리 다
스테판 디 랭크
데이비드 번바움
윌리암 린
Original Assignee
임머숀 코퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 임머숀 코퍼레이션 filed Critical 임머숀 코퍼레이션
Publication of KR20180006481A publication Critical patent/KR20180006481A/ko
Application granted granted Critical
Publication of KR102059737B1 publication Critical patent/KR102059737B1/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/016Input arrangements with force or tactile feedback as computer generated output to the user
    • 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/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • 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/25Output arrangements for video game devices
    • A63F13/28Output arrangements for video game devices responding to control signals received from the game device for affecting ambient conditions, e.g. for vibrating players' seats, activating scent dispensers or affecting temperature or light
    • A63F13/285Generating tactile feedback signals via the game input device, e.g. force feedback
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/54Controlling the output signals based on the game progress involving acoustic signals, e.g. for simulating revolutions per minute [RPM] dependent engine sounds in a driving game or reverberation against a virtual wall
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • 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
    • 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/30Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
    • A63F2300/302Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device specially adapted for receiving control signals not targeted to a display device or game input means, e.g. vibrating driver's seat, scent dispenser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/015Force feedback applied to a joystick

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

트리거에서 경험되는 햅틱 효과를 제어하는 시스템이 제공되어 있다. 시스템은 햅틱 데이터를 포함하는 햅틱 효과를 수신한다. 시스템은 주변 디바이스의 트리거의 위치; 또는 주변 디바이스의 트리거의 범위 중 적어도 하나를 포함하는 트리거 데이터를 추가로 수신한다. 시스템은 수신된 트리거 데이터에 기초하여 트리거 조건에 도달했는지를 추가로 결정한다. 시스템은 트리거 조건에 도달했을 때 트리거 명령 및 햅틱 효과 정의를 주변 디바이스에 추가로 송신한다. 시스템은 추가로 햅틱 출력 디바이스(또는 다수의 햅틱 출력 디바이스)가 햅틱 명령에 응답하여 주변 디바이스에서 햅틱 효과 정의에 기초하는 햅틱 효과를 생성하게 한다.

Description

햅틱 트리거 제어 시스템{HAPTIC TRIGGER CONTROL SYSTEM}
관련 출원에 대한 교차-참조
이 출원은, 그 개시내용이 인용에 의해 본원에 포함되어 있는, 2013년 11월 14일에 출원된 미국 가특허 출원 일련 번호 제61/904,342호의 우선권을 주장한다.
일 실시예는 일반적으로 디바이스에 관한 것이며, 더 특별하게는 햅틱 효과들을 생성하는 디바이스에 관한 것이다.
비디오 게임과 비디오 게임 시스템이 극도로 인기 있어지고 있다. 비디오 게임 디바이스들 또는 제어기들은 통상적으로 시각적 및 청각적 큐를 사용하여 사용자에게 피드백을 제공한다. 일부 인터페이스 디바이스들에서, 보다 일반적으로는 총체적으로 "햅틱 피드백" 또는 "햅틱 효과"로서 공지되어 있는, 운동감각 피드백(예를 들어, 활성 및 저항성 힘 피드백) 및/또는 촉각 피드백(예를 들어, 진동, 질감, 및 열)이 또한 사용자에게 제공된다. 햅틱 피드백은 비디오 게임 제어기, 또는 다른 전자 디바이스와 사용자의 상호작용을 향상시키고 단순화하는 신호(cue)들을 제공할 수 있다. 구체적으로, 진동 효과, 또는 진동촉각 햅틱 효과가, 비디오 게임 제어기들 또는 다른 전자 디바이스들의 사용자들에게 큐를 제공하여 사용자에게 특정 이벤트들을 통지하거나, 또는 실제 피드백을 제공하여 시뮬레이션된 또는 가상 환경 내에서 더 큰 감각적 몰입을 생성하는데 유용할 수 있다.
의료 디바이스들, 자동차 제어, 원격 제어와 같은 다른 디바이스들, 및 사용자가 사용자 입력 엘리먼트와 상호작용하여 동작을 생성하게 하는 다른 유사한 디바이스들이 또한 햅틱 피드백 또는 햅틱 효과들로부터 이익을 얻는다. 예를 들어, 그리고, 제한하려는 것은 아니고, 의료 디바이스들 상의 사용자 입력 엘리먼트들은 의료 디바이스의 말단부에서 환자의 신체 내의 동작을 야기하도록 의료 디바이스의 근접 부분에서 환자의 신체 밖에서 사용자에 의해 동작될 수 있다. 햅틱 피드백 또는 햅틱 효과들은 특정 이벤트들에 대해 사용자에게 통지하거나, 또는 의료 디바이스의 말단부에서 의료 장비와 환자와의 상호작용에 관해 사용자에게 실제 피드백을 제공하기 위해 사용될 수 있다.
일 실시예는 주변 디바이스에서 경험되는 햅틱 효과를 제어하는 시스템이다. 시스템은 햅틱 데이터를 포함하는 햅틱 효과 정의를 수신한다. 시스템은 추가로 주변 디바이스의 트리거의 위치; 또는 주변 디바이스의 트리거의 범위 중 적어도 하나를 포함하는 트리거 데이터를 수신한다. 시스템은 추가로 수신된 트리거 데이터에 기초하여 트리거 조건에 도달했는지를 결정한다. 시스템은 추가로 트리거 조건에 도달했을 때 햅틱 명령 및 햅틱 효과 정의를 주변 디바이스에 송신한다. 시스템은 추가로 햅틱 출력 디바이스(또는 다수의 햅틱 출력 디바이스)가 햅틱 명령에 응답하여 주변 디바이스에서 햅틱 효과 정의에 기초하는 햅틱 효과를 생성하게 한다.
추가적인 실시예들, 상세항목들, 장점들, 및 수정들은, 첨부 도면들과 함께 취해질 바람직한 실시예들의 후속하는 상세한 기재로부터 명백해질 것이다.
도 1은 발명의 일 실시예에 따른 시스템의 블록도를 예시한다.
도 2는 발명의 실시예에 따른 제어기를 예시한다.
도 3은 발명의 실시예에 따른 도 2의 제어기의 또 다른 뷰를 예시한다.
도 4는 발명의 실시예에 따라, 호스트 컴퓨터 및 디스플레이와 공조하는 제어기의 블록도를 예시한다.
도 5는 발명의 실시예에 따른, 시스템에 대한 트리거 햅틱 효과 소프트웨어 스택의 블록도를 예시한다.
도 6은 발명의 실시예에 따라, 트리거 햅틱 효과를 설계하기 위한 예시적인 시용자 인터페이스를 예시한다.
도 7은 발명의 실시예에 따라, 트리거 햅틱 효과를 설계하기 위해 사용되는 컴포넌트들의 블록도를 예시한다.
도 8은 발명의 실시예에 따라, 직접적인 재생을 위한 트리거 햅틱 효과를 만들기 위해 사용되는 컴포넌트들의 블록도, 및 트리거 햅틱 효과를 저장하기 위해 사용되는 컴포넌트들의 블록도를 예시한다.
도 9는 발명의 실시예에 따라, 크로스오버 재생을 위한 트리거 햅틱 효과를 만들기 위해 사용되는 컴포넌트들의 블록도, 및 트리거 햅틱 효과를 저장하기 위해 사용되는 컴포넌트들의 블록도를 예시한다.
도 10은 발명의 실시예에 따라, 트리거 햅틱 효과를 직접적으로 재생하기 위해 사용되는 컴포넌트들의 블록도를 예시한다.
도 11은 발명의 실시예에 따라, 프로그래밍가능한 크로스오버를 사용하여 트리거 햅틱 효과를 재생하기 위해 사용되는 컴포넌트들의 블록도를 예시한다.
도 12는 발명의 실시예에 따라, 트리거 햅틱 효과의 예시적인 4-채널 직접적 재생을 예시한다.
도 13은 발명의 실시예에 따라, 트리거 햅틱 효과의 예시적인 크로스오버 재생을 예시한다.
도 14는 발명의 실시예에 따라, 트리거 엔진의 예시적인 사용자 인터페이스를 예시한다.
도 15는 발명의 실시예에 따라, 공간화 엔진의 예시적인 사용자 인터페이스를 예시한다.
도 16은 발명의 실시예에 따라, 트리거 햅틱 효과 애플리케이션 프로그래밍 인터페이스의 아키텍쳐 다이어그램을 예시한다.
도 17은 발명의 실시예에 따라, 트리거 햅틱 효과들을 생성하는 펌웨어의 아키텍쳐 다이어그램을 예시한다.
도 18은 발명의 실시예에 따른, 제어기에 대한 예시적인 방향성 모델을 예시한다.
도 19는 발명의 실시예에 따른, 트리거 햅틱 효과 펌웨어 스택의 블록도를 예시한다.
도 20은 발명의 실시예에 따라, 제어기의 트리거에서 경험되는 트리거 햅틱 효과들을 제공하는 시스템의 아키텍쳐 다이어그램을 예시한다.
도 21은 발명의 실시예에 따라, 트리거 햅틱 효과를 미리보고 수정하기 위한 예시적인 사용자 인터페이스를 예시한다.
도 22는 발명의 실시예에 따라, 오디오 신호를 트리거 햅틱 효과로 전환하기 위한 예시적인 사용자 인터페이스를 예시한다.
도 23은 발명의 실시예에 따라, 오브젝트 파라미터들에 기초하여 트리거 햅틱 효과를 생성하기 위한 예시적인 사용자 인터페이스를 예시한다.
도 24는 발명의 실시예에 따라, 트리거 햅틱 효과들을 미리보는 시스템의 아키텍쳐 다이어그램을 예시한다.
도 25는 발명의 실시예에 따라, 트리거 햅틱 효과들을 생성하는 시스템의 아키텍쳐 다이어그램을 예시한다.
도 26은 발명의 실시예에 따라, 트리거 햅틱 효과들을 생성하는 펌웨어의 아키텍쳐 다이어그램을 예시한다.
도 27은 발명의 실시예에 따른, 예시적인 오디오 아키텍쳐를 예시한다.
도 28은 발명의 실시예에 따라, 오디오 효과를 트리거 햅틱 효과로 전환하는 예시적인 오디오 드라이버를 예시한다.
도 29는 발명의 실시예에 따라, 제2 포맷의 트리거 햅틱 효과를 재생성하는 제1 포맷의 트리거 햅틱 효과의 생성을 예시한다.
도 30은 발명의 실시예에 따라, 제2 포맷의 트리거 햅틱 효과를 재생성하는 제1 포맷의 트리거 햅틱 효과의 또 다른 생성을 예시한다.
도 31은 발명의 실시예에 따라, 햅틱 트리거 제어 모듈의 기능성의 흐름도를 예시한다.
도 32는 발명의 실시예에 따른, API 또는 라이브러리에 위치하는 예시적인 공간화 엔진을 예시한다.
도 33은 발명의 실시예에 따른, 제어기에 위치하는 예시적인 공간화 엔진을 예시한다.
일 실시예는 게임 제어기 또는 게임패드와 같은 주변 디바이스에서 경험되는 햅틱 피드백을 제공하는 시스템이다. 예를 들어, 시스템은 제어기, 또는 일부 다른 주변 디바이스의 트리거에서 경험되는 트리거 햅틱 효과를 제공할 수 있다. 트리거 햅틱 효과는 또한 제어기, 또는 다른 주변 디바이스에서 경험되는 럼블 햅틱 효과(rumble haptic effect)들을 보완할 수 있다. 또 다른 예로서, 시스템은 제어기, 게임패드, 또는 다른 주변 디바이스의 사용자 입력 엘리먼트에서 경험되는 일반적인 햅틱 효과를 제공할 수 있다. 디텐트(detents), 진동, 질감, 및 스티프니스(stiffness)와 같은 광범위한 햅틱 피드백 감각들이 생성될 수 있다. 햅틱 피드백 감각들은 또한 시스템에 의해 실행될 수 있는 게임 애플리케이션 또는 다른 소프트웨어 애플리케이션을 보완할 수 있다. 햅틱 피드백 감각들은 1인칭 총싸움 게임; 판타지/롤플레이; 경주; 또는 스포츠와 같은 특정 장르의 게임에 대해 적합할 수 있다. 대안적인 실시예에서, 게임 제어기 또는 게임 패드와 같은 주변 디바이스는 주변 디바이스의 핸들 상에 상이한 분리된 진동 영역을 가질 수 있다.
시스템은 먼저 햅틱 효과 정의를 수신할 수 있다. 시스템은 트리거의 위치 및/또는 범위, 또는 트리거 또는 여타 사용자 입력 엘리먼트(예를 들어, 조이스틱 등)로부터의 위치 정보와 같은 트리거 데이터를 추가로 수신할 수 있다. 이러한 트리거 데이터의 예들은 트리거를 특정 위치에 배치하는 것, 특정 위치를 통해 트리거를 스위핑(sweeping)하는 것, 특정 범위 내에 트리거를 배치하는 것, 또는 특정 범위를 통해 트리거를 스위핑하는 것을 포함할 수 있다. 시스템은 수신된 트리거 데이터에 기초하여 햅틱 효과 정의를 수정할 수 있다. 시스템은 선택적으로 추가로 햅틱 효과 정의에 기초하는 햅틱 효과의 방향 및/또는 흐름과 같은 공간화 데이터에 기초하여 햅틱 효과 정의를 수정할 수 있다. 시스템은 이후, 제어기, 게임패드 또는 다른 주변 디바이스의 하나 이상의 모터들 또는 액츄에이터들이 수정된 햅틱 효과 정의에 기초하여 햅틱 피드백을 재생하거나, 다른 방식으로 출력하게 하고, 따라서 햅틱 피드백이 경험되도록 할 수 있다. 다시 말해, 시스템은 제어기, 게임패드, 또는 다른 주변 디바이스가 햅틱 효과 정의에 기초하여 햅틱 효과를 재생하게 할 수 있다. 관련 기술 분야의 당업자에 의해 이해되는 바와 같이, "재생"은 데이터(예를 들어, 오디오 데이터, 비디오 데이터, 또는 햅틱 데이터)를 재생하는 동작 또는 인스턴스(instance)이다. 따라서, 일 예에서, 시스템은 전체 트리거 햅틱 효과가 제어기의 트리거에서 경험되도록 할 수 있다.
일 실시예에서, 시스템은 트리거 햅틱 효과 프리셋들과 같은, 선택될 수 있는 다수의 햅틱 프리셋들을 포함할 수 있다. 시스템은 종합적인 햅틱 프리셋들의 라이브러리를 포함할 수 있다. 각각의 선택된 햅틱 프리셋은 그래픽 사용자 인터페이스 내에서 수정될 수 있다. 수정된 햅틱 효과 프리셋은 게임 애플리케이션, 또는 제어기, 게임패드 또는 다른 주변 디바이스가 트리거 햅틱 효과와 같은 햅틱 효과를 산출할 수 있는 다른 소프트웨어 애플리케이션의 실행 내에서 컴파일링되고 실행될 수 있다.
또 다른 실시예에서, 시스템은 수동적 콘텐츠-구동 툴셋을 포함할 수 있다. 툴셋은 사용자가 오디오 효과 정의들을 따라 햅틱 효과 정의들을 설계하게 한다. 시스템은 이후 햅틱 효과 정의들을, 오디오 포맷을 가질 수 있거나, 또는 오디오 파일들을 따라 저장될 수 있는 햅틱 파일들로 인코딩할 수 있다. 제어기, 게임패드, 또는 다른 주변 디바이스에 위치하는 디코더는 후속적으로, 인코딩된 햅틱 효과 정의들을 디코딩할 수 있다. 또한, 설계된 햅틱 효과 정의들은, 설계된 햅틱 효과 정의들에 기초하여 햅틱 효과들을 개시하기 위해 트리거 엔진 및/또는 공간화 엔진으로 로딩될 수 있다. 트리거 엔진은 햅틱 효과 개시들이 트리거 움직임 또는 다른 트리거 행동에 맵핑되도록 할 수 있고, 공간화 엔진은 특정 방향으로부터 기인하는 햅틱 효과들의 감각을 생성하기 위해 각각의 햅틱 효과를 이동시킬 수 있다. 트리거 엔진 및/또는 공간화 엔진은 오프라인 툴에서 이용가능해질 수 있으며, 여기서, 사용자는, 햅틱 효과들이 엔진 내로 로딩되면, 엔진과 그래픽적으로 상호작용하여 제어기 내에서 햅틱 재생을 느낄 수 있다.
또 다른 실시예에서, 시스템은 자동차 콘텐츠-구동 툴셋을 포함할 수 있다. 툴셋은 오디오 효과 정의들을 햅틱 효과 정의들로 자동으로 전환할 수 있다. 툴셋은 오디오 파일들로서 오디오 효과 정의들을 수신할 수 있다. 툴셋은 오디오 효과 정의의 햅틱 효과 정의로의 전환을 제어하기 위해 하나 이상의 파라미터들을 수정할 수 있다. 예로서, 하나 이상의 파라미터들은 : (a) 전환된 오디오 효과 정의를 포함하는 오디오 파일을 식별하는 오디오 파일 파라미터; (b) 이후, 2개 이상의 다른 출력들(예를 들어, 낮은 럼블 모터 또는 액츄에이터; 중간 럼블 모터 또는 액츄에이터; 및 트리거 모터 또는 액츄에이터)에 적용될 2개 이상의 다른 주파수 대역들로 분할된 오디오 효과 정의의 오디오 데이터를 획득하는 방법을 정의하는 전환 제어 파라미터; (c) 원하는 경우, 오디오 효과 정의로부터 햅틱 효과 정의로의 크기 맵핑을 제어하며, 잡음 플로어 및 다이내믹스 범위를 조정할 수 있는(다이내믹스를 늘이거나(stretching) 스쿼싱하는 것(squashing)) 동적 파라미터; 및 (d) 햅틱 효과 정의의 궁극적 크기(또는 강도)를 제어하는 크기(또는 강도) 파라미터를 포함할 수 있다. 대안적인 실시예에서, 오디오 효과 정의를 수신하는 것 대신에, 툴셋은 햅틱 효과 정의로 전환될 수 있는 햅틱 명령을 수신할 수 있다. 햅틱 명령은, 햅틱 효과의 듀레이션(duration)을 결정할 수 있는 게임 내 무기로부터의 발사(fire)의 레이트(rate), 햅틱 효과의 시작 포인트 및 중지 포인트를 결정할 수 있는 게임 내 애니메이션에서의 키 프레임, 햅틱 효과의 축 상의 방향성에 대한 애니메이션 데이터, 햅틱 효과의 크기를 결정할 수 있는 게임 내 무기의 손상량 등과 같은 게임 애플리케이션에 의해 수신되는 게임플레이 파라미터 형태를 취할 수 있다. 또한, 이전에 기술된 바와 같이, 전환된 햅틱 효과 정의는 설계된 햅틱 효과 정의에 기초하여 햅틱 효과들을 개시하기 위해 트리거 엔진 및/또는 공간화 엔진 내로 로딩될 수 있다. 트리거 엔진 및/또는 공간화 엔진은, 이전에 기술된 바와 같이, 오프라인 툴에서 이용가능해질 수 있다.
또 다른 실시예에서, 시스템은 햅틱 효과 스튜디오 엔진을 포함할 수 있다. 햅틱 효과 스튜디오는 사용자가 특정 모터 또는 액츄에이터에 대한 햅틱 효과 정의를 정의하게 하기 위해 제공될 수 있다. 이전에 기술된 바와 같이, 설계된 햅틱 효과 정의는 설계된 햅틱 효과 정의에 기초하여 햅틱 효과들을 개시하기 위해 트리거 엔진 및/또는 공간화 엔진 내로 로딩될 수 있다. 이전에 기술된 바와 같이, 트리거 엔진 및/또는 공간화 엔진은 오프라인 툴에서 이용가능해질 수 있다.
도 1은 발명의 일 실시예에 따른 시스템(10)의 블록도를 예시한다. 일 실시예에서, 시스템(10)은 디바이스(예를 들어, 개인용 컴퓨터 또는 비디오 게임 콘솔과 같은 콘솔)의 일부분이고, 시스템(10)은 디바이스에 대한 햅틱 트리거 제어 기능성을 제공한다. 또 다른 실시예에서, 시스템(10)은 디바이스(예를 들어, 개인용 컴퓨터 또는 콘솔)와는 별도이며, 디바이스에 대한 전술된 기능성을 제공한다. 단일 시스템으로서 도시되어 있지만, 시스템(10)의 기능성은 분산 시스템으로서 구현될 수 있다. 시스템(10)은 정보를 통신하기 위한 버스(12) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위해 버스(12)에 동작적으로 결합되어 있는 프로세서(22)를 포함한다. 프로세서(22)는 임의의 타입의 범용 또는 특수 목적 프로세서일 수 있다. 시스템(10)은 프로세서(22)에 의해 실행될 정보와 명령들을 저장하기 위한 메모리(14)를 더 포함한다. 메모리(14)는 랜덤 액세스 메모리("RAM"), 판독 전용 메모리("ROM"), 자기 또는 광 디스크와 같은 정적 스토리지, 또는 임의의 다른 타입의 컴퓨터-판독가능한 매체의 임의의 결합으로 구성될 수 있다.
컴퓨터-판독가능한 매체는 프로세서(22)에 의해 액세스될 수 있는 임의의 가용 매체일 수 있으며, 휘발성 및 비휘발성 매체, 제거가능 및 제거-불가능한 매체, 통신 매체, 및 저장 매체 모두를 포함할 수 있다. 통신 매체는 컴퓨터 판독가능한 명령들, 데이터 구조들, 프로그램 모듈들, 또는 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호 내의 다른 데이터를 포함할 수 있고, 당해 기술분야에 공지되어 있는 임의의 다른 형태의 정보 전달 매체를 포함할 수 있다. 저장 매체는 RAM, 플래시 메모리, ROM, 소거가능한 프로그래밍가능한 판독-전용 메모리("EPROM"), 전기적으로 소거가능한 프로그래밍가능한 판독-전용 메모리("EEPROM"), 레지스터들, 하드디스크, 제거가능한 디스크, 컴팩트 디스크 판독-전용 메모리("CD-ROM"), 또는 당해 기술분야에 공지되어 있는 임의의 다른 형태의 저장 매체를 포함할 수 있다.
일 실시예에서, 메모리(14)는 프로세서(22)에 의해 실행될 때 기능성을 제공하는 소프트웨어 모듈들을 저장한다. 모듈들은 일 실시예에서 시스템(10)에 대한 운영 체제 기능성을 제공하는 운영 체제(15), 뿐만 아니라 전체 디바이스의 나머지를 포함한다. 모듈들은 트리거에서 경험되는 햅틱 효과를 제어하는 햅틱 트리거 제어 모듈(16), 또는 일부 다른 사용자 입력 엘리먼트를 더 포함한다. 특정 실시예들에서, 햅틱 트리거 제어 모듈(16)은 복수의 모듈들을 포함할 수 있고, 각각의 모듈은 트리거, 또는 일부 다른 사용자 입력 엘리먼트에서 경험되는 햅틱 효과를 제어하기 위한 특정 개별 기능성을 제공한다. 시스템(10)은 통상적으로, 제어기(30)와 같은 주변 디바이스에 대한 제어 기능성을 제공할 수 있는, 주변 펌웨어와 같은 추가적인 기능성을 포함할 수 있는 하나 이상의 추가적인 응용 모듈들(18)을 포함할 것이다.
시스템(10)은, 원격 소스들로부터 데이터를 전송 및/또는 수신하는 실시예들에서, 적외선, 라디오, Wi-Fi, 또는 셀룰러 네트워크 통신과 같은 모바일 무선 네트워크 통신을 제공하기 위해, 네트워크 인터페이스 카드와 같은 통신 디바이스(20)를 더 포함한다. 다른 실시예들에서, 통신 디바이스(20)는 이더젯 접속 또는 모뎀과 같은 유선 네트워크 접속을 제공한다.
시스템(10)은 제어기(30)에 동작적으로 접속된다. 제어기(30)는 시스템(10)에 입력을 제공하기 위해 사용되는 주변 디바이스이다. 제어기(30)는 무선 접속 또는 유선 접속을 사용하여 시스템(10)에 동작적으로 접속될 수 있다. 제어기(30)는 무선 접속 또는 유선 접속을 사용하여 시스템(10)과 통신할 수 있는 로컬 프로세서를 더 포함할 수 있다. 대안적으로, 제어기(30)는 로컬 프로세서를 포함하지 않도록 구성되고, 제어기(30)와 연관된 모든 입력 신호들 및/또는 출력 신호들은 시스템(10)의 프로세서(22)에 의해 직접적으로 핸들링되고 프로세싱될 수 있다.
제어기(30)는 하나 이상의 디지털 버튼들, 하나 이상의 아날로그 버튼들, 하나 이상의 범퍼들, 하나 이상의 방향 패드들, 하나 이상의 아날로그 또는 디지털 스틱들, 하나 이상의 드라이빙 휠들, 및/또는 사용자와 상호작용될 수 있고 시스템(10)에 입력을 제공할 수 있는 하나 이상의 사용자 입력 엘리먼트들을 더 포함할 수 있다. 제어기(30)는 또한 사용자와 추가로 상호작용될 수 있으며, 추가로 시스템(10)에 입력을 제공할 수 있는 하나 이상의 아날로그 또는 디지털 트리거 버튼들(또는 "트리거들")을 포함할 수 있다. 하기에 더욱 상세하게 기술되어 있는 바와 같이, 제어기(30)는, 제어기(30)의 적어도 하나의 트리거 상에 양방향성 푸시/풀 힘을 가하도록 구성된, 모터, 또는 또 다른 타입의 액츄에이터 또는 햅틱 출력 디바이스를 더 포함할 수 있다.
제어기(30)는 하나 이상의 액츄에이터들, 또는 다른 타입들의 햅틱 출력 디바이스들을 포함할 수 있다. 제어기(30) 또는 프로세서(22)의 로컬 프로세서는, 제어기(30)가 로컬 프로세서를 포함하지 않는 실시예들에서, 제어기(30)의 적어도 하나의 액츄에이터에 햅틱 효과와 연관된 햅틱 신호를 전송할 수 있다. 액츄에이터는, 햅틱 신호에 응답하여, 차례로, 진동촉각 햅틱 효과, 운동감각 햅틱 효과, 또는 변형 햅틱 효과와 같은 햅틱 효과들을 출력한다. 햅틱 효과들은 제어기(30)의 사용자 입력 엘리먼트(예를 들어, 디지털 버튼, 아날로그 버튼, 범퍼, 방향 패드, 아날로그 또는 디지털 스틱, 드라이빙 휠, 또는 트리거)에서 경험될 수 있다. 대안적으로, 햅틱 효과들은 제어기(30)의 외부 표면에서 경험될 수 있다. 액츄에이터는 액츄에이터 구동 회로를 포함한다. 액츄에이터는, 예를 들어, 전기 모터, 전자-자기 액츄에이터, 보이스 코일, 형상 기억 합금, 전자-활성 폴리머, 솔레노이드, 이심 회전 질량 모터("ERM"), 선형 공진 액츄에이터("LRA"), 압전 액츄에이터, 고대역폭 액츄에이터, 전자활성 폴리머("EAP") 액츄에이터, 정전 마찰 디스플레이, 또는 초음파 진동 생성기일 수 있다. 액츄에이터는 구동 신호에 응답하여, 진동촉각 햅틱 효과, 정전 마찰 햅틱 효과, 운동감각 햅틱 효과, 또는 변형 햅틱 효과와 같은 햅틱 효과들을 출력하도록 구성된 햅틱 출력 디바이스의 일례이다. 대안적인 실시예들에서, 제어기(30) 내의 하나 이상의 액츄에이터들은 일부 다른 타입의 햅틱 출력 디바이스에 의해 대체될 수 있다.
제어기(30)는 하나 이상의 스피커들을 더 포함할 수 있다. 제어기(30)의 로컬 프로세서, 또는 제어기(30)가 로컬 프로세서를 포함하지 않는 실시예들에서의 프로세서(22)는, 차례로 오디오 효과들을 출력하는 제어기(30)의 적어도 하나의 스피커에 오디오 신호를 전송할 수 있다. 스피커는, 예를 들어, 다이내믹스 라우드스피커, 전자다이내믹스 라우드스피커, 압전 라우드스피커, 자왜식 라우드스피커, 정전 라우드스피커, 리본 및 평면 자기 라우드스피커, 굴곡파 라우드스피커, 평판 라우드스피커, 헤일 에어 모션 트랜스듀서(heil air motion transducer), 플라즈마 아크 스피커, 및 디지털 라우드스피커일 수 있다.
제어기(30)는 하나 이상의 센서들을 더 포함할 수 있다. 센서는 에너지의 형태, 또는 사운드, 움직임, 기속도, 생체 신호들, 거리, 흐름, 힘/압력/스트레인/굴곡, 습도, 선형 위치, 배향/경사도, 라디오 주파수, 회전 위치, 회전 속도, 스위치의 조작, 온도, 진동, 또는 가시광 강도의 형태를 검출하도록 구성될 수 있다. 센서는 검출된 에너지 또는 다른 물리적 특징을 전기 신호, 또는 가상 센서 정보를 나타내는 임의의 신호를 변환하도록 추가로 구성될 수 있고, 제어기(30)는 제어기(30)의 로컬 프로세서, 또는 제어기(30)가 로컬 프로세서를 포함하지 않는 실시예들에서의 프로세서(22)에 전환된 신호를 송신할 수 있다. 센서는, 가속계, 심전도, 뇌전도, 근전계, 안전도, 전자구개기록도(electropalatograph), 피층 전기 반응 센서, 용량성 센서, 홀 효과 센서, 적외선 센서, 초음파 센서, 압력 센서, 광섬유 센서, 굽힘 센서(또는 구부림 센서), 힘-감지 센서, 로드 셀, LuSense CPS2 155, 소형 압력 트랜스듀서, 피에조 센서, 스트레인 게이지, 습도계, 선형 위치 터치 센서, 선형 전위차계(또는 슬라이더), 선형 가변 차동 변압기, 나침반, 경사계, 자기 태그(또는 라디오 주파수 식별 태그), 회전 인코더, 회전 전위차계, 자이로스코프, 온-오프 스위치, 온도 센서(예를 들어, 온도계, 열전대, 저항 온도 검출기, 서미스터, 온도-트랜스듀싱 집적 회로), 마이크로폰, 광도계, 고도계, 생체 모니터, 카메라, 또는 광-종속 저항기와 같은, 그러나 이에 제한되지 않는, 임의의 디바이스일 수 있다.
도 2는 발명의 실시예에 따른 제어기(100)를 예시한다. 일 실시예에서, 제어기(100)는 도 1의 제어기(30)와 동일하다. 또한, 도 3은 제어기(100)의 또 다른 뷰를 예시한다. 제어기(100)는 일반적으로 컴퓨터, 모바일 폰, 텔레비전, 또는 다른 유사한 디바이스에 접속될 수 있는 게임 시스템과 함께 사용될 수 있다. 도 2 및 3에 예시된 제어기(100)의 컴포넌트들(즉, 하우징(102), 아날로그 또는 디지털 스틱(110), 버튼(114), 트리거(118), 및 럼블 액츄에이터(122 및 124))은 추가로 도 4와 함께 하기에 더 상세하게 기술되어 있다.
도 4는 호스트 컴퓨터(104) 및 디스플레이(106)를 더 포함하는 게임 시스템(101)에서 사용되는 제어기(100)의 블록도를 예시한다. 도 4의 블록도에 도시되어 있는 바와 같이, 제어기(100)는 접속(105)을 통해 호스트 컴퓨터(104)와 통신하는 로컬 프로세서(108)를 포함한다. 접속(105)은 유선 접속, 무선 접속, 또는 당업자에게 공지되어 있는 다른 타입들의 접속들일 수 있다. 제어기(100)는 대안적으로, 로컬 프로세서(108)를 포함하지 않도록 구성될 수 있고, 이에 의해 제어기(100)로부터의 모든 입력/출력 신호들은 호스트 컴퓨터(104)에 의해 직접 핸들링되고 프로세싱된다. 호스트 컴퓨터(104)는 디스플레이 스크린(106)에 동작적으로 결합된다. 실시예에서, 당해 기술분야에 공지되어 있는 바와 같이, 호스트 컴퓨터(104)는 게임 디바이스 콘솔이고, 디스플레이 스크린(106)은 게임 디바이스 콘솔에 동작적으로 결합된 모니터이다. 또 다른 실시예에서, 당업자에게 공지되어 있는 바와 같이, 호스트 컴퓨터(104) 및 디스플레이 스크린(106)은 단일 디바이스로 결합될 수 있다.
제어기(100)의 하우징(102)은, 왼손잡이 사용자 또는 오른손잡이 사용자에 의해, 디바이스를 잡는 두 손을 용이하게 수용하도록 성형된다. 당업자는, 제어기(100)가 Microsoft® Xbox One™ 제어기 또는 PlayStation® DualShock™ 제어기와 같은 비디오 게임 콘솔 시스템들에 대해 현재 이용가능한 많은 "게임패드들"과 유사한 형상과 사이즈의 제어기의 단지 예시적인 실시예이고, Wii™ 원격 또는 Wii™ U 제어기, Sony® SixAxis™ 제어기 또는 Sony® Wand 제어기와 같은 제어기들, 뿐만 아니라 실생활의 물체들(예를 들어, 테니스 라켓, 골프 클럽, 야구 방망이 등) 및 다른 형상들로서 성형된 제어기들을 포함하지만 이에 제한되지 않는, 사용자 입력 엘리먼트들의 다른 구성들, 형상들 및 사이즈들을 가지는 제어기들, 또는 디스플레이나 머리 장착 디스플레이가 구비된 제어기들이 사용될 수 있다.
제어기(100)는 아날로그 또는 디지털 스틱(110), 버튼(114), 및 트리거(118)를 포함한 몇몇 사용자 입력 엘리먼트들을 포함한다. 본원에서 사용되는 바와 같이, 사용자 입력 엘리먼트는 호스트 컴퓨터(104)와 상호작용하도록 사용자에 의해 조작되는 트리거, 버튼, 아날로그 또는 디지털 스틱 등과 같은 인터페이스 디바이스를 지칭한다. 도 2 및 3에서 알 수 있는 바와 같이, 그리고 당업자에게 공지되어 있는 바와 같이, 각각의 사용자 입력 엘리먼트 및 추가적인 사용자 입력 엘리먼트들 중 하나 초과가 제어기(100)에 포함될 수 있다. 따라서, 트리거(118)의 본 기재는, 예를 들어, 제어기(100)를 단일 트리거로 제한하지 않는다. 또한, 도 4의 블록도는 각각의 아날로그 또는 디지털 스틱(110), 버튼(114), 및 트리거(118) 중 단 하나(1)만을 도시하고 있다. 그러나, 당업자는, 전술된 바와 같이, 다수의 아날로그 또는 디지털 스틱들, 버튼들, 및 트리거들, 뿐만 아니라 다른 사용자 입력 엘리먼트들이 사용될 수 있다는 점을 이해할 것이다.
도 4의 블록도에서 알 수 있는 바와 같이, 제어기(100)는 그것의 사용자 입력 엘리먼트들 각각을 직접 구동시키기 위한 타겟화된 액츄에이터 또는 모터, 뿐만 아니라 사용자의 손이 일반적으로 위치되어 있는 위치에서 하우징(102)에 동작적으로 결합된 하나 이상의 일반적인 또는 럼블 액츄에이터들(122, 124)을 포함한다. 더 구체적으로, 아날로그 또는 디지털 스틱(110)은 아날로그 또는 디지털 스틱(110)에 동작적으로 결합된 타겟화된 액츄에이터 또는 모터(112)를 포함하고, 버튼(114)은 버튼(114)에 동작적으로 결합된 타겟화된 액츄에이터 또는 모터(116)를 포함하고, 트리거(118)는 트리거(118)에 동작적으로 결합된 타겟화된 액츄에이터 또는 코너(120)를 포함한다. 복수의 타겟화된 액츄에이터들에 더하여, 제어기(100)는 제어기(100)의 사용자 입력 엘리먼트들 각각에 동작적으로 결합된 위치 센서를 포함한다. 더 구체적으로, 아날로그 또는 디지털 스틱(110)은 아날로그 또는 디지털 스틱(110)에 동작적으로 결합된 위치 센서(111)를 포함하고, 버튼(114)은 버튼(114)에 동작적으로 결합된 위치 센서(115)를 포함하고, 트리거(118)는 트리거(118)에 동작적으로 결합된 위치 센서(119)를 포함한다. 로컬 프로세서(108)는 타겟화된 액츄에이터들(112, 116, 120) 뿐만 아니라 각각 아날로그 또는 디지털 스틱(110), 버튼(114), 및 트리거(118)의 위치 센서들(111, 115, 119)에 동작적으로 결합된다. 위치 센서들(111, 115, 119)로부터 수신된 신호들에 응답하여, 로컬 프로세서(108)는 각각 아날로그 또는 디지털 스틱(110), 버튼(114) 및 트리거(118)에 직접적으로 지시되거나 타겟화된 운동감각 효과들을 제공하도록 타겟화된 액츄에이터들(112, 116, 120)에 명령한다. 이러한 타겟화된 운동감각 효과들은 제어기의 전체 바디를 따라 범용 액츄에이터들(122, 124)에 의해 생성된 일반적인 또는 럼블 햅틱 효과들과 구별할 수 있거나 식별할 수 있다. 예를 들어, 비디오, 오디오 및 햅틱들과 같은 다수의 양상들이 동시에 연관되어 있음에 따라, 총체적인 햅틱 효과들은 사용자에게 게임에 대한 더 큰 집중감을 제공한다. 햅틱들을 생성하도록 구성된 제어기의 추가적인 상세항목들은, 그 전체 내용이 본원에 인용에 의해 포함된, "GAMING DEVICE HAVING A HAPTIC-ENABLED TRIGGER"라는 명칭으로 2014년 4월 22일에 출원된 출원 일련 번호 제14/258,644호에 더 상세하게 기술되어 있다.
도 5는 발명의 실시예에 따른, 시스템에 대한 트리거 햅틱 효과 소프트웨어 스택의 블록도를 예시한다. 트리거 햅틱 효과 소프트웨어 스택은 도 1의 시스템(10)과 같은 시스템 상에 구현된다. 예시된 실시예에서, 시스템은 후속하는 컴포넌트들, 즉, 디바이스(500), 주변 펌웨어(510), 및 제어기(520)를 포함한다. 디바이스(500)는 개인용 컴퓨터, 태블릿, 스마트폰, 또는 콘솔(예를 들어, 비디오 게임 콘솔)과 같은, 임의의 타입의 컴퓨터 디바이스일 수 있다. 주변 펌웨어(510)는 디바이스(500)에 동작적으로 접속될 수 있는 하나 이상의 주변 디바이스들(예를 들어, 제어기들)에 대한 펌웨어이다. 제어기(520)는 디바이스(500)에 동작적으로 접속된 주변장치의 예이다. 제어기(520)는 비디오 게임 제어기일 수 있다. 일 실시예에서, 제어기(520)는 도 1의 제어기(30) 및 도 2, 3 및 4의 제어기(100)와 동일할 수 있다.
디바이스(500)는 게임 입력 관리 코드(501)를 포함한다. 게임 입력 관리 코드(501)는 디바이스(500) 내에서 실행되는 게임 애플리케이션, 또는 다른 타입의 애플리케이션의 상황에서 제어기(520)에 의해 제공된 입력을 관리하는 컴퓨터-판독가능한 명령들의 세트를 포함한다. 디바이스(500)는 주변 입력 응용 프로그래밍 인터페이스("API")(502)를 더 포함한다. 주변 입력 API(502)는 제어기(520)에 의해 제공되는 입력을 수신하고 관리하기 위해 게임 입력 관리 코드(501)가 주변 펌웨어(510)와 상호작용하게 하는 컴퓨터-판독가능한 기능들 또는 루틴들의 세트를 포함한다. 디바이스(500)는 럼블 API(503)를 더 포함한다. 럼블 API는 제어기(520)의 하나 이상의 럼블 모터들 또는 럼블 액츄에이터들(예를 들어, 도 5에 예시된 바와 같은 럼블 모터들 L 및 R)에 럼블 명령들을 전송하기 위해 게임 입력 관리 코드(501)가 주변 펌웨어(510)와 상호작용하게 하는 컴퓨터-판독가능한 기능들 또는 루틴들의 세트를 포함한다. 럼블 명령은 제어기(520)의 럼블 모터 또는 럼블 액츄에이터가 일반적인 또는 럼블 햅틱 효과를 생성하게 할 수 있다.
디바이스(500)는 트리거 햅틱 효과 API(504)("API"로서 도 5에 식별됨)를 더 포함한다. 트리거 햅틱 효과 API(504)는 게임 입력 관리 코드(501)에 노출되어 있으며 제어기(520)에 햅틱 명령들을, 예를 들어, 제어기들(520)의 하나 이상의 트리거들(예를 들어, 도 5에 예시되어 있는 바와 같은 트리거들 L 및 R)에 트리거 명령들을 전송하기 위해 게임 입력 관리 코드(501)가 주변 펌웨어(510)와 상호작용하게 하는 컴퓨터-판독가능한 기능들 또는 루틴들의 세트를 포함한다. 햅틱 명령은 제어기(520)의 하나 이상의 타겟화된 모터들 또는 타겟화된 액츄에이터들이 제어기들(520)의 하나 이상의 사용자 입력 엘리먼트들에서 햅틱 효과를 생성하게 할 수 있다. 트리거 명령은 제어기(520)의 하나 이상의 타겟화된 모터들 또는 타겟화된 액츄에이터들(예를 들어, 도 5에 예시된 바와 같은 모터들 L 및 R)이 제어기들(520)의 하나 이상의 트리거들(예를 들어, 도 5에 예시된 바와 같은 트리거들 L 및 R)에서 트리거 햅틱 효과를 생성하게 할 수 있는 특정 타입의 햅틱 명령이다. 트리거 햅틱 효과는 제어기(520)와 같은 제어기의 트리거에서 경험되는 특정 타입의 햅틱 효과이다. 트리거 햅틱 효과 API(504)는, 하나 이상의 트리거 햅틱 효과 정의들을 저장할 수 있다. 햅틱 효과 정의는 미리-정의되어 있으며 햅틱 파일 또는 햅틱 스트림과 같은 스토리지 내에 저장될 수 있고, 하나 이상의 럼블 모터들, 럼블 액츄에이터들, 타겟화된 모터들 또는 타겟화된 액츄에이터들에 송신되어 제어기(520)의 컴포넌트 또는 사용자 입력 엘리먼트에서 햅틱 효과를 생성할 수 있는, 햅틱 신호와 같은 햅틱 데이터를 포함하는 데이터 구조이다. 햅틱 데이터는 대응하는 햅틱 효과의 하나 이상의 속성들을 포함할 수 있고, 속성들은 파라미터들로서 저장될 수 있다. 햅틱 효과 정의의 예시적인 파라미터들은 진폭 파라미터, 주파수 파라미터, 파형 파라미터, 포락선 파라미터, 크기(또는 강도) 파라미터, 및 듀레이션 파라미터를 포함한다. 트리거 햅틱 효과 정의는 제어기(520)의 하나 이상의 모터들 또는 액츄에이터들(예를 들어, 도 5에 예시된 바와 같은 모터들 L 및 R)에 송신되어 제어기(520)의 하나 이상의 트리거들(예를 들어, 도 5에 예시된 바와 같은 트리거들 L 및 R)에서 트리거 햅틱 효과를 생성하게 할 수 있는 특정 타입의 햅틱 효과 정의이다.
실시예에 따르면, 트리거 햅틱 효과 API(504)는 게임 입력 관리 코드(501)가 직접 재생/크로스오버(505), 트리거 엔진(506) 및 공간화 엔진(507)과 상호작용할 수 있게 하고, 게임 입력 관리 코드(501)에 의해 호출된 요청들에 따라 직접 재생/크로스오버(505), 트리거 엔진(506) 및 공간화 엔진(507)을 추가로 관리할 수 있다. 또한, 트리거 햅틱 효과 API(504)는 주변 펌웨어(510)와의 통신을 위해 요구되고, 하나 이상의 트리거 햅틱 효과들의 생성을 위해 요구되는 데이터를 저장할 수 있다. 대안적인 실시예에서, 트리거 햅틱 효과 API(504)는 디바이스(500)보다는 주변 펌웨어(510) 내에 위치할 수 있다. 트리거 햅틱 효과 API(504)는 추가로 도 16과 함께 더욱 상세하게 하기에 기술되어 있다.
디바이스(500)는 직접 재생/크로스오버(505)를 더 포함한다. 직접 재생/크로스오버(505)는 입력으로서 햅틱 데이터를 수신하고, 출력으로서 햅틱 데이터를 생성하고, 햅틱 데이터를 제어기(520)의 하나 이상의 타겟화된 모터들 또는 타겟화된 액츄에이터들(예를 들어, 도 5에 예시된 바와 같은 모터들 L 및 R)에 전송한다. 특정 실시예들에서, 직접 재생/크로스오버(505)는, 입력 햅틱 데이터의 포맷을 수정하지 않고, 입력 햅틱 데이터를 직접 출력할 수 있다. 이것은 입력 햅틱 데이터의 "그대로" 재생을 초래한다. 다른 실시예들에서, 직접 재생/크로스오버(505)는 제1 포맷으로부터 제2 포맷으로 입력되는 햅틱 데이터를 전환할 수 있고, 전환된 햅틱 데이터를 추가로 출력할 수 있다. 재생 타입에 따라, 직접 재생/크로스오버(505)는 햅틱 데이터를 전환하기 위해 프로그래밍가능한 크로스오버를 선택적으로 사용할 수 있다. 햅틱 데이터를 전환함으로써, 디바이스(500)는 햅틱 효과를 "해체"하고, 다수의 액츄에이터들에서 햅틱 효과를 충실하게 재생할 수 있다. 일 실시예에서, 햅틱 데이터의 포맷은 햅틱 엘리멘트리 스트림("HES") 포맷일 수 있다. HES 포맷은 디바이스로 스트리밍될 수 있는 햅틱 데이터를 표현하기 위한 파일 또는 데이터 포맷이다. 햅틱 데이터는, HES 포맷 내에서 암호화될 수 있더라도, 비압축 사운가 표현되는 방식과 동일하거나 유사한 방식으로 표현될 수 있다. 따라서, 햅틱 데이터는 햅틱 파일 또는 햅틱 스트림에 저장될 수 있고, 여기서, 햅틱 파일 또는 햅틱 스트림의 포맷은 HES 포맷이다. 다시 말해, HES 포맷은 햅틱 포맷으로 햅틱 데이터를 표현하기 위해 햅틱 파일 또는 햅틱 스트림에 의해 사용될 수 있다. 대안적인 실시예에서, 직접 재생/크로스오버(505)는 디바이스(500)보다는 주변 펌웨어(510) 내에 위치할 수 있다. 직접 재생/크로스오버(505)는 추가로 도 7, 8, 9, 10, 11, 12, 및 13와 함께 더욱 상세하게 하기에 기술되어 있다.
디바이스(500)는 트리거 엔진(506)을 더 포함한다. 트리거 엔진(506)은 트리거 햅틱 효과 정의와 같은 햅틱 데이터를 수신할 수 있고, 제어기(520)로부터 수신된 트리거 데이터(예를 들어, 도 5에 예시된 바와 같은 트리거 데이터(513))와 같은 데이터에 기초하여 햅틱 데이터를 수정할 수 있다. 트리거 데이터는 제어기(520)의 하나 이상의 트리거들(예를 들어, 도 5에 예시된 바와 같은 트리거들 L 및 R)의 위치 및/또는 범위를 나타내는 하나 이상의 파라미터들을 포함하는 데이터이다. 트리거 엔진(506)은 제어기(520)에 햅틱 명령들을 추가로 전송할 수 있다. 예를 들어, 트리거 엔진(506)은 제어기(520)의 하나 이상의 트리거들(예를 들어, 도 5에 예시된 바와 같은 트리거들 L 및 R)에 트리거 명령들을 전송할 수 있다. 이전에 기술된 바와 같이, 트리거 명령은 제어기(520)의 하나 이상의 타겟화된 모터들 또는 타겟화된 액츄에이터들(예를 들어, 도 5에 예시된 바와 같은 모터들 L 및 R)이 제어기들(520)의 하나 이상의 트리거들(예를 들어, 도 5에 예시된 바와 같은 트리거들 L 및 R)에서 트리거 햅틱 효과를 생성하게 할 수 있다. 따라서, 일 실시예에서, 트리거 햅틱 효과 정의의 햅틱 데이터를 수정함으로써, 트리거 엔진(506)은 트리거의 위치 및/또는 범위에 기초하여 특정 트리거 햅틱 효과가 트리거에서 경험되도록 할 수 있다. 또 다른 실시예에서, 트리거 햅틱 효과 정의의 햅틱 데이터를 수정함으로써, 트리거 엔진(506)은 트리거의 위치/범위에 기초하여 제어기(520)의 하나 이상의 타겟화된 모터들 또는 타겟화된 액츄에이터들(예를 들어, 도 5에 예시된 바와 같은 모터들 L 및 R)에 대한 트리거 햅틱 효과를 스케일링할 수 있다. 트리거 엔진(506)은 트리거 햅틱 효과 정의들과 같은 하나 이상의 햅틱 효과 정의들을 추가로 저장할 수 있다. 대안적인 실시예에서, 트리거 엔진(506)은 디바이스(500) 보다는 주변 펌웨어(510) 내에 위치할 수 있다. 트리거 엔진(506)은 추가로 도 14와 함께 더욱 상세하게 하기에 기술되어 있다.
디바이스(500)는 공간화 엔진(507)("공간화 엔진"으로서 도 5에서 식별됨)을 더 포함한다. 공간화 엔진(507)은 트리거 햅틱 효과 정의와 같은 햅틱 데이터를 수신할 수 있고, 공간화 데이터에 기초하여 햅틱 데이터를 수정할 수 있다. 공간화 데이터는 트리거 햅틱 효과와 같은 햅틱 효과의 원하는 방향 및/또는 흐름을 나타내는 데이터를 포함할 수 있다. 특정 실시예들에서, 공간화 엔진(507)은 게임 입력 관리 코드(501)로부터의 방향 및/또는 흐름을 포함하는 공간화 데이터를 수신할 수 있다. 또한, 공간화 데이터는 또한 제어기(520)에 위치된 사용자의 하나 이상의 손들의 하나 이상의 위치들을 포함할 수 있다. 특정 실시예들에서, 공간화 엔진(507)은 제어기(520)로부터 하나 이상의 손 위치들을 포함하는 공간화 데이터를 수신할 수 있다. 또한, 특정 실시예에서, 공간화 엔진(507)은 게임 입력 관리 코드(501)에 의해 통신된 바에 따른 게임 애플리케이션 내 사용자의 캐릭터의 위치를 포함하는 공간화 데이터를 수신할 수 있다.
실시예에 따르면, 공간화 엔진(507)은 햅틱 데이터를 수정할 수 있고, 따라서, 트리거 햅틱 효과와 같은 햅틱 효과는 제어기(520)의 하나 이상의 럼블 모터들, 또는 럼블 액츄에이터들(예를 들어, 도 5에 예시된 바와 같은 럼블 모터들 L 및 R)에 대해 스케일링되고, 햅틱 효과는 또한 제어기(520)의 하나 이상의 타겟화된 모터들 또는 타겟화된 액츄에이터들(예를 들어, 도 5에 예시된 바와 같은 모터들 L 및 R)에 대해 스케일링된다. 다시 말해, 공간화 엔진(507)은, 전체 햅틱 효과의 방향 및 흐름의 느낌을 전달하기 위해, 각각의 모터 또는 액츄에이터에 송신된 햅틱 데이터를 수정하고, 따라서, 각각의 모터 또는 액츄에이터에서 경험되는 햅틱 효과를 수정할 수 있다. 예를 들어, 모터 또는 액츄에이터에서 경험되는 햅틱 효과를 강조하기 위해, 공간화 엔진(507)은 햅틱 효과의 하나 이상의 부분들을 스케일링할 수 있다. 예를 들어, 공간화 엔진(507)은 햅틱 효과를 경험하게 하는 모터 또는 액츄에이터에 송신된 햅틱 데이터를 스케일링하여, 햅틱 효과가 더욱 두드러지게(예를 들어, 증가한 크기, 듀레이션 등) 할 수 있다. 추가적으로, 공간화 엔진(507)은 다른 모터들 또는 액츄에이터들에 송신된 햅틱 데이터를 스케일링하여, 그 모터들 또는 액츄에이터들에서 경험되는 다른 햅틱 효과들이 덜 두드러지게(예를 들어, 감소한 크기, 듀레이션 등) 할 수 있다. 특정 실시예들에서, 공간화 엔진(507)은 실시간으로 햅틱 데이터를 수정할 수 있다. 또한, 특정 실시예들에서, 공간화 엔진(507)은 전체 트리거 햅틱 효과를 과장하기 위해, 입력들과 모터 또는 액츄에이터 사이의 비-선형적 관계들을 가질 수 있다. 대안적인 실시예에서, 공간화 엔진(507)은 디바이스(500)보다는 주변 펌웨어(510) 내에 위치할 수 있다. 공간화 엔진(507)은 추가로 도 15, 32 및 33과 함께 더욱 상세하게 하기에 기술되어 있다.
디바이스(500)는 인코더(508)를 더 포함한다. 인코더(508)는 직접 재생/크로스오버(505), 트리거 엔진(506), 및/또는 공간화 엔진(507)으로부터 수신된 햅틱 데이터를 한 포맷으로 인코딩한다. 일 실시예에서, 포맷은 HES 오디오 포맷일 수 있다. 인코더(508)는 추가로 인코딩된 햅틱 데이터를 주변 펌웨어(510)로 전송한다.
주변 펌웨어(510)는 디코더 및 크로스오버(511)를 포함한다. 디코더 및 크로스오버(511)는 인코더(508)로부터 인코딩된 햅틱 데이터를 수신하여 인코딩된 햅틱 데이터를 디코딩한다. 특정 실시예들에서, 디코더 및 크로스오버(511)는 인코딩된 햅틱 데이터를 디코딩하기 위해 프로그래밍가능한 크로스오버를 계산한다. 이들 실시예들 중 일부에서, 디코더 및 크로스오버(511)는 실시간으로 프로그래밍가능한 크로스오버를 계산한다. 주변 펌웨어(510)는 트리거 제어(512)를 더 포함한다. 트리거 제어(512)는 제어기(520)의 하나 이상의 타겟화된 모터들 또는 타겟화된 액츄에이터들(예를 들어, 도 5에 예시된 바와 같은 모터들 L 및 R)에 대한 저-레벨 제어 API이다. 트리거 제어(512)는 디바이스(500)로부터 트리거 명령을 수신할 수 있고, 트리거 명령을 제어기(520)의 특정된 타겟화된 모터 또는 타겟화된 액츄에이터에 대한 저-레벨 트리거 명령으로 전환할 수 있고, 제어기(520)의 특정된 타겟화된 모터 또는 타겟화된 액츄에이터에 저-레벨 트리거 명령을 전송할 수 있다. 저-레벨 트리거 명령은 특정된 타겟화된 모터 또는 타겟화된 액츄에이터가 제어기(520)의 특정된 트리거에서 트리거 햅틱 효과를 생성하게 할 수 있다.
주변 펌웨어(510)는 트리거 데이터(513)를 더 포함한다. 트리거 데이터(513)는, 이전에 기술된 바와 같이, 제어기(520)의 하나 이상의 트리거들(예를 들어, 도 5에 예시된 바와 같은 트리거들 L 및 R)의 위치 및/또는 범위를 나타내는 하나 이상의 파라미터들과 같은, 하나 이상의 파라미터들을 포함하는 데이터이다. 트리거 데이터(513)는 주변 펌웨어(510)에 의해 제어기(520)로부터 수신될 수 있다. 주변 펌웨어(510)는 추가로 트리거 데이터(513)를 저장할 수 있고, 추가로 트리거 데이터(513)를 디바이스(500)에 전송할 수 있다. 주변 펌웨어(510)는 주변 펌웨어(510)에 의해 관리될 수 있는 제어기(520)의 기능들인, 다른 게임패드 기능들(514)을 더 포함한다. 이러한 기능들은 유선/무선 통신들, 입력 보고, 프로토콜 실행, 전력 관리 등을 포함할 수 있다. 주변 펌웨어(510)는 럼블 제어(515)를 더 포함한다. 럼블 제어(515)는 제어기(520)의 하나 이상의 럼블 모터들 또는 럼블 액츄에이터들(예를 들어, 도 5에 예시된 바와 같은 럼블 모터들 L 및 R)에 대한 저-레벨 제어 API이다. 럼블 제어(515)는 디바이스(500)로부터 럼블 명령을 수신할 수 있고, 럼블 명령을 제어기(520)의 특정된 럼블 모터 또는 럼블 액츄에이터에 대한 저-레벨 럼블 명령으로 전환할 수 있고, 저-레벨 트리거 명령을 제어기(520)의 특정된 럼블 모터 또는 럼블 액츄에이터에 전송할 수 있다.
제어기(520)는 트리거들 L 및 R을 포함한다. 제어기(520)는 기어 박스들 L 및 R과 모터들 L 및 R을 더 포함한다. 모터 L 및 기어박스 L은 제어기(520) 내에서 트리거 L에 동작적으로 결합되어 있다. 마찬가지로, 모터 R 및 기어박스 R은 제어기(520) 내에서 트리거 R에 동작적으로 결합되어 있다. 모터 L가 트리거 명령을 수신할 때, 모터 L 및 기어박스 L은 총체적으로 트리거 햅틱 효과가 트리거 L에서 경험되게 한다. 마찬가지로, 모터 R이 트리거 명령을 수신할 때, 모터 R 및 기어박스 R은 총체적으로 트리거 햅틱 효과가 트리거 R에서 경험되게 한다. 실시예에 따르면, 주변 펌웨어(510)는 구동 전자기기(530)를 사용하여 제어기(520)의 모터들 L 및 R에 트리거 명령들을 송신한다. 제어기(520)는 전위차계 L 및 R을 더 포함한다. 전위차계 L은 트리거 L의 위치 및/또는 범위를 검출할 수 있고, 추가로 검출된 트리거 L의 위치 및/또는 범위를 트리거 데이터로서 주변 폄웨어(510)에 송신할 수 있다. 마찬가지로, 전위차계 R은 트리거 R의 위치 및/또는 범위를 검출할 수 있고, 추가로 검출된 트리거 R의 위치 및/또는 범위를 트리거 데이터로서 주변 폄웨어(510)에 송신할 수 있다. 일 실시예에서, 전위차계들 L 및 R은 각각 홀 효과 센서와 같은 또 다른 타입의 위치 센서로 대체될 수 있다. 제어기(520)는 럼블 모터들 L 및 R을 더 포함한다. 럼블 모터 L이 럼블 명령을 수신할 때, 럼블 모터 L은 햅틱 효과가 제어기(520)의 좌측 바디를 따라 경험되게 한다. 마찬가지로, 럼블 모터 R이 럼블 명령을 수신할 때, 럼블 모터 R은 햅틱 효과가 제어기(520)의 우측 바디를 따라 경험되게 한다. 실시예에 따르면, 주변 펌웨어(510)는 럼블 구동 전자기기(530)를 사용하여 제어기(520)의 럼블 모터들 L 및 R에 럼블 명령들을 송신한다.
대안적인 실시예에서, 하나 이상의 타겟화된 모터들 또는 타겟화된 액츄에이터들은 제어기(520)의 하나 이상의 입력 엘리먼트들(예를 들어, 하나 이상의 디지털 버튼들, 하나 이상의 아날로그 버튼들, 하나 이상의 범퍼들, 하나 이상의 방향 패드들, 하나 이상의 아날로그 또는 디지털 스틱들, 하나 이상의 드라이빙 휠들)에 동작적으로 결합될 수 있다. 대안적인 실시예에 따르면, 주변 펌웨어(510)는 하나 이상의 타겟화된 모터들 또는 타겟화된 액츄에이터들에 명령들을 송신하여, 하나 이상의 타겟화된 모터들 또는 타겟화된 액츄에이터들이 제어기(520)의 하나 이상의 사용자 입력 엘리먼트들에서 경험되는 햅틱 효과들을 생성하게 할 수 있다.
발명의 실시예에 따르면, 도 6은 트리거 햅틱 효과를 설계하기 위한 예시적인 사용자 인터페이스(600)를 예시한다. 시스템(예를 들어, 도 1의 시스템(10))은 트리거 햅틱 효과를 설계하기 위한 전용 툴로서 사용자에게 사용자 인터페이스(600)를 제공할 수 있다. 이 실시예에서, 사용자는, 기존의 트리거 햅틱 효과 정의를 수정하는 옵션을 가지고, 기존의 트리거 햅틱 효과 정의에 기초하여 트리거 햅틱 효과를 설계할 수 있다. 실시예에 따르면, 사용자 인터페이스(600)는 효과 프리셋들(610)을 포함한다. 효과 프리셋들(610)은 트리거 햅틱 효과 프리셋들과 같은 하나 이상의 햅틱 효과 프리셋들 중 하나를 디스플레이할 수 있다. 햅틱 효과 프리셋은 미리-정의된 햅틱 효과를 생성하는 임의의 형상 및/또는 형태의 미리-정의된 햅틱 효과 정의이다. 햅틱 효과 프리셋은 햅틱 파일 또는 햅틱 스트림 내에 저장될 수 있다. 일 실시예에서, 햅틱 파일 또는 햅틱 스트림의 포맷은 HES 포맷일 수 있다. 트리거 햅틱 효과 프리셋은 미리-정의된 트리거 햅틱 효과를 생성하는 특정 타입의 햅틱 효과 프리셋이다. 사용자 인터페이스(600)는 편집 영역(620)을 더 포함한다. 실시예에 따르면, 사용자는 효과 프리셋들(610) 내에 디스플레이된 햅틱 효과 프리셋을 선택할 수 있고, 편집 영역(620)은 선택된 햅틱 효과 프리셋에 의해 표현되는 햅틱 효과 정의의 그래픽적 표현을 디스플레이할 수 있다. 또한, 사용자는 편집 영역(620) 내의 하나 이상의 디스플레이 엘리먼트들(예를 들어, 버튼들)과 상호작용함으로써, 선택된 햅틱 효과 정의의 하나 이상의 파라미터들을 수정할 수 있다. 햅틱 효과 정의의 하나 이상의 파라미터들을 수정함으로써, 대응하는 햅틱 효과의 하나 이상의 대응하는 속성들을 수정할 수 있다. 수정될 수 있는 햅틱 효과 정의의 예시적인 파라미터들은 진폭 파라미터, 주파수 파라미터, 파형 파라미터, 포락선 파라미터, 크기(또는 강도) 파라미터, 및 듀레이션 파라미터를 포함한다.
사용자 인터페이스(600)는 효과 정의들(630)을 더 포함한다. 실시예에 따르면, 사용자는 수정된 햅틱 효과 정의를 새로운 햅틱 효과 정의로서 저장할 수 있고, 새로운 햅틱 효과 정의는 효과 정의들(630) 내에 디스플레이된다. 새로운 햅틱 효과 정의는 햅틱 파일 또는 햅틱 스트림 내에 저장될 수 있다. 일 실시예에서, 햅틱 파일 또는 햅틱 스트림의 포맷은 HES 포맷일 수 있다. 새로운 햅틱 효과 정의는 추가로 외부 햅틱 파일 또는 외부 햅틱 스트림에 보내질 수 있다. 사용자 인터페이스(600)는 재생 버튼(640)을 더 포함한다. 재생 버튼(640)과의 상호작용은 시스템이 사용자 인터페이스(600)에 동작적으로 제어될 수 있는 제어기에서의 햅틱 효과를 출력하게 할 수 있다. 햅틱 효과가 트리거 햅틱 효과인 경우, 시스템은 제어기의 트리거에서 트리거 햅틱 효과를 출력할 수 있다. 햅틱 효과는 선택된 미리-정의된 햅틱 효과 정의 또는 선택된 새로운 햅틱 효과 정의일 수 있다.
사용자 인터페이스(600)는 트리거 엔진 영역(650)을 더 포함한다. 트리거 엔진 영역(650)은 트리거 엔진(예를 들어, 도 5의 트리거 엔진(506))에 의해 생성되는 트리거 햅틱 효과를 가시화할 수 있는 편집가능한 시각적 영역이다. 이전에 기술된 바와 같이, 트리거 엔진은 트리거 햅틱 효과 정의를 수신할 수 있고, 제어기의 트리거의 위치 및/또는 범위에 기초하여 트리거 햅틱 효과 정의를 수정할 수 있다. 따라서, 트리거 엔진 영역(650)은 트리거의 실제 위치를 포함한, 트리거의 가시화를 디스플레이할 수 있다. 또한, 트리거 엔진 영역(650)은 트리거 햅틱 효과 정의에 대해 정의된 트리거의 위치 및/또는 범위를 디스플레이할 수 있고, 위치 및/또는 범위는 트리거 엔진이 트리거 햅틱 효과 정의를 수정하게 할 수 있다. 사용자는 트리거 햅틱 효과 정의에 대해 정의된 트리거의 위치 및/또는 범위를 편집할 수 있다. 사용자 인터페이스(600)는 공간화 엔진 영역(660)을 더 포함한다. 공간화 엔진 영역(660)은 원래 트리거 엔진에 의해 생성되고, 공간화 엔진(예를 들어, 도 5의 공간화 엔진(507))에 의해 추가로 수정되는 트리거 햅틱 효과를 가시화할 수 있는 편집가능한 시각적 영역이다. 이전에 기술된 바와 같이, 공간화 엔진은 트리거 햅틱 효과가 제어기의 하나 이상의 타겟화된 모터들, 타겟화된 액츄에이터들, 럼블 모터들, 또는 럼블 액츄에이터들에 대해 스케일링되도록, 트리거 햅틱 효과 정의를 수정할 수 있다. 따라서, 공간화 엔진 영역(660)은 제어기의 가시화를 디스플레이할 수 있다. 공간화 엔진 영역(660)은 제어기의 각각의 타겟화된 모터, 타겟화된 액츄에이터, 럼블 모터, 또는 럼블 액츄에이터에서 경험되는 트리거 햅틱 효과의 가시화를 추가로 디스플레이할 수 있다. 사용자는 제어기의 각각의 타겟화된 모터, 타겟화된 액츄에이터, 럼블 모터, 또는 럼블 액츄에이터에서 경험되는 트리거 햅틱 효과의 스케일링을 편집할 수 있다.
발명의 실시예에 따르면, 도 7은 트리거 햅틱 효과를 설계하기 위해 사용되는 컴포넌트들의 블록도를 예시한다. 이 실시예에서, 시스템(예를 들어, 도 1의 시스템(10))은 (1) 트리거 햅틱 효과를 만들고(즉, 햅틱 효과 정의를 만듦으로써); 또는 (2) 트리거 햅틱 효과를 오디오 효과로서 만들기 위한(즉, 오디오 효과 정의를 만듦으로써) 전용 툴로서 저작 컴포넌트(700)를 제공할 수 있다. 일 실시예에서, 저작 컴포넌트(700)는 Avid Technology, Inc에 의한 "Pro Tools®" 제품일 수 있다. 시스템은 햅틱 효과 정의 또는 오디오 효과 정의를 스트리밍하기 위해 단일-포트 크로스오버 오디오 스트림 입력/출력("ASIO") 드라이버(710) 또는 4-포트 ASIO 드라이버(720)를 추가로 사용할 수 있다. 단일-포트 크로스오버 드라이버(710)는 햅틱 데이터 또는 오디오 데이터의 단일 채널로서 햅틱 효과 정의 또는 오디오 효과 정의를 스트리밍할 수 있다. 반면, 4-포트 ASIO 드라이버(720)는 햅틱 데이터 또는 오디오 데이터의 4개 채널들로서 햅틱 효과 정의 또는 오디오 효과 정의를 스트리밍할 수 있다. 대안적인 실시예에서, 4-포트 ASIO 드라이버(720)는 햅틱 데이터 또는 오디오 데이터의 6개 또는 8개 채널들과 같은, 햅틱 데이터 또는 오디오 데이터의 임의의 복수의 채널들로서 햅틱 효과 정의 또는 오디오 효과 정의를 스트리밍하는 또 다른 드라이버로 대체될 수 있다. 사용자가 오디오 효과 정의를 만드는 실시예에서, 단일-포트 크로스오버 ASIO 드라이버(710) 또는 4-포트 ASIO 드라이버(720)는 또한 오디오 효과 정의를 햅틱 효과 정의로 전환할 수 있다. 시스템은 추가로 오디오 효과 정의 또는 햅틱 효과 정의를 HES 포맷과 같은 외부 포맷으로 인코딩하기 위해 HES 인코더(730)를 사용할 수 있다. 시스템이 단일-포트 크로스오버 드라이버(710)를 사용하여 햅틱 데이터 또는 오디오 데이터의 단일 채널로서 오디오 효과 정의 또는 햅틱 효과 정의를 스트리밍하는 경우, HES 인코더(730)는 크로스오버 입력 와프(crossover input warp) 알고리즘을 적용하여, 햅틱 데이터 또는 오디오 데이터를 3개의 상이한 출력들(예를 들어, (1) 저-주파수 럼블 모터 또는 럼블 액츄에이터; (2) 중간-주파수 럼블 모터 또는 럼블 액츄에이터; 또는 (3) 고-주파수 럼블 모터 또는 럼블 액츄에이터)에 맵핑될 수 있는 3개의 상이한 대역들로 분리할 수 있다.
크로스오버 입력 와프 알고리즘은, 디바이스 자체에 위치하거나 통신 링크 반대측에 위치하면서, 디바이스와 상이한 프로세서 상에서 실행될 수 있다. 또한, 크로스오버 입력 와프 알고리즘은 입력 데이터(햅틱 또는 오디오)를 2개의 대역으로 분리시킬 수 있는데, 저주파수는 분리된 후에 하나 이상의 액츄에이터 출력에 적용되기 전에 또한 선택적으로 변환되고, 고주파수는 분리된 후 저주파수로 분리된 데이터에 사용된 액츄에이터와는 다른 다수의 액츄에이터에 적용되기 전에 선택적으로 변환된다. 이러한 데이터 분리 형태는 임의의 수의 주파수 대역 및 액츄에이터 출력에 있어서 발생할 수 있다. 대안적인 실시예에서, 입력 데이터(오디오 또는 햅틱)는 다수의 중첩 주파수 영역으로 분리된 후, 각각이 선택적으로 변환되어 다수의 출력 액츄에이터에 적용될 수 있다. 다른 실시예의 세트는 다수의 신호 강도 대역을 생성하고, 입력 데이터(오디오 또는 햅틱)가 출력 전력 또는 강도에 따라(피크 검출, RMS 계산 등을 통하여) 분리될 수 있고, 이렇게 분리된 데이터 스트림이 각각 하나 이상의 상이한 액츄에이터 세트에 적용된다. 대안적인 실시예에서, 입력 데이터(오디오 또는 햅틱)가 출력 전력 또는 강도에 따(피크 검출, RMS 계산 등을 통하여)라, 완전히 상이한 스트림이 아니라, 상이하지만 중첩되는 데이터 스트림으로 분리될 수 있고, 강도 필터링 알고리즘이 중첩되는 강도 영역을 포착하고, 선택적으로 변형을 적용하여, 각 출력을 다수의 출력 액츄에이터에 적용한다.
시스템은 제어기(750)에 위치하는 휴먼 인터페이스 디바이스("HID") 해석기(740)에 인코딩된 오디오 효과 정의를 추가로 송신할 수 있다. HID 해석기(740)는 제어기(750)의 트리거에서 트리거 햅틱 효과를 제공하기 위해 인코딩된 오디오 효과 정의 또는 인코딩된 햅틱 효과 정의를 수신하고 해석한다. 일 실시예에서, 시스템은 추가로, 시스템이 제어기(750)의 HID 해석기(740)에 인코딩된 오디오 효과 정의 또는 인코딩된 햅틱 효과 정의를 송신하기 이전에, 트리거 엔진(예를 들어, 도 5의 트리거 엔진(506)) 및/또는 공간화 엔진(예를 들어, 도 5의 공간화 엔진(507))을 사용하여 인코딩된 오디오 효과 정의 또는 인코딩된 햅틱 효과 정의를 수정할 수 있다.
발명의 실시예에 따르면, 도 8은 트리거 햅틱 효과를 만들기 위해 사용되는 컴포넌트들의 블록도, 및 트리거 햅틱 효과를 저장하기 위해 사용되는 컴포넌트들의 블록도를 예시한다. 이 실시예에서, 시스템(예를 들어, 도 1의 시스템(10))은 트리거 햅틱 효과를 오디오 효과로서 만들기 위한(즉, 오디오 효과 정의를 만듦으로써) 전용 툴로서 오디오 저작 컴포넌트(800)를 제공할 수 있다. 일 실시예에서, 오디오 저작 컴포넌트(800)는 Avid Technology, Inc에 의한 "Pro Tools®" 제품일 수 있다.
시스템의 사용자가 오디오 저작 컴포넌트(800)를 사용하여 트리거 햅틱 효과를 만들면, 사용자는 트리거 햅틱 효과를 미리 볼 수 있다. 미리보기 기능은 트리거 햅틱 효과에 대한 추가적인 커스터마이제이션(customization)을 허용할 수 있다. 트리거 햅틱 효과를 미리 볼 때, 시스템은 만들어진 오디오 효과 정의를 4-채널 출력 드라이버(801)에 송신할 수 있고, 4-채널 출력 드라이버(801)는 오디오 효과 정의를 오디오 데이터의 4개 채널들로서 스트리밍할 수 있다. 일 실시예에서, 4-채널 출력 드라이버(801)는 4-채널 ASIO 출력 드라이버일 수 있다. 대안적인 실시예에서, 4-채널 출력 드라이버(801)는 오디오 데이터의 6개 또는 8개 채널들과 같은, 오디오 데이터의 임의의 복수의 채널들로서 오디오 효과 정의를 스트리밍하는 또 다른 드라이버로 대체될 수 있다.
또한, 시스템은 오디오 스트림을 오디오-대-햅틱 컨버터(802)에 송신할 수 있고, 오디오-대-햅틱 컨버터(802)는 햅틱 전환 알고리즘을 사용하여 오디오 스트림의 오디오 효과 정의를 햅틱 효과 정의로 전환할 수 있다. 일 실시예에서, 모터 또는 액츄에이터에 대응하는 오디오 효과 정의의 각각의 별도의 채널은 햅틱 효과 정의의 채널로 전환될 수 있다. 예시적인 햅틱 전환 알고리즘들은 후속하는 특허들 또는 특허 출원들(이들 모두는 그 전체가 인용에 의해 본원에 포함됨), 즉 미국 특허번호 제7,979,146호; 미국 특허번호 제8,000,825호; 미국 특허번호 제8,378,964호; 미국 특허 출원공개번호 제2011/0202155호; 미국 특허 출원공개번호 제2011/0215913호; 미국 특허 출원공개번호 제2012/0206246호; 미국 특허 출원공개번호 제2012/0206247호; 미국 특허 출원공개번호 제2013/0265286호; 미국 특허 출원공개번호 제2013/0131851호; 미국 특허 출원공개번호 제2013/0207917호; 미국 특허 출원공개번호 제2013/0335209호; 미국 특허 출원공개번호 제2014/0064516호; 미국 특허 출원 일련번호 제13/661,140호; 미국 특허 출원 일련번호 제13/785,166호; 미국 특허 출원 일련번호 제13/788,487호; 미국 특허 출원 일련번호 제14/078,438호; 미국 특허 출원 일련번호 제14/078,442호; 미국 특허 출원 일련번호 제14/078,445호; 미국 특허 출원 일련번호 제14/051,933호; 미국 특허 출원 일련번호 제14/020,461호; 미국 특허 출원 일련번호 제14/020,502호; 미국 특허 출원 일련번호 제14/277,870호; 및 미국 특허 출원 일련번호 제14/467,184호에 기술되어 있다.
시스템은 추가로 전환된 햅틱 효과 정의를 HES 멀티-채널 인코더(803)에 송신할 수 있고, 멀티-채널 인코더(803)는 전환된 햅틱 효과 정의를 HES 포맷과 같은 외부 포맷으로 인코딩할 수 있다. 시스템은 추가로 인코딩되고 전환된 햅틱 효과 정의를 제어기(805)에 위치하는 트리거 제어기 인터페이스("I/F")(804)에 송신할 수 있다. 트리거 제어기 I/F(804)는 제어기(805)의 트리거에서 만들어진 트리거 햅틱 효과를 미리보기 위해 인코딩되고 전환된 햅틱 효과 정의를 수신하고 해석할 수 있다.
이 실시예에서, 시스템은 오디오 저작 컴포넌트(810)를 제공할 수 있고, 오디오 저작 컴포넌트(810)는 오디오 저작 컴포넌트(800)와 동일하다. 시스템의 사용자가 오디오 저작 컴포넌트(810)를 사용하여 트리거 햅틱 효과를 만들면, 사용자는 트리거 햅틱 효과를 저장할 수 있다. 트리거 햅틱 효과를 저장할 시에, 시스템은 오디오 효과 정의를 별도의 오디오 파일들(811)로서 보낼 수 있다. 오디오 효과 정의가 4개 채널들을 포함하는 하나의 실시예에서, 오디오 파일들(811)은 4개의 오디오 파일들을 포함할 수 있다. 오디오 효과 정의가 또 다른 개수의 채널들을 포함하는 대안적인 실시예에서, 오디오 파일들(811)은 해당 개수의 별도의 오디오 파일들을 포함할 수 있다. 특정 실시예들에서, 오디오 파일들(811)은 파형 오디오 파일("WAV") 포맷일 수 있다. 시스템은 추가로 오디오 파일들(811)을 HES 인코더 그래픽 사용자 인터페이스("GUI")(812)에 송신할 수 있고, HES 인코더 GUI(812)는 오디오 파일들(811)을 단일 오디오 파일로 인코딩할 수 있다. 일 실시예에서, 오디오 파일은 HES 포맷일 수 있다. 또한, 시스템은 오디오 파일을 오디오-대-햅틱 컨버터(813)에 송신할 수 있고, 오디오-대-햅틱 컨버터(813)는 햅틱 전환 알고리즘을 사용하여 오디오 파일의 오디오 효과 정의를 햅틱 효과 정의로 전환할 수 있다. 일 실시예에서, 모터 또는 액츄에이터에 대응하는 오디오 효과 정의의 각각의 별도의 채널은 햅틱 효과 정의의 채널로 전환될 수 있다. 시스템은 추가로 전환된 햅틱 효과 정의를 HES 멀티-채널 인코더(814)에 송신할 수 있고, 멀티-채널 인코더(814)는 전환된 햅틱 효과 정의를 HES 포맷과 같은 외부 포맷으로 인코딩할 수 있다. 시스템은 추가로 인코딩되고 전환된 햅틱 효과 정의를 햅틱 파일(815) 내에 저장할 수 있다. 일 실시예에서, 햅틱 파일(815)은 HES 파일일 수 있다.
발명의 실시예에 따르면, 도 9는 크로스오버 재생을 위한 트리거 햅틱 효과를 만들기 위해 사용되는 컴포넌트의 블록도, 및 트리거 햅틱 효과를 저장하기 위해 사용되는 컴포넌트들의 블록도를 예시한다. 이 실시예에서, 시스템(예를 들어, 도 1의 시스템(10))은 트리거 햅틱 효과를 오디오 효과로서 만들기 위한(즉, 오디오 효과 정의를 만듦으로써) 전용 툴로서 오디오 저작 컴포넌트(900)를 제공할 수 있다.
시스템의 사용자가 오디오 저작 컴포넌트(900)를 사용하여 트리거 햅틱 효과를 만들었다면, 사용자는 트리거 햅틱 효과를 미리 볼 수 있다. 트리거 햅틱 효과를 미리볼 때, 시스템은 만들어진 오디오 효과 정의를 단일-채널 출력 드라이버(901)에 송신할 수 있고, 단일-채널 출력 드라이버(901)는 오디오 효과 정의를 오디오 데이터의 단일 채널로서 스트리밍할 수 있다. 일 실시예에서, 단일-채널 출력 드라이버(901)는 단일-채널 ASIO 출력 드라이버일 수 있다. 또한, 시스템은 오디오 스트림을 오디오-대-햅틱 컨버터(902)에 송신할 수 있고, 오디오-대-햅틱 컨버터(902)는 햅틱 전환 알고리즘을 사용하여 오디오 스트림의 오디오 효과 정의를 햅틱 효과 정의로 전환할 수 있다. 일 실시예에서, 모터 또는 액츄에이터에 대응하는 오디오 효과 정의의 각각의 별도의 채널은 햅틱 효과 정의의 채널로 전환될 수 있다. 추가로, 시스템은 전환된 햅틱 효과 정의를 크로스오버 GUI(905)에 송신할 수 있고, 크로스오버 GUI(905)는 크로스오버 입력 와프 알고리즘을 적용하여 전환된 햅틱 효과 정의를 3개의 상이한 출력들(예를 들어, (1) 저-주파수 럼블 모터 또는 럼블 액츄에이터; (2) 중간-주파수 럼블 모터 또는 럼블 액츄에이터; 또는 (3) 고-주파수 타겟화된 모터 또는 타겟화된 액츄에이터)에 맵핑될 수 있는 3개의 상이한 채널들로 분리할 수 있다.
시스템은 추가로 HES 멀티-채널 인코더(903)에 전환된 햅틱 효과 정의를 송신할 수 있고, 멀티-채널 인코더(903)는 전환된 햅틱 효과 정의를 HES 포맷과 같은 외부 포맷으로 인코딩할 수 있다. 시스템은 추가로 제어기(906) 상에 위치하는 트리거 제어기 I/F(904)에 인코딩되고 전환된 햅틱 효과 정의를 송신할 수 있다. 트리거 제어기 I/F(904)는 제어기(906)의 트리거에서 만들어진 트리거 햅틱 효과를 미리보기 위해 인코딩되고 전환된 햅틱 효과 정의를 수신하고 해석할 수 있다.
이 실시예에서, 시스템은 오디오 저작 컴포넌트(910)를 제공할 수 있고, 오디오 저작 컴포넌트(910)는 오디오 저작 컴포넌트(900)와 동일하다. 시스템의 사용자가 오디오 저작 컴포넌트(910)를 사용하여 트리거 햅틱 효과를 만들면, 사용자는 트리거 햅틱 효과를 저장할 수 있다. 트리거 햅틱 효과를 저장할 시에, 시스템은 오디오 효과 정의를 단일 오디오 파일(911)로서 보낼 수 있다. 특정 실시예들에서, 오디오 파일(911)은 WAV 포맷일 수 있다. 시스템은 추가로 크로스오버 설정들(912)을 내보낼 수 있다. 시스템은 추가로 오디오 파일(911)을 HES 인코더 GUI(913)에 송신할 수 있고, HES 인코더 GUI(913)는 오디오 파일(911) 및 크로스오버 설정들(912)을 단일 오디오 파일로 인코딩할 수 있다. 일 실시예에서, 오디오 파일은 HES 포맷일 수 있다. 시스템은 추가로 오디오 파일을 HES 단일-채널 및 크로스오버 인코더(914)에 송신할 수 있고, 단일-채널 및 크로스오버 인코더는 오디오 파일을 HES 포맷과 같은 외부 포맷으로 인코딩할 수 있다. 시스템은 추가로 햅틱 파일(915) 내에 인코딩된 오디오 파일을 저장할 수 있다. 일 실시예에서, 햅틱 파일(915)은 HES 파일일 수 있다.
발명의 실시예에 따르면, 도 10은 트리거 햅틱 효과를 직접 재생하기 위해 사용되는 컴포넌트들의 블록도를 예시한다. 실시예에 따르면, 시스템(예를 들어, 도 1의 시스템(10))은 햅틱 효과 정의를 포함하는 햅틱 파일(1000)을 로딩할 수 있다. 일 실시예에서, 햅틱 파일(1000)은 HES 파일일 수 있다. 실시예에 따르면, 햅틱 파일(1000)에 포함된 햅틱 효과 정의는 4개 채널들을 포함하고, 각각의 채널은 햅틱 효과 정의 내에 포함된 햅틱 데이터의 일부분을 포함한다. 대안적인 실시예에서, 햅틱 파일(1000) 내에 포함된 햅틱 효과 정의는 임의의 복수의 채널들을 포함할 수 있다. 햅틱 효과 정의의 각각의 채널은 타겟화된 모터, 타겟화된 액츄에이터, 럼블 모터, 또는 럼블 액츄에이터와 연관될 수 있다. 예시된 실시예에서, 제1 채널(즉, "채널 LR")은 낮은 럼블 모터와 연관되고, 제2 채널(즉 "채널 MR")은 중간 럼블 모터와 연관되고, 제3 채널(즉 "채널 LT")은 좌측 트리거에 동작적으로 결합된 모터와 연관되고, 제4 채널(즉 "채널 RT")은 우측 트리거에 동작적으로 결합된 타겟화된 모터와 연관된다. 일 실시예에서, 햅틱 파일(1000) 내에 포함된 햅틱 효과 정의는 재생 속도 및 재생 레이트 제어를 정의할 수 있다.
실시예에 따르면, 시스템은 햅틱 파일(1000) 내에 포함된 햅틱 효과 정의의 4개 채널들을 강도 제어(1010)에 송신할 수 있고, 강도 제어(1010)는 햅틱 효과 정의의 각각의 채널 내에 포함된 햅틱 데이터의 강도 또는 크기를 수정할 수 있다. 시스템은 이후 햅틱 효과 정의의 4개 채널들을 앞/뒤("F/B") 공간화(1020)에 송신할 수 있고, F/B 공간화(1020)는 공간화 데이터에 기초하여 햅틱 효과 정의의 각각의 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 공간화 데이터는 햅틱 효과의 방향 및/또는 흐름을 포함할 수 있다. 일 실시예에서, 햅틱 효과의 방향 및/또는 흐름은 앞쪽 또는 뒤쪽 방향일 수 있다. 또한, 공간화 데이터는 하나 이상의 손 위치들을 포함할 수 있다. 실시예에 따르면, F/B 공간화(1020)는 햅틱 효과가 각각의 모터 또는 액츄에이터에 대해 스케일링되도록 각각의 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 시스템은 이후 채널 LR을 낮은 럼블 모터(1030)("LowR 모터"로서 도 10에 식별됨)에 송신할 수 있고, 추가로 채널 MR을 중간 럼블 모터(1040)("MidR 모터"로서 도 10에 식별됨)에 송신할 수 있다. 채널 LR 내에 포함된 햅틱 데이터는 낮은 럼블 모터(1030)가 일반적인 또는 럼블 햅틱 효과를 생성하게 할 수 있고, 채널 MR 내에 포함된 햅틱 데이터는 중간 럼블 모터(1040)가 일반적인 또는 럼블 햅틱 효과를 생성하게 할 수 있다.
시스템은 추가로 채널들 LT 및 RT를 좌측/우측("L/R") 공간화(1050)에 송신할 수 있고, L/R 공간화(1050)는 공간화 데이터에 기초하여 채널들 LT 및 RT 내에 포함된 햅틱 데이터를 수정할 수 있다. 공간화 데이터는 햅틱 효과의 방향 및/또는 흐름을 포함할 수 있다. 일 실시예에서, 햅틱 효과의 방향 및/또는 흐름은 좌측 또는 우측 방향일 수 있다. 또한, 공간화 데이터는 하나 이상의 손 위치들을 포함할 수 있다. 실시예에 따르면, L/R 공간화(1050)는, 햅틱 효과가 각각의 모터 또는 액츄에이터에 대해 스케일링되도록 각각의 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 시스템은 이후 채널 LT를 좌측 트리거 타겟화된 모터(1060)("LT 모터"로서 도 10에 식별됨)에 송신할 수 있고, 추가로 채널 RT을 우측 트리거 타겟화된 모터(1070)("RT 모터"로서 도 10에 식별됨)에 송신할 수 있다. 채널 LT 내에 포함된 햅틱 데이터는 좌측 트리거 타겟화된 모터(1060)가 좌측 트리거에서 트리거 햅틱 효과를 생성하게 할 수 있고, 채널 RT 내에 포함된 햅틱 데이터는 우측 트리거 타겟화된 모터(1070)가 우측 트리거에서 트리거 햅틱 효과를 생성하게 할 수 있다.
발명의 실시예에 따르면, 도 11은 프로그래밍가능한 크로스오버를 사용하여 트리거 햅틱 효과를 재생하기 위해 사용되는 컴포넌트들의 블록도를 예시한다. 실시예에 따르면, 시스템(예를 들어, 도 1의 시스템(10))은 햅틱 효과 정의를 포함하는 햅틱 파일(1100)을 로딩할 수 있다. 일 실시예에서, 햅틱 파일(1100)은 HES 파일일 수 있다. 실시예에 따르면, 햅틱 파일(1100) 내에 포함된 햅틱 효과 정의는 단일 채널을 포함하고, 채널은 햅틱 효과 정의 내에 포함된 햅틱 데이터를 포함한다. 또한, 실시예에 따르면, 햅틱 파일(1100) 내에 포함된 햅틱 효과 정의는 하나 이상의 크로스오버 파라미터들을 포함하고, 하나 이상의 크로스오버 파라미터들은 크로스오버 입력 와프 알고리즘에 대한 파라미터들일 수 있다. 일 실시예에서, 햅틱 파일(1100) 내에 포함된 햅틱 효과 정의는 재생 속도 및 재생 레이트 제어를 정의할 수 있다.
실시예에 따르면, 시스템은 햅틱 파일(1100) 내에 포함된 햅틱 효과 정의의 채널을, 그리고 햅틱 파일(1100) 내에 포함된 하나 이상의 파라미터들을 프로그래밍가능한 크로스오버(1110)에 송신할 수 있다. 프로그래밍가능한 크로스오버(1110)는 하나 이상의 크로스오버 파라미터들을 사용하여 크로스오버 입력 와프 알고리즘을 적용하여 채널을 3개의 상이한 채널들, 즉, 저-주파수 채널; 중간-주파수 채널; 및 고-주파수 채널로 분리할 수 있다. 저-주파수 채널은 하나 이상의 저 주파수들을 포함하는 햅틱 효과 정의 내에 포함된 햅틱 데이터의 일부분을 포함한다. 중간-주파수 채널은 하나 이상의 중간 주파수들을 포함하는 햅틱 효과 정의 내에 포함된 햅틱 데이터의 일부분을 포함한다. 고-주파수 채널은 하나 이상의 고주파수들을 포함하는 햅틱 효과 정의 내에 포함된 햅틱 데이터의 일부분을 포함한다.
시스템은 이후 햅틱 효과 정의의 3개의 채널들을 F/B 공간화(1120)에 송신할 수 있고, F/B 공간화(1120)는 공간화 데이터에 기초하여 햅틱 효과 정의의 각각의 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 공간화 데이터는 햅틱 효과의 방향 및/또는 흐름을 포함할 수 있다. 일 실시예에서, 햅틱 효과의 방향 및/또는 흐름은 앞쪽 또는 뒤쪽 방향일 수 있다. 또한, 공간화 데이터는 하나 이상의 손 위치들을 포함할 수 있다. 실시예에 따르면, F/B 공간화(1120)는 햅틱 효과가 각각의 모터 또는 액츄에이터에 대해 스케일링되도록 각각의 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 시스템은 이후 저 주파수 채널을 낮은 럼블 모터(1130)("LowR 모터"로서 도 11에서 식별됨)에 송신할 수 있고, 추가로 중간 주파수 채널을 중간 럼블 모터(1140)("MidR 모터"로서 도 11에서 식별됨)에 송신할 수 있다. 저-주파수 채널 내에 포함된 햅틱 데이터는 낮은 럼블 모터(1130)가 일반적인 또는 럼블 햅틱 효과를 생성하게 할 수 있고, 중간-주파수 채널 내에 포함된 햅틱 데이터는 중간 럼블 모터(1140)가 일반적인 또는 럼블 햅틱 효과를 생성하게 할 수 있다.
시스템은 추가로 고-주파수 채널을 L/R 공간화(1150)에 송신할 수 있고, L/R 공간화(1150)는 공간화 데이터에 기초하여 고 주파수 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 일 실시예에서, 햅틱 효과의 방향 및/또는 흐름은 좌측 또는 우측 방향일 수 있다. 또한, 공간화 데이터는 하나 이상의 위치들을 포함할 수 있다. 실시예에 따르면, L/R 공간화(1150)는, 햅틱 효과가 각각의 모터 또는 액츄에이터에 대해 스케일링되도록 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 시스템은 이후 고-주파수 채널을 좌측 트리거 타겟화된 모터(1160)("LT 모터"로서 도 11에 식별됨)에 송신할 수 있고, 또한 고-주파수 채널을 우측 트리거 타겟화된 모터(1170)("RT 모터"로서 도 11에 식별됨)에 송신할 수 있다. 고-주파수 채널 내에 포함된 햅틱 데이터는 좌측 트리거 타겟화된 모터(1160)가 좌측 트리거에서 트리거 햅틱 효과를 생성하게 할 수 있고, 고-주파수 채널 내에 포함된 햅틱 데이터는 우측 트리거 타겟화된 모터(1170)가 우측 트리거에서 트리거 햅틱 효과를 생성하게 할 수 있다.
발명의 실시예에 따르면, 도 12는 트리거 햅틱 효과의 예시적인 4-채널 직접 재생을 예시한다. 실시예에 따르면, 시스템(예를 들어, 도 1의 시스템(10))은 오디오 효과 정의를 포함하는 오디오 파일(1200)을 로딩할 수 있다. 일 실시예에서, 오디오 파일(1200)은 HES 파일일 수 있다. 실시예에 따르면, 오디오 파일(1200) 내에 포함된 오디오 효과 정의는 4개 채널들을 포함하고, 각각의 채널은 오디오 효과 정의 내에 포함된 오디오 데이터의 일부분을 포함한다. 대안적인 실시예에서, 오디오 파일(1200) 내에 포함된 오디오 효과 정의는 임의의 복수의 채널들을 포함할 수 있다. 햅틱 효과 정의의 각각의 채널은 타겟화된 모터, 타겟화된 액츄에이터, 럼블 모터, 또는 럼블 액츄에이터와 연관될 수 있다. 예시된 실시예에서, 제1 채널(즉, "채널 LR")은 낮은 럼블 모터와 연관되고, 제2 채널(즉, "채널 MR")은 중간 럼블 모터와 연관되고, 제3 채널(즉, "채널 LT")은 좌측 트리거에 동작적으로 연관된 타겟화된 모터와 연관되고, 제4 채널(즉, "채널 RT")은 우측 트리거에 동작적으로 결합된 타겟화된 모터와 연관된다.
실시예에 따르면, 시스템은 오디오 파일(1200) 내에 포함된 오디오 효과 정의의 4개 채널들을 오디오-대-햅틱 컨버터(1210)에 송신할 수 있고, 오디오-대-햅틱 컨버터(1210)는 햅틱 전환 알고리즘을 사용하여 오디오 효과 정의를 햅틱 효과 정의로 전환할 수 있다. 일 실시예에서, 오디오 효과 정의의 각각의 별도의 채널은 햅틱 효과 정의의 채널로 전환될 수 있다. 예시된 실시예에서, 채널 LR은 60 헤르츠("Hz") 미만의 범위를 가지는 피크/데시메이션 필터를 사용하여 전환될 수 있고; 채널 MR은 60 Hz의 값을 가지는 피크/데시메이션 필터를 사용하여 전환될 수 있고; 채널들 LT 및 RT는 각각 200 Hz - 2 kHz의 범위를 가지는 피크/데시메이션 필터를 사용하여 전환될 수 있다.
시스템은 추가로 전환된 햅틱 효과 정의의 4개 채널들을 인코더/디코더(1220)에 송신할 수 있고, 인코더/디코더(1220)는 전환된 햅틱 효과의 각각의 채널을 HES 포맷과 같은 외부 포맷으로 인코딩할 수 있다. 시스템은 이후 전환된 햅틱 효과 정의의 4개의 인코딩된 채널들을 F/B 공간화(1230)에 송신할 수 있고, F/B 공간화(1230)는 공간화 데이터에 기초하여 전환된 햅틱 효과 정의의 각각의 인코딩된 채널 내에 포함된 전환된 햅틱 데이터를 수정할 수 있다. 공간화 데이터는 햅틱 효과의 방향 및/흐름을 포함할 수 있다. 일 실시예에서, 햅틱 효과의 방향 및/또는 흐름은 앞쪽 또는 뒤쪽 방향일 수 있다. 또한, 공간화 데이터는 하나 이상의 손 위치들을 포함할 수 있다. 실시예에 따르면, F/B 공간화(1230)는 햅틱 효과가 각각의 모터 또는 액츄에이터에 대해 스케일링되도록 각각의 인코딩된 채널 내에 포함된 전환된 햅틱 데이터를 수정할 수 있다. 시스템은 이후 인코딩된 채널 LR을 낮은 럼블 모터(1240)("LowR 모터"로서 도 12에 식별됨)에 송신할 수 있고, 추가로 인코딩된 채널 MR을 중간 럼블 모터(1250)("MidR 모터"로서 도 12에 식별됨)에 송신할 수 있다. 채널 LR 내에 포함된 전환된 햅틱 데이터는 낮은 럼블 모터(1240)가 일반적인 또는 럼블 햅틱 효과를 생성하게 할 수 있고, 채널 MR 내에 포함된 전환된 햅틱 데이터는 중간 럼블 모터(1250)가 일반적인 또는 럼블 햅틱 효과를 생성하게 할 수 있다.
시스템은 추가로 인코딩된 채널들 LT 및 RT를 L/R 공간화(1260)에 송신할 수 있고, L/R 공간화(1260)는 공간화 데이터에 기초하여 인코딩된 채널들 LT 및 RT 내에 포함된 전환된 햅틱 데이터를 수정할 수 있다. 공간화 데이터는 햅틱 효과의 방향 및/또는 흐름을 포함할 수 있다. 일 실시예에서, 햅틱 효과의 방향 및/또는 흐름은 좌측 또는 우측 방향일 수 있다. 또한, 공간화 데이터는 하나 이상의 손 위치들을 포함할 수 있다. 실시예에 따르면, L/R 공간화(1260)는 햅틱 효과가 각각의 모터 또는 액츄에이터에 대해 스케일링되도록 각각의 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 시스템은 이후 채널 LT를 좌측 트리거 타겟화된 모터(1270)("LT 모터"로서 도 12에 식별됨)에 송신할 수 있고, 추가로 채널 RT를 트리거 타겟화된 모터(1280)("RT 모터"로서 도 12에서 식별됨)에 송신할 수 있다. 채널 LT 내에 포함된 햅틱 데이터는 좌측 트리거 타겟화된 모터(1270)가 좌측 트리거에서 트리거 햅틱 효과를 생성하게 할 수 있고, 채널 RT 내에 포함된 햅틱 데이터는 우측 트리거 타겟화된 모터(1280)가 우측 트리거에서 트리거 햅틱 효과를 생성하게 할 수 있다.
발명의 실시예에 따르면, 도 13은 트리거 햅틱 효과의 예시적인 크로스오버 재생을 예시한다. 실시예에 따르면, 시스템(예를 들어, 도 1의 시스템(10))은 오디오 효과 정의를 포함하는 오디오 파일(1300)을 로딩할 수 있다. 일 실시예에서, 오디오 파일(1300)은 HES 파일일 수 있다. 실시예에 따르면, 오디오 파일(1300) 내에 포함된 오디오 효과 정의는 단일 채널을 포함하고, 채널은 오디오 효과 정의 내에 포함된 오디오 데이터를 포함한다. 실시예에서, 오디오 파일(1300) 내에 포함된 오디오 효과 정의는 하나 이상의 크로스오버 파라미터들을 포함할 수 있고, 하나 이상의 크로스오버 파라미터들은 크로스오버 입력 와프 알고리즘에 대한 파라미터들일 수 있다.
실시예에 따르면, 시스템은 오디오 파일(1300) 내에 포함된 오디오 효과 정의의 채널, 및, 일 실시예에서, 또한 오디오 파일(1300) 내에 포함된 하나 이상의 크로스오버 파라미터들을, 프로그래밍가능한 크로스오버(1310)에 송신할 수 있다. 프로그래밍가능한 크로스오버(1310)는 크로스오버 입력 와프 알고리즘을 적용하여(일 실시예에서, 하나 이상의 크로스오버 파라미터들을 사용하여) 채널을 3개의 상이한 채널들, 즉 저-주파수 채널; 중간-주파수 채널; 및 고-주파수 채널로 분리할 수 있다. 프로그래밍가능한 크로스오버(1310)는 추가로 햅틱 전환 알고리즘을 사용하여 오디오 효과 정의를 햅틱 효과 정의로 전환할 수 있다. 일 실시예에서, 오디오 효과 정의의 각각의 별도의 채널은 햅틱 효과 정의의 채널로 전환될 수 있다. 예시된 실시예에서, 저-주파수 채널은 60 헤르츠("Hz") 미만의 범위를 가지고 피크/데시메이션 필터를 사용하여 전환될 수 있고; 중간-주파수 채널은 60 Hz의 값을 가지고 피크/데시메이션 필터를 사용하여 전환될 수 있고, 고-주파수 채널은 각각 200 Hz - 2 kHz의 범위를 가지고 피크/데시메이션 필터를 사용하여 전환될 수 있다.
시스템은 추가로 전환된 햅틱 효과 정의의 3대 채널들을 인코더/디코더(1320)에 송신할 수 있고, 인코더/디코더(1320)는 전환된 햅틱 효과 정의의 각각의 채널을 HES 포맷과 같은 외부 포맷으로 인코딩할 수 있다. 시스템은 이후 햅틱 효과 정의의 3개 채널들을 F/B 공간화(1330)로 송신할 수 있고, F/B 공간화(1330)는 공간화 데이터에 기초하여 햅틱 효과 정의의 각각의 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 공간화 데이터는 햅틱 효과의 방향 및/또는 흐름을 포함할 수 있다. 일 실시예에서, 햅틱 효과의 방향 및/또는 흐름은 앞쪽 또는 뒤쪽 방향일 수 있다. 또한, 공간화 데이터는 하나 이상의 손 위치들을 포함할 수 있다. 실시예에 따르면, F/B 공간화(1330)는, 햅틱 효과가 각각의 모터 또는 액츄에이터에 대해 스케일링되도록 각각의 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 시스템은 이후 저-주파수 채널을 낮은 럼블 모터(1340)("LowR 모터"로서 도 13에 식별됨)에 송신할 수 있고, 추가로, 중간-주파수 채널을 중간 럼블 모터(1350)("MidR 모터"로서 도 13에 식별됨)에 송신할 수 있다. 저-주파수 채널 내에 포함된 햅틱 데이터는 낮은 럼블 모터(1340)가 일반적인 또는 럼블 햅틱 효과를 생성하게 할 수 있고, 중간-주파수 채널 내에 포함된 햅틱 데이터는 중간 럼블 모터(1350)가 일반적인 또는 럼블 햅틱 효과를 생성하게 할 수 있다.
시스템은 추가로 고-주파수 채널을 L/R 공간화(1360)에 송신할 수 있고, L/R 공간화(1360)는 공간화 데이터에 기초하여 고-주파수 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 일 실시예에서, 햅틱 효과의 방향 및/또는 흐름은 좌측 또는 우측 방향일 수 있다. 또한, 공간화 데이터는 하나 이상의 손 위치들을 포함할 수 있다. 실시예에 따르면, L/R 공간화(1360)는, 햅틱 효과가 각각의 모터 또는 액츄에이터에 대해 스케일링되도록 채널 내에 포함된 햅틱 데이터를 수정할 수 있다. 시스템은 이후 고 주파수 채널을 좌측 트리거 타겟화된 모터(1370)("LT 모터"로서 도 13에 식별됨)에 송신할 수 있고, 또한, 고 주파수 채널을 우측 트리거 타겟화된 모터(1380)("RT 모터"로서 도 13에서 식별됨)에 송신할 수 있다. 고 주파수 채널 내에 포함된 햅틱 데이터는 좌측 트리거 타겟화된 모터(1370)가 좌측 트리거에서 트리거 햅틱 효과를 생성하게 할 수 있고, 고 주파수 채널 내에 포함된 햅틱 데이터는 우측 트리거 타겟화된 모터(1380)가 우측 트리거에서 트리거 햅틱 효과를 생성하게 할 수 있다.
발명의 실시예에 따르면, 도 14는 트리거 엔진의 예시적인 사용자 인터페이스(1400)를 예시한다. 사용자 인터페이스(1400)는 트리거 엔진(예를 들어, 도 5의 트리거 엔진(506))에 의해 생성된 하나 이상의 트리거 햅틱 효과들을 가시화할 수 있는 편집가능한 시각적 영역이다. 사용자 인터페이스(1400)는 추가로 사용자가 하나 이상의 트리거 햅틱 효과들을 프로그램적으로 관리하게 할 수 있다. 이전에 기술된 바와 같이, 트리거 엔진은 트리거 햅틱 효과 정의를 수신할 수 있고, 제어기의 트리거의 위치 및/또는 범위에 기초하여 트리거 햅틱 효과 정의를 수정할 수 있다. 실시예에 따르면, 사용자 인터페이스(1400)는 트리거 뷰(1410)를 디스플레이하며, 트리거 뷰(1410)는 트리거의 가시화이다. 트리거 뷰(1410)는 트리거 입력 범위(1420)를 디스플레이할 수 있고, 트리거 입력 범위(1420)는 트리거의 유효 입력 범위의 가시화이다. 예시된 실시예에서, 트리거 입력 범위(1420)는 0에서 255까지를 범위로 하는 정수 값들의 스펙트럼에 의해 표현될 수 있다. 트리거는 트리거 입력 범위(1420) 내의 0의 초기 위치에 존재한다. 트리거를 누르거나 압박함으로써, 사용자는 트리거의 위치를 트리거 입력 범위(1420) 내의 임의의 유효 위치로 조정할 수 있다. 사용자가 트리거를 해제할 때, 트리거의 위치는 트리거 입력 범위(1420) 내의 위치 0으로 다시 조정한다.
사용자 인터페이스(1400)를 사용하여, 사용자는 하나 이상의 트리거 정의들을 생성할 수 있고, 트리거 정의는 트리거 햅틱 효과가 생성되거나 수정되게 하는 조건을 정의한다. 일부 실시예들에서, 조건은 트리거의 위치일 수 있고, 그 위치는 트리거 입력 범위(1420) 내에 있다. 다른 실시예들에서, 조건은 트리거의 범위일 수 있고, 여기서 범위는 트리거 입력 범위(1420) 내에 있다. 사용자 인터페이스(1400)는 트리거 정의의 예인 임계 트리거 정의(1430)를 포함한다. 임계 트리거 정의(1430)는 특정된 트리거 햅틱 효과 정의에 기초하는 트리거 햅틱 효과가 트리거가 특정된 위치에 도달할 때 생성되게 하며, 특정된 위치는 예시된 실시예에서 99이다. 임계 트리거 정의(1430)는 트리거의 누름 시에만, 트리거의 해제시에만, 또는 트리거의 누름과 해제 모두에서 트리거 햅틱 효과가 생성되는 것을 정의할 수 있다. 대안적인 실시예에서, 임계 트리거 정의(1430)는 특정된 트리거 햅틱 효과 정의에 기초하는 트리거 햅틱 효과가, 트리거가 단순히 특정된 위치에 도달하는 것에 비해, 특정된 위치에 위치할 때에만 생성되게 하는 위치 트리거 정의로 대체될 수 있다. 사용자 인터페이스(1400)는 트리거 정의의 또 다른 예인 범위 트리거 정의(1440)를 더 포함한다. 범위 트리거 정의(1440)는 특정된 트리거 햅틱 효과 정의에 기초하는 트리거 햅틱 효과가, 트리거가 특정된 범위에 도달할 때 생성되게 하며, 특정된 범위는 예시된 실시예에서 164 내지 255이다.
발명의 실시예에 따르면, 도 15는 공간화 엔진의 예시적인 사용자 인터페이스(1500)를 예시한다. 사용자 인터페이스(1500)는 원래 트리거 엔진(예를 들어, 도 5의 트리거 엔진(506))에 의해 생성되고 추가로 공간화 엔진(예를 들어, 도 5의 공간화 엔진(507))에 의해 수정되는 트리거 햅틱 효과를 가시화할 수 있는 편집가능한 시각 영역이다. 사용자 인터페이스(1500)는 추가로 사용자가 공간화 엔진에 의해 트리거 햅틱 효과의 하나 이상의 수정들을 프로그램적으로 관리하게 할 수 있다. 이러한 수정들은 미래에 동적 재생을 위해 레코딩될 수 있다. 이전에 기술된 바와 같이, 공간화 엔진은 트리거 햅틱 효과가 제어기의 하나 이상의 타겟화된 모터들, 타겟화된 액츄에이터들, 럼블 모터들, 또는 럼블 액츄에이터들에 대해 스케일링되도록 원래 트리거 엔진에 의해 생성된 햅틱 효과 정의를 수정할 수 있다. 더 구체적으로는, 공간화 엔진은, 제어기의 사용자에 의해 경험되는 바와 같이 트리거 햅틱 효과의 방향감을 전달하기 위해 각각의 타겟화된 모터, 타겟화된 액츄에이터, 럼블 모터 또는 럼블 액츄에이터에 적용된 바와 같이 햅틱 효과 정의를 수정할 수 있다. 햅틱 효과 정의에 대한 각각의 수정은 특수화 엔진에 의해 정의된 바와 같이 트리거 햅틱 효과의 의도된 방향 및/또는 흐름에 기초할 수 있다. 또한, 각각의 수정은 또한 제어기에 의해 수신된 입력에 기초할 수 있고, 입력은 제어기 상의 사용자의 손의 위치를 나타낸다. 따라서, 공간화 엔진은 원래 트리거 엔진에 의해 생성된 햅틱 효과 정의를 수신할 수 있고, 트리거 햅틱 효과의 "공간화" 양상(예를 들어, 트리거 햅틱 효과의 위치 및/또는 흐름)에 기초하여 햅틱 효과 정의를 수정할 수 있다. 대안적인 실시예에서, 공간화 엔진은 제어기의 하나 이상의 타겟화된 모터, 타겟화된 액츄에이터, 럼블 모터 또는 럼블 액츄에이터를 위해 햅틱 효과가 스케일링되도록, 트리거 엔진에 의해 원래 생성된 햅틱 효과와 다르게, 원래 햅틱 효과 정의를 수정할 수 있다.
사용자 인터페이스(1500)는 흐름(1510)을 포함한다. 흐름(1510)은 사용자가 트리거 햅틱 효과의 흐름을 프로그램적으로 관리하게 한다. 흐름은 제어기의 각자의 타겟화된 모터들, 타겟화된 액츄에이터들, 럼블 모터들, 또는 럼블 액츄에이터들 상에서 재생을 지연시키기 위한 시간적 재생-의-시작 오프셋 수정이다. 대안적으로, 흐름은 제어기의 타겟화된 모터들, 타겟화된 액츄에이터들, 럼블 모터들 또는 럼블 액츄에이터들에서 경험되는 햅틱 효과의 듀레이션을 수정하기 위한 듀레이션 수정이다. 예를 들어, 흐름은, 햅틱 재생이 먼저 좌측 타겟화된 모터 또는 타겟화된 액츄에이터 상에서 시작하고, 이후 후속적으로 중간 럼블 모터 또는 럼블 액츄에이터 상에서 시작하고, 이후 추가로 우측 타겟화된 모터 또는 타겟화된 액츄에이터 상에서 시작한다. 이 예에서, 제어기의 사용자가 먼저 제어기의 좌측에서, 이후 제어기의 중간에서, 그리고 이후 제어기의 우측에서 전체 트리거 햅틱 효과의 햅틱 재생을 경험함에 따라, 전체 트리거 햅틱 효과의 흐름은 좌측에서 우측이다. 흐름은 좌측에서 우측으로 또는 그 역으로, 앞에서 뒤로 또는 그 역으로, 또는 이 둘의 결합일 수 있다. 따라서, 흐름은 햅틱 재생 벡터를 정의할 수 있다. 흐름(1510)은 사용자 인터페이스(1500) 내에서 수평으로, 수직으로, 또는 대각선으로 배치될 수 있는 화살표로서 사용자 인터페이스(1500) 내에서 가시화될 수 있다. 따라서, 흐름(1510)과 상호작용함으로써, 사용자는 햅틱 재생을 스태거링하도록 제어기의 다양한 모터들 또는 액츄에이터들에 적용된 하나 이상의 지연들을 수정할 수 있다.
사용자 인터페이스(1500)는 방향(1520)을 더 포함한다. 방향(1520)은 사용자가 트리거 햅틱 효과의 방향을 프로그램적으로 수정하게 한다. 방향은 제어기의 다양한 모터들 또는 액츄에이터들 중에서 앞-뒤 및/또는 좌-우 바이어스(또는 밸런스)를 강조하기 위한 크기(또는 강도) 수정이다. 대안적으로 방향은 주파수 수정일 수 있다. 예를 들어, 방향은 트리거 햅틱 효과의 햅틱 재생이 제어기의 우측에서 가장 강하도록 정의될 수 있다. 방향(1520)은 2개의 축에 의해 정의된 2-차원 그리드 또는 공간 내의 포인트로서 사용자 인터페이스(1500) 내에서 가시화될 수 있다. 따라서, 방향(1520)과 상호작용함으로써, 사용자는 좌-우 및/또는 전-후 바이어스(또는 밸런스)를 강조하기 위해 다양한 모터들 또는 액츄에이터들에 적용된 크기들(또는 강도들)을 수정할 수 있다.
사용자 인터페이스(1500)는 강도(1530)를 더 포함한다. 강도(1530)는 사용자가 재생 이전에 또는 재생 동안 전체 트리거 햅틱 효과의 크기(또는 강도)를 수정하게 한다. 강도(1530)는 슬라이더로서 사용자 인터페이스(1500) 내에서 가시화될 수 있다. 따라서, 강도(1530)와 상호작용함으로써, 사용자는 트리거 햅틱 효과의 전체 크기(또는 강도)를 수정할 수 있다. 사용자 인터페이스(1500)는 재생 속도(1540)를 더 포함한다. 재생 속도(1540)는 사용자가, 시스템(예를 들어, 도 1의 시스템(10))이 트리거 햅틱 효과를 재생하기 위해 트리거 햅틱 효과의 트리거 햅틱 효과 정의를 프로세싱하는 재생 속도 또는 레이트를 프로그램적으로 수정하게 한다. 재생 속도(1540)는 슬라이더로서 사용자 인터페이스(1500) 내에서 가시화될 수 있다. 따라서, 재생 속도(1540)와 상호작용함으로써, 사용자는 트리거 햅틱 효과의 재생 속도 또는 레이트를 수정할 수 있다. 사용자 인터페이스(1500)는 루프(1550)를 더 포함한다. 루프(1550)는 사용자가 트리거 햅틱 효과의 재생을 루프시키는지를 프로그램적으로 수정하게 한다. 루프(1550)는 버튼으로서 사용자 인터페이스(1500) 내에서 가시화될 수 있다. 따라서, 루프(1550)와 인터페이싱함으로써, 사용자는 트리거 햅틱 효과의 루프를 제어할 수 있다. 공간화 엔진의 추가적인 상세항목들은 추가로 도 32 및 33과 함께 더 상세하게 하기에 기술되어 있다.
발명의 실시예에 따르면, 도 16은 트리거 햅틱 효과 API(1600)의 아키텍쳐 다이어그램을 예시한다. 트리거 햅틱 효과 API(1600)는 개발자가 트리거와 같은 제어기의 사용자 입력 엘리먼트에서, 트리거 햅틱 효과와 같은 햅틱 효과들을 재생하게 하는 컴퓨터-판독가능한 기능들 또는 루틴들의 세트를 포함한다. 트리거 햅틱 효과 API는 운전/경주, 무기/전투, 및 스포츠(예를 들어, 축구, 풋볼, 야구, 골프 또는 하키)와 같은 많은 상이한 게임 장르들에 대한 미리-정의된 햅틱 효과 정의를 포함하는 확장 햅틱 효과 라이브러리를 포함할 수 있다. 일 실시예에서, 트리거 햅틱 효과 API는 C++ 클래스들의 세트를 포함할 수 있고, 클라이언트 애플리케이션들에서 꺼질 수 있는, 예외 또는 런-타임 타입 정보와 같은, 고급 특징들을 사용하도록 요구되지 않는다. 대안적인 실시예들에서, 트리거 햅틱 효과 API는 C, 자바, 또는 C#과 같은 다른 언어 바인딩들을 사용할 수 있다. 또한, 트리거 햅틱 효과 API는 Unity 3D™ 및 Marmalade™과 같은 특정 게임 엔진들에 대한 플러그-인들을 제공할 수 있다.
실시예에 따르면, 햅틱 효과 API(1600)는 시스템(예를 들어, 도 1의 시스템(10)) 상에 실행될 수 있는, 게임 애플리케이션과 같은 소프트웨어 애플리케이션인 애플리케이션(1610)에 의해 액세스될 수 있다. 또한, 트리거 햅틱 효과 API(1600)는 효과 라이브러리(1620)에 액세스할 수 있고, 효과 라이브러리(1620)는 햅틱 효과 정의(1621)("효과(1621)"로서 도 16에 식별됨)와 같은 하나 이상의 햅틱 효과 정의들을 포함할 수 있다. 이전에 기술된 바와 같이, 햅틱 효과 정의의 예는 트리거 햅틱 효과 정의이다. 또한, 트리거 햅틱 효과 API(1600)는 디바이스 정의(1601)("디바이스(1601)"로서 도 16에 식별됨)와 같은 하나 이상의 디바이스 정의들을 포함한다. 디바이스 정의는 햅틱 효과가 재생될, 제어기, 게임패드 또는 다른 주변 디바이스와 같은 하드웨어 디바이스를 정의하는 디바이스를 포함한다. 트리거 햅틱 효과 API(1600)는 타이머 정의(1602)("타이머(1602)"로서 도 16에서 식별됨)와 같은 하나 이상의 타이머 정의들을 더 포함한다. 타이머 정의는 특정 하드웨어 디바이스에 등록된 모든 햅틱 효과 정의들이 업데이트되는 시간 기간을 정의하는 타이머 데이터를 포함한다. 트리거 햅틱 효과 API(1600)는 트리거 정의(1603)(트리거(1603)로서 도 16에 식별됨)를 더 포함한다. 트리거 정의는 특정 하드웨어 디바이스의 트리거를 정의하는 트리거 데이터를 포함한다. 트리거 햅틱 효과 API(1600)는 프로토콜 정의(1604)("프로토콜(1604)"로서 도 16에서 식별됨)를 더 포함한다. 프로토콜 정의는 특정 하드웨어 디바이스와 통신하기 위해 트리거 햅틱 효과 API(1600)에 의해 사용되는 통신 인터페이스의 프로토콜을 기술한다. 프로토콜 정의(1604)를 사용하여, 트리거 햅틱 효과 API(1600)는 디바이스 펌웨어(1630)("FW(1630)"으로서 도 16에서 식별됨)와 통신할 수 있고, 디바이스 펌웨어(1630)는 특정 하드웨어 디바이스에 대한 펌웨어이다. 디바이스 펌웨어(1630)를 사용하여, 트리거 햅틱 효과 API(1600)는 추가로 하드웨어 디바이스(1640)("HW(1640)"로서 도 16에 식별됨)와 통신할 수 있고, 하드웨어 디바이스(1640)는 특정 하드웨어 디바이스이다.
일 실시예에서, 애플리케이션(1610)은 햅틱 효과가 재생될 타겟 하드웨어 디바이스(즉, HW(1640))를 획득하기 위해 디바이스 정의(1601)에 액세스할 수 있다. 디바이스 정의(1601)에 액세스함으로써, 애플리케이션(1610)은 추가로 타이머 정의(1602), 트리거 정의(1603), 및 프로토콜 정의(1604)에 액세스할 수 있다. 애플리케이션(1610)은 추가로 햅틱 효과를 예증하기 위해 효과 라이브러리(1620)로부터 햅틱 효과 정의(1621)에 액세스할 수 있다. 애플리케이션(1610)은 추가로, 트리거 햅틱 효과 API(1600) 및 FW(1630)를 통해 타겟 하드웨어 디바이스(즉, HW(1640))에 명령을 송신함으로써 햅틱 효과가 타겟 하드웨어 디바이스(즉, HW(1640))에서 재생되게 할 수 있다.
발명의 실시예에 따르면, 도 17은 트리거 햅틱 효과들을 생성하는 펌웨어의 아키텍쳐 다이어그램을 예시한다. 아키텍쳐는 통신 인터페이스(1700)를 포함한다. 통신 인터페이스(1700)는 제어기 또는 게임패드와 같은 주변 디바이스에 대해 트리거 햅틱 효과 API(예를 들어, 도 16의 트리거 햅틱 효과 API(1600))와 펌웨어 사이의 통신을 제공한다. 아키텍쳐는 효과 슬롯(1710)을 더 포함한다. 효과 슬롯은 햅틱 효과의 타입을 정의하며, 후속하는 파라미터들, 즉, 크기(또는 강도); 주파수(또는 주기); 포락선(예를 들어, 공격 레벨, 공격 시간, 페이드 레벨 및 페이드 시간); 액츄에이터(예를 들어, "럼블" 또는 "방향성"과 같은 특정 액츄에이터들 또는 가상 액츄에이터들); 방향(예를 들어, 하나 또는 두 개의 각도들, 또는 2-차원 벡터); 거리(예를 들어, 전체 햅틱 효과를 모듈링하기 위해 사용될 수 있음); 시작/종료 햅틱 효과 정의(예를 들어 보간된 햅틱 효과를 생성하기 위해 보간될 수 있는 시작 햅틱 효과 정의 및 종료 햅틱 효과 정의)를 포함할 수 있다. 특정 타입의 효과 슬롯(1710)은 트리거된 효과 슬롯(1720)이다. 트리거된 효과 슬롯은 트리거 햅틱 효과의 타입을 정의하며, 전술된 효과 슬롯의 파라미터들에 더하여, 후속하는 추가적인 파라미터들: 트리거 버튼(예를 들어, 무, 좌측 또는 우측); 트리거 시작/중지, 포인트들, 및 방향들(예를 들어, 특정 방향으로 이동하는 동안 트리거 버튼이 특정 위치에 도달할 때 트리거 햅틱 효과를 시작/중지시킴); 및 트리거 종료 포인트(예를 들어, 트리거 햅틱 효과를 재생하는 동안 시작 트리거 햅틱 효과 정의 및 종료 트리거 햅틱 정의 사이에서 보간함)를 포함할 수 있다.
아키텍쳐는 트리거 엔진(1730)을 더 포함할 수 있다. 이전에 기술된 바와 같이, 트리거 엔진(1730)은 트리거 햅틱 효과 정의를 수신할 수 있고, 제어기의 트리거의 위치 및/또는 범위와 같은 트리거 데이터에 기초하여 트리거 햅틱 효과 정의를 수정할 수 있다. 아키텍쳐는 트리거 하드웨어 인터페이스(1740)(예를 들어 "트리거 HW 인터페이스(1740)"로서 도 17에 식별됨)를 더 포함한다. 트리거 하드웨어 인터페이스(1740)는 트리거 엔진(1730)이 제어기 또는 게임패드와 같은 주변 디바이스로부터 트리거 데이터를 수신하게 하는 통신 인터페이스이다. 아키텍쳐는 공간화 엔진(1750)을 더 포함한다. 이전에 기술된 바와 같이, 공간화 엔진(1750)은, 트리거 햅틱 효과와 같은 햅틱 효과가 제어기의 하나 이상의 타겟화된 모터들, 타겟화된 액츄에이터들, 럼블 모터들 또는 럼블 액츄에이터들에 대해 스케일링되도록, 트리거 햅틱 효과 정의와 같은 햅틱 효과 정의를 수정할 수 있다. 아키텍쳐는 기본 효과 렌더링 엔진(1760)을 더 포함한다. 기본 효과 렌더링 엔진(1760)은 트리거 햅틱 효과 정의와 같은 햅틱 효과 정의에 기초하여 모터 또는 액츄에이터에 대한, 트리거 햅틱 효과와 같은 햅틱 효과를 만든다. 아키텍쳐는 액츄에이터 하드웨어 인터페이스(1770)("액츄에이터 HW 인터페이스(1770)"로서 도 17에서 식별됨)를 더 포함한다. 액츄에이터 하드웨어 인터페이스(1770)는 기본 효과 렌더링 엔진(1760)이 만들어진 햅틱 효과 내에 포함된 햅틱 데이터를 모터 또는 액츄에이터에 송신하게 하여 모터 또는 액츄에이터가 햅틱 효과를 재생하게 하는 통신 인터페이스이다.
발명의 실시예에 따르면, 도 18은 제어기에 대한 예시적인 방향성 모델을 예시한다. 실시예에 따르면, 제어기는 럼블 모터들(1810 및 1820), 및 타겟화된 모터들(1830 및 1840)을 포함하고, 타겟화된 모터들(1830 및 1840)은 각각 제어기의 트리거에 동작적으로 결합된다. 럼블 모터들(1810 및 1820)은 보완적 진동 범위들을 가진다. 또한, 타겟화된 모터들(1830 및 1840)은 더욱 공간적으로 분리된 더 높은 주파수 진동들을 생성할 수 있다. 좌측/우측 공간화된 햅틱 효과에 대한 럼블 모터들(1810 및 1820)을 사용하는 것은 비대칭적 진동 경험(즉, 대부분의 사람들에 대해 공간적으로 잘 분리되지 않은 상이한 주파수 콘텐츠)를 제공하는 것이 이해될 수 있다. 따라서, 햅틱 효과 정의는 좌측-앞, 우측-앞 및 무방향 채널들을 포함할 수 있다. 또한, 앞/뒤 방향성은 럼블 모터들(1810 및 1820)로부터 타겟화된 모터들(1830 및 1840)로 진동을 전이함으로써 강화될 수 있다. 따라서, 럼블 모터들(1810 및 1820)은 무방향성 저-주파수 햅틱 효과들에 대해 사용될 수 있다. 럼블 모터들(1810 및 1820)은 또한 뒤/앞 방향성에 대해서도 사용될 수 있다. 또한, 타겟화된 모터들(1830 및 1840)이 좌/우 방향성에 대해 사용될 수 있다.
발명의 실시예에 따르면, 도 19는 트리거 햅틱 효과 펌웨어 스택의 블록도를 예시한다. 트리거 햅틱 효과 펌웨어 스택은 도 5의 주변 펌웨어(510)와 같은 주변 디바이스에 대한 펌웨어에 대한 것일 수 있다. 트리거 햅틱 효과 펌웨어 스택은 트리거 제어기 햅틱 API(1900)를 포함할 수 있다. 트리거 제어기 햅틱 API(1900)는 트리거와 같은 제어기의 사용자 입력 엘리먼트에서, 트리거 햅틱 효과와 같은 햅틱 효과들을 재생하게 하는 컴퓨터-판독가능한 기능들 또는 루틴들의 세트를 포함한다. 트리거 제어기 햅틱 API(1900)는 기본 효과 정의들(1901)을 포함할 수 있다. 효과 정의들(1901)은 트리거 햅틱 효과 정의들과 같은 하나 이상의 햅틱 효과 정의들을 포함한다. 트리거 제어기 햅틱 API(1900)는 효과 라이브러리 코드(1902)를 더 포함할 수 있다. 효과 라이브러리 코드(1902)는 효과 정의들(1901) 내에 저장된 햅틱 효과 정의에 기초하여 햅틱 효과를 예시할 수 있는 컴퓨터-판독가능한 명령들의 세트를 포함한다. 효과 라이브러리 코드(1902)는 햅틱 효과 정의에 기초하여 햅틱 효과의 예시의 일부로서 하나 이상의 효과-특정적 파라미터들을 제공할 수 있다. 트리거 제어기 햅틱 API(1900)는 방향성 엔진(1903)을 더 포함할 수 있다. 방향성 엔진(1903)은 트리거 햅틱 효과와 같은 햅틱 효과가 제어기의 하나 이상의 타겟화된 모터들, 타겟화된 액츄에이터들, 럼블 모터들 또는 럼블 액츄에이터들에 대해 스케일링되도록, 트리거 햅틱 효과 정의와 같은 햅틱 효과 정의를 수정할 수 있다. 트리거 제어기 햅틱 API(1900)는 에뮬레이터(1904)를 더 포함한다. 에뮬레이터(1904)는 트리거 햅틱 효과 정의와 같은 햅틱 효과 정의에 기초하여 제어기의 하나 이상의 모터들 또는 액츄에이터들(예를 들어, 4개 모터들)에 대한, 트리거 햅틱 효과와 같은 햅틱 효과를 만든다. 트리거 제어기 햅틱 API(1900)는 추가로 제어기 API(1910)를 사용하여 제어기(1920)(또는 일부 다른 주변 디바이스)에 만들어진 햅틱 효과를 송신한다.
발명의 실시예에 따르면, 도 20은 제어기의 트리거에서 경험되는 트리거 햅틱 효과들을 제공하는 시스템(예를 들어, 도 1의 시스템(10))의 아키텍쳐 다이어그램을 예시한다. 시스템은 애플리케이션(2000)("앱(2000)"으로서 도 20에 식별됨)을 더 포함한다. 애플리케이션(2000)은 시스템 상에서 실행될 수 있는 게임 애플리케이션과 같은 소프트웨어 애플리케이션이다. 시스템은 트리거 햅틱 효과 API(2010)("API(2010)"으로서 도 20에서 식별됨)을 더 포함한다. 일 실시예에서, 트리거 햅틱 효과 API(2010)는 도 19의 트리거 제어기 햅틱 API(1900)와 동일하다. 실시예에 따르면, 트리거 햅틱 효과 API(2010)는 모든 제어기들, 게임 패드들, 또는 다른 주변 디바이스들에 대한 단일 API일 수 있다. 따라서, 트리거 햅틱 효과 API(2010)는 제어기들, 게임패드들, 및 다른 주변 디바이스들 간의 차이들을 추출할 수 있다. 또한, 트리거 햅틱 효과 API(2010)는 하나 이상의 내장형 햅틱 효과 정의들을 포함하는 내장형 효과 라이브러리를 포함할 수 있다. 내장형 햅틱 효과 정의는 대응하는 햅틱 효과의 하나 이상의 속성들을 캡슐화하는 데이터 구조이다.
내장형 햅틱 효과 정의의 한가지 타입은 정적 햅틱 효과 정의(2011)("정적(2011)"로서 도 20에서 식별됨)이다. 정적 햅틱 효과 정의(2011)는 시간 경과에 따라 변하지 않는 정적 햅틱 효과를 생성하는 하나 이상의 주기적 또는 크기 스위프(magnitude sweep) 효과 정의들의 세트이다. 예들은 자동차 충돌, 로켓 발사, 및 사용자 인터페이스 확인을 포함한다. 정적 햅틱 효과 정의(2011)는 게임 내의 이벤트들에 기초하여 애플리케이션(2000)에 의해 직접 호출될 수 있다. 정적 햅틱 효과 정의(2011)에 의해 생성되는 정적 햅틱 효과는 트리거 햅틱 효과로서 사용될 수 있다.
또 다른 타입의 내장형 햅틱 효과 정의는 동적 햅틱 효과 정의(2012)("동적(2012)"로서 도 20에서 식별됨)이다. 동적 햅틱 효과 정의(2012)는 입력으로서 하나 이상의 파라미터들(2014)을 수신하고 연속적으로 변경하는 햅틱 효과(즉, 동적 햅틱 효과)를 생성하는 알고리즘이다. 예들은 엔진의 분당 회전수("RPM"), 스노우보드, 및 폭발을 포함한다. 정적 햅틱 효과 정의는 하나 이상의 버튼들 또는 축들의 벡터(즉, 거리와 방향), 및 입력 위치/상태를 포함시킴으로써 동적 햅틱 효과 정의가 될 수 있다. 동적 햅틱 효과는 애플리케이션(2000)으로부터 전달될 수 있는 게임 변수들에 기초할 수 있다. 동적 햅틱 효과는 또한 트리거 입력과 같은 제어기 입력에 기초할 수 있다.
또 다른 타입의 내장형 햅틱 효과 정의는 직접 제어 햅틱 효과 정의(2013)("직접 제어(2013)"로서 도 20에서 식별됨)이다. 직접 제어 시나리오에서, 직접 제어 햅틱 효과 정의(2013)는, 코어 효과 라이브러리(2020)을 통하여 이동하기 때문에, 매우 적은 처리를 직접 제어 햅틱 효과 정의(2013)에 적용하는 것으로도 출력 장치에 다이렉트 렌더링할 수 있도록 정의될 수 있다. 이러한 시나리오에서, 직접 제어 햅틱 효과 정의(2013)는 출력 장치 상의 다수의 출력 액츄에이터에 대응되고 정확하게 맵핑되는 다수의 상이한 데이터 채널을 포함할 수 있다. 대안적으로, 직접 제어 햅틱 효과 정의(2013)는 출력 장치 상의 이용가능한 출력 액츄에이터의 수를 초과하는 다수의 상이한 데이터 채널을 포함할 수 있고, 코어 효과 라이브러리(2020)가 각 채널이 출력 장치 내 특정 액츄에이터에 가장 바람직하게 맵핑되도록 선택되어 있는 다수의 채널을 선택할 수 있고, 그 후 코어 효과 라이브러리(2020)는 선택된 데이터 채널의 데이터를 맵핑된 액츄에이터에 송신할 수 있다.
시스템은 코어 효과 라이브러리(2020)("코어(2020)"로서 도 20에서 식별됨)를 더 포함한다. 코어 효과 라이브러리(2020)는 하나 이상의 햅틱 효과 정의들(2021)("FX(2021)"로서 도 20에서 식별됨)을 포함한다. 햅틱 효과 정의들(2021)은 트리거 햅틱 효과 정의들(2022)("트리거 효과(2022)"로서 도 20에서 식별됨)을 포함할 수 있다. 햅틱 효과 정의들의 예들은 폭발 햅틱 효과 정의들, RPM 햅틱 효과 정의들, 스노우보드 햅틱 효과 정의들, 및 다른 햅틱 효과 정의들을 포함할 수 있다. 코어 효과 라이브러리는 믹서(2023)("믹서/우선순위화(2023)"로서 도 20에서 식별됨)를 더 포함한다. 믹서(2023)는 하나 이상의 햅틱 효과 정의들을 혼합하거나 우선순위화할 수 있다.
시스템은 저-레벨 API(2030)을 더 포함한다. 저-레벨 API(2030)는 햅틱 효과 정의에 기초하여 햅틱 효과를 재생하기 위한 명령을 수신할 수 있고, 명령을 제어기(2040)에 의해 해석될 수 있는 저-레벨 명령으로 전환할 수 있다. 저-레벨 API(2030)의 예는 Microsoft Corporation에 의한 Xbox®API(2031)이고, 제어기(2040)의 예는 Microsoft Corporation에 의한 Xbox®제어기(2041)이다.
발명의 실시예에 따르면, 도 21은 트리거 햅틱 효과를 미리보고 수정하기 위한 예시적인 사용자 인터페이스(2100)를 예시한다. 시스템(예를 들어, 도 1의 시스템(10))은 트리거 햅틱 효과 미리보기 및 수정 툴로서 사용자에게 사용자 인터페이스(2100)를 제공할 수 있다. 실시예에 따르면, 사용자 인터페이스(2100)는 개방 효과들(2110)을 포함한다. 개방 효과들(2110)은 선택되기에 이용가능한, 트리거 햅틱 효과 프리셋들과 같은 더 많은 햅틱 효과 프리셋들 중 하나를 디스플레이할 수 있다. 사용자 인터페이스(2100)는 효과 라이브러리(2120)를 더 포함한다. 효과 라이브러리(2120)는 햅틱 효과 라이브러리 내에 포함된 트리거 햅틱 효과 프리셋들과 같은 하나 이상의 햅틱 효과 프리셋들을 디스플레이할 수 있다. 효과 라이브러리(2120)는 카테고리에 의해 하나 이상의 햅틱 효과 프리셋들을 디스플레이할 수 있다.
사용자 인터페이스(2100)는 시간선(2130)을 더 포함한다. 실시예에 따르면, 사용자는 개방 효과들(2110) 내에 디스플레이된 햅틱 효과 프리셋을 선택할 수 있고, 시간선(2130)은 선택된 햅틱 효과 프리셋에 의해 표현된 햅틱 효과 정의의 그래픽적 표현을 디스플레이할 수 있다. 예시된 실시예에서, 햅틱 효과 정의는 4개 채널들을 포함하고, 각각의 채널은 특정 출력(예를 들어, (1) 우측 트리거에 대한 타겟화된 모터 또는 액츄에이터; (2) 좌측 트리거에 대한 타겟화된 모터 또는 액츄에이터; (3) 좌측 럼블 모터 또는 액츄에이터; 및 (4) 좌측 럼블 모터 또는 액츄에이터)에 대해 맵핑된 햅틱 데이터를 포함하고, 각각의 채널은 시간선을 따라 디스플레이된다. 그러나, 다른 실시예들에서, 햅틱 효과 정의는 임의의 개수의 채널들을 포함할 수 있다. 또한, 사용자는 시간선(2130) 내에서 하나 이상의 디스플레이 엘리먼트들과 상호작용함으로써 선택된 햅틱 효과 정의의 하나 이상의 채널들을 수정할 수 있다. 햅틱 효과 정의의 하나 이상의 채널들을 수정함으로써, 대응하는 햅틱 효과의 하나 이상의 속성들을 수정할 수 있다.
사용자 인터페이스(2100)는 효과 특징들(2140)을 더 포함한다. 효과 특징들(2140)은 트리거 엔진(예를 들어, 도 5의 트리거 엔진(506))에 의해 생성된 트리거 햅틱 효과를 가시화할 수 있는 편집가능한 시각적 영역이다. 이전에 기술된 바와 같이, 트리거 엔진은 트리거 햅틱 효과 정의를 수신할 수 있고, 제어기의 트리거의 위치 및/또는 범위에 기초하여 트리거 햅틱 효과 정의를 수정할 수 있다. 따라서, 효과 특징들(2140)은 트리거의 실제 위치를 포함한, 트리거의 가시화를 디스플레이할 수 있다. 또한, 효과 특징들(2140)은 트리거 햅틱 효과 정의에 대해 정의된 트리거의 위치 및/또는 범위를 디스플레이할 수 있고, 위치 및/또는 범위는 트리거 엔진이 트리거 햅틱 효과 정의를 수정하게 할 수 있다. 사용자는 트리거 햅틱 효과 정의에 대해 정의된 트리거의 위치 및/또는 범위를 수정할 수 있다. 또한, 효과 특징들(2140)은 제어기에 대한 트리거들의 리스트를 디스플레이할 수 있으며, 따라서, 사용자는 트리거 햅틱 효과 정의에 대해 정의된 트리거를 수정할 수 있다. 또한, 효과 특징들(2140)은 트리거 햅틱 효과 정의의 크기(또는 강도)를 디스플레이할 수 있고, 사용자는 크기(또는 강도)를 수정할 수 있다.
사용자 인터페이스(2100)는 공간화(2150)를 더 포함한다. 공간화(2150)는 원래 트리거 엔진에 의해 생성되었으며 공간화 엔진(예를 들어, 도 5의 공간화 엔진(507))에 의해 추가로 수정되는 트리거 햅틱 효과를 가시화할 수 있는 편집가능한 시각적 영역이다. 이전에 기술된 바와 같이, 공간화 엔진은, 트리거 햅틱 효과가 제어기의 하나 이상의 타겟화된 모터들, 타겟화된 액츄에이터들, 럼블 모터들, 또는 럼블 액츄에이터들에 대해 스케일링되도록 트리거 햅틱 효과 정의를 수정할 수 있다. 따라서, 공간화(2150)는 제어기의 가시화를 디스플레이할 수 있다. 공간화(2150)는 추가로 제어기의 각각의 타겟화된 모터, 타겟화된 액츄에이터, 럼블 모터, 또는 럼블 액츄에이터에서 경험된 트리거 햅틱 효과의 가시화를 디스플레이할 수 있다. 사용자는 제어기의 각각의 타겟화된 모터, 타겟화된 액츄에이터, 럼블 모터, 또는 럼블 액츄에이터에서 경험되는 트리거 햅틱 효과의 스케일링을 수정할 뿐만 아니라, 트리거 햅틱 효과의 소스의 스케일링을 수정할 수 있다.
발명의 실시예에 따르면, 도 22는 오디오 신호를 트리거 햅틱 효과로 전환하기 위한 예시적인 사용자 인터페이스(2200)를 예시한다. 실시예에 따르면, 햅틱 효과 설계는 사용자 인터페이스(2200) 내로 포함된 오디오 설계 프로세스의 일부분이 될 수 있다. 더 구체적으로, 사용자 인터페이스(2200) 내에 디스플레이된 오디오 효과 정의들(3-8)은 햅틱 효과 정의들로 전환될 수 있고, 햅틱 효과 정의들이 보내질 수 있다.
발명의 실시예에 따르면, 도 23은 오브젝트 파라미터들에 기초하여 트리거 햅틱 효과를 생성하기 위한 예시적인 사용자 인터페이스(2300)를 예시한다. 실시예에 따르면, 사용자 인터페이스(2300)는 햅틱 효과 정의의 명칭을 디스플레이하는 햅틱 효과 정의 명칭(2310)을 포함한다. 사용자 인터페이스(2300)는 햅틱 효과 정의의 하나 이상의 오브젝트 파라미터들을 디스플레이하는 오브젝트 파라미터들(2320)을 더 포함한다. 실시예에서 예시된 예시적인 오브젝트 파라미터들은: 타입; 발사의 레이트; 스타일; 강도(또는 크기); 주파수; 및 사운드 효과를 포함한다. 사용자 인터페이스(2300)는 사용자가 트리거 스로우(throw) 및 트리거 활성화와 같은 햅틱 효과 정의의 트리거 양상들을 수정하게 하는 트리거 수정(2330)를 더 포함한다. 사용자 인터페이스(2300)는 사용자가: 랜덤 강도(또는 크기); 최대 강도(또는 크기); 또는 최소 강도(또는 크기)와 같은, 햅틱 효과 정의의 강도(또는 크기) 양상들을 수정하게 하는 강도(또는 크기) 수정(2340)를 더 포함한다. 사용자 인터페이스(2300)는 사용자가 랜덤화 길이; 최소 듀레이션; 또는 최대 듀레이션과 같은 햅틱 효과 정의의 강도(또는 크기) 양상들을 수정하게 하는 듀레이션 수정(2350)을 더 포함한다. 사용자 인터페이스(2300)는 사용자가 햅틱 효과 정의에 기초하여 햅틱 효과를 가시화하게 하는 햅틱 효과 가시화(2360)를 더 포함한다. 사용자 인터페이스(2300)는 사용자가 수정된 햅틱 효과 정의를 저장하게 하는 저장(2370)을 더 포함한다.
발명의 실시예에 따르면, 도 24는 트리거 햅틱 효과들을 미리보는 시스템(예를 들어, 도 1의 시스템(10))의 아키텍쳐 다이어그램을 예시한다. 시스템은 사용자 인터페이스(2400)를 포함한다. 일 실시예에서, 사용자 인터페이스(2400)는 Qt 사용자 인터페이스이고, Qt는 교차-플랫폼 애플리케이션과 사용자 인터페이스 프레임워크이다. 시스템은 어댑터 계층(2410)을 더 포함한다. 시스템은 트리거 API 계층(2420)을 더 포함한다. 시스템은 트리거 펌웨어 계층(2430)을 더 포함한다.
사용자 인터페이스(2400)는 플로터(plotter)(2401)를 포함한다. 플로터(2401)는 입력으로서 사용자에 의해 특정된 햅틱 효과 정의를 취하며, 햅틱 효과 정의 내에 포함된 햅틱 데이터를 어댑터 계층(2410)을 통해 트리거 API 계층(2420)을 송신한다. 트리거 API 계층(2420)은 플로터(2401)가 사용자 인터페이스(2400) 내에 디스플레이하는 개별 채널 데이터를 다시 송신한다. 렌더러(2402)는 제어기 GUI(2403)로부터의 입력을 취하고 햅틱 플레이어 렌더 루프를 시작한다. 입력은 제어기(2414)로부터 송신된 제어기 입력(2413)(예를 들어, 버튼 및 트리거 입력)을 릴레이하기 위해 트리거 API 계층(2420)을 통한 답신 설정을 가지는 어댑터 계층(2410)을 통해 라우팅된다. 어댑터 계층(2410)은 또한 렌더 루프가 사용자 인터페이스(2400)를 업데이트하도록 실행 중인 동안 플로터(2401)와 통신할 수 있다. 제어기 GUI(2403)는 또한 제어기 선택기(2412)를 사용하여 제어기(2414)를 선택할 수 있고, 무엇이 접속되었는지를 보여줄 수 있다. 제어기 GUI(2403)는 또한 트리거 활성화 포인트를 설정할 수 있다. 또한, 임포터/익스포터(importer/exporter)(2404)는 입력 오디오 파일들을 취하고, 이들을 햅틱 파일로 전환할 수 있다. 일 실시예에서, 오디오 파일은 WAV 파일이다. 또한, 어댑터 계층(2410)은 사용자 인터페이스(2400) 내에 내장될 수 있거나, 또는 별도의 라이브러리일 수 있다. 어댑터 계층(2410)이 별도의 라이브러리일 때, 어댑터 계층(2410)은 별도의 C++ 라이브러리일 수 있다.
발명의 실시예에 따르면, 도 25는 트리거 햅틱 효과들을 생성하는 시스템(도 1의 시스템(10))의 아키텍쳐 다이어그램을 예시한다. 시스템은 게임 애플리케이션(2500)("게임(2500)"으로서 도 25에서 식별됨)을 포함한다. 게임 애플리케이션(2500)은 소프트웨어 게임, 또는 다른 타입의 소프트웨어 애플리케이션의 상황에서, 제어기, 게임패드, 또는 다른 주변 디바이스에 의해 제공되는 입력을 관리하는 컴퓨터-판독가능한 명령들의 세트를 포함한다. 일 실시예에서, 게임 애플리케이션(2500)은 햅틱 효과 라이브러리(2501)를 포함하고, 햅틱 효과 라이브러리(2501)는 하나 이상의 햅틱 효과 정의들을 포함한다.
시스템은 햅틱 엔진(2510)을 더 포함한다. 햅틱 엔진(2510)은 햅틱 효과의 재생을 수행하기 위해, 그리고 햅틱 효과들을 게임 애플리케이션(2500)에 추가하기 위해 저 레벨 API를 이용할 수 있는 고-레벨 API이다. 햅틱 엔진(2510)은 햅틱 효과를 로딩하고, 시작하고, 중단하고, 만들 수 있다. 햅틱 엔진(2510)은 햅틱 효과 파서(2520)와 인터페이싱하여 햅틱 효과에 관한 정보를 파싱/획득할 수 있다. 햅틱 엔진(2510)은 추가로 햅틱 믹서(2530)와 인터페이싱하여 효과를 시작하거나 중단하고 믹서 버퍼를 수정할 수 있다. 햅틱 엔진(2510)은 추가로 햅틱 디바이스 핸들러(2550)와 인터페이싱하여 제어기, 게임패드 또는 다른 주변 디바이스의 디바이스 핸들을 획득하고, 제어기, 게임패드 또는 다른 주변 디바이스 상에서 햅틱 효과들을 만들 수 있다.
시스템은 햅틱 효과 파서(2520)를 더 포함한다. 햅틱 효과 파서(2520)는 메모리에서 햅틱 효과를 로딩하고, 그 포맷을 검증하고, 사이즈, 듀레이션 및 햅틱 데이터와 같은 햅틱 효과에 관한 정보를 획득할 수 있는 API를 포함한다. 시스템은 햅틱 믹서(2530)를 더 포함한다. 햅틱 믹서(2530)는 다수의 햅틱 효과들의 재생을 동시에 지원한다. 시스템은 햅틱 디바이스 핸들러(2540)를 더 포함한다. 햅틱 디바이스 핸들러(2540)는 제어기, 게임패드, 또는 다른 주변 디바이스와의 통신을 개시하고 관리할 수 있다. 햅틱 디바이스 핸들러(2540)는 유니버셜 직렬 버스("USB")와 인터페이싱하고, 제어기, 게임패드, 또는 다른 주변 디바이스의 디바이스 핸들을 획득할 수 있다. 햅틱 디바이스 핸들러(2540)는 추가로 햅틱 효과 재생을 위해 몇몇 상태 머신 구조들을 초기화할 수 있다.
시스템은 트리거 햅틱 보고 핸들러(2550)를 더 포함한다. 트리거 햅틱 보고 핸들러(2550)는 트리거 통신 프로토콜에 따라 USB HID 내에 햅틱 데이터를 패키지화할 수 있다. 시스템은 플랫폼 순응형 USB HID 라이브러리(2560)를 더 포함한다. 플랫폼 순응형 USB HID 라이브러리(2560)는 제어기들, 게임패드들, 또는 다른 주변 디바이스들의 USB HID 및 블루투스 HID 클래스와 인터페이싱하기 위한 하나 이상의 컴퓨터-판독가능한 루틴들을 포함한다. 시스템은 주변 펌웨어(2570)("게임패드 펌웨어(2570)"로서 도 25에서 식별됨)를 더 포함한다. 주변 펌웨어(2570)는 제어기, 게임패드, 또는 다른 주변 디바이스에 대한 펌웨어이다. 시스템은 주변 입력 판독기(2580)("게임패드 입력 판독기(2580)"로서 도 25에서 식별됨)를 더 포함한다. 주변 입력 판독기(2580)는 제어기, 게임패드, 또는 다른 주변 디바이스에 의해 송신되는 주변 입력을 수신한다. 주변 입력 판독기(2580)는 추가로 주변 입력을 해석하고 주변 입력을 게임 애플리케이션(2500)에 송신한다.
발명의 실시예에 따르면, 도 26은 트리거 햅틱 효과들을 생성하는 펌웨어의 아키텍쳐 다이어그램을 예시한다. 펌웨어 아키텍쳐는 펌웨어 모듈러를 만들 수 있고, 하드웨어-독립적 컴포넌트를 하드웨어-종속적 컴포넌트들로부터 분리할 수 있고, 하나의 마이크로컴퓨터 유닛으로부터 또 다른 마이크로컴퓨터 유닛으로의 이동(porting)을 더 용이하게 만들 수 있다. 하드웨어-독립적 계층은 기능 포인터들에 의해 하드웨어-종속적 계층과 통신할 수 있다. 하드웨어-종속적 계층은 구현 템플릿에 기초하여 또 다른 마이크로컨트롤러 유닛에 이동될 수 있다. 모든 하드웨어-종속적 루틴들은 상이한 포트/버튼 정의들을 가지는 하드웨어의 내부 모습을 제공할 수 있는 보드 구성 파일과 인터페이싱할 수 있다.
도 26은 호스트 소프트웨어(2600)("HOST SW(2600)"로서 도 26에서 식별됨)를 포함한다. 호스트 소프트웨어(2600)는, 소프트웨어 게임, 또는 다른 타입의 소프트웨어 애플리케이션의 상황에서, 제어기, 게임패드, 또는 다른 주변 디바이스에 의해 제공된 입력을 관리하는 컴퓨터-판독가능한 명령들의 세트를 포함한다. 호스트 소프트웨어(2600)는 소프트웨어 공간 내에 있을 수 있다. 도 26은 USB HID 핸들러(2605)를 더 포함한다. USB HID 핸들러(2605)는, 제어기, 게임패드, 또는 다른 주변 디바이스와 호스트 소프트웨어(2600) 사이의 모든 통신에 대한 주요 엔트리 포인트일 수 있다. USB HID 핸들러(2605)는, 트리거 통신 프로토콜에 따라, 햅틱 데이터와 같은 데이터를 인코딩/디코딩하기 위한 하나 이상의 컴퓨터-판독가능한 기능들 또는 루틴들을 포함할 수 있다. USB HID 핸들러(2605)는 또한 USB 통신을 핸들링하기 위한 모든 USB 디스크립터들 및 루틴들을 저장할 수 있다. USB HID 핸들러(2605)는 펌웨어 공간 내에 있을 수 있다.
도 26은 통신 인터페이스(2610)를 더 포함한다. 통신 인터페이스(2610)는 인입 패킷 및 호출 코맨드 핸들러(2615)를 파싱하여 적절한 동작들을 취할 수 있다. 도 26은 코맨드 핸들러(2615)를 더 포함한다. 코맨드 핸들러(2615)는 액츄에이터들 상의 햅틱 재생을 지원하는 트리거 프로토콜에 의해 지원되는 코맨드들을 핸들링하기 위한 하나 이상의 컴퓨터-판독가능한 기능들 또는 루틴들을 포함할 수 있다. 도 26은 햅틱 구동 핸들러(2620)를 더 포함한다. 햅틱 구동 핸들러(2620)는 햅틱 재생 엔진의 상태를 업데이트할 수 있고, 액츄에이터들의 구동 값들을 업데이트하고, 액츄에이터들을 제어한다. 햅틱 구동 핸들러(2620)는 기능 포인터 메커니즘에 의해 하드웨어-종속적 타이머 핸들러(2635) 및 액츄에이터 제어(2625)와 인터페이싱할 수 있다. 통신 인터페이스(2610), 코맨드 핸들러(2615) 및 햅틱 구동 핸들러(2620)는 모두 펌웨어 공간 내에 있을 수 있다.
도 26은 액츄에이터 제어(2625)("액츄에이터 구동 제어(2625)"로서 도 26에서 식별됨)를 더 포함한다. 액츄에이터 제어(2625)는 액츄에이터들을 제어하고 구동 값들을 설정할 수 있다. 액츄에이터 제어(2625)는 펄스-폭 변조 생성 유닛과 인터페이싱하고, 액츄에이터 드라이버 칩들과 인터페이싱하기 위한 하나 이상의 컴퓨터-판독가능한 기능들 또는 루틴들을 포함할 수 있다. 도 26은 제어기 입력 판독기(2630)("게임패드 입력 판독기(2630)"로서 도 26에서 식별됨)를 더 포함한다. 제어기 입력 판독기(2630)는 플랫폼-종속적 입력 판독기(2640)와 인터페이싱하여, 제어기, 게임패드, 또는 다른 주변 디바이스의 상이한 입력들의 상태를 획득하고, 입력들을 패키지화하고, 입력들을 통신 인터페이스(2610)에 송신하여, 호스트 소프트웨어(2600)에 추가로 송신되도록 할 수 있다. 도 26은 타이머 핸들러(2635)를 더 포함한다. 타이머 핸들러(2635)는 액츄에이터들에 대한 구동 값을 업데이트하는 루틴을 호출하기 위해 주기적 인터럽트들을 생성하는 역할을 하는 타이머를 제어할 수 있는 하드웨어-종속적 계층이다. 도 26은 입력 판독기(2640)를 더 포함한다. 입력 판독기(2640)는 제어기, 게임패드, 또는 다른 주변 디바이스의 모든 전위차계들 및 디지털 입력들의 상태를 획득할 수 있는 하드웨어-종속적 계층이다. 도 26은 주변기 및 인터페이스 드라이버(2650)를 더 포함한다. 주변기 및 인터페이스 드라이버(2650)는 통신 인터페이스들 및 하드웨어 주변 디바이스들을 제어하기 위해 하나 이상의 컴퓨터-판독가능한 기능들 또는 루틴들을 포함할 수 있다. 액츄에이터 제어(2625), 제어기 입력 판독기(2630), 타이머 핸들러(2635), 입력 판독기(2640), 및 주변기 및 인터페이스 드라이버(2650)는 모두 펌웨어 공간 내에 있을 수 있다.
도 26은, 컴퓨터 프로세싱 유닛(2661), USB(2662), 인터럽트 제어기(2663), 타이머 주변기들(2664), 밑 다른 주변기들(2665)과 같은 컴포넌트들을 포함할 수 있는, 마이크로컨트롤러 유닛(2660)을 더 포함한다. 이들 컴포넌트들의 기능성은 관련 기술분야의 당업자에게 공지되어 있다. 도 26은 제어기 하드웨어(2670)("게임패드 하드웨어(2670)"로서 도 26에서 식별됨)를 더 포함한다. 제어기 하드웨어(2670)의 기능성은 또한 관련 기술분야의 당업자에게 공지되어 있다. 마이크로컨트롤러 유닛(2660) 및 제어기 하드웨어(2670)는 모두 펌웨어 공간 내에 있을 수 있다. 또한, 통신 인터페이스(2610), 코맨드 핸들러(2615), 햅틱 구동 핸들러(2625), 및 제어기 입력 판독기(2630)는 모두 하드웨어-독립적 컴포넌트들일 수 있는 반면, USB HID 핸들러(2605), 액츄에이터 제어(2625), 타이머 핸들러(2635), 입력 판독기(2640), 주변기 및 인터페이스 드라이버(2650), 마이크로컨트롤러 유닛(2660) 및 제어기 하드웨어(2670)는 모두 하드웨어-종속적 컴포넌트들일 수 있다.
일 실시예에서, 제어기, 게임패드, 또는 다른 주변 디바이스는 햅틱 데이터를 전달하기 위한, 그리고 개별 모터들 또는 액츄에이터들을 구동하기 위한 커스터마이즈된 프로토콜을 가질 수 있다. 따라서, 오디오 효과 정의로서 만들어진 햅틱 효과를 포함하는 오디오 파일을 오디오 저작 컴포넌트로부터 수신하고, 오디오 파일 내에 포함된 오디오 데이터를 제어기, 게임패드, 또는 다른 주변 디바이스에 소인하는 오디오 드라이버가 제공될 수 있다. 일 실시예에서, 오디오 저작 컴포넌트는 Avid Technology, Inc에 의한 "Pro Tools" 제품일 수 있다. 오디오 드라이버는 부트 업 프로세스 동안 로딩될 수 있다. 오디오 드라이버는 햅틱 효과 정의들을 제어기, 게임패드 또는 다른 주변 디바이스 내의 모든 모터들 또는 액츄에이터들을 사용하기에 가능하게 만들기 위해, 필요한 개수의 오디오 채널들을 노출시킬 수 있다. 오디오 드라이버는 추가로 사용자 공간 내에서 동작할 수 있고, 모든 사용자 공간 오디오 편집/재생 애플리케이션들에 대해 액세스가능해질 수 있다. 오디오 드라이버는 오디오 저작 컴포넌트가 추가로 제어기, 게임패드 또는 다른 주변 디바이스에 송신하는 오디오 데이터를 판독할 수 있다. 오디오 드라이버는 추가로 제시된 오디오 데이터 상에 필요한 프로세싱을 수행할 수 있고, 오디오 데이터를 액츄에이터 구동 값들과 같은 햅틱 데이터로 전환할 수 있다. 오디오 드라이버는 추가로 햅틱 데이터를 통신 인터페이스를 통해 제어기, 게임패드 또는 다른 주변 디바이스에 통신할 수 있다.
실시예에 따르면, 제어기, 게임패드, 또는 다른 주변 디바이스는 4개의 액츄에이터들을 포함할 수 있다. 2개의 액츄에이터들은 트리거들 상에 햅틱 피드백을 반영하는 트리거 액츄에이터들로서 사용될 수 있다. 트리거 액츄에이터들은 양방향성일 수 있다. 2가지 종류의 방향 이벤트들은 트리거 액츄에이터들: PUSH 및 PULL을 이용하여 발생할 수 있다. PUSH 및 PULL 방향들은 트리거 상의 사용자의 손가락에 관련될 수 있다. 2개의 다른 액츄에이터들은 제어기, 게임패드, 또는 다른 주변 디바이스 내에서 일반적인 햅틱 피드백 또는 럼블 피드백을 반영하는 럼블 액츄에이터들로서 사용될 수 있다. 럼블 액츄에이터들은 단-방향성일 수 있다. 더 구체적으로, 럼블 액츄에이터들은 시계 방향으로 또는 반시계방향으로, 그러나 두 방향 모두는 아니도록 회전(spin)할 수 있다. 모션의 방향은 제어기 및/또는 제어기의 구동 전자기기에 종속적일 수 있다.
이 실시예에서, 후속하는 채널 레이아웃이 오디오 드라이버에 대해 선택될 수 있다:
채널 번호 채널 목적
0 좌측 트리거에 대한 푸시 채널
1 좌측 트리거에 대한 풀 채널
2 우측 트리거에 대한 푸시 채널
3 우측 트리거에 대한 풀 채널
4 좌측 럼블
5 우측 럼블
일 실시예에서, 16-비트 PCM에 대해 선택된 오디오 포맷은 44.1 KHz일 수 있다. 오디오 드라이버는 오디오 저작 컴포넌트로부터 오디오 데이터를 수신하고, 오디오 데이터를 햅틱 데이터(예를 들어, 구동 값들)로 전환하고, 햅틱 데이터를 제어기에 적절하게 전달할 수 있다.
발명의 실시예에 따르면, 도 27은 예시적인 오디오 아키텍쳐를 예시한다. 오디오 아키텍쳐는 애플리케이션-레벨 서비스들(2700)을 포함한다. 애플리케이션-레벨 서비스들(2700)은: 오디오 큐 서비스들; 오디오 유닛들; 시스템 사운드들; 오디오 파일 스트림 서비스들; 오디오 파일, 컨버터 및 코덱 서비스들; OpenAL; 음악 시퀀싱 서비스들; 또는 코어 오디오 클록과 같은 서비스들을 포함할 수 있다. 애플리케이션-레벨 서비스들(2700)은 하드웨어 추출 계층("HAL")(2710)과 통신한다. HAL(2710)의 예는 코어 미디(Musical Instrument Digital Interface("MIDI")(2711))이다. 차례로, HAL(2710)는 입력/출력("I/O") 키트(2720), 드라이버들(2730), 및 하드웨어(2740)와 통신한다. I/O 키트(2720), 드라이버들(2730) 및 하드웨어(2740)는 커넬 공간에 존재한다. 애플리케이션-레벨 서비스들이 하드웨어(2740)에 송신하려고 의도하는 오디오 데이터를 수신하기 위해, 오디오 드라이버는 HAL(2710)에 대한 플러그-인을 요구할 수 있고, 플러그-인은 오디오 데이터를 수신하고, 하드웨어(2740)에 액세스할 수 있다. 오디오 드라이버의 플러그-인은 실시간으로 또는 거의 실시간으로 애플리케이션-레벨 서비스들(2700)로부터 오디오 데이터를 수신할 수 있고, 오디오 데이터를 오디오 데이터의 5-밀리초("ms")에 대한 데시메이션(decimation)을 수행하는 햅틱 데이터(예를 들어, 구동 값들)로 전환할 수 있다. 예시적인 오디오 드라이버는 추가로 도 28과 함께 더 상세하게 기술된다.
발명의 실시예에 따르면, 도 28은 오디오 효과를 트리거 햅틱 효과로 전환하는 예시적인 오디오 드라이버(2800)("햅틱 트리거 드라이버(2800)"로서 도 28에서 식별됨)를 예시한다. 오디오 드라이버(2800)는 하나 이상의 애플리케이션들로부터 오디오 데이터(2805)를 수신한다. 오디오 데이터는 4-채널 오디오 스트림 또는 6-채널 오디오 스트림과 같은 인터리빙된 멀티-채널 오디오 스트림일 수 있다. 후속적으로, 분할기(2815)는 다양한 채널들의 오디오 데이터를 각자의 채널 버퍼들로 분리한다. 또한, 오디오-대-햅틱 데이터 컨버터(2825)는 각각의 채널 버퍼의 오디오 데이터를 햅틱 데이터로 전환한다. 더 구체적으로, 일 실시예에서, 오디오-대-햅틱 데이터 컨버터(2825)는 오디오 데이터의 일부분(예를 들어, 오디오 데이터 중 5ms)에 대해 채널 버퍼들 상에서 피크-검출 알고리즘을 실행하고, 각각의 채널의 데시메이트된 값 어레이 내의 값들을 채운다(populate). 오디오-대-햅틱 데이터 컨버터(2825)는 이후 다음 공식들에 기초하여 개별 액츄에이터들의 구동 값들을 계산한다:
트리거들에 대한 구동 값: (PushChannelDecimatedValue ― PullChannelDecimatedValue) → 이것을 [0,255]로 스케일링한다
럼블들에 대한 구동 값: (DecimatedValue) → 이것을 [128,255]로 스케일링한다
후속적으로, 트리거 통신 프로토콜에 따라, 트리거 프로토콜 패킷 매니저(2835)는 액츄에이터들 모두(예를 들어, 4개 액츄에이터들 모두)에 대한 구동 값들을 획득하고, USB HID 패킷들과 같은 데이터 패킷들로서 구동 값들을 패키지화한다. 또한, XPC 핸들러(2845)는 트리거 프로토콜 패킷 매니저(2835)로부터 데이터 패킷들을 수신하고, 데이터 패킷들을 배경 서비스인 XPC 서비스(2810)에 송신한다. 2855에서, XPC 서비스(2810)는 데이터 패킷들을 수신하고, USB 인터페이스를 통해, 2865에서 데이터 패킷들을 제어기(2820)("햅틱 트리거 게임패드(2820)"로서 도 28에서 식별됨)에 송신한다.
발명의 실시예에 따르면, 도 29는 제2 포맷의 트리거 햅틱 효과를 재생성하는 제1 포맷의 트리거 햅틱 효과의 생성을 예시한다. 실시예에 따르면, 상이한 제어기들, 게임패드들, 또는 다른 주변 디바이스들은 트리거에서 상이한 타입들의 트리거 햅틱 효과들을 생성할 수 있는 상이한 타입들의 모터들 또는 액츄에이터들을 가질 수 있다. 예를 들어, 모터 또는 액츄에이터는 제1 제어기에 대한 트리거에서의 운동감각 피드백을 생성할 수 있는 반면, 모터 또는 액츄에이터는 제2 제어기에 대한 트리거에서의 진동감각 피드백을 생성할 수 있다. 따라서, 트리거 햅틱 효과를 제1 포맷에서 제2 포맷으로 전환하는 것이 필요할 수 있다. 이것은 기본 트리거 햅틱 효과 정의를 제1 포맷에서 제2 포맷으로 전환시킴으로써 달성될 수 있다. 트리거 햅틱 효과 정의를 전환시킴으로써, 트리거 햅틱 효과는 그것이 상이한 제어기에서 등가적인 트리거 햅틱 효과를 생성하는 햅틱 효과 정의와 등가이도록 적절하게(gracefully) 저하될 수 있다.
도 29는 트리거 햅틱 효과 정의에 기초하는 트리거 햅틱 효과(2900)를 포함한다. 트리거 햅틱 효과(2900)에 대한 트리거 햅틱 효과 정의는 대략적으로 75 ms의 듀레이션에 대해 100 Hz(즉, 5ms 푸시 햅틱 신호와 5ms 갭)의 주파수에서 햅틱 신호를 정의한다. 도 29에 예시된 바와 같이, 트리거 햅틱 효과(2900)는 별도의 트리거 햅틱 효과 정의에 기초하는 트리거 햅틱 효과(2910)를 재생성한다. 트리거 햅틱 효과(2910)에 대한 트리거 햅틱 효과 정의는 75 ms의 듀레이션에 대해 대략 100 Hz의 주파수에서 일정한 햅틱 신호를 정의한다. 따라서, 발명의 실시예에 따르면, 트리거 햅틱 효과(2900)와 트리거 햅틱 효과(2910)는 "인지적으로 동일(perceptually equal)"하고, 사용자는 트리거 햅틱 효과(2900)와 트리거 햅틱 효과(2910) 둘 다로부터의 동일한, 또는 실질적으로 동일한 햅틱 패드백을 경험하며, 여기에서 "실질적으로 동일한 햅틱 피드백"은, 재생성된 햅틱 효과에 의해 생성된 햅틱 피드백이 원래 햅틱 효과에 의해 생성된 햅틱 피드백과 다른 경우에도, 원래 햅틱 효과에 의해 생성된 햅틱 피드백과, 동일한 또는 유사한 설계 의도를 충족시키거나 혹은 동일하게 또는 유사하게 경험되는 재생성된 햅틱 효과에 의해 생성되는 햅틱 피드백이다.
발명의 실시예에 따르면, 도 30은 제2 포맷의 트리거 햅틱 효과를 재생성하는 제1 포맷의 트리거 햅틱 효과의 또 다른 생성을 예시한다. 도 30은 트리거 햅틱 효과에 기초하는 트리거 햅틱 효과(3000)를 포함한다. 도 30에 예시된 바와 같이, 트리거 햅틱 효과(3010)는 햅틱 효과(3000)를 재생성하고, 트리거 햅틱 효과(3010)는 별도의 햅틱 효과 정의에 기초한다. 트리거 햅틱 효과(3000)에 대한 트리거 햅틱 효과 정의는 공격(즉, 상승) 시간 및 쇠퇴 시간을 정의한다. 트리거 햅틱 효과(3010)에 대한 트리거 햅틱 효과 정의는 트리거 햅틱 효과(3000)의 공격 시간의 길이에 대한, 그리고 트리거 햅틱 효과(3000)의 쇠퇴 시간의 길이에 대한 하위 크기들을 정의한다.
발명의 실시예에 따르면, 도 31은 햅틱 트리거 제어 모듈(예를 들어, 도 1의 햅틱 트리거 제어 모듈(16))의 기능성의 흐름도를 예시한다. 일 실시예에서, 도 31의 기능성은 메모리 또는 다른 컴퓨터-판독가능한 또는 유형적 매체에 저장되고 프로세서에 의해 실행되는 소프트웨어에 의해 구현된다. 다른 실시예들에서, 기능성은 하드웨어에 의해(예를 들어, 주문형 집적 회로("ASIC"), 프로그래밍가능한 게이트 어레이("PGA"), 필드 프로그래밍 가능한 게이트 어레이("FPGA") 등의 사용을 통해), 또는 하드웨어와 소프트웨어의 임의의 결합에 의해 수행될 수 있다. 특정 실시예들에서, 기능성의 일부는 생략될 수 있다.
흐름이 시작되고 3110으로 진행한다. 3110에서, 오디오 데이터를 포함하는 오디오 효과 정의는 햅틱 데이터를 포함하는 햅틱 효과 정의로 전환된다. 일 실시예에서, 햅틱 효과 정의는 주변 디바이스의 사용자 입력 엘리먼트에서 경험될 수 있거나, 또는 주변 디바이스에서 경험될 수 있는 햅틱 효과를 정의할 수 있다. 또한, 일 실시예에서, 사용자 입력 엘리먼트는 트리거일 수 있고, 주변 디바이스는 제어기 또는 게임패드일 수 있다. 흐름은 이후 3120로 진행한다. 3120에서, 햅틱 효과 정의가 수신된다. 일 실시예에서, 햅틱 효과 정의는 트리거 햅틱 효과 정의일 수 있다. 또한, 실시예에서, 햅틱 효과 정의는 상이한 포맷의 햅틱 효과를 재생성할 수 있다. 흐름은 이후 3130로 진행한다.
3130에서, 햅틱 효과 정의의 햅틱 데이터는 수신된 공간화 데이터에 기초하여 수정된다. 공간화 데이터는 공간화 효과의 방향; 또는 공간화 효과의 흐름 중 적어도 하나를 포함할 수 있다. 특정 실시예들에서, 햅틱 효과 정의의 햅틱 데이터를 수정하는 것은 햅틱 데이터의 크기; 햅틱 데이터의 주파수; 또는 햅틱 데이터의 듀레이션 중 적어도 하나를 스케일링하는 것을 포함할 수 있다. 흐름은 이후 3140으로 진행한다. 3140에서, 트리거 데이터가 수신된다. 트리거 데이터는 주변 디바이스의 트리거의 위치; 또는 주변 디바이스의 트리거의 범위 중 적어도 하나를 포함할 수 있다. 흐름은 이후 3150으로 진행한다.
3150에서, 수신된 트리거 데이터에 기초하여 트리거 조건에 도달했는지의 여부가 결정된다. 흐름은 이후 3160로 진행한다. 3160에서, 햅틱 효과 정의의 햅틱 데이터가 인코딩된다. 특정 실시예들에서, 햅틱 효과 정의의 햅틱 데이터는 오디오 파일 또는 오디오 스트림 내에서 인코딩될 수 있다. 흐름은 이후 3170으로 진행한다.
3170에서, 햅틱 명령 및 햅틱 효과 정의가 주변 디바이스에 송신된다. 특정 실시예들에서, 햅틱 명령 및 햅틱 효과 정의는 트리거 조건에 도달했을 때 주변 디바이스에 송신될 수 있다. 이들 실시예들에서, 햅틱 명령은 트리거 명령일 수 있다. 특정 실시예들에서, 햅틱 효과 정의를 주변 디바이스에 송신하는 것은 햅틱 효과 정의의 햅틱 데이터를 주변 디바이스에 직접 송신하는 것을 포함할 수 있다. 다른 실시예들에서, 햅틱 효과 정의를 주변 디바이스에 송신하는 것은: (1) 햅틱 효과 정의의 햅틱 데이터를 제1 포맷에서 제2 포맷으로 전환하는 것; 및 (2) 햅틱 효과 정의의 전환된 햅틱 데이터를 주변 디바이스에 송신하는 것을 포함할 수 있다. 흐름은 이후 3180으로 진행한다.
3180에서, 햅틱 효과 정의의 인코딩된 햅틱 데이터가 디코딩된다. 특정 실시예들에서, 인코딩된 햅틱 데이터는 프로그래밍가능한 크로스오버를 계산함으로써 디코딩될 수 있다. 흐름은 이후 3190으로 진행한다. 3190에서, 햅틱 명령은 햅틱 출력 디바이스가 주변 디바이스에서의 햅틱 효과 정의에 기초하는 햅틱 효과를 생성하게 한다. 특정 실시예들에서, 햅틱 명령은 햅틱 출력 디바이스가 주변 디바이스의 사용자 입력 엘리먼트에서의 햅틱 효과 정의에 기초하여 햅틱 효과를 생성하게 할 수 있다. 특정 실시예들에서, 햅틱 명령은 트리거 명령일 수 있고, 햅틱 효과 정의는 트리거 햅틱 효과 정의일 수 있고, 햅틱 출력 디바이스는 타겟화된 햅틱 출력 디바이스일 수 있고, 타겟화된 햅틱 출력 디바이스는 주변 디바이스의 트리거에서 햅틱 효과를 생성할 수 있다. 특정 실시예들에서, 타겟화된 햅틱 출력 디바이스는 타겟화된 액츄에이터일 수 있다. 해당 실시예들 중 일부에서, 타겟화된 액츄에이터는 타겟화된 모터일 수 있다. 또한, 특정 실시예들에서, 햅틱 명령은 다수의 햅틱 출력 디바이스들이 주변 디바이스에서의 햅틱 효과 정의에 기초하여 다수의 햅틱 효과들을 생성하게 할 수 있다. 흐름은 이후 종료한다.
실시예에서, 이전에 기술된 바와 같이, 공간화 엔진은 트리거 햅틱 효과 정의와 같은 햅틱 데이터를 수신할 수 있고, 공간화 데이터에 기초하여 햅틱 데이터를 수정할 수 있고, 공간화 데이터는 하나 이상의 파라미터들을 포함할 수 있다. 따라서, 공간화 엔진은 햅틱 효과들을 위치를 알아내거나(localize) 공간화할 수 있다. 더 구체적으로, 공간화 엔진은 햅틱 효과의 거리에 기초하여 액츄에이터 또는 모터 상의 햅틱 효과를 스케일링하거나 감쇠시킴으로써 햅틱 효과의 거리를 전달하는 햅틱 효과를 생성할 수 있다. 공간화 엔진은 추가로 상이한 액츄에이터들 또는 모터들 상의 햅틱 효과를 지연시키거나 스케일링함으로써 제어기, 게임패드, 또는 다른 주변 디바이스 상에서 움직임을 전달하는 햅틱 효과를 생성할 수 있다. 공간화 엔진은 API 또는 라이브러리의 컴포넌트일 수 있고, 제어기, 게임패드, 또는 다른 주변 디바이스에 대한 펌웨어에서 구현될 수 있다.
발명의 실시예에 따르면, 도 32는 API 또는 라이브러리에 위치하는 예시적인 공간화 엔진을 예시한다. 공간화 엔진은 도 1의 시스템(10)과 같은 시스템 상에서 구현된다. 예시된 실시예에서, 시스템은 후속하는 컴포넌트들, 즉 디바이스(3200)"게임 콘솔, 스마트폰, 태블릿 또는 컴퓨터(예를 들어)(3200)"로서 도 32에서 식별됨), 및 제어기(3210)("게임패드(3210)"로서 도 32에서 식별됨)를 포함한다. 디바이스(3200)는, 개인용 컴퓨터, 태블릿, 스마트폰, 또는 콘솔(예를 들어, 비디오 게임 콘솔)과 같은 임의의 타입의 컴퓨터 디바이스일 수 있다. 제어기(3210)는 디바이스(3200)에 동작적으로 접속된 주변 디바이스의 예이다. 제어기(3210)는 비디오 게임 제어기일 수 있다. 일 실시예에서, 제어기(3210)는 도 1의 제어기(30), 도 2, 3, 및 4의 제어기(100) 및 도 5의 제어기(520)와 동일할 수 있다.
디바이스(3200)는 효과 라이브러리(3201)를 포함하고, 효과 라이브러리(3201)는 하나 이상의 햅틱 효과 정의들을 포함할 수 있다. 실시예에서, 이들 햅틱 효과 정의들은, 이들이 공간화 엔진에 의해 수정되지 않은 햅틱 효과 정의들임에 따라, 공간화되지 않은 햅틱 효과 정의들로서 식별될 수 있다. 디바이스(3200)는 게임(3202)을 더 포함하고, 게임(3202)은 시스템 상에서 실행될 수 있는 게임 애플리케이션과 같은 소프트웨어 애플리케이션이다. 실시예에 따르면, 게임(3202)은 하나 이상의 공간화 파라미터들을 생성할 수 있고, 하나 이상의 공간화 파라미터들은 효과 라이브러리(3201) 내에 저장된 햅틱 효과 정의에 의해 정의된 햅틱 효과의 위치, 속도, 방향 및/또는 흐름을 정의할 수 있다.
디바이스(3200)는 공간화 엔진(3203)("햅틱 공간화 엔진(3203)"으로서 도 32에서 식별됨)을 더 포함하고, 효과 라이브러리(3201)는 하나 이상의 공간화되지 않은 햅틱 효과 정의들을 공간화 엔진(3203)에 송신할 수 있고, 게임(3202)은 하나 이상의 공간화 파라미터들을 공간화 엔진(3203)에 송신할 수 있다. 공간화 엔진(3203)은 하나 이상의 공간화되지 않은 햅틱 효과 정의들을 수신할 수 있고, 하나 이상의 공간화 파라미터들에 기초하여 하나 이상의 공간화되지 않은 햅틱 효과 정의들을 수정할 수 있다. 실시예에 따르면, 공간화 엔진(3203)은 하나 이상의 공간화되지 않은 햅틱 효과 정의들을 수정할 수 있고, 따라서, 하나 이상의 햅틱 효과들은 제어기(3210)의 하나 이상의 액츄에이터들(3211)에 대해 스케일링되거나 감쇠되고, 하나 이상의 수정된 햅틱 효과 정의들은 공간화된 햅틱 효과 정의들로서 식별될 수 있다. 다시 말해, 공간화 엔진(3203)은 액츄에이터들(3211)의 각각의 액츄에이터에 송신된 햅틱 효과 정의를 수정하고, 따라서, 햅틱 효과의 위치, 속도, 방향 및/또는 흐름의 감을 전달하기 위해, 액츄에이터들(3211)의 각각의 액츄에이터에서 경험되는 햅틱 효과를 수정할 수 있다. 공간화 엔진(3203)은 후속적으로 하나 이상의 공간화된 햅틱 효과 정의들을 제어기(3210)에 송신할 수 있다. 제어기(3210)는 후속적으로 각각 공간화된 햅틱 효과 정의를 액츄에이터들(3211)의 각각의 액츄에이터에 송신할 수 있고, 각각의 액츄에이터는 공간화된 햅틱효과를 생성할 수 있다.
발명의 실시예에 따르면, 도 33은 제어기에 위치하는 예시적인 공간화 엔진을 예시한다. 공간화 엔진은 도 1의 시스템(10)과 같은 시스템 상에서 구현될 수 있다. 예시된 실시예에서, 시스템은 후속하는 컴포넌트들: 디바이스(3300)("게임 콘솔, 스마트폰, 태블릿 또는 컴퓨터(예를 들어)(3300)로서 도 33에서 식별됨), 및 제어기(3310)("게임패드(3310)로서 도 33에서 식별됨)를 포함한다. 디바이스(3300)는 개인용 컴퓨터, 태블릿, 스마트폰, 또는 콘솔(예를 들어, 비디오 게임 콘솔)과 같은 임의의 타입의 컴퓨터 디바이스일 수 있다. 제어기(3310)는 디바이스(3300)에 동작적으로 접속된 주변 디바이스의 예이다. 제어기(3310)는 비디오 게임 제어기일 수 있다. 일 실시예에서, 제어기(3310)는 도 1의 제어기(30), 도 2, 3 및 4의 제어기(100), 및 도 5의 제어기(520)와 동일할 수 있다.
디바이스(3300)는 효과 라이브러리(3301)를 포함하고, 효과 라이브러리(3301)는 공간화되지 않은 햅틱 효과 정의들로서 식별된, 하나 이상의 햅틱 효과 정의들을 포함할 수 있다. 디바이스(3300)는 게임(3302)을 더 포함하고, 게임(3302)은 시스템 상에서 실행될 수 있는 게임 애플리케이션과 같은 소프트웨어 애플리케이션이다. 실시예에 따르면, 게임(3302)은 하나 이상의 공간화 파라미터들을 생성할 수 있고, 하나 이상의 공간화 파라미터들은 효과 라이브러리(3301) 내에 저장된 햅틱 효과 정의에 의해 정의된 햅틱 효과의 위치, 속도, 방향 및/또는 흐름을 정의할 수 있다.
제어기(3310)는 공간화 엔진(3311)("햅틱 공간화 엔진(3311)"으로서 도 33에서 식별됨)을 포함하고, 효과 라이브러리(3301)는 하나 이상의 공간화되지 않은 햅틱 효과 정의들을 공간화 엔진(3311)에 송신할 수 있고, 게임(3302)은 하나 이상의 공간화 파라미터들을 공간화 엔진(3311)에 송신할 수 있다. 공간화 엔진(3311)은 하나 이상의 햅틱 효과 정의들을 수신할 수 있고, 하나 이상의 공간화 파라미터들에 기초하여 하나 이상의 공간화되지 않은 햅틱 효과 정의들을 수정할 수 있고, 하나 이상의 수정된 햅틱 효과 정의들은 공간화된 햅틱 효과 정의들로서 식별된다. 공간화 엔진(3311)은 후속적으로 각각의 공간화된 햅틱 효과 정의를 액츄에이터들(3312)의 각각의 액츄에이터에 송신할 수 있고, 각각의 액츄에이터는 공간화된 햅틱 효과를 생성할 수 있다.
따라서, 일 실시예에서, 시스템은 제어기 또는 게임패드와 같은 주변 디바이스에서 경험되는 햅틱 효과를 생성할 수 있는 햅틱 제어 아키텍쳐를 제공할 수 있다. 햅틱 효과는 주변 디바이스의 트리거에서 경험되는 트리거 햅틱 효과일 수 있다. 트리거 햅틱 효과는 시스템에 의해 수신된 트리거 데이터에 기초하여 햅틱 제어 아키텍쳐에 의해 커스터마이즈되고, 트리거 데이터는 트리거의 위치 및/또는 범위를 포함할 수 있다. 트리거 햅틱 효과는 트리거 햅틱 효과가 주변 디바이스의 각각의 모터 또는 액츄에이터에서 스케일링되도록 햅틱 제어 아키텍쳐에 의해 추가로 공간화될 수 있고, 따라서, 트리거 햅틱 효과는 방향감 및/또는 흐름을 포함한다. 주변 디바이스에서 경험되는 햅틱 피드백, 및 특히 주변 디바이스에서 경험되는 트리거에서 경험되는 햅틱 피드백을 시스템에 의해 실행되는 게임 애플리케이션포함시킴으로써, 더욱 실제적이고 실감나는 게임 경험이 제공될 수 있다.
이 명세서 전반에 걸쳐 기술된 발명의 특징들, 구조든 및 특성들은 하나 이상의 실시예들에서 임의의 적절한 방식으로 결합될 수 있다. 예를 들어, 이 명세서 전반에 걸친 "일 실시예", "일부 실시예", "특정 실시예", "특정 실시예들" 또는 다른 유사한 언어의 사용은, 실시예와 관련하여 기술된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함될 수 있다는 사실을 지칭한다. 따라서, 이 명세서 전반에 걸친 구문들 "일 실시예", "일부 실시예들", "특정 실시예", "특정 실시예들" 또는 다른 유사한 언어들의 출현은 반드시 모두 실시예들의 동일한 그룹을 지칭하지는 않으며, 기술된 특징들, 구조들 또는 특성들은 하나 이상의 실시예들에서 임의의 적절한 방식으로 결합될 수 있다.
당업자는 위에서 논의된 바와 같은 발명이 상이한 순서의 단계들을 이용하여, 그리고/또는 개시된 것과는 상이한 구성들에서의 엘리먼트들을 이용하여 구현될 수 있다는 점을 쉽게 이해할 것이다. 따라서, 발명이 이들 바람직한 실시예들에 기초하여 기술되었지만, 특정 수정들, 변형들 및 대안적인 구성들이 명백함과 동시에 발명의 사상 및 범위 내에서 유지될 것이라는 점이 당업자에게 명백할 것이다. 따라서, 발명의 한계 및 경계를 결정하기 위해, 첨부된 청구항들에 대한 참조가 이루어져야 한다.

Claims (22)

  1. 주변 디바이스에서 렌더링된 하나 이상의 햅틱 효과를 제어하기 위한 방법으로서,
    햅틱 효과 정의 데이터 구조를 수신하는 단계;
    상기 하나 이상의 햅틱 효과에 대한 방향을 나타내는 공간화 데이터(spatialization data)에 기초하여 상기 햅틱 효과 정의 데이터 구조를 수정하는 단계;
    애플리케이션 프로그래밍 인터페이스를 통해, 햅틱 명령 및 상기 햅틱 효과 정의 데이터 구조를 복수의 햅틱 출력 디바이스를 포함하는 상기 주변 디바이스에 송신하는 단계; 및
    상기 햅틱 출력 디바이스들이 상기 햅틱 명령에 응답하여, 상기 햅틱 효과 정의 데이터 구조에 기초하는 상기 하나 이상의 햅틱 효과를 생성하게 하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 공간화 데이터는 상기 주변 디바이스 상의 사용자의 하나 이상의 손 위치에 따라 결정되는 방법.
  3. 제1항에 있어서,
    상기 공간화 데이터는 게임 애플리케이션 내의 사용자의 캐릭터의 하나 이상의 위치에 따라 결정되는 방법.
  4. 제1항에 있어서,
    상기 햅틱 효과들 중 하나는 하나 이상의 햅틱 출력 디바이스의 출력을 스케일링함으로써 생성되는 방법.
  5. 제1항에 있어서,
    상기 주변 디바이스는 제어기 또는 게임패드를 포함하는 방법.
  6. 제1항에 있어서,
    상기 햅틱 효과들 중 하나는 상기 주변 디바이스의 제1 측으로부터 상기 주변 디바이스의 제2 측으로의 이동의 감각을 생성하는 방법.
  7. 제1항에 있어서,
    상기 햅틱 효과 정의 데이터 구조는 복수의 햅틱 데이터 채널 각각에 연관된 복수의 파라미터를 정의하고, 각각의 채널은 하나의 햅틱 출력 디바이스에 복수의 채널이 연결되지 않도록 서로 다른 햅틱 출력 디바이스에 연결되는 방법.
  8. 프로세서; 및
    상기 프로세서에 의해 실행되는 하나 이상의 프로그램을 저장한 메모리
    를 포함하고,
    상기 하나 이상의 프로그램은,
    햅틱 효과 정의 데이터 구조를 수신하고,
    하나 이상의 햅틱 효과에 대한 방향을 나타내는 공간화 데이터에 기초하여 상기 햅틱 효과 정의 데이터 구조를 수정하고,
    애플리케이션 프로그래밍 인터페이스를 통해, 햅틱 명령 및 상기 햅틱 효과 정의 데이터 구조를 복수의 햅틱 출력 디바이스를 포함하는 주변 디바이스에 송신하고,
    상기 햅틱 출력 디바이스들이 상기 햅틱 명령에 응답하여, 상기 햅틱 효과 정의 데이터 구조에 기초하는 상기 하나 이상의 햅틱 효과를 생성하게 하는
    명령어들을 포함하는 시스템.
  9. 제8항에 있어서,
    상기 공간화 데이터는 상기 주변 디바이스 상의 사용자의 하나 이상의 손 위치에 따라 결정되는 시스템.
  10. 제8항에 있어서,
    상기 공간화 데이터는 게임 애플리케이션 내의 사용자의 캐릭터의 하나 이상의 위치에 따라 결정되는 시스템.
  11. 제8항에 있어서,
    상기 햅틱 효과들 중 하나는 하나 이상의 햅틱 출력 디바이스의 출력을 스케일링함으로써 생성되는 시스템.
  12. 제8항에 있어서,
    상기 주변 디바이스는 제어기 또는 게임패드를 포함하는 시스템.
  13. 제8항에 있어서,
    상기 햅틱 효과들 중 하나는 상기 주변 디바이스의 제1 측으로부터 상기 주변 디바이스의 제2 측으로의 이동의 감각을 생성하는 시스템.
  14. 제8항에 있어서,
    상기 햅틱 효과 정의 데이터 구조는 복수의 햅틱 데이터 채널 각각에 연관된 복수의 파라미터를 정의하고, 각각의 채널은 하나의 햅틱 출력 디바이스에 복수의 채널이 연결되지 않도록 서로 다른 햅틱 출력 디바이스에 연결되는 시스템.
  15. 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램을 저장한 비일시적 컴퓨터 판독가능한 저장 매체로서,
    상기 하나 이상의 프로그램은,
    햅틱 효과 정의 데이터 구조를 수신하고,
    하나 이상의 햅틱 효과에 대한 방향을 나타내는 공간화 데이터에 기초하여 상기 햅틱 효과 정의 데이터 구조를 수정하고,
    애플리케이션 프로그래밍 인터페이스를 통해, 햅틱 명령 및 상기 햅틱 효과 정의 데이터 구조를 복수의 햅틱 출력 디바이스를 포함하는 주변 디바이스에 송신하고,
    상기 햅틱 출력 디바이스들이 상기 햅틱 명령에 응답하여, 상기 햅틱 효과 정의 데이터 구조에 기초하는 상기 하나 이상의 햅틱 효과를 생성하게 하는
    명령어들을 포함하는 비일시적 컴퓨터 판독가능한 저장 매체.
  16. 제15항에 있어서,
    상기 공간화 데이터는 상기 주변 디바이스 상의 사용자의 하나 이상의 손 위치에 따라 결정되는 비일시적 컴퓨터 판독가능한 저장 매체.
  17. 제15항에 있어서,
    상기 공간화 데이터는 게임 애플리케이션 내의 사용자의 캐릭터의 하나 이상의 위치에 따라 결정되는 비일시적 컴퓨터 판독가능한 저장 매체.
  18. 제15항에 있어서,
    상기 햅틱 효과들 중 하나는 하나 이상의 햅틱 출력 디바이스의 출력을 스케일링함으로써 생성되는 비일시적 컴퓨터 판독가능한 저장 매체.
  19. 제15항에 있어서,
    상기 주변 디바이스는 제어기 또는 게임패드를 포함하는 비일시적 컴퓨터 판독가능한 저장 매체.
  20. 제15항에 있어서,
    상기 햅틱 효과들 중 하나는 상기 주변 디바이스의 제1 측으로부터 상기 주변 디바이스의 제2 측으로의 이동의 감각을 생성하는 비일시적 컴퓨터 판독가능한 저장 매체.
  21. 제15항에 있어서,
    상기 햅틱 효과 정의 데이터 구조는 복수의 햅틱 데이터 채널 각각에 연관된 복수의 파라미터를 정의하고, 각각의 채널은 하나의 햅틱 출력 디바이스에 복수의 채널이 연결되지 않도록 서로 다른 햅틱 출력 디바이스에 연결되는 비일시적 컴퓨터 판독가능한 저장 매체.
  22. 각각의 주변 디바이스들에서 렌더링된 햅틱 효과들을 제어하기 위한 방법으로서,
    햅틱 효과 정의 데이터 구조를 수신하는 단계;
    하나 이상의 상기 햅틱 효과에 대한 방향을 나타내는 공간화 데이터에 기초하여 상기 햅틱 효과 정의 데이터 구조를 수정하는 단계;
    애플리케이션 프로그래밍 인터페이스를 통해, 햅틱 명령들을 제1 주변 디바이스 및 제2 주변 디바이스를 포함하는 각각의 주변 디바이스들에 송신하는 단계; 및
    상기 제1 주변 디바이스의 제1 햅틱 출력 디바이스 및 상기 제2 주변 디바이스의 제2 햅틱 출력 디바이스가 상기 햅틱 명령들에 응답하여, 상기 햅틱 효과 정의 데이터 구조에 기초하는 상기 하나 이상의 햅틱 효과를 생성하게 하는 단계
    를 포함하는 방법.
KR1020180003200A 2013-11-14 2018-01-10 햅틱 트리거 제어 시스템 KR102059737B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361904342P 2013-11-14 2013-11-14
US61/904,342 2013-11-14
US14/539,111 US9619029B2 (en) 2013-11-14 2014-11-12 Haptic trigger control system
US14/539,111 2014-11-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020140158296A Division KR101819789B1 (ko) 2013-11-14 2014-11-13 햅틱 트리거 제어 시스템

Publications (2)

Publication Number Publication Date
KR20180006481A KR20180006481A (ko) 2018-01-17
KR102059737B1 true KR102059737B1 (ko) 2019-12-26

Family

ID=51904607

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020140158296A KR101819789B1 (ko) 2013-11-14 2014-11-13 햅틱 트리거 제어 시스템
KR1020180003200A KR102059737B1 (ko) 2013-11-14 2018-01-10 햅틱 트리거 제어 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020140158296A KR101819789B1 (ko) 2013-11-14 2014-11-13 햅틱 트리거 제어 시스템

Country Status (5)

Country Link
US (2) US9619029B2 (ko)
EP (2) EP2873447B1 (ko)
JP (3) JP6181629B2 (ko)
KR (2) KR101819789B1 (ko)
CN (1) CN104635921B (ko)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619029B2 (en) * 2013-11-14 2017-04-11 Immersion Corporation Haptic trigger control system
US9164587B2 (en) 2013-11-14 2015-10-20 Immersion Corporation Haptic spatialization system
US10675532B2 (en) 2014-04-21 2020-06-09 Steelseries Aps Variable actuators of an accessory and methods thereof
US10022622B2 (en) 2014-04-21 2018-07-17 Steelseries Aps Programmable actuation inputs of an accessory and methods thereof
US9715279B2 (en) * 2014-06-09 2017-07-25 Immersion Corporation Haptic devices and methods for providing haptic effects via audio tracks
US9588586B2 (en) 2014-06-09 2017-03-07 Immersion Corporation Programmable haptic devices and methods for modifying haptic strength based on perspective and/or proximity
US10185396B2 (en) 2014-11-12 2019-01-22 Immersion Corporation Haptic trigger modification system
US10254838B2 (en) 2014-12-23 2019-04-09 Immersion Corporation Architecture and communication protocol for haptic output devices
CN104998409A (zh) * 2015-06-11 2015-10-28 将军兄弟有限公司 振动反馈系统及振动反馈方法
JP6834962B2 (ja) * 2015-09-08 2021-02-24 ソニー株式会社 情報処理装置、方法およびコンピュータプログラム
US9990040B2 (en) * 2015-09-25 2018-06-05 Immersion Corporation Haptic CAPTCHA
US9981182B2 (en) 2016-02-12 2018-05-29 Disney Enterprises, Inc. Systems and methods for providing immersive game feedback using haptic effects
US10556175B2 (en) 2016-06-10 2020-02-11 Immersion Corporation Rendering a haptic effect with intra-device mixing
US20180004291A1 (en) * 2016-07-01 2018-01-04 Immersion Corporation Cloud Connected Haptic Platform
US10916123B2 (en) 2016-08-23 2021-02-09 Sony Corporation Control system, control apparatus, and control method
US10349196B2 (en) * 2016-10-03 2019-07-09 Nokia Technologies Oy Method of editing audio signals using separated objects and associated apparatus
US10297120B2 (en) * 2016-12-13 2019-05-21 Disney Enterprises, Inc. Haptic effect generation system
US20180232051A1 (en) * 2017-02-16 2018-08-16 Immersion Corporation Automatic localized haptics generation system
US10773159B2 (en) 2017-06-01 2020-09-15 Microsoft Technology Licensing, Llc Input device with linear geared feedback trigger
US10850190B2 (en) 2017-06-01 2020-12-01 Microsoft Technology Licensing, Llc Input device with clutched force-feedback trigger
US10737172B2 (en) 2017-06-01 2020-08-11 Microsoft Technology Licensing, Llc Input device with force sensor feedback trigger
US10384123B2 (en) 2017-06-01 2019-08-20 Microsoft Technology Licensing, Llc Motor-driven adjustable-tension trigger
US10226697B2 (en) 2017-06-01 2019-03-12 Microsoft Technology Licensing, Llc Input device with sector geared feedback trigger
DE112017007629T5 (de) * 2017-06-27 2020-05-07 Ford Global Technologies, Llc Betrieb von haptischen vorrichtungen
KR102443324B1 (ko) 2017-09-15 2022-09-14 풔스 디멘션 에스에이알엘 진동-촉각력 피드백 방법 및 디바이스
US10955922B2 (en) * 2017-11-29 2021-03-23 International Business Machines Corporation Simulating tactile information for haptic technology
JP7035090B2 (ja) * 2018-01-19 2022-03-14 株式会社ソニー・インタラクティブエンタテインメント 操作入力装置及びプログラム
WO2019163260A1 (ja) * 2018-02-20 2019-08-29 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP6990769B2 (ja) * 2018-07-12 2022-01-12 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置及びコントローラ装置の制御方法
WO2020035018A1 (zh) * 2018-08-16 2020-02-20 上海众链科技有限公司 一种游戏手柄及其用途
CN109005424B (zh) * 2018-08-17 2021-07-16 腾讯科技(成都)有限公司 对象的控制方法、装置及系统、存储介质、电子装置
CN112955861A (zh) * 2018-09-04 2021-06-11 谷歌有限责任公司 用于预缓存特殊效果的故事阅读器进度的检测
US10800433B2 (en) 2018-09-14 2020-10-13 Honda Motor Co., Ltd. Seat haptic system and method of equalizing haptic output
US10345758B2 (en) * 2018-10-07 2019-07-09 Rising Star Pathway, a California Corporation Processor controlled energy harvester based on oscillating weight type energy collectors
US11294431B2 (en) 2019-08-02 2022-04-05 Dell Products L.P. Synchronized dual axis pivot hinge
US10817082B1 (en) 2019-08-02 2020-10-27 Dell Products L.P. Information handling system flexible display smart stylus
US11024224B2 (en) 2019-08-02 2021-06-01 Dell Products L.P. Information handling system flexible display operating condition monitoring and management
US11586243B2 (en) 2019-08-02 2023-02-21 Dell Products L.P. Information handling system flexible display rotational orientation monitoring and management
US11243578B2 (en) 2019-08-02 2022-02-08 Dell Products L.P. Gear synchronized dual axis pivot hinge
US11468750B2 (en) * 2019-10-14 2022-10-11 Lofelt Gmbh Authoring an immersive haptic data file using an authoring tool
US11097185B2 (en) 2019-12-31 2021-08-24 Dell Products L.P. Detachable information handling system game controller management
US11260288B2 (en) 2019-12-31 2022-03-01 Dell Products L.P. Disassemblable information handling system game controller
US11338197B2 (en) 2019-12-31 2022-05-24 Dell Products L.P. Information handling system controller distributable hardware and logic management
US11013991B1 (en) 2019-12-31 2021-05-25 Dell Products L.P. Information handling system controller adaptive haptic feedback
US11331567B2 (en) 2019-12-31 2022-05-17 Dell Products L.P. Information handling system and game controller trigger
US11097184B2 (en) 2019-12-31 2021-08-24 Dell Products L.P. Information handling system controller illumination
US11260291B2 (en) 2019-12-31 2022-03-01 Dell Products L.P. Information handling system and detachable game controller
USD928113S1 (en) 2019-12-31 2021-08-17 Dell Products L.P. Portable information handling system with detachable gaming controllers
US11013987B1 (en) 2019-12-31 2021-05-25 Dell Products L.P. Information handling system controller scalable interface
KR20210088371A (ko) * 2020-01-06 2021-07-14 주식회사 비햅틱스 촉각자극 제공 시스템
KR20210114059A (ko) * 2020-06-30 2021-09-17 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 비디오 처리 방법, 장치, 전자 기기 및 저장 매체
US11277084B2 (en) * 2020-07-14 2022-03-15 Qualcomm Incorporated Driver for haptics and camera voice coil motor applications
KR102608388B1 (ko) * 2020-10-20 2023-12-01 주식회사 씨케이머티리얼즈랩 햅틱 데이터 생성 장치 및 방법, 햅틱 효과 제공 장치 및 방법
US11571617B2 (en) * 2020-12-18 2023-02-07 Dell Products, Lp System and method for coordinating gaming haptic response across peripheral device ecosystem
GB2615361B (en) * 2022-02-08 2024-05-29 Sony Interactive Entertainment Europe Ltd Method for generating feedback in a multimedia entertainment system
WO2023215975A1 (en) * 2022-05-09 2023-11-16 D-Box Technologies Inc. Method and system for adaptive motion simulation in gaming
GB2624179A (en) * 2022-11-08 2024-05-15 Sony Interactive Entertainment Inc Methods and systems for providing in-game navigation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056267A (ja) 2003-08-06 2005-03-03 Sony Corp 力覚フィードバック装置
WO2013116247A1 (en) 2012-01-30 2013-08-08 Microsoft Corporation Force feedback triggers

Family Cites Families (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6285356B1 (en) 1999-02-19 2001-09-04 Brad A. Armstrong Displacement joystick with compression-sensitive sensors
US5473126A (en) 1994-01-31 1995-12-05 Wu; Donald Joystick switch assembly
US5691898A (en) 1995-09-27 1997-11-25 Immersion Human Interface Corp. Safe and low cost computer peripherals with force feedback for consumer applications
US5959613A (en) 1995-12-01 1999-09-28 Immersion Corporation Method and apparatus for shaping force signals for a force feedback device
US6219032B1 (en) 1995-12-01 2001-04-17 Immersion Corporation Method for providing force feedback to a user of an interface device based on interactions of a controlled cursor with graphical elements in a graphical user interface
US6169540B1 (en) 1995-12-01 2001-01-02 Immersion Corporation Method and apparatus for designing force sensations in force feedback applications
US6028593A (en) 1995-12-01 2000-02-22 Immersion Corporation Method and apparatus for providing simulated physical interactions within computer generated environments
US6005551A (en) * 1997-04-25 1999-12-21 Microsoft Corporation Offline force effect rendering
US6252583B1 (en) 1997-11-14 2001-06-26 Immersion Corporation Memory and force output management for a force feedback system
US6563487B2 (en) 1998-06-23 2003-05-13 Immersion Corporation Haptic feedback for directional control pads
US6429846B2 (en) 1998-06-23 2002-08-06 Immersion Corporation Haptic feedback for touchpads and other touch controls
US6184868B1 (en) * 1998-09-17 2001-02-06 Immersion Corp. Haptic feedback control devices
JP2000195370A (ja) 1998-12-28 2000-07-14 Sony Computer Entertainment Inc 反力発生装置
US6424356B2 (en) 1999-05-05 2002-07-23 Immersion Corporation Command of force sensations in a forceback system using force effect suites
JP4587243B2 (ja) * 1999-08-31 2010-11-24 株式会社ソニー・コンピュータエンタテインメント エンタテインメント装置、エンタテインメントシステム、記録媒体及び振動設定方法
DE20080209U1 (de) 1999-09-28 2001-08-09 Immersion Corp Steuerung von haptischen Empfindungen für Schnittstellenvorrichtungen mit Vibrotaktiler Rückkopplung
US7965276B1 (en) 2000-03-09 2011-06-21 Immersion Corporation Force output adjustment in force feedback devices based on user contact
US6710764B1 (en) 2000-05-09 2004-03-23 Logitech Europe S.A. Method and system for processing force feedback effects generated at a host for playback at a physical interaction device
JP2003534620A (ja) 2000-05-24 2003-11-18 イマージョン コーポレイション 電気活性ポリマーを利用する触覚装置及び触覚方法
CN100468294C (zh) 2000-09-28 2009-03-11 伊默逊股份有限公司 用于触觉反馈接口设备的有方向触觉反馈
US7182691B1 (en) * 2000-09-28 2007-02-27 Immersion Corporation Directional inertial tactile feedback using rotating masses
AU2001294852A1 (en) 2000-09-28 2002-04-08 Immersion Corporation Directional tactile feedback for haptic feedback interface devices
US7194287B2 (en) 2001-07-25 2007-03-20 Matsushita Electric Industrial Co., Ltd. Electric-mechanical-acoustic-transducer and portable communication device including the same
US7623114B2 (en) 2001-10-09 2009-11-24 Immersion Corporation Haptic feedback sensations based on audio output from computer devices
CN102609088B (zh) 2001-11-01 2015-12-16 意美森公司 用于提供触感的方法和系统
JP4111278B2 (ja) 2003-11-20 2008-07-02 独立行政法人産業技術総合研究所 触力覚情報提示システム
US8164573B2 (en) 2003-11-26 2012-04-24 Immersion Corporation Systems and methods for adaptive interpretation of input from a touch-sensitive input device
US9948885B2 (en) 2003-12-12 2018-04-17 Kurzweil Technologies, Inc. Virtual encounters
US7791588B2 (en) 2003-12-22 2010-09-07 Immersion Corporation System and method for mapping instructions associated with haptic feedback
US7667687B2 (en) 2003-12-30 2010-02-23 Immersion Corporation Resistive and hybrid control schemes for haptic feedback interface devices
EP1805585B1 (en) 2004-10-08 2017-08-16 Immersion Corporation Haptic feedback for button and scrolling action simulation in touch input devices
JP5275025B2 (ja) * 2005-06-27 2013-08-28 コアクティヴ・ドライヴ・コーポレイション 触覚フィードバック用の同期式振動装置
US8700791B2 (en) * 2005-10-19 2014-04-15 Immersion Corporation Synchronization of haptic effect data in a media transport stream
WO2007117418A2 (en) 2006-03-31 2007-10-18 Wms Gaming Inc. Portable wagering game with vibrational cues and feedback mechanism
US8378964B2 (en) 2006-04-13 2013-02-19 Immersion Corporation System and method for automatically producing haptic events from a digital audio signal
US8000825B2 (en) 2006-04-13 2011-08-16 Immersion Corporation System and method for automatically producing haptic events from a digital audio file
US7979146B2 (en) 2006-04-13 2011-07-12 Immersion Corporation System and method for automatically producing haptic events from a digital audio signal
US20070265077A1 (en) * 2006-04-27 2007-11-15 Microsoft Corporation Haptic feedback for peripheral devices
JP2007331066A (ja) * 2006-06-15 2007-12-27 Canon Inc 接触提示装置及び方法
US9370704B2 (en) 2006-08-21 2016-06-21 Pillar Vision, Inc. Trajectory detection and feedback system for tennis
JP5091488B2 (ja) 2007-01-16 2012-12-05 株式会社ソニー・コンピュータエンタテインメント コントローラ及び情報処理システム
US8621348B2 (en) 2007-05-25 2013-12-31 Immersion Corporation Customizing haptic effects on an end user device
US20090079690A1 (en) * 2007-09-21 2009-03-26 Sony Computer Entertainment America Inc. Method and apparatus for enhancing entertainment software through haptic insertion
US20090088659A1 (en) 2007-09-27 2009-04-02 Immersion Corporation Biological Sensing With Haptic Feedback
US8117364B2 (en) 2007-11-13 2012-02-14 Microsoft Corporation Enhanced protocol and architecture for low bandwidth force feedback game controller
JP5016117B2 (ja) 2008-01-17 2012-09-05 アーティキュレイト テクノロジーズ インコーポレーティッド 口腔内触知フィードバックのための方法及び装置
JP2009233108A (ja) * 2008-03-27 2009-10-15 Namco Bandai Games Inc ゲーム装置用銃型コントローラ
JP2011524060A (ja) 2008-06-03 2011-08-25 テラダイン、 インコーポレイテッド 記憶デバイスを処理する方法
JP5217929B2 (ja) 2008-11-13 2013-06-19 ソニー株式会社 割込検出装置および情報処理システム
US20100141408A1 (en) 2008-12-05 2010-06-10 Anthony Stephen Doy Audio amplifier apparatus to drive a panel to produce both an audio signal and haptic feedback
US8057290B2 (en) * 2008-12-15 2011-11-15 Disney Enterprises, Inc. Dance ring video game
US8506369B2 (en) * 2009-01-06 2013-08-13 Immersion Corporation Programmable game-based haptic enabled gun controller
US9927873B2 (en) 2009-03-12 2018-03-27 Immersion Corporation Systems and methods for using textures in graphical user interface widgets
US8279053B2 (en) * 2009-05-19 2012-10-02 Korea Institute Of Science And Technology Apparatus and method for vibrotactile mobile device
US9370459B2 (en) 2009-06-19 2016-06-21 Andrew Mahoney System and method for alerting visually impaired users of nearby objects
KR20110005587A (ko) 2009-07-10 2011-01-18 삼성전자주식회사 휴대 단말의 진동 발생 방법 및 장치
KR20170026642A (ko) * 2009-07-22 2017-03-08 임머숀 코퍼레이션 제어 제스처의 입력 동안에 가상 장비의 제어에 관한 복합 햅틱 자극을 제공하기 위한 시스템 및 방법
US8540571B2 (en) 2010-03-31 2013-09-24 Immersion Corporation System and method for providing haptic stimulus based on position
WO2011127379A2 (en) 2010-04-09 2011-10-13 University Of Florida Research Foundation Inc. Interactive mixed reality system and uses thereof
CN105824413B (zh) * 2010-04-23 2019-05-21 意美森公司 用于提供触觉效果的系统和方法
WO2012001208A1 (en) * 2010-06-28 2012-01-05 Nokia Corporation Haptic surface compression
US9223431B2 (en) 2010-09-17 2015-12-29 Blackberry Limited Touch-sensitive display with depression detection and method
US9448626B2 (en) 2011-02-11 2016-09-20 Immersion Corporation Sound to haptic effect conversion system using amplitude value
US8717152B2 (en) 2011-02-11 2014-05-06 Immersion Corporation Sound to haptic effect conversion system using waveform
US8723820B1 (en) * 2011-02-16 2014-05-13 Google Inc. Methods and apparatus related to a haptic feedback drawing device
US9083821B2 (en) * 2011-06-03 2015-07-14 Apple Inc. Converting audio to haptic feedback in an electronic device
US8480491B2 (en) 2011-06-17 2013-07-09 Ironburg Inventions Ltd. Game controller
US9462262B1 (en) 2011-08-29 2016-10-04 Amazon Technologies, Inc. Augmented reality environment with environmental condition control
US9523626B2 (en) 2011-09-29 2016-12-20 Pcb Piezotronics, Inc. Hand-held vibration sensor
US8894491B2 (en) * 2011-12-09 2014-11-25 Microsoft Corporation Multi-stage variable resistance trigger
KR102024006B1 (ko) 2012-02-10 2019-09-24 삼성전자주식회사 진동 장치간 진동 전달을 제어하는 장치 및 방법
US9513706B2 (en) 2012-02-15 2016-12-06 Immersion Corporation High definition haptic effects generation using primitives
US9715276B2 (en) 2012-04-04 2017-07-25 Immersion Corporation Sound to haptic effect conversion system using multiple actuators
US10852093B2 (en) 2012-05-22 2020-12-01 Haptech, Inc. Methods and apparatuses for haptic systems
US9874964B2 (en) 2012-06-04 2018-01-23 Sony Interactive Entertainment Inc. Flat joystick controller
US8860563B2 (en) 2012-06-14 2014-10-14 Immersion Corporation Haptic effect conversion system using granular synthesis
US9368005B2 (en) 2012-08-31 2016-06-14 Immersion Corporation Sound to haptic effect conversion system using mapping
US9092059B2 (en) 2012-10-26 2015-07-28 Immersion Corporation Stream-independent sound to haptic effect conversion system
FR2999741B1 (fr) 2012-12-17 2015-02-06 Centre Nat Rech Scient Systeme haptique pour faire interagir sans contact au moins une partie du corps d'un utilisateur avec un environnement virtuel
US20140320629A1 (en) * 2013-01-24 2014-10-30 University Of Washington Through Its Center For Commericialization Haptically-Enabled Co-Robotics for Underwater Tasks
US8754757B1 (en) 2013-03-05 2014-06-17 Immersion Corporation Automatic fitting of haptic effects
EP3211511A1 (en) 2013-03-15 2017-08-30 Immersion Corporation Programmable haptic peripheral
US9367136B2 (en) 2013-04-12 2016-06-14 Microsoft Technology Licensing, Llc Holographic object feedback
CN104107539B (zh) 2013-04-22 2019-12-03 伊默森公司 具有触感使能触发器的游戏设备
US9519346B2 (en) 2013-05-17 2016-12-13 Immersion Corporation Low-frequency effects haptic conversion system
US9908048B2 (en) 2013-06-08 2018-03-06 Sony Interactive Entertainment Inc. Systems and methods for transitioning between transparent mode and non-transparent mode in a head mounted display
US9811854B2 (en) 2013-07-02 2017-11-07 John A. Lucido 3-D immersion technology in a virtual store
EP3014394B1 (en) 2013-07-05 2022-06-22 Rubin, Jacob A. Whole-body human-computer interface
US9619980B2 (en) 2013-09-06 2017-04-11 Immersion Corporation Systems and methods for generating haptic effects associated with audio signals
US9898085B2 (en) 2013-09-06 2018-02-20 Immersion Corporation Haptic conversion system using segmenting and combining
US9711014B2 (en) 2013-09-06 2017-07-18 Immersion Corporation Systems and methods for generating haptic effects associated with transitions in audio signals
US9898086B2 (en) 2013-09-06 2018-02-20 Immersion Corporation Systems and methods for visual processing of spectrograms to generate haptic effects
US9514620B2 (en) 2013-09-06 2016-12-06 Immersion Corporation Spatialized haptic feedback based on dynamically scaled values
US10599218B2 (en) 2013-09-06 2020-03-24 Immersion Corporation Haptic conversion system using frequency shifting
US9576445B2 (en) 2013-09-06 2017-02-21 Immersion Corp. Systems and methods for generating haptic effects associated with an envelope in audio signals
US9630105B2 (en) 2013-09-30 2017-04-25 Sony Interactive Entertainment Inc. Camera based safety mechanisms for users of head mounted displays
US9164587B2 (en) * 2013-11-14 2015-10-20 Immersion Corporation Haptic spatialization system
US9619029B2 (en) * 2013-11-14 2017-04-11 Immersion Corporation Haptic trigger control system
US9392094B2 (en) 2014-01-15 2016-07-12 Sony Corporation Mobile electronic wearable device and method for providing haptic notification
US9551873B2 (en) 2014-05-30 2017-01-24 Sony Interactive Entertainment America Llc Head mounted device (HMD) system having interface with mobile computing device for rendering virtual reality content
JP6355978B2 (ja) * 2014-06-09 2018-07-11 株式会社バンダイナムコエンターテインメント プログラムおよび画像生成装置
US9773389B2 (en) 2014-07-28 2017-09-26 Ck Materials Lab Co., Ltd. Tactile information supply module
US9645646B2 (en) 2014-09-04 2017-05-09 Intel Corporation Three dimensional contextual feedback wristband device
US9799177B2 (en) 2014-09-23 2017-10-24 Intel Corporation Apparatus and methods for haptic covert communication
CN105653026A (zh) * 2014-11-12 2016-06-08 意美森公司 触觉控制器
US10185396B2 (en) * 2014-11-12 2019-01-22 Immersion Corporation Haptic trigger modification system
US9174134B1 (en) * 2014-11-12 2015-11-03 Immersion Corporation Peripheral device with haptic diminishment prevention component
US9922518B2 (en) 2014-12-11 2018-03-20 Elwha Llc Notification of incoming projectiles
US20160170508A1 (en) 2014-12-11 2016-06-16 Toyota Motor Engineering & Manufacturing North America, Inc. Tactile display devices
US9870718B2 (en) 2014-12-11 2018-01-16 Toyota Motor Engineering & Manufacturing North America, Inc. Imaging devices including spacing members and imaging devices including tactile feedback devices
US10166466B2 (en) 2014-12-11 2019-01-01 Elwha Llc Feedback for enhanced situational awareness
US10254838B2 (en) * 2014-12-23 2019-04-09 Immersion Corporation Architecture and communication protocol for haptic output devices
US10268286B2 (en) * 2014-12-23 2019-04-23 Immersion Corporation Controlling power distribution to haptic output devices
US10073516B2 (en) 2014-12-29 2018-09-11 Sony Interactive Entertainment Inc. Methods and systems for user interaction within virtual reality scene using head mounted display
US9746921B2 (en) 2014-12-31 2017-08-29 Sony Interactive Entertainment Inc. Signal generation and detector systems and methods for determining positions of fingers of a user
US9843744B2 (en) 2015-01-13 2017-12-12 Disney Enterprises, Inc. Audience interaction projection system
US10322203B2 (en) 2015-06-26 2019-06-18 Intel Corporation Air flow generation for scent output
US9778746B2 (en) 2015-09-25 2017-10-03 Oculus Vr, Llc Transversal actuator for haptic feedback
US20170103574A1 (en) 2015-10-13 2017-04-13 Google Inc. System and method for providing continuity between real world movement and movement in a virtual/augmented reality experience
US20170131775A1 (en) 2015-11-10 2017-05-11 Castar, Inc. System and method of haptic feedback by referral of sensation
US9849379B2 (en) * 2015-11-25 2017-12-26 Immersion Corporation Haptic peripheral having a deformable substrate configured for amplified deformation
US10055948B2 (en) 2015-11-30 2018-08-21 Nike, Inc. Apparel with ultrasonic position sensing and haptic feedback for activities
US10310804B2 (en) 2015-12-11 2019-06-04 Facebook Technologies, Llc Modifying haptic feedback provided to a user to account for changes in user perception of haptic feedback
US10324530B2 (en) 2015-12-14 2019-06-18 Facebook Technologies, Llc Haptic devices that simulate rigidity of virtual objects
US10096163B2 (en) 2015-12-22 2018-10-09 Intel Corporation Haptic augmented reality to reduce noxious stimuli
US10065124B2 (en) 2016-01-15 2018-09-04 Disney Enterprises, Inc. Interacting with a remote participant through control of the voice of a toy device
US11351472B2 (en) 2016-01-19 2022-06-07 Disney Enterprises, Inc. Systems and methods for using a gyroscope to change the resistance of moving a virtual weapon
US9846971B2 (en) 2016-01-19 2017-12-19 Disney Enterprises, Inc. Systems and methods for augmenting an appearance of a hilt to simulate a bladed weapon
US10061385B2 (en) * 2016-01-22 2018-08-28 Microsoft Technology Licensing, Llc Haptic feedback for a touch input device
US10477006B2 (en) 2016-01-22 2019-11-12 Htc Corporation Method, virtual reality system, and computer-readable recording medium for real-world interaction in virtual reality environment
US9933851B2 (en) 2016-02-22 2018-04-03 Disney Enterprises, Inc. Systems and methods for interacting with virtual objects using sensory feedback
US10555153B2 (en) 2016-03-01 2020-02-04 Disney Enterprises, Inc. Systems and methods for making non-smart objects smart for internet of things
US9981183B2 (en) * 2016-05-19 2018-05-29 Immersion Corporation Haptic peripheral having a haptically-enhanced user input element including a mechanical key and an integrated smart material actuator for providing haptic effects
US20170352185A1 (en) 2016-06-02 2017-12-07 Dennis Rommel BONILLA ACEVEDO System and method for facilitating a vehicle-related virtual reality and/or augmented reality presentation
US10155159B2 (en) 2016-08-18 2018-12-18 Activision Publishing, Inc. Tactile feedback systems and methods for augmented reality and virtual reality systems
US20180053351A1 (en) 2016-08-19 2018-02-22 Intel Corporation Augmented reality experience enhancement method and apparatus
US10372213B2 (en) 2016-09-20 2019-08-06 Facebook Technologies, Llc Composite ribbon in a virtual reality device
US10779583B2 (en) 2016-09-20 2020-09-22 Facebook Technologies, Llc Actuated tendon pairs in a virtual reality device
US10300372B2 (en) 2016-09-30 2019-05-28 Disney Enterprises, Inc. Virtual blaster
US10281982B2 (en) 2016-10-17 2019-05-07 Facebook Technologies, Llc Inflatable actuators in virtual reality
US10088902B2 (en) 2016-11-01 2018-10-02 Oculus Vr, Llc Fiducial rings in virtual reality
US20170102771A1 (en) 2016-12-12 2017-04-13 Leibs Technology Limited Wearable ultrasonic haptic feedback system
US10226697B2 (en) * 2017-06-01 2019-03-12 Microsoft Technology Licensing, Llc Input device with sector geared feedback trigger

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056267A (ja) 2003-08-06 2005-03-03 Sony Corp 力覚フィードバック装置
WO2013116247A1 (en) 2012-01-30 2013-08-08 Microsoft Corporation Force feedback triggers

Also Published As

Publication number Publication date
CN104635921B (zh) 2020-08-07
EP2873447A1 (en) 2015-05-20
EP3417920A1 (en) 2018-12-26
US20170203207A1 (en) 2017-07-20
JP6449946B2 (ja) 2019-01-09
KR20150056066A (ko) 2015-05-22
CN104635921A (zh) 2015-05-20
JP2017195000A (ja) 2017-10-26
JP6181629B2 (ja) 2017-08-16
KR20180006481A (ko) 2018-01-17
EP2873447B1 (en) 2018-08-29
KR101819789B1 (ko) 2018-01-17
JP2015095264A (ja) 2015-05-18
JP2019040636A (ja) 2019-03-14
US10416770B2 (en) 2019-09-17
US9619029B2 (en) 2017-04-11
US20150130706A1 (en) 2015-05-14

Similar Documents

Publication Publication Date Title
KR102059737B1 (ko) 햅틱 트리거 제어 시스템
KR101984378B1 (ko) 햅틱 공간화 시스템
KR102004005B1 (ko) 햅틱 트리거 수정 시스템
JP2018129035A (ja) 選択ハプティックメタデータによるハプティックブロードキャスト
JP2018513430A (ja) スローモーションのためのハプティック効果の修正

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant