IMAGE PROCESSING APPARATUS AND STORING MEDIUM THAT STORES IMAGE PROCESSING PROGRAM

An image processing apparatus includes a CPU, and viewpoint location data each of which is correlated with each plurality of operating objects different in size, which are stored in a main memory, for example. When the operating object appearing in a virtual three-dimensional space is selected based on an operation by a player, the viewpoint location data corresponding to the operating object is read, and a viewpoint location is set. The viewpoint location data is set in such a manner as to display the operating object approximately the same in size even if any operating object different in size is selected, for example. Then, based on this viewpoint location, a three-dimensional image including the operating object is displayed.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

An image processing apparatus10shown inFIG. 2of this embodiment is a video game system, for example, and includes a video game apparatus or a video game machine (hereinafter briefly referred to as a “game machine”)12. A power is supplied to this game machine12, and this power may be an ordinary AC adaptor (not shown) in the embodiment. The AC adaptor is inserted into a home-use conventional wall outlet, and converts a home-use power into a low DC voltage signal appropriate for driving the game machine12. In another embodiment, a battery may be used as the power.

The game machine12includes an approximately cubic housing14, and at an upper end of the housing14, an optical disk drive16is provided. In the optical disk drive16, an optical disk18, which is one example of an information storing medium that stores a game program (image processing program), is attached. At a front surface of the housing14, a plurality of (4 in this embodiment) connectors20are provided. These connectors20are connectors for connecting a controller22to the game machine12by a cable24, and in this embodiment, it is possible to connect a maximum of four controllers to the game machine12.

In the controller22, an operating means (control)26is provided at its upper, lower, and side surfaces, for example. The operating means26includes two analog joysticks, one cross key, and a plurality of button switches, for example. One analog joystick is used for inputting a moving direction and/or a moving speed or a moving amount of a player character (moving image character operable by the player using the controller22) as an operating object by a slanting amount and a slanting direction of the stick. Similarly, another analog joystick controls a movement of the player character by a slanting direction, for example. The cross switch is used for instructing the moving direction of the player character in place of the analog joystick. The button switch is used for instructing an action of the player character, adjusting the moving speed of the player character, etc. Furthermore, the button switch controls a menu selection, and a pointer or a cursor movement, for example.

It is noted that in this embodiment, the controller22is connected to the game machine12by the cable24. However, the controller22may be connected to the game machine12by another method such as in a wireless manner via an electromagnetic wave (radio wave or infrared ray, for example). In addition, needless to say, specific structure of the operating means of the controller22is not limited to the structure of the embodiment, and an arbitrary deformation is possible. One analog joystick may be sufficient, or may not be used at all, for example. The cross switch may not be used.

Below the connector20at the front surface of the housing14of the game machine12, at least one (2 in this embodiment) memory slot28is provided. A memory card30is inserted into this memory slot28. The memory card30is used for loading and temporarily storing a game program, and data read out from the optical disk18, saving game data (result of the game, for example) of the game played using this game system10, and so forth.

At a rear surface of the housing14of the game machine12, an AV cable connector (not shown) is provided, and using the connector, a monitor (display)34is connected to the game machine12through an AV cable32. Typically, the monitor34is a color television receiver, and the AV cable32inputs a video signal from the game machine12to a video input terminal of the color television, and applies a sound signal to an audio input terminal. Therefore, a game image of a three-dimensional (3D) video game may be displayed on a screen of the color television34, and a game sound (stereo, for example) such as a game music (BGM), a sound effect, etc., may be output from speakers34aon both sides.

In this game system10, in order for a user or a game player to play the game (or another application), the user, first, turns on the power of the game machine12, next, the user selects the appropriate optical disk18that stores a video game (or another application intended to play), and loads the optical disk18into the disk drive16of the game machine12. Accordingly, the user allows the game machine12to start executing the video game or another application based on software stored in the optical disk18. The user operates the controller22in order to apply an input to the game machine12. The user starts the game or another application by operating one of the features of the operating means26, for example. By moving another feature of the operating means26, the user can select the operating object actually played out of a plurality of the operating objects, move the operating object (player object) to a different direction, for example.

