# US 12,005,357 B2 · Systems and methods for controlling camera movements between storylines in a video game

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

- Number: US 12,005,357 B2
- Document ID: US12005357B2
- Status: Granted
- Kind: B2
- Application number: 17/654,839
- Filed: 2022-03-15
- Published: 2022-09-01
- Granted: 2024-06-11
- Earliest claimed: 2018-12-20
- Assignees: Activision Publishing, Inc.
- Applicants: Activision Publishing, Inc.
- Inventors: Matthew Tieger; Matthew Duncan; John Philippe Wetmiller; Matthew John Krystek
- Web page: https://patentgrep.com/patent/US12005357B2

## CPC

- A63F 13/5258: by dynamically adapting the position of the virtual camera to keep a game object or game character in its viewing frustum, e.g. for tracking a character or a ball
- G06T 19/00: Manipulating three-dimensional [3D] models or images for computer graphics
- A63F 13/86: Watching games played by other players
- G06T 19/003: {Navigation within 3D models or images}
- A63F 2300/5533: using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

In a multiplayer video game, virtual cameras are controlled by continually assessing and ranking storylines relating to the interactions of various players during a game session. A ranking for each storyline may be based on various factors such as, but not limited to, what the players can see, the distance between certain players, nearby game items or in-game. Subsequently, at least one virtual camera is navigated to provide a view of the highest-ranking storyline, subject to certain limitations on how the camera can move, transition, or otherwise display the interactions between players.

## Claims

### Claim 1

A computer-implemented method of controlling at least one of a navigation, positioning or orientation of a virtual camera configured to capture a plurality of storylines in a multiplayer video game for transmitting to at least one computing device, said method comprising:
defining, in at least one server remote from the at least one computing device, a function to identify the plurality of storylines;
defining, in the at least one server, at least one base criterion for ranking each of the plurality of storylines;
determining, in the at least one server, a base rank for each of the plurality of storylines, wherein the base rank is a function of said at least one base criterion;
defining, in the at least one server, at least one factor to weight the base rank, said at least one factor having a predetermined value;
determining, in the at least one server, an overall rank for each of the plurality of storylines by associating said at least one factor with the base rank, wherein the overall rank is determined at a predetermined frequency in the game;
subject to one or more rules, programmatically moving, in the at least one server, the virtual camera to capture one of the plurality of storylines determined to have a highest overall ranking among the plurality of storylines, wherein the one or more rules limit a time which the virtual camera must take to travel to capture the storyline determined to have the highest overall ranking and wherein the time ranges between 0.25 to 1 second;
transmitting, from the at least one server to the at least one computing device, the one of the plurality of storylines determined to have a highest overall ranking among the plurality of storylines; and
causing said one of the plurality of storylines to be rendered on the at least one computing device.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the function is dependent on at least a genre of said multiplayer video game.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the at least one server is configured to concurrently transmit to at least 20 computing devices.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the at least one base criterion comprises a virtual distance of each player with respect to each other player in the multiplayer video game.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein the base rank for each of the plurality of storylines is inversely related to the virtual distances of each player with respect to each of the other players.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the at least one factor is a function of at least one of:
a first value representative of a relationship between each player and each other player in the multiplayer video game;
a second value representative of an orientation of each player relative to each other player in the multiplayer video game; or
a third factor representative of a degree of an unobstructed view between each player and each other player in the multiplayer video game.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more rules further limit at least one of rotation, tilt or pan required for the virtual camera to capture the storyline determined to have said highest overall ranking.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more rules further require the highest overall ranking of the storyline to exceed an overall ranking of an immediately preceding storyline by a predefined value.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the one or more rules further limit at least one of a speed of movement of the virtual camera or an angular speed of rotation of the virtual camera.

### Claim 10

