# US 10,441,883 B2 · Information processing system, non-transitory storage medium having information processing program stored therein, information processing apparatus, and information processing method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,441,883 B2
- Document ID: US10441883B2
- Status: Granted
- Kind: B2
- Application number: 15/726,688
- Filed: 2017-10-06
- Published: 2018-06-28
- Granted: 2019-10-15
- Earliest claimed: 2016-12-28
- Assignees: Nintendo Co., Ltd.
- Applicants: Nintendo Co., Ltd.
- Inventors: Masato Mizuta; Yusuke Akifusa; Taku Matoba; Yuki Hashizume
- Web page: https://patentgrep.com/patent/US10441883B2

## CPC

- A63F 13/285: Generating tactile feedback signals via the game input device, e.g. force feedback
- A63F 13/211: using inertial sensors, e.g. accelerometers or gyroscopes
- A63F 13/24: Constructional details thereof, e.g. game controllers with detachable joystick handles
- A63F 13/50: Controlling the output signals based on the game progress
- A63F 13/54: involving acoustic signals, e.g. for simulating revolutions per minute [RPM] dependent engine sounds in a driving game or reverberation against a virtual wall
- A63F 13/577: using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
- A63F 2300/302: specially adapted for receiving control signals not targeted to a display device or game input means, e.g. vibrating driver's seat, scent dispenser
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR

## Abstract

A movement calculation section calculates a movement of a virtual object according to an orientation and/or a motion, of a controller, calculated by an orientation/motion calculation section. A waveform generation section generates a vibration waveform based on a state, of a movement of the virtual object, obtained when the virtual object is in contact with another object, or comes into contact with another object. A waveform output section combines a plurality of vibration waveforms generated by the waveform generation section with each other, and outputs a signal representing a combined waveform obtained by the combination to a vibrator of the controller.

## Claims

### Claim 1

An information processing system comprising:
operation device including at least one sensor;
a vibrator connected to receive an input signal representing a vibration waveform, the vibrator being configured to vibrate according to the input signal representing the vibration waveform;
a processor coupled to the at least one sensor, the processor being configured to sequentially calculate a virtual movement of a virtual object, and change the movement of the virtual object according to an operation the at least one sensor senses; and
a waveform generator operatively coupled to the processor and configured to generate the input signal representing the vibration waveform based on a state, of a movement of the virtual object, obtained when the virtual object is in contact with another object, or comes into contact with another object, based on calculation by the processor, the waveform generator being further configured to output, to the vibrator, the input signal representing a combined waveform obtained by combining a first vibration waveform with a second vibration waveform, in a case where a signal representing the second vibration waveform is generated by the waveform generator when a signal representing the first vibration waveform is generated by the waveform generator.

### Claim 2 (depends on 1)

The information processing system according to claim 1, wherein the processor is further configured to calculate an orientation and/or a motion in response to sensing by the at least one sensor, wherein
the processor is further configured to change the movement of the virtual object in response to the sensing by the at least one sensor.

### Claim 3 (depends on 2)

The information processing system according to claim 2, wherein
the at least one sensor includes an inertial sensor, and
the processor is configured to calculate the orientation and/or the motion of the inertial sensor based on data from the inertial sensor.

### Claim 4 (depends on 1)

The information processing system according to claim 1, wherein the waveform generator generates a signal representing a vibration waveform based on a movement, of the virtual object, obtained when the virtual object is moving in a state where the virtual object is in virtual contact with said another object.

### Claim 5 (depends on 4)

The information processing system according to claim 4, wherein the waveform generator generates a signal representing a vibration waveform having an amplitude that is directly proportional to the moving speed of the virtual object.

### Claim 6 (depends on 4)

The information processing system according to claim 4, wherein
the waveform generator generates, when a virtual collision of the virtual object with said another object occurs, a signal representing a vibration waveform based on the virtual collision of the virtual object, and
the waveform generator outputs a signal representing a combined waveform obtained by combining a vibration waveform based on the movement of the virtual object with a vibration waveform based on the virtual collision of the virtual object.