FIG. 3is a block diagram showing electric internal structure of the video game system10of theFIG. 2embodiment. In the video game machine12, a central processing unit (hereinafter briefly referred to as “CPU”)36is provided. The CPU36is also called as a computer or a processor, etc., and is responsible for entirely controlling the game machine. The CPU36or computer functions as a game processor, and is joined to the memory controller38via a bus. Primarily, the memory controller38controls a writing or a reading of the main memory40joined via the bus under the control of the CPU36. The main memory40is used as a working area or a buffer area. To the memory controller38, a GPU (Graphics Processing Unit)42is joined.

The GPU42forms one portion of a rendering means, is constructed of a single chip ASIC, for example, and receives a graphics command (rendering instruction) from the CPU36via the memory controller38so as to generate a three-dimensional (3D) game image by a geometry unit44and a rendering unit46according to that command. That is, the geometry unit44performs coordinate operation processes such as a rotation, a movement, a deformation, etc., of various characters and objects in a three-dimensional coordinate system (constructed of a plurality of polygons. In addition, the polygon is a polygonal plain surface defined by at least three vertexes coordinates). The rendering unit46performs rendering processes such as a texture mapping for attaching a texture (texture image) to each polygon of the various objects, and so forth. Therefore, 3D image data to be displayed on the game screen is created by the GPU42, and the image data is rendered (stored) within a frame buffer48.

It is noted that the data (primitive or polygon or texture, etc.) necessary for the GPU42to execute the graphics command is obtained by the GPU42from the main memory40via the memory controller38.

The frame buffer48is a memory for rendering (accumulating) the image data worth one frame of a luster scanning monitor34, for example, and overwritten by the GPU42by each one frame. As a result of a video I/F58described later reading out the data of the frame buffer48via the memory controller38, the game image is displayed on the screen of the monitor34. It is noted that a capacity of the frame buffer48has a largeness corresponding to the number of pixels (pixel or dot) of the screen intended to be displayed. The frame buffer48has the number of pixels corresponding to the number of pixels (storing location or address) of the display or the monitor34, for example.

In addition, a Z buffer50has a storing capacity equal to the number of pixels (storing location or address) corresponding to the frame buffer48multiplied by the number of bits of depth data per one pixel, and stores depth information or the depth data (Z value) of dots corresponding to each storing location of the frame buffer48.

It is noted that both the frame buffer48and the Z buffer50may be constructed using one portion of the main memory40.

The memory controller38is also joined to a sub memory (ARAM)54via a DSP (Digital Signal Processor)52. Therefore, the memory controller38controls the writing and/or reading-out of not only the main memory40but also the ARAM54under the control of the CPU36.

The DSP52functions as a sound processor, and executes an audio processing task, for example. The ARAM54may be used as an audio memory for storing sound waveform data (sound data) read out from the disk18, for example. The DSP52receives an audio processing command from the CPU36via the memory controller38, extracts the necessary sound waveform data in correspondence with the command, and performs processes/mixings of a pitch modulation, a mixing between sound data and effect data, etc., for example. The audio processing command is issued by reading out one after another and analyzing performance control data (sound data) written in the main memory40as a result of a sound processing program, etc., being executed, for example. The sound waveform data is read out one after another, and processed by the DSP52for generating a game audio content. The generated resultant content or audio output data is buffered into the main memory40, for example, and next, transferred to an audio I/F62so as to be output as a stereo sound, for example, by the speaker34a.Therefore, the sound is output from the speaker34a.

It is noted that it is apparent that the audio data to be generated is not limited to a use for a 2ch stereo reproduction, and capable of corresponding to a surround reproduction of 5.1 ch, 6.1 ch, 7.1 ch, etc., or a monophonic reproduction, etc., for example.

Furthermore, the memory controller38is joined to each interface (I/F)56,58,60,62, and64by the bus.

The controller I/F56is an interface for the controller22, and applies to the CPU36an operating signal or data of the operating means26of the controller22through the memory controller38.

The video I/F58accesses the frame buffer48, reads out the image data generated by the GPU42, and applies to the monitor34the image signal or the image data (digital RGB pixel value) via the AV cable32(FIG. 2).

The external I/F60joins the memory card30(FIG. 2) inserted in the front surface of the game machine12to the memory controller38. Thereby, it enables the CPU36to write the data into this memory card30or read out the data from the memory card30via the memory controller38.

