A computer graphics display system such as a video game system provides virtual camera 3-D viewpoint panning control based on a pointer. When the pointer is displayed within a virtual camera panning control region, the system automatically pans the virtual camera toward the pointer. When the pointer is displayed within a different region, panning is deactivated and the user can freely move the cursor (e.g., to control the direction a weapon is pointed) without panning the virtual camera viewpoint. Flexible viewpoint control and other animated features are provided based on a pointing device such as a handheld video game optical pointing control. Useful applications include but are not limited to first person shooter type video games.
|
8. A system for providing an animated display comprising:
a display device that displays an image subdivided into a plurality of regions including at least a panning region and a free weapon targeting marker movement region;
a weapon targeting unit that displays a weapon targeting marker at a position on said display device to target objects for damage or destruction by a virtual weapon;
a user input device configured to communicate with said weapon targeting unit, said user input device determining the position said weapon targeting marker is displayed on said display device and thereby allowing a user to control targeting of objects for damage or destruction by said virtual weapon; and
a panning unit that maintains a 3-D viewpoint at a stationary location in response to the position of the weapon targeting marker being within the free weapon targeting marker movement region, the panning unit selectively simultaneously progressively panning the 3-D viewpoint to display a continually changing subset of a 3d world to simulate panning of a camera or turning the user's head, while said weapon targeting marker continues at the same time to target objects conditioned on which of said regions said weapon targeting marker is displayed within.
9. A non-transitory computer readable medium having computer-readable instructions for performing a method comprising:
defining a model of a three-dimensional world including objects that can be targeted by a virtual weapon;
providing a virtual camera to view the three-dimensional world with panning control that when activated pans the virtual camera within the three-dimensional world to expose additional said objects to view, and when deactivated keeps the virtual camera stationary within the three-dimensional world;
subdividing a display region for viewing the three-dimensional world into at least first and second regions, said three-dimensional world being viewable through each of said first and second regions;
controlling a position a targeting reticle is displayed in response to a user providing inputs to allow the user to selectively target said objects;
activating the panning control of the virtual camera whenever said user positions the targeting reticle within the first region, thereby causing said targeting reticle to simultaneously target objects and control progressive smooth panning of said three-dimensional viewpoint to expose continually changing portions of the three-dimensional world to display; and
deactivating the panning control of the virtual camera in response to movement of the targeting reticle whenever the user positions said targeting reticle within the second region different from said first region to allow the user to continue to control the targeting reticle to target objects without changing the viewpoint.
1. A method of allowing a video game user to use a weapon targeting marker to both (a) target a virtual weapon and (b) progressively pan in a desired direction a displayed 3-D viewpoint within a three-dimensional video game computer graphics display system to reveal additional portions of a 3d virtual world, the method comprising:
displaying, on a display in a display area, an image of a three-dimensional virtual world viewed from a viewpoint, the three-dimensional virtual world including at least one virtual object which the user can control a virtual weapon to aim at;
dividing said display area into at least an outer region and an inner region, the outer region surrounding the inner region;
displaying a weapon targeting marker on said display at a position that is at least in part responsive to a user input, said weapon targeting marker indicating a location within said three-dimensional virtual world at which said virtual weapon is aiming;
positioning the weapon targeting marker at a position that is responsive to user manipulation of an input device, thereby allowing the user to target the at least one displayed virtual object;
progressively panning the 3-D viewpoint to reveal additional portions of the 3d world for display while simultaneously changing the location of the weapon targeting marker within the three-dimensional virtual world when the user manipulates the input device to position the weapon targeting marker within the outer region; and
changing the location of the weapon targeting marker within the three-dimensional virtual world without changing the 3-D viewpoint when the user manipulates the input device to move the weapon targeting marker within the inner region.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
10. The method of
11. The method of
12. The method of
13. The system of
14. The non-transitory computer readable medium of
15. The method of
16. The method of
17. The system of
18. The non-transitory computer readable medium of
|
The technology herein relates to three-dimensional computer graphics, and more particularly to techniques for controlling a 3D viewpoint within a virtual three-dimensional space. Still more specifically, the technology herein provides method, apparatus and techniques for using a common pointing indication or control to control both video game action such as object targeting and virtual camera viewing direction/panning.
Many 3D games and other graphical displays allow the user some flexibility in changing the viewpoint from which the 3D virtual world is viewed. Just like the way authors write novels in different voices, video games can be created to view a three-dimensional virtual world from either a “third person viewpoint” or a “first person viewpoint.” In “third person viewpoint” games, a virtual camera is located within the three-dimensional space at a position from which the game player can see and hear all of the action. “First person viewpoint” games show the action from the viewpoint of a character within the game space who is interacting with other objects and events in the game. Each type of presentation has its advantages. Some games allow the game player to switch between a first person viewpoint and a third person viewpoint.
Some of the more popular first person viewpoint games place the game player at the viewpoint of a combatant in some type of conflict. For example, the game player may see the three-dimensional world through the eyes of a soldier or warrior whose job is to attack and destroy enemies such as for example alien creatures who have invaded a virtual spaceship. Using such first person viewpoint display techniques can create an immersive game play action in which the game player feels as if he or she is within the game.
Some prior first person viewpoint display techniques locate a “virtual camera” within the three-dimensional virtual world at a position corresponding to the head of a game character in the game. Objects within the three-dimensional world are rendered from the perspective of this virtual camera. Just like in the real world, a user can turn his or her head to the left or right or look up or down to see different parts of the virtual world. Changing the direction the virtual camera is aimed reveals different parts of the 3-D world, allowing the game player to “look around” the virtual landscape.
In contexts such as virtual tours of buildings and landscapes, users can change a virtual 3-D camera viewpoint via a web browser and a plug-in such as QuickTime® or Flash® to view a scene from a variety of different viewpoints by moving a mouse controlling a cursor. Many video and computer games allow the game player to operate a pointing control such as a joystick to scroll or otherwise change the virtual camera's viewpoint. Thus, when the user moves the joystick to the right of the image, the display also scrolls or pans to the right of the virtual 3-D world and a player to reveal objects previously out of view.
There have been a number of games for personal computers, arcade games and home video game platforms designed to operate primarily in response to two-dimensional cursor control signals from a mouse, joystick, touchpad or other 2-D directional input device(s). For example, it is common for a combination of a mouse and a keyboard to provide inputs for playing first-person shooter games. In many such games, the X axis of the mouse is used for looking (or turning) left and right, while the Y axis is used for looking up and down.
In such games, the left mouse button is sometimes used to control weapon firing. In many video and computer games, a second joystick or other control is used to control other aspects of game action including for example where a weapon is pointed (i.e., object targeting). Still other controls can be used to control weapon firing or other events.
While traditional arcade and home video games have often provided game players with a range of different handheld controls including single or dual joysticks, push buttons, cross-switches and the like to provide simultaneous control over 3D viewpoint and object/weapon targeting, some new gaming platforms have streamlined and simplified the user interface. For example, Nintendo's Wii® home video game system provides a handheld pointing device. The user may point the handheld device at the screen or in other directions. Using optical and/or accelerometer sensors, the Wii game system can detect automatically the direction in which the user is pointing the pointing device, and use this direction as an input to control aspects of video game play. The pointing device can be used to control the position of objects such as (but not limited to) a cursor on the display. Positioning the cursor over an enemy can cause a game character to automatically aim his or her weapon at that enemy. Pressing a “fire” button can then control the game character to fire the weapon at the enemy. It is also possible to control a wide variety of other applications including driving games, flight simulators, adventure games, web browsing, puzzle games, text input and the like.
Other video game platforms use touch screens to control game action. The Nintendo DS portable video game system is one such example. In addition to the normal cross switch or other thumb or finger operated buttons, the Nintendo DS includes a touch screen that can be actuated by the position of a finger or stylus above a display. Some games use the stylus or finger position to control game play action. For example, touching the stylus onto an enemy could cause the game character to aim a weapon at the enemy. Pushing a button or, in some games, leaving the stylus in contact with the image of the enemy for a sufficient period of time could cause a weapon to fire at the enemy. A wide variety of other applications are also possible.
While such simplified user interfaces have many advantages and are highly flexible, they also present some challenges. For example, game players who are used to playing first person viewpoint games on certain platforms have become accustomed to controlling game action with one joystick and controlling viewpoint with a second joystick. In platforms providing a single pointing device, dual pointing or joystick control is not necessarily or always available. While it is possible to choose between a viewpoint control mode and a weapon targeting or other game action control mode, game developers strive for as much realism as possible. In the real world, a person can move his or her head to look at different parts of surroundings at the same time he or she manipulates objects such as aiming a weapon held in the hands. It would be desirable to realistically duplicate these types of real world capabilities through the mechanism of a single pointing device such as an optical pointer and/or accelerometer type sensor.
The technology herein provides an exemplary illustrative non-limiting way to minimize the complexity of user inputs while conveniently allowing the user to control virtual camera panning and other game play action via a common pointing action. Exemplary illustrative non-limiting technology herein allows a player to conveniently control both targeting or other game player character interaction and 3-D viewpoint direction with a common cursor or other pointing action or indicator. To allow a cursor or pointing action to control both a 3-D camera direction and game play targeting within a 3-D video game or other 3-D computer graphics presentation, one exemplary illustrative non-limiting implementation divides the screen into plural zones or regions. In one exemplary illustrative non-limiting implementation, moving the cursor anywhere within a “dead zone” may for example control interaction with video game characters or other objects (e.g., for purposes of weapon targeting or other effects) but does not cause the 3-D camera angle to change. When the cursor is moved outside the “dead zone”, the 3-D camera may change in a predictable and controllable way such as by panning in a direction corresponding to cursor position and/or change in cursor position, and a weapon or other aspect of game play can at the same time continue to make use of the pointing indication for targeting or other purposes.
In one exemplary illustrative non-limiting implementation, the game player can use the same pointing control to control the direction and/or manner of 3D viewpoint changes. For example, the game player can control how fast the 3-D camera pans depends on where the cursor is located on the display. In one exemplary illustrative non-limiting implementation, the 3-D camera pans rapidly when the cursor is in a first zone and pans more slowly when the cursor is in a second zone.
By way of example, without limitation, one exemplary implementation can provide a variable rate of camera angle change based on time encoding. For example, the virtual camera angle can change slowly over an initial period during which a cursor is positioned within a predetermined area of a display and/or 3-D world. The camera angle can change more rapidly after the cursor has been within the predetermined area of the display and/or 3-D world for more than a certain time threshold. Multiple timing thresholds can be applied as desired.
Exemplary illustrative non-limiting advantages include:
Technology herein thus provides, by way of example without limitation, a method of controlling three-dimensional viewpoint panning within a computer graphics display system comprising predefining first and second regions on a display, said first region corresponding to a panning control region, said second region corresponding to a region that does not control panning; displaying a pointing indicia on said display at a position that is at least in part responsive to a user input; and panning the 3-D viewpoint whenever the user positions the cursor within the first region but not when the user positions the cursor within the second region.
The first region can at least in part surrounds the second region.
One can control the rate of panning at least in part in response to the distance the user positions the cursor relative to a center point of the display.
One can control the rate of panning based at least in part on how long the user positions the cursor within the first region.
One may subdivide said first region into plural virtual camera control regions, and control the rate of virtual camera panning based at least in part on which of said plural regions the user positions the cursor within.
One may display a mask image, wherein said mask image at least in part comprises said second region.
One may automatically animate the position of a weapon to aim at cursor-indicated objects.
The weapon can be animated to follow cursor position at the same time as cursor position controls whether or not to pan.
One may control the direction of 3-D pan based at least in part on the position of the cursor relative to a reference point such as the center of the display.
Exemplary illustrative non-limiting technology herein also provides a system for providing an animated display comprising: a display device that displays an image subdivided into plural regions; a cursor control that displays a cursor on said display device; a user input device coupled to said cursor control, said user input device determining the position said cursor is displayed on said display device; and panning control that selectively pans a 3-D viewpoint at least in part defining said image conditioned on which of said regions said cursor is displayed within.
Exemplary illustrative non-limiting technology herein also provides a storage device storing: data at least in part defining a model of a three-dimensional world; a first code segment that subdivides a display region into at least first and second predetermined regions; a second code segment that at least in part controls the position an object is displayed in response to user inputs; and a third code segment that controls panning of a virtual camera 3-D viewpoint to selectively activate 3-D viewpoint panning whenever said object is displayed within a first region and selectively deactivates 3-D viewpoint panning whenever said object is displayed within a second region different from said first region.
These and other features and advantages of exemplary illustrative non-limiting implementations will be better and more completely understood by referring to the following detailed description in conjunction with the drawings, of which:
Exemplary Video Game Platform
Game console 100 executes a game program or other application stored on optical disc 104 inserted into slot 105 formed in housing 110 thereof. The result of the execution of the game program or other application is displayed on display 101 of television 102 to which game console 100 is connected by cable 106. Audio associated with the game program or other application is output via speakers 109 of television 102. While an optical disk is shown in
Controller 107 wirelessly transmits data such as game control data to the game console 100. The game control data may be generated using an operation section of controller 107 having, for example, a plurality of operation buttons, a key, a stick and the like. Controller 107 may also wirelessly receive data transmitted from game console 100. Any one of various wireless protocols such as Bluetooth (registered trademark) may be used for the wireless transmissions between controller 107 and game console 100.
As discussed below, controller 107 also includes an imaging information calculation section for capturing and processing images from light-emitting devices 108a and 108b. Preferably, a center point between light-emitting devices 108a and 108b is aligned with a vertical center line of television 101. The images from light-emitting devices 108a and 108b can be used to determine a direction in which controller 107 is pointing as well as a distance of controller 107 from display 101. By way of example without limitation, light-emitting devices 108a and 108b may be implemented as two LED modules (hereinafter, referred to as “markers”) provided in the vicinity of a display screen of television 102. The markers each output infrared light and the imaging information calculation section of controller 107 detects the light output from the LED modules to determine a direction in which controller 107 is pointing and a distance of controller 107 from display 101 as mentioned above. As will become apparent from the description below, various implementations of the system and method for simulating the striking of an object described herein do not require use such markers.
Although markers 108a and 108b are shown in
With reference to the block diagram of
In one example implementation, optical disk drive 208 receives both optical disks of a first type (e.g., of a first size and/or of a first data structure, etc.) containing applications developed for execution by CPU 204 and graphics processor 216 and optical disks of a second type (e.g., of a second size and/or a second data structure) containing applications originally developed for execution by a different CPU and/or graphics processor. For example, the optical disks of the second type may be applications originally developed for the Nintendo GameCube platform.
CPU 204 is connected to system LSI 202 that includes graphics processing unit (GPU) 216 with an associated graphics memory 220, audio digital signal processor (DSP) 218, internal main memory 222 and input/output (IO) processor 224.
IO processor 224 of system LSI 202 is connected to one or more USB ports 226, one or more standard memory card slots (connectors) 228, WiFi module 230, flash memory 232 and wireless controller module 240.
USB ports 226 are used to connect a wide variety of external devices to game console 100. These devices include by way of example without limitation game controllers, keyboards, storage devices such as external hard-disk drives, printers, digital cameras, and the like. USB ports 226 may also be used for wired network (e.g., LAN) connections. In one example implementation, two USB ports 226 are provided.
Standard memory card slots (connectors) 228 are adapted to receive industry-standard-type memory cards (e.g., SD memory cards). In one example implementation, one memory card slot 228 is provided. These memory cards are generally used as data carriers. For example, a player may store game data for a particular game on a memory card and bring the memory card to a friend's house to play the game on the friend's game console. The memory cards may also be used to transfer data between the game console and personal computers, digital cameras, and the like.
WiFi module 230 enables game console 100 to be connected to a wireless access point. The access point may provide internet connectivity for on-line gaming with players at other locations (with or without voice chat capabilities), as well as web browsing, e-mail, file downloads (including game downloads) and many other types of on-line activities. In some implementations, WiFi module may also be used for communication with other game devices such as suitably-equipped hand-held game devices. Module 230 is referred to herein as “WiFi”, which is generally used in connection with the family of IEEE 802.11 specifications. However, game console 100 may of course alternatively or additionally use wireless modules that conform with other wireless standards.
Flash memory 232 stores, by way of example without limitation, game save data, system files, internal applications for the console and downloaded data (such as games).
Wireless controller module 240 receives signals wirelessly transmitted from one or more controllers 107 and provides these received signals to IO processor 224. The signals transmitted by controller 107 to wireless controller module 240 may include signals generated by controller 107 itself as well as by other devices that may be connected to controller 107. By way of example, some games may utilize separate right-and left-hand inputs. For such games, another controller (not shown) may be connected to controller 107 and controller 107 could transmit to wireless controller module 240 signals generated by itself and by the other controller.
Wireless controller module 240 may also wirelessly transmit signals to controller 107. By way of example without limitation, controller 107 (and/or another game controller connected thereto) may be provided with vibration circuitry and vibration circuitry control signals may be sent via wireless controller module 240 to control the vibration circuitry. By way of further example without limitation, controller 107 may be provided with (or be connected to) a speaker (not shown) and audio signals for output from this speaker may be wirelessly communicated to controller 107 via wireless controller module 240. By way of still further example without limitation, controller 107 may be provided with (or be connected to) a display device (not shown) and display signals for output from this display device may be wirelessly communicated to controller 107 via wireless controller module 240.
Proprietary memory card slots 246 are adapted to receive proprietary memory cards. In one example implementation, two such slots are provided. These proprietary memory cards have some non-standard feature such as a non-standard connector or a non-standard memory architecture. For example, one or more of the memory card slots 246 may be adapted to receive memory cards developed for the Nintendo GameCube platform. In this case, memory cards inserted in such slots can transfer data from games developed for the GameCube platform. In an example implementation, memory card slots 246 may be used for read-only access to the memory cards inserted therein and limitations may be placed on whether data on these memory cards can be copied or transferred to other storage media such as standard memory cards inserted into slots 228.
One or more controller connectors 244 are adapted for wired connection to respective game controllers. In one example implementation, four such connectors are provided for wired connection to game controllers for the Nintendo GameCube platform. Alternatively, connectors 244 may be connected to respective wireless receivers that receive signals from wireless game controllers. These connectors enable players, among other things, to use controllers for the Nintendo GameCube platform when an optical disk for a game developed for this platform is inserted into optical disk drive 208.
A connector 248 is provided for connecting game console 100 to DC power derived, for example, from an ordinary wall outlet. Of course, the power may be derived from one or more batteries.
GPU 216 performs image processing based on instructions from CPU 204. GPU 216 includes, for example, circuitry for performing calculations necessary for displaying three-dimensional (3D) graphics. GPU 216 performs image processing using graphics memory 220 dedicated for image processing and a part of internal main memory 222. GPU 216 generates image data for output to television 102 by audio/video connector 214 via audio/video IC (interface) 212.
Audio DSP 218 performs audio processing based on instructions from CPU 204. The audio generated by audio DSP 218 is output to television 102 by audio/video connector 214 via audio/video IC 212.
External main memory 206 and internal main memory 222 are storage areas directly accessible by CPU 204. For example, these memories can store an application program such as a game program read from optical disc 104 by the CPU 204, various types of data or the like.
ROM/RTC 238 includes a real-time clock and preferably runs off of an internal battery (not shown) so as to be usable even if no external power is supplied. ROM/RTC 238 also may include a boot ROM and SRAM usable by the console.
Power button 242 is used to power game console 100 on and off. In one example implementation, power button 242 must be depressed for a specified time (e.g., one or two seconds) to turn the consoled off so as to reduce the possibility of inadvertently turn-off. Reset button 244 is used to reset (re-boot) game console 100.
With reference to
Cross-switch 302a is described by way of example and other types of operation sections may be used. By way of example without limitation, a composite switch including a push switch with a ring-shaped four-direction operation section and a center switch may be used. By way of further example without limitation, an inclinable stick projecting from the top surface of housing 301 that outputs signals in accordance with the inclining direction of the stick may be used. By way of still further example without limitation, a horizontally slidable disc-shaped member that outputs signals in accordance with the sliding direction of the disc-shaped member may be used. By way of still further example without limitation, a touch pad may be used. By way of still further example without limitation, separate switches corresponding to at least four directions (e.g., front, rear, right and left) that output respective signals when pressed by a player may be used.
Buttons (or keys) 302b through 302g are provided rearward of cross-switch 302a on the top surface of housing 301. Buttons 302b through 302g are operation devices that output respective signals when a player presses them. For example, buttons 302b through 302d are respectively an “X” button, a “Y” button and a “B” button and buttons 302e through 302g are respectively a select switch, a menu switch and a start switch, for example. Generally, buttons 302b through 302g are assigned various functions in accordance with the application being executed by game console 100. In an exemplary arrangement shown in
Button 302h is provided forward of cross-switch 302a on the top surface of the housing 301. Button 302h is a power switch for remote on-off switching of the power to game console 100. Button 302h may also be recessed from a top surface of housing 301 to reduce the possibility of inadvertent pressing by a player.
A plurality (e.g., four) of LEDs 304 is provided rearward of button 302c on the top surface of housing 301. Controller 107 is assigned a controller type (number) so as to be distinguishable from the other controllers used with game console 100 and LEDs may 304 may be used to provide a player a visual indication of this assigned controller number. For example, when controller 107 transmits signals to wireless controller module 240, one of the plurality of LEDs corresponding to the controller type is lit up.
With reference to
As shown in
Connector 303 is provided on a rear surface of controller housing 301. Connector 303 is used to connect devices to controller 107. For example, a second controller of similar or different configuration may be connected to controller 107 via connector 303 in order to allow a player to play games using game control inputs from both hands. Other devices including game controllers for other game consoles, input devices such as keyboards, keypads and touchpads and output devices such as speakers and displays may be connected to controller 107 using connector 303.
For ease of explanation in what follows, a coordinate system for controller 107 will be defined. As shown in
As shown in the block diagram of
As one skilled in the art understands, linear accelerometers, as used in acceleration sensor 507, are only capable of detecting acceleration along a straight line corresponding to each axis of the acceleration sensor. In other words, the direct output of acceleration sensor 507 is limited to signals indicative of linear acceleration (static or dynamic) along each of the two or three axes thereof. As a result, acceleration sensor 507 cannot directly detect movement along a non-linear (e.g. arcuate) path, rotation, rotational movement, angular displacement, tilt, position, attitude or any other physical characteristic.
However, through additional processing of the linear acceleration signals output from acceleration sensor 507, additional information relating to controller 107 can be inferred or calculated (i.e., determined), as one skilled in the art will readily understand from the description herein. For example, by detecting static, linear acceleration (i.e., gravity), the linear acceleration output of acceleration sensor 507 can be used to determine tilt of the object relative to the gravity vector by correlating tilt angles with detected linear acceleration. In this way, acceleration sensor 507 can be used in combination with micro-computer 502 of controller 107 (or another processor) to determine tilt, attitude or position of controller 107. Similarly, various movements and/or positions of controller 107 can be calculated through processing of the linear acceleration signals generated by acceleration sensor 507 when controller 107 containing acceleration sensor 307 is subjected to dynamic accelerations by, for example, the hand of a user, as will be explained in detail below.
In another embodiment, acceleration sensor 507 may include an embedded signal processor or other type of dedicated processor for performing any desired processing of the acceleration signals output from the accelerometers therein prior to outputting signals to micro-computer 502. For example, the embedded or dedicated processor could convert the detected acceleration signal to a corresponding tilt angle (or other desired parameter) when the acceleration sensor is intended to detect static acceleration (i.e., gravity).
Returning to
Vibration circuit 512 may also be included in controller 107. Vibration circuit 512 may be, for example, a vibration motor or a solenoid. Controller 107 is vibrated by actuation of the vibration circuit 512 (e.g., in response to signals from game console 100), and the vibration is conveyed to the hand of the player holding controller 107. Thus, a so-called vibration-responsive game may be realized.
As described above, acceleration sensor 507 detects and outputs the acceleration in the form of components of three axial directions of controller 107, i.e., the components of the up-down direction (Z-axis direction), the left-right direction (X-axis direction), and the front-rear direction (the Y-axis direction) of controller 107. Data representing the acceleration as the components of the three axial directions detected by acceleration sensor 507 is output to communication section 506. Based on the acceleration data which is output from acceleration sensor 507, a motion of controller 107 can be determined.
Communication section 506 includes micro-computer 502, memory 503, wireless module 504 and antenna 505. Micro-computer 502 controls wireless module 504 for transmitting and receiving data while using memory 503 as a storage area during processing. Micro-computer 502 is supplied with data including operation signals (e.g., cross-switch, button or key data) from operation section 302, acceleration signals in the three axial directions (X-axis, Y-axis and Z-axis direction acceleration data) from acceleration sensor 507, and processing result data from imaging information calculation section 505. Micro-computer 502 temporarily stores the data supplied thereto in memory 503 as transmission data for transmission to game console 100. The wireless transmission from communication section 506 to game console 100 is performed at a predetermined time interval. Because game processing is generally performed at a cycle of 1/60 sec. (16.7 ms), the wireless transmission is preferably performed at a cycle of a shorter time period. For example, a communication section structured using Bluetooth (registered trademark) technology can have a cycle of 5 ms. At the transmission time, micro-computer 502 outputs the transmission data stored in memory 503 as a series of operation information to wireless module 504. Wireless module 504 uses, for example, Bluetooth (registered trademark) technology to send the operation information from antenna 505 as a carrier wave signal having a specified frequency. Thus, operation signal data from operation section 302, the X-axis, Y-axis and Z-axis direction acceleration data from acceleration sensor 507, and the processing result data from imaging information calculation section 505 are transmitted from controller 107. Game console 100 receives the carrier wave signal and demodulates or decodes the carrier wave signal to obtain the operation information (e.g., the operation signal data, the X-axis, Y-axis and Z-axis direction acceleration data, and the processing result data). Based on this received data and the application currently being executed, CPU 204 of game console 100 performs application processing. If communication section 506 is structured using Bluetooth (registered trademark) technology, controller 107 can also receive data wirelessly transmitted thereto from devices including game console 100.
The exemplary illustrative non-limiting system described above can be used to execute software stored on optical disk 104 or in other memory that controls it to interactive generate displays on display 101 of a progressively deformed object in response to user input provided via controller 107. Exemplary illustrative non-limiting software controlled techniques for generating such displays will now be described.
Example Illustrative Non-Limiting Pointing Control
By way of example and without limitation, these three regions or areas 1004, 1006, 1008 are defined relative to the two-dimensional surface of the display 102. However, in other implementations, these regions or areas could be defined as three-dimensional regions or volumes within the three-dimensional world 1002.
In the exemplary illustrative non-limiting implementation, a cursor is also displayed on the display device 102. This cursor 1010 is displayed at a position that is controlled by the pointing direction of the handheld controller 107 described above. Whenever the game player moves the handheld controller 107 to point in a different direction, the position of cursor 1010 follows that movement and moves to a pointed-to position on the display device 102. In other exemplary illustrative non-limiting implementations, the cursor position might be controlled by a two-dimensional analog or digital joystick, a mouse, a track ball, the position of a stylus or finger on a touch screen, or by any other convenient input or other mechanism.
While the regions 1004, 1006, 1008 are delineated in the
In the exemplary illustrative non-limiting implementation shown in
In the exemplary illustrative non-limiting implementation, when the user changes the pointing direction of the handheld controller to cause the cursor to move into virtual camera control area 1006, the position of the cursor begins to have an effect on a change in virtual camera viewpoint. In one exemplary illustrative non-limiting implementation, when the user moves the cursor 1010 out of innermost area 1004 and into the virtual camera control area 1006, a depicted weapon may continue to be aimed at the cursor position but at the same time the virtual camera viewpoint may also begin to pan in the direction indicated by the cursor position. Thus, for example, if the user moves the cursor to the right into region 1006, the system may begin to pan the virtual camera viewpoint so as to reveal different portions of the three-dimensional world 1002 to the right of the portions viewed previously.
In one exemplary illustrative non-limiting implementation, the panning may be performed at a rate that is preprogrammed and which does not depend on the rate at which the user is moving cursor 1010. In other words, it is the position of cursor 1010 and not its rate of positional change in this exemplary illustrative non-limiting implementation that activates (and controls the direction of) three-dimensional panning (up, down, left, right, or possibly along a vector defined by current cursor position relative to the center of the screen or any other arbitrary point). In this exemplary illustrative non-limiting implementation, whenever the user moves the cursor 1010 into a rightward portion of virtual camera control area 1006 relative to the center of the screen, the virtual camera viewpoint begins panning to the right at a predetermined rate. Such panning will continue (e.g., to provide a full 360° rotation through the three-dimensional world 1002) so long as the cursor 1010 remains within the virtual camera control area 1006. In a similar manner, whenever the user places the cursor 1010 into a portion of the virtual camera control area 1006 that is above the center of the screen, the system will begin panning the virtual camera viewpoint upwardly. Similar effects to provide leftward panning and downward panning can be achieved by moving the cursor 1010 to a leftward portion of virtual camera control area 1006 or a lower portion of the virtual camera control area, respectively.
In one exemplary illustrative non-limiting implementation, the effect being simulated is that of first person shooter who is turning his or her head or body in the direction of the cursor position. In such implementations, it may be desirable to provide a full 300° of horizontal rotation (to the left or to the right) in order to simulate the first person shooter turning his or her body to the left or to the right. In such an exemplary illustrative non-limiting implementation, the range of the first person shooter's head motion upwardly and downwardly may be limited—just as in the real world, you can bend your neck to look nearly straight down or nearly straight up but not beyond. In other exemplary illustrative non-limiting implementations, such as for example simulating the motion of a space pod with six degrees of unconstrained freedom, the range of panning angles could be 360° in all directions or in any arbitrary direction of rotation, or other limitations could be applied depending on the application.
In some exemplary illustrative non-limiting implementations, there might be only one virtual camera control area which could, for example, be defined as any position outside of the inner area 1004. However,
In one exemplary illustrative non-limiting implementation, the user may be given the option of overriding the effect of the virtual camera panning control areas 1006, 1008 by activating a “view lock” mode (e.g., by holding down a button such as the Z button). In such exemplary illustrative non-limiting implementations, such a “view lock” mode can allow the user to move the cursor 1010 anywhere on the screen without causing the virtual camera angle to change. In other exemplary illustrative non-limiting implementations, the user might need to hold down a button or exert some other control in order to activate the virtual camera panning control providing automatic panning whenever the cursor 1010 is positioned within a virtual camera panning control region.
In the effect described above, the virtual camera will continue to pan even when the cursor is held stationary in position within a virtual camera control region 1006, 1008. Given that the exemplary illustrative non-limiting handheld controller may not necessarily be used with a full 360° physical rotation (e.g., because it may, without limitation, be aimed generally toward sensors positioned about the display device), the user may not need to physically rotate the handheld controller about a 360° angle in order to achieve 360° of virtual camera panning. In such example non-limiting implementations, all the user needs to do is to place cursor 1010 within a virtual camera control region 1006, 1008 at a position offset from the center of the display in the direction the user wishes the virtual camera to pan. In such implementations, the system will automatically provide virtual camera panning in the desired direction without the user having to take any additional action.
In the example non-limiting implementation, the user can control the speed at which the virtual camera pans by specifying the distance the cursor is from the center of the display. In the exemplary illustrative non-limiting implementation shown in
In other exemplary illustrative non-limiting implementations, a variable panning rate could be calculated based for example on the distance of cursor 1010 from the center of the display or from the edge of the display, or based on how far the user has moved the cursor or the speed at which the user moves the cursor.
In still other exemplary illustrative non-limiting implementations, the virtual camera may pan at a rate that is determined by how long the cursor 1010 has been within a virtual camera control region. For example, in one exemplary illustrative non-limiting implementation, when the cursor 1010 is first moved into the virtual camera control region 1006, relatively slow panning begins to occur. The longer the cursor remains within the virtual camera control region 1006, the faster virtual camera panning will occur. In one exemplary illustrative non-limiting implementation, there might be only two speeds (fast and slow) for the virtual camera panning, with a threshold time period (e.g., two seconds) being used to compare with the time period that cursor 1010 has remained within the virtual camera control region. In other exemplary illustrative non-limiting implementations, the calculation could be used to provide a direct proportionality between how long the cursor has remained within the virtual camera control region and the rate at which the virtual camera is panned.
As used herein, the term “panning” is intended to be analogous to the type of panning of a real camera on a tripod with a rotational head. Using a real world movie camera on a tripod, one can turn the camera direction to the left or to the right and can also adjust the camera direction upwards and downwards. Those skilled in the art well know that such panning of a 3-D viewpoint can be accomplished straightforwardly using matrix transformations when generating 3-D perspective or orthogonal views. See for example Foley et al., Computer Graphics Principles and Practice (Second Edition 1990, Addison Wesley) at for example section 6.2, pages 237-252. Such panning or other virtual camera control effects are well known and have been widely used in cinematography, animation, simulated dance, 3-D visualization and a wide variety of other contexts. See for example U.S. Pat. No. 6,325,717.
While the exemplary illustrative non-limiting implementation generally does not control the rate at which panning occurs based on the rate at which the user is moving cursor 1010, in other exemplary illustrative non-limiting implementations the rate at which the user moves the cursor could be used as an input to affect or determine the panning rate. Furthermore, while the exemplary illustrative non-limiting implementation uses display of a cursor 1010 to provide an indication to the user as to what type of panning effect the user might expect, other implementations could display an object other than a cursor or might display no object at all and simply rely on the user knowing the direction or position he or she is pointing at (e.g., based upon the physical position of the handheld pointing device), or other type of feedback such as audio, ——————, touch or visual feedback could be used.
In one exemplary illustrative non-limiting implementation, the cursor 1010 is controlled through the DPD optical pointing device 107 to point to game objects or change viewing direction. When the cursor 1010 is within “area I” (1004) of the game display, no scrolling occurs, i.e., you can freely and easily point any objects that exist around the center of the display. When the cursor 1010 is in “area II” of the game display, slow scrolling occurs, i.e., you can see around the game space including the wall behind the original viewpoint. When the cursor 1010 is in “area III” of the game display (1008), fast scrolling occurs.
As illustrated in
As shown in
As mentioned above, the panning control regions can be any size, shape or configuration.
Exemplary Illustrative Non-Limiting Software Control
Example Game Displays
While the technology herein has been described in connection with exemplary illustrative non-limiting implementations, the invention is not to be limited by the disclosure. For example, while the technology above has been described in connection with 3D virtual camera panning, other types of 2D or 3D viewpoint control could be used instead. While the exemplary illustrative non-limiting implementation provides first person shooter type game play on a home video game machine, any type of computer graphics or other computing platform could be used to play any type of game or provide any type of graphical, virtual reality or other display. The invention is intended to be defined by the claims and to cover all corresponding and equivalent arrangements whether or not specifically disclosed herein.
Patent | Priority | Assignee | Title |
11095831, | Oct 28 2016 | Canon Kabushiki Kaisha | Image processing apparatus, image processing system, image processing method, and storage medium |
11128813, | Oct 28 2016 | Canon Kabushiki Kaisha | Image processing apparatus, image processing system, image processing method, and storage medium |
11351457, | Sep 11 2020 | Riot Games, Inc. | Selecting an anchored offset targeting position |
11468626, | Mar 17 2017 | Unity IPR ApS | Method and system for automated camera collision and composition preservation |
11498004, | Jun 23 2020 | Nintendo Co., Ltd. | Computer-readable non-transitory storage medium having instructions stored therein, game apparatus, game system, and game processing method |
11504620, | Feb 22 2019 | NETEASE (HANGZHOU) NETWORK CO., LTD. | Method for controlling game character and electronic device and computer storage medium |
11508116, | Mar 17 2017 | Unity IPR ApS | Method and system for automated camera collision and composition preservation |
8614672, | Mar 09 2009 | Nintendo Co., Ltd. | Information processing apparatus, storage medium having information processing program stored therein, information processing system, and display range control method |
8704759, | Mar 09 2009 | Nintendo Co., Ltd. | Coordinate calculation apparatus and storage medium having coordinate calculation program stored therein |
8749490, | Jun 30 2008 | Nintendo Co., Ltd. | Orientation calculation apparatus, storage medium having orientation calculation program stored therein, game apparatus, and storage medium having game program stored therein |
9079102, | Jun 30 2008 | Nintendo Co., Ltd. | Calculation of coordinates indicated by a handheld pointing device |
9195317, | Feb 05 2009 | OPENTV, INC.; OPENTV, INC | System and method for generating a user interface for text and item selection |
9229614, | Jun 25 2013 | Nintendo Co., Ltd. | Storage medium storing information processing program, information processing device, information processing system, and method for calculating specified position |
9327191, | May 08 2006 | NINTENDO CO , LTD | Method and apparatus for enhanced virtual camera control within 3D video games or other computer graphics presentations providing intelligent automatic 3D-assist for third person viewpoints |
9498718, | May 01 2009 | Microsoft Technology Licensing, LLC | Altering a view perspective within a display environment |
9595108, | Aug 04 2009 | Eyecue Vision Technologies Ltd | System and method for object extraction |
9636588, | Aug 04 2009 | EyeCue Vision Technologies Ltd. | System and method for object extraction for embedding a representation of a real world object into a computer graphic |
9669312, | Aug 04 2009 | EyeCue Vision Technologies Ltd. | System and method for object extraction |
9772694, | Mar 09 2009 | Nintendo Co., Ltd. | Coordinate calculation apparatus and storage medium having coordinate calculation program stored therein |
9789391, | Sep 14 2006 | Nintendo Co., Ltd. | Method and apparatus for using a common pointing input to control 3D viewpoint and object targeting |
9977565, | Feb 09 2015 | LEAPFROG ENTERPRISES, INC | Interactive educational system with light emitting controller |
Patent | Priority | Assignee | Title |
4720703, | Aug 02 1984 | Tektronix, Inc. | Display method and apparatus employing cursor panning |
5075673, | Jun 16 1989 | INTERNATIONAL BUSINESS MACHINES CORPORATION, A CORP OF NY | Variable speed, image pan method and apparatus |
6097371, | Jan 02 1996 | Microsoft Technology Licensing, LLC | System and method of adjusting display characteristics of a displayable data file using an ergonomic computer input device |
6097387, | May 11 1998 | Sony Corporation; Sony Electronics Inc. | Dynamic control of panning operation in computer graphics |
6165073, | Oct 30 1997 | Nintendo Co., Ltd. | Video game apparatus and memory medium therefor |
6241609, | Jan 09 1998 | U.S. Philips Corporation | Virtual environment viewpoint control |
6259431, | Jul 04 1996 | Kabushiki Kaisha Sega Enterprises | Image processor, game machine, image display method, and recording medium |
6314426, | Nov 07 1995 | ROUNDPOINT, INC A DELAWARE CORPORATION | Information retrieval and display systems |
6354944, | Mar 28 1996 | Sega Corporation | Optimum viewpoint automatically provided video game system |
6500069, | Jun 05 1996 | Kabushiki Kaisha Sega Enterprises | Image processor, image processing method, game machine and recording medium |
6626760, | Oct 30 1997 | Nintendo Co., Ltd. | Video game apparatus and memory medium therefor |
6835136, | Mar 24 2000 | KONAMI DIGITAL ENTERTAINMENT CO , LTD | Game system, computer readable storage medium storing game program and image displaying method |
6972776, | Mar 20 2001 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Scrolling method using screen pointing device |
7071919, | Feb 26 2001 | Microsoft Technology Licensing, LLC | Positional scrolling |
20030169280, | |||
20040110560, | |||
20040224760, | |||
20050049047, | |||
20060048073, | |||
20060084509, | |||
20060246968, | |||
20070097150, | |||
20070155492, | |||
20070270215, | |||
20070298881, | |||
JP116343, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 14 2006 | Nintendo Co., Ltd. | (assignment on the face of the patent) | / | |||
Nov 08 2006 | RETRO STUDIOS, INC | NINTENDO CO , LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 018624 | /0720 | |
Nov 08 2006 | HAIGH-HUTCHINSON, MARK | RETRO STUDIOS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 018649 | /0788 |
Date | Maintenance Fee Events |
Mar 31 2015 | ASPN: Payor Number Assigned. |
Mar 16 2016 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 19 2020 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Mar 20 2024 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Oct 02 2015 | 4 years fee payment window open |
Apr 02 2016 | 6 months grace period start (w surcharge) |
Oct 02 2016 | patent expiry (for year 4) |
Oct 02 2018 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 02 2019 | 8 years fee payment window open |
Apr 02 2020 | 6 months grace period start (w surcharge) |
Oct 02 2020 | patent expiry (for year 8) |
Oct 02 2022 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 02 2023 | 12 years fee payment window open |
Apr 02 2024 | 6 months grace period start (w surcharge) |
Oct 02 2024 | patent expiry (for year 12) |
Oct 02 2026 | 2 years to revive unintentionally abandoned end. (for year 12) |