### Claim 7 (depends on 1)

The information processing system according to claim 1, wherein the waveform generator generates, when a virtual collision of the virtual object with said another object occurs, a signal representing a vibration waveform based on the virtual collision.

### Claim 8 (depends on 1)

The information processing system according to claim 1, wherein
the virtual object includes a virtual container object and at least one content object contained in the virtual container object, and
the processor is configured to change a movement of the content object by changing an orientation and/or a motion of the virtual container object.

### Claim 9 (depends on 8)

The information processing system according to claim 8, wherein
the content object is a plurality of spherical objects, and
the waveform generator generates, when rolling of the plurality of spherical objects in the virtual container object occurs, a signal representing a vibration waveform based on the rolling of each spherical object, and generates, when virtual collision of the plurality of spherical objects occurs, a signal representing a vibration waveform based on the collision of each spherical object.

### Claim 10 (depends on 8)

The information processing system according to claim 8, wherein
the content object is modeled as a rectangular-parallelepiped-shaped object, and
the waveform generator generates, when collision of the rectangular-parallelepiped-shaped object with the virtual container object occurs, a signal representing a vibration waveform based on the collision.

### Claim 11 (depends on 8)

The information processing system according to claim 8, wherein
the content object is a modeled as a virtual point or grain, and
the waveform generator generates, when a movement of the content object in the virtual container object is performed, a signal representing a vibration waveform based on the movement.

### Claim 12 (depends on 1)

The information processing system according to claim 1, wherein the waveform generator combines a plurality of vibration waveforms with each other such that the number of the plurality of vibration waveforms is not greater than a predetermined upper limit number, and outputs, to the vibrator, a signal representing a combined waveform obtained through the combination.

### Claim 13 (depends on 1)

The information processing system according to claim 1, wherein
the information processing system includes an information processing apparatus and an operation device,
the at least one sensor and the vibrator are provided in the operation device,
the processor and the waveform generator are provided in the information processing apparatus, and
the information processing apparatus receives an input from the at least one sensor and transmits an output from the waveform generator to the operation device, through communication with the operation device.

### Claim 14 (depends on 13)

The information processing system according to claim 13, wherein a signal output from the waveform generator includes an amplitude of a waveform per unit time or a difference in an amplitude of a waveform per unit time, and a frequency of the waveform per unit time or a difference in a frequency of the waveform per unit time.

### Claim 15 (depends on 1)

The information processing system according to claim 1, wherein the waveform generator is configured to generate, as the signal, data representing an amplitude and/or a frequency of vibration, and changes the amplitude and/or the frequency in a case where the state of the movement of the virtual object changes when a signal representing a vibration waveform based on the state of the movement of the virtual object is generated.

### Claim 16 (depends on 1)

The information processing system according to claim 1, wherein
the processor is configured to calculate a value representing a movement of the virtual object,
a plurality of pieces of vibration pattern data representing the vibration waveform are prepared, and
the waveform generator selects any of the plurality of pieces of vibration pattern data according to the value, and generates a signal representing the vibration waveform, based on the selected vibration pattern data.

### Claim 17 (depends on 16)

The information processing system according to claim 16, wherein the waveform generator is configured to generate, as the signal, data representing an amplitude and/or a frequency of vibration, and changes the amplitude and/or the frequency according to the value.

### Claim 18

A non-transitory storage medium having stored therein an information processing program executed by a computer of an information processing apparatus that vibrates a vibrator which vibrates according to an input signal representing a vibration waveform, the computer being caused to execute:
sequentially calculating a virtual movement of a virtual object, and changing the movement of the virtual object according to an operation performed on an operation device including at least one sensor;
generating a signal representing a vibration waveform based on a state, of a movement of the virtual object, obtained when the virtual object is in contact with another object, or comes into contact with another object, based on calculation of the virtual movement; and
outputting, to the vibrator, a signal representing a combined waveform obtained by a first vibration waveform and a second vibration waveform being combined with each other, in a case where a signal representing the second vibration waveform is generated when a signal representing the first vibration waveform is generated.