The audio I/F62receives the audio data applied from the buffer through the memory controller38or an audio stream read out from the optical disk18, and applies to the speaker34aof the monitor34the audio signal (sound signal) corresponding thereto.

It is noted that in a case of the stereo sound, at least one speaker34ais provided on each of both sides. In addition, in a case of the surround reproduction, besides the speaker34aof the monitor34, five additional speakers and one low sound-use speaker (in a case of a 7.1 ch) may be provided via an AV amplifier, for example

Furthermore, the disk I/F64joins the disk drive16to the memory controller38, and therefore, the CPU36controls the disk drive16. Program data, object data, texture data, the sound data, etc., read out from the optical disk18by this disk drive16are written into the main memory40under the control of the CPU36.

FIG. 4shows a memory map of the main memory40. The main memory40includes a game-program storing area70, an object-data storing area72, a viewpoint-location-data storing area74, a sound-data storing area76, and a storing area for other data78.

In the game-program storing area70, the game program read out from the optical disk18is stored entirely at once or partially and sequentially. The CPU36executes the game process according to this game program. The game program includes an operating-object selecting program70a,a viewpoint-location setting program70b,an image displaying program70c,and other various programs70dnecessary for a proceeding of the game in this embodiment. It is noted that the operating-object selecting program70ais a program for selecting the operation object appearing in the virtual space to be played, out of a plurality of the operating objects. The viewpoint-location setting program70bis a program for setting the viewpoint location (camera location) of the virtual camera corresponding to the selected operating object. The image displaying program70cis a program for displaying the three-dimensional game image including the operating object based on the set viewpoint location.

In the viewpoint-location-data storing area74, viewpoint location data by each plurality of the operating objects is stored, and in the sound-data storing area76, sound data regarding a game BGM, etc., are stored. In addition, in the storing area for other data78, various kinds of data, a flag, etc., necessary for the proceeding of the game are stored. It is noted that in the object-data storing area72, the viewpoint-location-data storing area74, and the sound-data storing area76, etc., of the main memory40, each data is loaded from the optical disk18entirely at once, or partially and sequentially as required.

FIG. 5shows one example of a viewpoint-location data table stored in the viewpoint-location-data storing area74. In addition,FIGS. 6(A),6(B) and6(C) show examples of a location relationship between the operating object and the viewpoint location thereof based on the viewpoint location data. AsFIG. 5shows, in the viewpoint-location-data storing area74, viewpoint location data regarding unique viewpoint locations E1, E2, and E3each of which is correlated with the kart A, B, and C as a plurality of the operating objects is stored in advance. As understood fromFIGS. 6(A),6(B) and6(C), the viewpoint locations E1, E2, and E3are set in such a manner as to be located at an obliquely upper back of points-of-regard I1, I2, and I3. It is noted that the points-of-regard I1, I2, and I3may be set to certain points of each operating object A, B, and C such as a center of gravity as shown inFIGS. 6(A),6(B) and6(C), for example. The viewpoint location E moves within the virtual three-dimensional space with a point-of-regard I while basically maintaining a relative location relationship with the point-of-regard I in accordance with the movement of the operating object in the proceeding of the game.

The viewpoint location E is determined by a distance X from the point-of-regard I and an angle a so that the viewpoint location data includes distance data from the point-of-regard and angle data from the point-of-regard, for example. In this embodiment, the kart A is a large size, the kart B is a medium size, and the kart C is a small size so that distances (horizontal distance) X1, X2, and X3from the points-of-regard I1, I2, and I3of each of the camera locations E1, E2, and E3are set by a relationship of X1>X2>X3, for example, and the angles (elevation angle or depression angle) α1, α2, and α3from each of the points-of-regard I1, I2, and I3are set by the relationship of α1>α2>α3, for example.

It is noted that the viewpoint location E is also determined by the distance X and a height H from the point-of-regard I, for example so that in another embodiment, the viewpoint location data may include height (vertical distance) data from the point-of-regard in place of the angle data as shown inFIG. 5in addition thereto. In this case, heights H1, H2, and H3of the points-of-regard I1, I2, and I3of each of the camera locations E1, E2, and E3are set by a relationship of H1>H2>H3, for example.