A system for controlling at least one of a navigation, positioning or orientation of a virtual camera configured to capture a plurality of storylines in a multiplayer video game executing on a plurality of gaming devices for transmitting to a plurality of spectator devices, said system comprising:
at least one server for hosting a game session of the multiplayer video game and to transmit said game session to each of a plurality of spectator devices through a network;
a plurality of gaming modules stored on the plurality of gaming devices remote from the at least one server and configured to enable a plurality of human players to play in the game session of the multiplayer video game;
a plurality of spectator modules stored on the plurality of spectator devices remote from the at least one server and configured to enable a plurality of human spectators to view the transmission of the game session, wherein at least a portion of the plurality of spectator modules are executing on at least a portion of the plurality of gaming devices and wherein at least a portion of the plurality of gaming modules are executing on at least a portion of the plurality of spectator devices;
a processor in said at least one server, said processor executing a plurality of executable programmatic instructions to:
define a function to identify the plurality of storylines;
define at least one base criterion for ranking each of the plurality of storylines;
determine a base rank for each of the plurality of storylines, wherein the base rank is a function of the at least one base criterion;
define at least one factor to weight the base rank;
determine an overall rank for each of the plurality of storylines by associating the at least one factor with the base rank, wherein a value of the at least one factor has an increasing or decreasing effect on the overall ranking; and
subject to one or more rules, programmatically moving the virtual camera to capture one of the plurality of storylines determined to have a highest overall ranking among the plurality of storylines, wherein the one or more rules limit a time which the virtual camera must take to travel to capture the storyline determined to have the highest overall ranking and wherein the time ranges between 0.25 to 1 second;
transmitting the one of the plurality of storylines determined to have a highest overall ranking among the plurality of storylines to the plurality of spectator modules; and
causing said one of the plurality of storylines to be rendered on the at least one computing device.

### Claim 11 (depends on 10)

The system of claim 10, wherein the at least one base criterion comprises a virtual distance of each player with respect to each other player participating in the game session.

### Claim 12 (depends on 11)

The system of claim 11, wherein the base rank for each of the plurality of storylines is inversely related to the virtual distances of each player with respect to each other player.

### Claim 13 (depends on 10)

The system of claim 10, wherein the at least one factor comprises at least one of:
a first value representative of a relationship between each player with respect to each other player in the game session;
a second value representative of an orientation of each player with respect to each other player in the game session; and
a third value representative of a degree of an unobstructed view between each player and each other player in the game session.

### Claim 14 (depends on 10)

The system of claim 10, wherein the one or more rules further limit at least one of rotation, tilt or pan required for the virtual camera to capture the storyline determined to have the highest overall ranking.

### Claim 15 (depends on 10)

The system of claim 10, wherein the one or more rules further require the highest overall ranking of the storyline to exceed an overall ranking of an immediately preceding storyline by a predefined value.

### Claim 16 (depends on 10)

The system of claim 10, wherein the one or more rules further limit at least one of a speed of movement of the virtual camera or an angular speed of rotation of the virtual camera.

### Claim 17

A computer readable non-transitory medium comprising a plurality of executable programmatic instructions wherein, when said plurality of executable programmatic instructions are executed by a processor in at least one server, a process for controlling navigation, positioning and orientation of a virtual camera configured to capture a plurality of storylines in a multiplayer video game for transmitting to at least one spectator device, said plurality of executable programmatic instructions comprising:
programmatic instructions, stored in said computer readable non-transitory medium, for determining a base rank for each of said plurality of storylines, wherein the base rank is a function of at least one base criterion;
programmatic instructions, stored in said computer readable non-transitory medium, for determining an overall rank for each of said plurality of storylines by associating at least one weighting factor with said base rank, wherein said overall rank is determined at a predetermined frequency in the game, and wherein said weighting factor has an accentuating or diminishing effect on the overall rank; and
programmatic instructions, stored in said computer readable non-transitory medium, for switching the virtual camera to a second storyline of a second overall rank from a first storyline of a first overall rank, wherein said switching is subject to one or more rules and wherein the one or more rules limit a time which the virtual camera must take to travel to capture the storyline determined to have the highest overall ranking and wherein the time ranges between 0.25 to 1 second; and
programmatic instructions, stored in said computer readable non-transitory medium, for causing said one of the plurality of storylines to be rendered on the at least one computing device.

### Claim 18 (depends on 17)

The computer readable non-transitory medium of claim 17, wherein the at least one base criterion is a distance of each player with respect to every other player participating in a game match of said multiplayer video game, and wherein the base rank for each of the plurality of storylines is inversely related to the distance of each player with respect to every other player.