### Claim 19 (depends on 18)

The storage medium having stored therein the information processing program according to claim 18, wherein
the computer is caused to further calculate an orientation and/or a motion of the operation device, and
the movement of the virtual object is changed based on an orientation and/or a motion of the operation device.

### Claim 20 (depends on 18)

The storage medium having stored therein the information processing program according to claim 18, wherein
the processor generates a waveform by generating a signal representing a vibration waveform based on a movement, of the virtual object, obtained when the virtual object is moving in a state where the virtual object is in contact with said another object.

### Claim 21 (depends on 20)

The storage medium having stored therein the information processing program according to claim 20, wherein the processor generates a waveform by generating a signal representing a vibration waveform having an amplitude such that the higher a moving speed of the virtual object is, the greater the amplitude is.

### Claim 22 (depends on 20)

The storage medium having stored therein the information processing program according to claim 20, wherein
the processor generates a waveform by generating, when a collision of the virtual object with said another object occurs, a signal representing a vibration waveform based on the collision of the virtual object, and
the processor controls outputting of a signal representing a combined waveform obtained by combining a vibration waveform based on the movement of the virtual object with a vibration waveform based on the collision of the virtual object.

### Claim 23 (depends on 18)

The storage medium having stored therein the information processing program according to claim 18, wherein the processor generates a waveform by generating, when a collision of the virtual object with said another object occurs, a signal representing a vibration waveform based on the collision.

### Claim 24 (depends on 18)

The storage medium having stored therein the information processing program according to claim 18, wherein
the virtual object includes a virtual container object and at least one content object contained in the virtual container object, and
the processor changes a movement of the content object by changing an orientation and/or a motion of the virtual container object.

### Claim 25

An information processing apparatus that vibrates a vibrator which vibrates according to an input signal representing a vibration waveform, the information processing apparatus comprising;
a processor configured to sequentially calculate a virtual movement of a virtual object, and change the movement of the virtual object according to an operation performed on an operation device including at least one sensor; and
a waveform generator coupled to the processor, the waveform generator configured to generate a signal representing a vibration waveform based on a state, of a movement of the virtual object, obtained when the virtual object is in contact with another object, or comes into contact with another object, based on calculation by the processor, the waveform generator being further configured to output, to the vibrator, a signal representing a combined waveform obtained by combining a first vibration waveform and a second vibration waveform, in a case where a signal representing the second vibration waveform is generated by the waveform generator when a signal representing the first vibration waveform is generated by the waveform generator.

### Claim 26 (depends on 25)

The information processing apparatus according to claim 25, wherein the processor is further configured to calculate an orientation and/or a motion of the operation device, wherein
the processor changes the movement of the virtual object based on an orientation and/or a motion of the operation device.

### Claim 27 (depends on 25)

The information processing apparatus according to claim 25, wherein the waveform generator generates a signal representing a vibration waveform based on a movement, of the virtual object, obtained when the virtual object is moving in a state where the virtual object is in contact with said another object.

### Claim 28

An information processing method executed by an information processing system that vibrates a vibrator which vibrates according to an input signal representing a vibration waveform, the information processing method comprising:
sequentially calculating a virtual movement of a virtual object, and changing the movement of the virtual object according to an operation performed on an operation device including at least one sensor;
generating a signal representing a vibration waveform based on a state, of a movement of the virtual object, obtained when the virtual object is in contact with another object, or comes into contact with another object, based on the calculating; and
outputting, to the vibrator, a signal representing a combined waveform obtained by combining a first vibration waveform and a second vibration waveform, in a case where a signal representing the second vibration waveform is generated while a signal representing the first vibration waveform is also generated.