Each of the viewpoint location data is set in such a manner that even when any one of a plurality of the operating objects A, B, and C is selected, the operating object is displayed in the optimum size that may not damage a feeling of equality as the game, that is, the viewpoint location is rendered appropriate for the operating object. More specifically, it is set in such a manner that the larger the size of the kart, the larger the distance X and the angle a (height H) from the point-of-regard I, and the smaller the size of the kart, the smaller the distance X and the angle a (height H) from the point-of-regard I. Thus, by setting the viewpoint distance, the viewpoint angle, or the height of the viewpoint corresponding to the size of the operating object, it is possible to display the operating object to be displayed on the screen in the optimum size.

In addition, each of the viewpoint location data is preferably set to be displayed in such a manner that each of the operating objects A, B, and C has approximately the same size even if any one of a plurality of the operating objects A, B, and C is selected. Thereby, it renders a range obstructed by each operating object approximately equal, thus providing the same game aspect.

Furthermore, the unique viewpoint location data to be set to each operating object is stored in advance so that it is possible to set the viewpoint location by a simple process.

FIG. 7shows one example of an operation of the image processing apparatus10. When the game is played, the optical disk18is set to the game machine12as described above, and when the power is input, the CPU36executes an initializing process such as a memory clear, etc., reads out the program and the data from the optical disk18, and loads the program and the data necessary for the main memory40as shown inFIG. 4in a first step S1inFIG. 7.

When starting the process according to this program, the CPU36reads out the data necessary for displaying an operating object selecting screen not shown from the object-data storing area72, the storing area for other data78, etc., of the main memory40, renders the selecting screen in the frame buffer48, using the GPU42, and starts the video I/F58, for example. Thereby, the selecting screen for selecting the operating object appearing in the virtual three-dimensional space and actually operated out of a plurality of the operating objects is displayed on the monitor34. On the operating object selecting screen not shown, the operating objects A, B, and C as shown inFIGS. 8(A),8(B) and8(C) are separately or all at once displayed in the same scene and subject to selection by the player. As understood fromFIGS. 8(A),8(B) and8(C), the three operating objects A, B, and C in this embodiment are different in size to each other. The operating object A is the largest, and the operating object C is the smallest.

Next, the CPU36determines whether or not the operating object is determined in a step S5. If “NO” in this step S5, that is, in the case that an operation inputting signal from the controller22is not a signal for determining the operating object, etc., the process returns to the step S3so as to repeat the process, and urges the player to determine the operating object. On the other hand, if “YES” in the step S5, that is, in the case that the operation inputting signal is the signal for determining the selection of the operating object, the CPU36determines which operating object is selected in succeeding steps S7and S9.

In the step S7, the CPU36determines whether or not the kart A is selected. If “YES”, the CPU36reads out the viewpoint location data corresponding to the kart A from the viewpoint-location-data storing area74into a predetermined work area of the main memory40in a succeeding step S11. On the other hand, if “NO” in the step S7, the CPU36determines whether or not the kart B is selected in the succeeding step S9. If “YES” in this step S9, the CPU36reads out the viewpoint location data corresponding to the kart B from the viewpoint-location-data storing area74in a succeeding step S13. On the other hand, if “NO” in the step S9, this means that the operating object C has been selected in this embodiment so that the CPU36reads out the viewpoint location data corresponding to the kart C from the viewpoint-location-data storing area74in a succeeding step S15.

Subsequently, in a step S17, the CPU36sets a location of the virtual camera in the virtual three-dimensional space based on the read viewpoint location data. That is, as shown inFIGS. 6(A),6(B) and6(C), in a case that the kart A is selected, the camera location E1is set based on the viewpoint location data (FIG. 5) corresponding to the kart A, in a case that the kart B is selected, the camera location E2is set based on the viewpoint location data corresponding to the kart B, or in a case that the kart C is selected, the camera location E3is set based on the viewpoint location data corresponding to the kart C.

Furthermore, in a step S19, using the GPU42, etc., the CPU36executes a game-image displaying process based on the set camera. Therefore, the three-dimensional game image based on the viewpoint locations set to each operating object is displayed on the monitor34. More specifically, the game is made to proceed corresponding to the program, the operation input from the operation means26, etc., the location of the operating object in the world coordinate system is updated, and the point-of-regard location and the virtual camera location are updated corresponding thereto. It is noted that the relative location relationship between the point-of-regard location and the camera location is maintained. Then, the locations of the operating object, the enemy object, the background object, etc., are converted into a three-dimensional camera coordinate system that uses the virtual camera as a reference, the three-dimensional camera coordinate system is converted into a two-dimensional projected plain coordinate system, and a clipping (cutting of an invisible world), etc., are executed in addition thereto. Furthermore, each of the necessary textures such as the operating object, the enemy object, other objects, for example, is read out, and mapped to each of the objects. Thus, the rendered three-dimensional image data is rendered into the frame buffer48. Therefore, as a result of the game-image displaying process in this step S19, the three-dimensional game image based on the virtual camera locations set to each operating object is displayed on the monitor34. It is noted that although not illustrated, the sound process, etc., are also executed, and a game BGM, etc., are also output form the speaker34a.

InFIG. 9,FIG. 10, andFIG. 11, one example of the game image (displayed screen) displayed on the monitor34by the process in this step S19is shown.FIG. 9shows an image of a case that the large-sized kart A is selected,FIG. 10shows an image of a case that the medium-sized kart B is selected, andFIG. 11shows an image of a case that the small-sized kart C is selected. It is noted that a difference of the viewpoint location by each operating object is also seen in the difference in an off-set length from a lower edge of the displayed screen to each operating object (or its shadow), in the difference of a course of the background to be seen, etc.

As understood fromFIGS. 9-11, each operating object A, B, and C is displayed in the optimum size. Furthermore, in this embodiment, each operating object A, B, and C is displayed in the display screen as the operating object approximately the same in size. Therefore, the range obstructed by the operating object itself is approximately the same in range, and in a case of selecting any one of the operating objects, it is possible to provide the same game aspect. In addition, similarly, it is possible to apply approximately the same operability on an operating point of view.

In addition, compared to the prior art, in a case of the large-sized operating object A, in the prior art, as shown inFIG. 1, the range obstructed by the operating object itself is too large so that a front area of the course is significantly hidden, thus the player finds it difficult to make a course forecast. However, in this embodiment, as shown inFIG. 9, the obstructed range is appropriate, and a path of the course, etc., are appropriately displayed so that it is probably not difficult to make the course forecast. In addition, in a case of the small-sized operating object C as shown inFIG. 11, the object is displayed in an appropriate size so that it is not probable that an impact of the game is lost.

The game-image displaying process in the step S19inFIG. 7is repeated until it is determined that the game is ended in a succeeding step S21. If the game has not ended as determined at step S21, the game is made to proceed according to the program, the operation input from the operating means26, etc., and the game image is displayed. On the other hand, if the check at step S21yields “YES”, that is, in a case that it is determined that the game is ended is selected, or in a case that the game is over, etc., the CPU36executes a game ending process, and ends this process.

According to this illustrative embodiment, the viewpoint location is set according to the selected operating object so that even if any operating object different in size is selected, the operating object can be displayed in the optimum size for the operating object. Furthermore, in this illustrative embodiment, it is possible to display the operating object as other operating object approximately the same in size, thus rendering the viewpoint range obstructed by the operating objects approximately equal. Therefore, there is neither an advantage nor a disadvantage in the game depending on the selected operating object so that it is possible to provide the same game aspect. In addition, in a fighting game, for example, it is possible to eliminate a feeling of unfairness which results from selecting different size operating objects.

It is noted that in the above illustrative embodiment, based on each of the viewpoint location data correlated by each plurality of the operating objects, each viewpoint location is set. However, in a case that the operating objects approximately the same in size exist in plural number, the same viewpoint location may be set unless the feeling of equality of the game is lost to the operating objects. In addition, in a case of having a multiplicity of (1000 or more, for example) the operating objects, thus rendering a data amount large, etc., based on the viewpoint location data set in advance for the operating object in small number, the viewpoint location data adapted to the remaining numerous operating objects may be calculated by an interpolation, for example.

Although the example embodiment presented herein has been described and illustrated in detail, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, the spirit and scope of the example embodiment being limited only by the terms of the appended claims.