WO2013038923A1 - プログラム、記憶媒体、ゲーム装置及びコンピュータ - Google Patents

プログラム、記憶媒体、ゲーム装置及びコンピュータ Download PDF

Info

Publication number
WO2013038923A1
WO2013038923A1 PCT/JP2012/072141 JP2012072141W WO2013038923A1 WO 2013038923 A1 WO2013038923 A1 WO 2013038923A1 JP 2012072141 W JP2012072141 W JP 2012072141W WO 2013038923 A1 WO2013038923 A1 WO 2013038923A1
Authority
WO
WIPO (PCT)
Prior art keywords
marker
machine
game
information
unit
Prior art date
Application number
PCT/JP2012/072141
Other languages
English (en)
French (fr)
Inventor
力 小金澤
信一郎 梅谷
Original Assignee
株式会社バンダイナムコゲームス
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社バンダイナムコゲームス filed Critical 株式会社バンダイナムコゲームス
Priority to US14/345,123 priority Critical patent/US9155967B2/en
Priority to EP12831209.7A priority patent/EP2756872B1/en
Publication of WO2013038923A1 publication Critical patent/WO2013038923A1/ja

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/95Storage media specially adapted for storing game information, e.g. video game cartridges
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/327Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections using wireless networks, e.g. Wi-Fi® or piconet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5258Changing parameters of virtual cameras 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

Definitions

  • the present invention relates to a program for causing a computer to execute a game using augmented reality technology.
  • AR augmented reality
  • an image captured by a video camera is analyzed, the coordinates of the real space and the CG space are aligned, and CG is synthesized on the video captured image (so-called live view).
  • a technique for displaying the AR space by displaying is known.
  • One aspect of the present invention is a program for causing a computer including an imaging unit, a display unit, and a communication unit to execute a multiplayer game in an augmented reality space by communicating with another device.
  • the present invention relates to a program for causing the computer to execute.
  • the own device position information includes information indicating the distance of the own device with respect to the marker
  • the other machine position information includes information indicating the distance of the other machine with respect to the marker
  • Calculating the own device position information includes calculating information indicating a distance of the own device with respect to the marker using a captured image of the marker.
  • a program may be configured.
  • the marker has a defined shape in which a reference direction is represented
  • the own device position information includes information on the relative positional relationship of the own device with respect to the marker
  • the other machine position information includes information on the relative positional relationship of the other machine with respect to the marker
  • Calculating the own device position information includes calculating information on a relative positional relationship of the own device with respect to the marker using the reference direction of the marker in the captured image of the marker.
  • a program may be configured.
  • Controlling the display position of the character includes displaying the character in the area.
  • a program may be configured.
  • the setting of the area means that the marker is captured in the positional relationship indicated by the own device photographing range when the marker is photographed in the positional relationship indicated by the own device position information and the other device position information included in the other device information.
  • a program may be configured.
  • the marker can be shot unintentionally due to the shooting direction changing following the character. It is possible to more surely prevent an unnatural display from occurring.
  • Setting the area includes setting the area so as to include at least an overlapping range of the own device photographing range and the other device photographing range.
  • a program may be configured.
  • the region so as to include at least a portion where the own device photographing range and the other device photographing range overlap.
  • the setting of the region is a positional relationship indicated by the own device position information, and a range when the marker is photographed while changing a photographing direction within a range where the marker is captured is the own device photographing range, and the other Including the positional relationship indicated by the machine position information and a range when the marker is photographed while changing the photographing direction within the range where the marker is captured, as the other machine photographing range,
  • a program may be configured.
  • the shooting position is fixed, and only the shooting direction is changed, thereby determining the shooting range of the own device and the shooting range of the other device as the basis of the area setting. Since the area is set using the own apparatus photographing range and the other apparatus photographing range thus determined, a wider area can be set in consideration of the influence of camera shake or the like.
  • the marker has a planar shape
  • Setting the area includes changing the depth of the image capturing range from the own device in the marker direction using a depression angle with respect to the planar direction of the marker as viewed from the own device.
  • a program may be configured.
  • the ability to recognize the image depends on the designed marker plane. It is whether to shoot at a proper shooting angle (a depression angle). For example, if the depression angle is small with respect to the marker plane (the marker plane direction and the line-of-sight direction are close), the marker image captured by the imaging means will be small and image recognition will be difficult, but if the depression angle is large, the marker image will be It becomes large and image recognition is easy. Therefore, according to the above-described aspect, by setting the depth of the photographing range of the subject apparatus according to the depression angle with respect to the planar direction of the marker, it is possible to set a region as wide as possible at that time.
  • Setting the area determines the distance from the marker to each of the own machine and the other machine using the own machine position information and the other machine information, and sets the size of the area based on the distance.
  • a program may be configured.
  • Setting the area includes Setting the shape of the region based on the type of the marker imaged by the imaging unit; Obtaining the distance from the marker to each of the own machine and the other machine using the own machine position information and the other machine information, and setting the size of the area based on the distance; It is good also as comprising a program containing.
  • the computer includes an attitude detection unit that detects the attitude of the computer,
  • the other device information includes information on the posture detected by the posture detection unit of the other device, To further cause the computer to control the display posture of the character using the posture information of the own device detected by the posture detection unit and the posture information of the other device included in the other device information.
  • a program may be configured.
  • a computer capable of communicating with each of a plurality of user terminals provided with a photographing unit and a display unit is a program for causing the user terminal to execute a multiplayer game
  • the multiplayer game is an augmented reality space game in which a character is synthesized and displayed in a live view of the display unit when a marker is shot by the shooting unit. Calculating a positional relationship of the user terminal with respect to the marker using a captured image of the marker of each of the user terminals; Controlling the display position of the character in the augmented reality space using the positional relationship of each of the user terminals; It is good also as comprising the program for making the said computer execute.
  • the display position of the character in the augmented reality space can be controlled based on the positional relationship with respect to the marker for each user terminal. That is, even in a play style in which the relative positions of the photographing means and markers of a plurality of user terminals participating in the game change from moment to moment, the character is placed at an appropriate display position suitable for positioning of each terminal at that time. It can be displayed. It is possible to prevent any inconvenience such as occlusion or inability to photograph the marker at any of the user terminals, or to reduce the degree of inconvenience.
  • the user terminal includes an attitude detection unit that detects an attitude of the user terminal, Receiving posture information detected by the posture detection unit of the user terminal from each of the user terminals; Controlling the display posture of the character using the posture information; It is good also as comprising the program for making the said computer further run.
  • a computer-readable storage medium storing the above-described program may be configured.
  • Storage medium here includes, for example, a magnetic disk, an optical disk, an IC memory, and the like.
  • a game device that includes a photographing unit, a display unit, and a communication unit, and executes a multiplayer game in augmented reality space by communicating with another machine
  • a composite display control unit that composites and displays a character in a live view of the display unit when a marker is captured by the imaging unit
  • a self-machine position information calculation unit that calculates self-machine position information including at least information indicating a position of the self-machine with respect to the marker using a captured image of the marker
  • An other machine information receiving unit that receives other machine information including other machine position information including at least information indicating the position of the other machine with respect to the marker
  • a character display control unit that controls the display position of the character in the augmented reality space using the own machine position information and the other machine information; It is good also as comprising the game device provided with.
  • a computer that communicates with each of a plurality of user terminals including an imaging unit and a display unit, and performs control to cause the user terminal to execute a multi-play type game
  • the multiplayer game is an augmented reality space game in which a character is synthesized and displayed in a live view of the display unit when a marker is shot by the shooting unit.
  • a positional relationship calculation unit that calculates a positional relationship of the user terminal with respect to the marker using a captured image of the marker of each of the user terminals;
  • a character display control unit that controls a display position of the character in the augmented reality space using the positional relationship of each of the user terminals; It is good also as comprising the computer provided with.
  • FIG. 1 is a diagram illustrating a configuration example of a game device corresponding to a computer used for game play in the first embodiment.
  • FIG. 2 is a conceptual diagram for explaining a play style in the first embodiment.
  • FIG. 3 is a diagram illustrating an example of a game screen and a live view.
  • FIG. 4 is a conceptual diagram of a region set for controlling the placement of enemy characters.
  • FIG. 5 is a conceptual diagram of a basic area.
  • FIG. 6 is a conceptual diagram illustrating a method for setting an element region.
  • FIG. 7 is a conceptual diagram showing the concept of the depth of an element area.
  • FIG. 8 is a conceptual diagram for explaining how to use the relative position and relative posture of the player viewpoint with respect to the AR marker.
  • FIG. 1 is a diagram illustrating a configuration example of a game device corresponding to a computer used for game play in the first embodiment.
  • FIG. 2 is a conceptual diagram for explaining a play style in the first embodiment.
  • FIG. 3 is
  • FIG. 9 is a principle diagram for explaining how to use the relative position and the relative posture when the AR marker is lost.
  • FIG. 10 is a conceptual diagram for explaining a switching mechanism of host function expressing machines.
  • FIG. 11 is a functional block diagram illustrating a functional configuration example according to the first embodiment.
  • FIG. 12 is a functional block diagram illustrating a functional example of the game calculation unit in the first embodiment.
  • FIG. 13 is a diagram illustrating a data configuration example of AR marker registration data.
  • FIG. 14 is a diagram showing a data configuration example of game participant registration data.
  • FIG. 15 is a diagram illustrating a data configuration example of the own device information queue.
  • FIG. 16 is a diagram illustrating a data configuration example of an enemy character arrangement information queue.
  • FIG. 11 is a functional block diagram illustrating a functional configuration example according to the first embodiment.
  • FIG. 12 is a functional block diagram illustrating a functional example of the game calculation unit in the first embodiment.
  • FIG. 13 is a diagram illustrating
  • FIG. 17 is a flowchart for explaining the flow of main processing in the first embodiment.
  • FIG. 18 is a flowchart for explaining a pre-game preparation process flow.
  • FIG. 19 is a flowchart for explaining the flow of own device information calculation processing.
  • FIG. 20 is a flowchart for explaining a host function developing machine setting process flow.
  • FIG. 21 is a flowchart for explaining the host function execution processing flow.
  • FIG. 22 is a flowchart for explaining the flow of basic area setting processing.
  • FIG. 23 is a flowchart for explaining an element region setting process flow.
  • FIG. 24 is a flowchart for explaining the host function execution processing flow.
  • FIG. 25 is a diagram illustrating a configuration example of a game device according to the second embodiment.
  • FIG. 25 is a diagram illustrating a configuration example of a game device according to the second embodiment.
  • FIG. 26 is a functional block diagram illustrating a functional configuration example according to the second embodiment.
  • FIG. 27 is a functional block diagram illustrating an example of a functional configuration of a game calculation unit according to the second embodiment.
  • FIG. 28 is a diagram illustrating a data configuration example of terminal registration data.
  • FIG. 29 is a diagram illustrating a data configuration example of a terminal information queue.
  • FIG. 30 is a flowchart for explaining the main processing flow in the third embodiment.
  • FIG. 31 is a flowchart for explaining the flow of terminal information calculation processing.
  • FIG. 32 is a flowchart for explaining a reference viewpoint setting process flow.
  • FIG. 33 is a flowchart for explaining the flow of character control processing.
  • FIG. 1 is a diagram showing a configuration example of a game apparatus 1500 which is a computer used for game play in the present embodiment and is a kind of electronic equipment, and includes (1) a front external view and (2) a back surface. It is an external view.
  • the game apparatus 1500 includes a direction input key 1502, a home key 1504, a touch panel 1506, a speaker 1510, a microphone 1512, a GPS (Global Positioning System) antenna 1514, a CCD camera module 1516, a control board 1550, a computer.
  • a memory card reader 1542 that can read and write data from a memory card 1540 that is a readable storage medium.
  • a built-in battery, a power button, a volume control button, etc., not shown, are provided.
  • the CCD camera module 1516 is a module on which an autofocus mechanism, a CCD image sensor, and an image signal generation chip are mounted, and is arranged so that the back direction of the game apparatus 1500 can be photographed.
  • the image sensor element is not limited to the CCD, but may be an element of another type such as a CMOS.
  • the control board 1550 includes various microprocessors such as a CPU (Central Processing Unit) 1551, a GPU (Graphics Processing Unit), a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), and various ICs such as a VRAM, a RAM, and a ROM.
  • a memory 1552 is mounted as appropriate.
  • the control board 1550 includes a wireless communication module 1553 for wireless connection with a wireless base station such as a mobile phone or a wireless LAN, a GPS module 1554, an electronic compass 1555, a 3-axis gyro 1556, and a 3-axis acceleration sensor. 1557 is mounted.
  • a driver circuit of the touch panel 1506 a circuit that receives signals from the direction input key 1502 and the home key 1504, an output amplifier circuit that outputs an audio signal to the speaker 1510, and an input signal that generates an audio signal input from the microphone 1512
  • I / F circuit interface circuit
  • Each element mounted on the control board 1550 is electrically connected via a bus circuit or the like, and is connected so as to be able to read / write data and transmit / receive signals.
  • the GPS module 1554 constitutes a means for acquiring position information using GPS together with the GPS antenna 1514.
  • the GPS module 1554 based on the signal from the GPS satellite 3 received by the GPS antenna 1514, at predetermined time intervals (for example, every second) and positional information (for example, latitude / longitude) and other information (absolute time) Is output as data that can be processed by the control board 1550.
  • the system used for positioning is not limited to GPS. Other satellite positioning systems may be used, and positioning systems that do not use satellites can also be used.
  • Examples of the latter include, for example, acquiring position information preset in the base station from a radio base station to which the radio communication module 1553 can wirelessly connect, or using a signal arrival time difference from three radio base stations
  • the position information may be calculated by a surveying method.
  • the control board 1550 reads game programs and data necessary for game execution from the memory card 1540 and temporarily stores them in the IC memory 1552. Then, the game program is executed to execute arithmetic processing, and the direction change and acceleration change detected by the direction input key 1502, the home key 1504, the operation input from the touch panel 1506, the 3-axis gyro 1556, and the 3-axis acceleration sensor 1557 are detected. Accordingly, each part of the game apparatus 1500 is controlled to execute the video game.
  • the game apparatus 1500 is configured to read out necessary programs and various setting data from the memory card 1540, but may be configured to download from the server apparatus or the like via the communication line 1. Since game device 1500 is a computer, “own device” in this specification can be read as “own computer”. Similarly, “another machine” can be read as “another computer”.
  • FIG. 2 is a conceptual diagram for explaining the play style in the present embodiment, (1) a perspective view showing a situation in a real space, (2) a CCD camera module 1516 of the game apparatus 1500, an AR marker 10, and FIG. 3 is a perspective view showing a state in a virtual three-dimensional space in which objects appearing in a game are arranged.
  • the video game according to the present embodiment belongs to a multi-play shooting game belonging to a game in the AR space realized by using the AR marker 10, that is, a so-called AR game.
  • each of the players PL1 to PL3 holds the game apparatus 1500 in his / her hand and plays the AR marker 10 placed on the table 9 or the like while photographing with the CCD camera module 1516.
  • the game apparatus 1500 of the player PL1 in the figure is the original host machine, and performs the reception process of the client machine participating in the game, and is responsible for the NPC control of the enemy character 7 and the like.
  • the game apparatuses 1500 of the players PL2 and PL3 are guest machines, which acquire and use NPC control data from the host machine. Of course, the number of players is not limited to three as shown in the figure.
  • the AR marker 10 in the present embodiment is a card having a prescribed shape in which a reference direction is represented on at least one surface and a design for identifying the type of the marker is provided, and there are a plurality of types.
  • the CCD camera module 1516 is fixed to the back side of the apparatus main body so as to photograph the back direction of the apparatus main body. Therefore, in this embodiment, the viewpoint position of the player is the position of the game apparatus 1500 and can be handled in the same way as the viewpoint position of the CCD camera module 1516. Similarly, the viewpoint posture of the player is the posture of the game apparatus 1500 and is handled in the same manner as the posture of the CCD camera module 1516.
  • the game apparatus 1500 detects the AR marker 10 from the image photographed by the CCD camera module 1516 and recognizes its type. Further, the three-dimensional relative position (Xc, Yc, Zc) and relative posture ( ⁇ p, ⁇ y, ⁇ r) up to the recognized AR marker 10 are measured. For example, since the actual size of the AR marker 10 (card) is defined, the relative position based on the scale in the real space can be obtained from the pixel size occupied by the AR marker 10 in the captured image of the CCD camera module 1516. .
  • a surface (for example, a table surface) on which the AR marker 10 is arranged is a reference surface in the virtual three-dimensional space (for example, also called a ground in the game world, a virtual map, or the like).
  • a game space is formed so as to match.
  • the game space is represented by a coordinate system (Xw, Yw, Zw) in a virtual three-dimensional space, and is matched with a coordinate system (Xm, Ym, Zm) in the real space with the AR marker 10 as a reference.
  • the virtual three-dimensional space is a so-called CG space.
  • target enemy characters 7 and objects such as background objects are arranged to form a game space.
  • the enemy character 7 and the flying object 6 fired from each character (not shown in FIG. 2; shown in FIG. 3) Objects such as are also placed.
  • the virtual three-dimensional space in each game device 1500 is defined as a common coordinate axis in principle because the AR marker 10 is used as a reference.
  • Virtual cameras CM1 to CM3 of each game device 1500 are set in the virtual three-dimensional space.
  • the player characters PC1 to PC3 corresponding to each game device 1500 are arranged at predetermined relative positions (Xp, Yp, Zp) with respect to the virtual cameras CM1 to CM3 of the corresponding game device.
  • the player characters PC1 to PC3 are arranged obliquely below and forward of the virtual cameras CM1 to CM3 so as to correspond to a third person viewpoint.
  • the relative positional relationship between the player character and the virtual camera does not mean an absolute fixed value, although it is determined in advance, and can include an appropriate shift or fluctuation.
  • FIG. 3 is a diagram showing an example of the game screen and live view in the present embodiment.
  • Each game device 1500 generates a CG (computer graphics) image viewed from the corresponding virtual camera CM1 to CM3 and displays it on a live view photographed by the CCD camera module 1516.
  • CG computer graphics
  • the player character PC1 of the player PL1, the enemy character 7 around the AR marker 10, the other player PL2 beside the table 9, and the corresponding player character PC2 are displayed on the screen. It is reflected.
  • a shooting sight 8 used by the player PL1 during the game is displayed.
  • the virtual world recognized by the player by synthesizing CG such as a game character with the video of the real space is the “augmented reality space” that becomes the stage of the game.
  • the angle of view of the CCD camera module 1516 and the angles of the images of the virtual cameras CM1 to CM3 are different. Since the CCD camera module 1516 has a meaning that the photographing range is wide, the photographing field angle is set to a wide angle. For example, the focal length is 15 to 24 mm in terms of a 35 mm film lens, and the nominal diagonal field angle is about 90 °. On the other hand, the shooting angle of view of the virtual cameras CM1 to CM3 is approximately 50% of the angle of view of the CCD camera module 1516 in consideration of playing the AR game while seeing through the real space through the touch panel 1506 of the game device 1500. It is set so narrow that it becomes about.
  • the angle of view is such that when the player holds the game device 1500 forward with the elbows slightly bent, the illusion of seeing the real world through the display portion of the touch panel 1506 is seen. It is. For example, it is set to 40 mm to 55 mm in terms of a lens for 35 mm film and a nominal diagonal field angle of around 45 °. Therefore, the background of the game screen shown in FIG. 3 (1) is not the live view taken by the CCD camera module 1516 shown in FIG. 3 (2), but matches the shooting angle of view of the virtual cameras CM1 to CM3. It is obtained by cropping (using the edges of the image).
  • the game according to the present embodiment is a marker-type AR game
  • the AR marker 10 is always set to the CCD camera module 1516. It is desirable to play so as to be included in the shooting range.
  • the player plays while changing the position and posture of the game apparatus 1500 so that the aim 8 is aligned with the enemy character 7. Therefore, when the enemy character 7 is far away from the AR marker 10, the act of aiming at the enemy character 7 induces the lost AR AR (a state in which it does not appear in the shooting range).
  • the player tries to keep the position and posture of the game apparatus 1500 so that the aim 8 does not come off the enemy character 7. Therefore, if the position of the enemy character 7 is controlled well, the AR marker 10 can be included in the shooting range (in other words, the AR marker 10 does not fall outside the shooting range).
  • an arrangement area 12 in which the enemy character 7 can be arranged so as to make it difficult to lose the AR marker 10 according to the position and posture of the game device participating in the game (shaded in the figure).
  • the displayed range) is set, and the placement control is performed so that the enemy character 7 stays in the placement area 12.
  • the arrangement area 12 is set as an overlap area between the basic area 13 and the element area 14 obtained for each game participant (that is, for each player viewpoint). In the example shown in the figure, only two game apparatuses 1500 are displayed for easy understanding.
  • FIG. 5 is a conceptual diagram showing a method for setting the basic area 13.
  • the basic area 13 is a range of a predetermined shape centered on the AR marker 10 and defined by the basic length Lb.
  • the basic length Lb is described by a function f (Lc) using a relative distance Lc (see FIG. 2B) from the AR marker 10 of the game participant as a variable.
  • the shape of the basic area 13 is preset according to the type of the AR marker 10.
  • a spherical shape having a basic length Lb as an example is illustrated.
  • the basic length Lb may be a distance from the center of the cube to eight vertices as a cubic range.
  • the dimension to which the shape and the reference length Lb are assigned can be appropriately changed.
  • the relative distance Lc serving as a variable of the function f (Lc) As the relative distance Lc serving as a variable of the function f (Lc), the smallest relative distance Lc is adopted among the individual relative distances Lc with respect to the AR marker 10 of each game participant. However, a minimum value is set for the size of the function f (Lc). This minimum value is set in advance so that the action range of the enemy character 7 does not become too small. Note that the relative distance Lc adopted as a variable of the function f (Lc) is not limited to the minimum value among the relative distances Lc for each game participant, and may be a maximum value, an average value, a median value, or the like.
  • FIG. 6 is a conceptual diagram showing a method for setting the element region 14.
  • the element region 14 is defined as a shooting range in which the posture change that allows the AR marker 10 not to deviate from the shooting range of the CCD camera module 1516 with the game device 1500 (that is, the player viewpoint) as a reference.
  • the AR marker 10 is shown in the live view by the CCD camera module 1516 as shown in FIG.
  • the outer rectangular frame is a shooting frame and shows the outline of the live view.
  • an inner rectangular frame indicates an outline that is cropped and used as the background of the game screen.
  • the position of the game apparatus 1500 is first fixed, and to what extent the CCD Consider whether the change in the shooting direction of the camera module 1516 can be allowed.
  • the right end of the AR marker 10 and the right end of the imaging frame are close to each other while satisfying a predetermined condition, with the size of the AR marker 10 currently captured as it is, and the AR The “first posture” that satisfies the condition in which the lower end of the marker 10 and the lower end of the photographing frame are close to each other is obtained, and the optical axis AL1 of the CCD camera module 1516 in the posture is obtained. Then, assuming that the shooting direction is shifted diagonally from the first posture, the left end of the AR marker 10 is close to the left end of the shooting frame, and the upper end of the AR marker 10 and the upper end of the shooting frame are close to each other. 2 ”and the optical axis AL2 of the CCD camera module 1516 in that posture.
  • the left end of the AR marker 10 and the left end of the shooting frame meet in a predetermined condition and are close to each other, and the lower end of the AR marker 10 and the lower end of the shooting frame meet each other.
  • the “third attitude” is obtained, and the optical axis AL3 of the CCD camera module 1516 in the attitude is obtained.
  • the right end of the AR marker 10 is close to the right end of the shooting frame, and the upper end of the AR marker 10 is close to the upper end of the shooting frame. 4 postures "and the optical axis AL4 of the CCD camera module 1516 in the posture are obtained.
  • the element region 14 is a quadrangular pyramid region surrounded by the four optical axes AL1 to AL4 from the viewpoint position of the CCD camera module 1516.
  • the depth Db of the element region 14 corresponding to the height of this quadrangular pyramid region is set based on the depression angle ⁇ c with respect to the planar direction of the AR marker 10 viewed from the player's viewpoint (see FIG. 7).
  • FIG. 7 is a conceptual diagram showing the concept of the depth of the element region 14.
  • the depth Db of the element region 14 is considered as the maximum distance from the viewpoint at which the AR marker 10 can be properly recognized.
  • the relationship between the depression angle ⁇ c and the depth Db is determined by the resolving power based on the specifications of the image sensor and optical system of the CCD camera module 1516, the size of the AR marker 10, and the like.
  • AR markers 10 having different sizes can be used, and are categorized in advance according to the size of the marker. Which category it belongs to can be identified by design recognition of the AR marker 10. Therefore, as shown in FIG. 7 (3), a function g ( ⁇ c) for calculating the depth Db using the depression angle ⁇ c as a variable is set for each category of the AR marker 10, and the category of the recognized AR marker 10 is set. The function g ( ⁇ c) corresponding to is selected, and the depth Db is obtained using the depression angle ⁇ c at that time.
  • the shooting angle of view of the virtual cameras CM1 to MC3 is narrower than the shooting angle of view of the CCD camera module 1516 and that the aim 8 is displayed at the center of the game screen, it should be within the shooting range indicated by the element area 14.
  • the AR marker 10 is captured within the shooting range of the CCD camera module 1516 if the aiming target 8 is aimed at the enemy character 7. Can do.
  • the arrangement area 12 is set as an overlapped portion of four areas of the basic area 13 and each element area 14 (14a, 14b) obtained for each game device (that is, for each player viewpoint). Is done.
  • the shooting angle of view of the virtual camera CM1 to CM3 with respect to the shooting angle of view of the CCD camera module 1516 and the fact that the aim 8 is displayed at the center of the game screen are combined.
  • the AR marker 10 is always recognized correctly, and unnatural display such as the display position of the game character deviating from the real space does not occur.
  • the CCD camera module 1516 can continue to capture the AR marker 10 properly. That is, even when the AR marker 10 is not always shown in the game screen, the AR game continues normally. For example, the enemy character 7 seems to walk along the table surface on which the AR marker 10 is placed. Even if the AR marker 10 is not shown in the game screen during play, the enemy character 7 that is not inconsistent with the real space is displayed, so that it is impossible for the player to play at a place away from the AR marker 10. The sense of blockage is reduced, and an open feeling as if the game is being played using all the wide space where I am now is obtained, and the interest as an AR game is enhanced.
  • the arrangement area 12 set in this way has a different shape from the basic area 13 due to the influence of the plurality of element areas 14 that change depending on the situation, so that the action range of the enemy character 7 becomes irregular. The effect which raises the interest of a game is acquired.
  • FIG. 8 is a conceptual diagram for explaining how to use the relative position and relative posture of the player viewpoint with respect to the AR marker 10 which is the premise of the first auxiliary function.
  • the game apparatus 1500 has a relative position (Xcn, Ycn) of itself (CCD camera module 1516) with respect to the AR marker 10 at times t1, t2,..., Tm (m is a natural number: an identification number of calculation timing) in a predetermined cycle. , Zcn) and relative posture ( ⁇ pn, ⁇ yn, ⁇ rn). Then, a predetermined number of the calculated relative positions and relative postures are stored and managed in a queue in a first-in first-out manner.
  • the relative position and the relative attitude stored in the queue are each weighted and averaged, and the weighted average value is regarded as the current position and the current attitude, and is used as the position and attitude of the virtual camera CM in the CG space.
  • the weighted average value is regarded as the current position and the current attitude, and is used as the position and attitude of the virtual camera CM in the CG space.
  • FIG. 8 an example is shown in which four sets of relative positions and relative postures are stored in the queue, but the storage number can be set as appropriate.
  • the weighting wn in the weighted average (n is a natural number: the identification number of the calculation timing) is determined by the calculation order n and the weighting function h (n, Lc) having the relative distance L from the AR marker 10 to the player viewpoint as a variable. .
  • the weighting function h (n, Lc) can be set as appropriate, in the present embodiment, with respect to the calculation order n, the weighting wn given to the newest relative position and relative posture is the largest, and the others are relatively It is set to be smaller. Further, the relative distance Lc is set so that the larger the relative distance Lc, the smaller the difference in weighting wn due to the difference in calculation order n, and the past relative position and relative posture are also emphasized.
  • the influence of camera shake or the like increases as the game apparatus 1500 captures the AR marker 10 from a distance, but the characteristic of the weighting function h (n, Lc) with respect to the relative distance Lc is that the relative distance Lc is Since the weight wn for the past value is set to be relatively larger as the value is larger, the influence can be reduced.
  • the characteristic of the relative distance Lc of the weighting function h (n, Lc) when the AR marker 10 is taken from near, the weighting wn to the past value becomes relatively small.
  • the effect of camera shake will be relatively large, but blurring in this case is beneficial because it creates a visual effect that creates the tightness and presence of close combat.
  • FIG. 9 is a principle diagram for explaining how to use the relative position and the relative posture when the AR marker 10 is lost.
  • the relative position is fixed to the value immediately before the loss until the recognition is restarted after the AR marker 10 is lost.
  • the AR marker 10 is in the imaging range of the CCD camera module 1516 and is correctly recognized and the relative position of the marker reference is obtained correctly. "Lost" is not captured in Therefore, the value of the relative position between the timings t5 and t7 stored in the queue is fixed to the value at the timing t4 immediately before the lost.
  • a weighted average is performed for the posture. In other words, it is considered that the game device 1500 does not move its position during the timing t5 to t7.
  • the state of the game screen display can be changed by continuing the processing with the relative position temporarily fixed. Even if there is a possibility that the relative position cannot be calculated correctly, the game can be continued without interruption.
  • a guest machine can substitute for a host function as a 2nd auxiliary
  • the host function can be inherited in the game participant in accordance with the marker recognition state.
  • FIG. 10 is a conceptual diagram for explaining the switching mechanism of the host function developing machine, and shows the recognition state of the AR marker 10 of each game device when it is assumed that there are three game devices 1500 participating in the game. An example of a combination and which game device 1500 expresses the host function in the combination is shown.
  • “In Sight” means that the AR marker 10 can be recognized
  • “LOST” means that the AR marker 10 is out of the imaging range and cannot be recognized (recognition impossible state). Means.
  • the game device 1500a which is the host machine from the beginning, performs a process for accepting participation in the game.
  • the accepted game devices 1500b and 1500c are guest machines.
  • the game device 1500a which is a host machine sets itself as the first expression priority in accordance with the reception process, and assigns the second or higher expression priority to the guest machine in the order of reception.
  • the white numbers given to the illustrations of the game devices represent the respective expression priorities.
  • the game devices 1500a, 1500b, and 1500c of the present embodiment can transmit a predetermined unrecognizable signal to another device when the AR marker 10 is lost.
  • each game device can know the marker recognition state of the other device depending on whether or not the recognition failure signal from the other device has been received.
  • the game device 1500a that is the original host device is used as the host device.
  • Express function That is, in addition to the player character PC1 of the player, the NPC (non-player character) such as the enemy character 7 and the object such as the background object are controlled, and the effect objects such as the bullets flying are controlled. Deliver to guest machines.
  • the control related to the enemy character 7 includes setting processing of the arrangement area 12.
  • the operation of the player characters PC2 and PC3 of each player and the position in the virtual three-dimensional space are controlled by operation input and movement of the device. Controls the arrangement in the virtual three-dimensional space based on the information obtained from the host machine. That is, with respect to object control, the host machine and the guest machine have a client / server relationship.
  • the game apparatus 1500 detects a lost state of the AR marker 10 and transmits a predetermined “recognition impossible signal” to another device. If the host machine has lost the AR marker 10, the host function is stopped along with the transmission of the recognition failure signal. On the other hand, each game device that has been a guest machine until then, when all the other machines higher than the expression priority given to itself based on the received unrecognizable signal are issuing unrecognizable signals, It is determined that the host function should be developed, and the host function is developed.
  • the game device 1500a Stop functioning and start functioning as a guest machine. That is, the control related to the enemy character 7 and the distribution of the control result are interrupted.
  • the guest machine (game device 1500b) having the second highest expression priority has received the unrecognizable signal from all the machines having higher expression priority than itself, so that the host function is exhibited and the enemy character 7 and the like are controlled and controlled. Start delivering results. That is, the host function is inherited. Note that the guest machine (game device 1500c) with the third highest expression priority functions as a guest machine as it is.
  • the guest machine (game apparatus 1500b) having the second highest expression priority ranks the host function. Stop and start functioning as a guest machine. Instead, since the guest machine (game device 1500c) with the third highest expression priority has received the unrecognizable signal from all the machines higher than itself, it is determined that the host function should be expressed. To express.
  • the game apparatus 1500a When the recognition of the AR marker 10 is resumed in the game apparatus 1500a which is the original host machine from the combination state of FIG. 10 (3), the game apparatus 1500a resumes the host function and stops sending the notification of unrecognition. To do. Since the game device 1500c that has performed the host function does not receive the unrecognizable signal from the game device 1500a, the host device is stopped and only the function as the guest machine is exhibited again.
  • any aircraft that recognizes the AR marker 10 can always be configured to perform the object positioning process with the AR marker 10 as a reference. Therefore, if the game device that is the host machine becomes unable to recognize the AR marker, a misalignment occurs in the alignment between the real space and the virtual three-dimensional space (CG space), and the enemy character 7 is inclined and arranged. In this embodiment, such a situation can be prevented by the host proxy function of the guest machine.
  • FIG. 11 is a functional block diagram illustrating an example of a functional configuration of the game apparatus 1500 according to the present embodiment.
  • the game device 1500 includes an operation input unit 100, an imaging unit 104, an attitude detection unit 108, an acceleration detection unit 110, a processing unit 200, a sound output unit 350, an image display unit 360, a communication unit 370, A positioning signal receiving unit 380 and a storage unit 500 are provided.
  • the operation input unit 100 outputs an operation input signal to the processing unit 200 in accordance with various operation inputs made by the player. For example, it can be realized not only by a button switch, a joystick, a touchpad, a trackball, etc., but also by an element that detects movement or posture, such as an acceleration sensor, angular velocity sensor, tilt sensor, geomagnetic sensor, etc. .
  • the direction input key 1502 and the home key 1504 in FIG. 1 correspond to this.
  • the operation input unit 100 of this embodiment includes a touch operation input unit 102, which enables operation input by touching the display screen with a finger or the like.
  • the touch panel 1506 in FIG. 1 corresponds to this.
  • the imaging unit 104 receives light from the imaging target, converts it into an electrical signal, generates digital image data, and outputs the digital image data to the processing unit 200.
  • the processing unit 200 For example, it is realized with a lens, a mechanical shutter, a shutter driver, a photoelectric conversion element such as a CCD image sensor module or a CMOS image sensor module, a digital signal processor (DSP) that reads out the amount of charge from the photoelectric conversion element and generates image data, and an IC memory.
  • DSP digital signal processor
  • the posture detection unit 108 detects a posture change of the game device 1500 and outputs a detection signal to the processing unit 200.
  • This can be realized with an electronic compass or gyroscope.
  • the CCD camera module 1516 is fixed to the game apparatus 1500, it can be said that the attitude detection unit 108 detects the attitude change of the player viewpoint.
  • the acceleration detection unit 110 can detect acceleration acting on the game device 1500. This corresponds to the triaxial acceleration sensor 1557 of FIG. In this embodiment, since the CCD camera module 1516 is fixed to the game apparatus 1500, it can be said that the acceleration detection unit 110 detects the acceleration accompanying the movement of the player viewpoint.
  • the processing unit 200 is realized by an appropriate combination of, for example, a microprocessor such as a CPU and a GPU, and an electronic component such as an ASIC and an IC memory.
  • the processing unit 200 performs data input / output control with each functional unit, executes various arithmetic processes based on predetermined programs and data, operation input signals from the operation input unit 100, and the like, The operation of 1500 is controlled.
  • the control board 1550 corresponds to this.
  • the processing unit 200 includes a game calculation unit 202, a sound generation unit 250, an image generation unit 260, a communication control unit 270, and a positioning control unit 280.
  • the game calculation unit 202 executes various controls necessary for executing the game of the present embodiment. In addition, it is possible to appropriately execute timing processing such as a time limit using the system clock, flag management processing, and the like.
  • FIG. 12 is a partial functional block diagram showing a configuration example of the game calculation unit 202 in the present embodiment.
  • the game calculation unit 202 of the present embodiment includes a game participation management control unit 204, an own device information calculation unit 206, an own device information transmission control unit 220, an other device information reception control unit 221, and a recognition state determination unit 222. , An unrecognizable signal transmission control unit 223, a host function expression determination unit 224, a character display control unit 230, and an NPC information transmission control unit 240.
  • the game participation management control unit 204 executes game participation related processing for multiplayer. For example, a process for causing the player to select whether the own machine is the host machine / guest machine is executed. When the host machine is selected in this selection process, a process for accepting / registering another machine as a game participant and a process for distributing registration information of the game participant are executed. In addition, regardless of the host machine / guest machine, player character setting processing such as allowing the player to select the type of player character is performed. The player character setting information is then distributed to other devices.
  • the game participation management control unit 204 of the present embodiment includes an expression priority setting unit 205.
  • the expression priority order setting unit 205 sets the expression priority order in response to participation acceptance and controls distribution to other apparatuses when the own apparatus expresses the host function.
  • the own device information calculation unit 206 calculates information related to the positional relationship of the player viewpoint of the own device with respect to the AR marker 10.
  • a relative position calculation unit 207 a current position determination unit 209, a relative posture calculation unit 210, a current posture determination unit 211, and a weight setting unit 212 are included.
  • the relative position calculation unit 207 periodically calculates information indicating the relative positional relationship of the own apparatus with respect to the marker using the captured image of the AR marker 10. That is, the latest relative position of the player viewpoint at that time is measured and calculated.
  • the content of the calculated relative position information can be set as appropriate, for example, a predetermined position of the AR marker 10 (for example, one of the center or corner of the card) is used as a reference point and is based on the reference direction indicated by the AR marker 10.
  • the triaxial orthogonal coordinates (Xm, Ym, Zm) are obtained.
  • the relative position (Xc, Yc, Zc) and the relative distance Lc in the coordinate system are calculated.
  • the AR marker 10 is detected by analyzing the image captured by the imaging unit 104, the type and orientation of the AR marker 10 are determined, and the relative position of the marker reference is calculated. These processes can be realized by appropriately using a known AR technique. Further, the relative distance Lc is calculated in units of actual size based on the card size (actual size; for example, 5 cm ⁇ 7 cm) set in advance corresponding to the type of the AR marker 10 and the number of dots of the AR marker 10 in the photographed image. calculate.
  • the relative position calculation unit 207 functions as the position change suppression control unit 208.
  • the position change suppression control unit 208 performs a process of suppressing the position movement of the object in the game space when the AR marker 10 cannot be recognized.
  • the relative position is determined on the assumption that there is no movement of the position of the game device (no movement of the position of the player's viewpoint) from when recognition is impossible to when the state returns to the recognition state. More specifically, the relative position newly calculated after the recognition is impossible is fixed to the relative position calculated immediately before the recognition becomes impossible, and the fixation is released when the recognition is restored (see FIG. 9). In other words, while the unrecognizable state is detected, it functions as an unrecognizable direction control unit that controls the display direction of the object according to the change in the posture of the computer.
  • the current position determination unit 209 uses a weighted average using the weighting Wn set by the weighting setting unit 212 from the relative position information of the past a predetermined amount calculated by the relative position calculation unit 207 to the latest relative position.
  • the position information applied to CM control is calculated (see FIG. 8).
  • the relative posture calculation unit 210 periodically calculates the posture information of the own device based on the detection result by the posture detection unit 108. For example, on the basis of the optical axis direction by the imaging unit 104, the pitch, yaw, and roll components, the predetermined position of the AR marker 10 (for example, one of the center or corner of the card), the reference point and the reference direction indicated by the marker.
  • the relative orientation ( ⁇ p, ⁇ y, ⁇ r) with respect to the three-axis orthogonal coordinates (Xm, Ym, Zm) based on the above is calculated.
  • the current posture determination unit 211 calculates posture information applied to the control of the virtual camera CM by a weighted average using weights set by the weight setting unit 212 from a predetermined amount of past posture information to the latest posture information. (See FIG. 8).
  • the weighting setting unit 212 refers to a predetermined function or predetermined table data according to the calculation time associated with the latest relative distance Lc with respect to the weighting Wn (see FIG. 8) for each information having different calculation time that can be processed by the weighted average. And decide. In other words, the distance between the first weight change function for weighting according to the calculation time of the own machine position information and the own machine attitude subjected to the weighted average, and the AR marker 10 at the time of calculating the own machine position information and the own machine attitude A second weighting change function for weighting according to L is realized.
  • the own device information transmission control unit 220 performs processing for transmitting various information related to the own device to other devices participating in the game. For example, this includes operation input information from the operation input unit 100, current position, current posture, relative distance Lc, element region 14 definition information, and the like.
  • the other device information reception control unit 221 includes information related to the other device (operation input information by the operation input unit 100 in the other device, current position, current posture, relative distance Lc, definition information of the element region 14, and the like). Receive control.
  • the recognition state determination unit 222 can detect the recognition state of the AR marker 10. Specifically, when the AR marker 10 cannot be detected in the image captured by the imaging unit 104, or when the design of the marker cannot be recognized, the recognition unrecognized state is detected and the recognition return state is established. Is detected. In the unrecognizable state, for example, a case where the AR marker 10 is far away and sufficient information for design identification cannot be obtained due to the relationship with the resolution capability of the imaging unit 104, or the card surface of the AR marker 10 Similarly, a case where sufficient information for design identification cannot be obtained because the optical axis direction of the CCD camera module 1516 is shallow, and a case where a part of the AR marker 10 remains outside the imaging range and sufficient information for design identification cannot be obtained. Can be considered.
  • the unrecognizable signal transmission control unit 223 executes a process for transmitting a predetermined “unrecognizable signal” to other game participants when the unrecognizable state is detected by the recognizing state determination unit 222. It can also be said that it functions as an inherited signal transmission control unit that transmits an inherited signal for requesting the expression of the host function to another machine.
  • the host function expression determination unit 224 determines whether or not the own device should function as a host device based on the presence or absence of recognition of each participating device of the game. In this embodiment, all other devices that are higher than the expression priority of the own device are recognized based on the expression priority set for the own device and the monitoring result of the unrecognizable state of the own device and the other device. When it is disabled, it is determined that it should function as a host machine.
  • the character display control unit 230 controls the arrangement of objects such as characters in the virtual three-dimensional space (CG space) based on the positional relationship of the game participants with respect to the AR marker 10. In other words, the display positions of the characters such as the player characters PC1 to PC3 and the enemy character 7 in the augmented reality space are controlled.
  • the character display control unit 230 according to the present embodiment includes an area setting unit 231 and an NPC control unit 235.
  • the area setting unit 231 sets an area in the augmented reality space where a predetermined object (enemy character 7 in this embodiment) is displayed. Specifically, it includes a basic area setting unit 232, an element area setting unit 233, and an arrangement area setting unit 234.
  • the basic area setting unit 232 sets the basic area 13 based on the relative distance Lc from the AR marker 10 to each player viewpoint. That is, the basic size of the arrangement area 12 is set. Specifically, the basic length Lb of the basic area 13 is obtained by a predetermined function f (Lc) using the minimum value as a variable among the relative positions Lc for each game participant. Then, the basic area preset according to the type of the AR marker 10 is enlarged / reduced so that the predetermined dimension becomes the basic length Lb, and the size is changed to set the basic area 13.
  • the element area setting unit 233 uses the own device shooting range and the other device shooting range when the AR marker 10 is shot at the viewpoint position of each player so that the AR marker 10 is not easily lost from the viewpoint of each player.
  • the element area 14 in which the enemy character 7 can be placed is set.
  • it functions as a depth changing unit that changes the depth of the photographing range of the own device and the photographing range of the other device using the depression angle ⁇ c with respect to the planar direction of the AR marker viewed from the player's viewpoint.
  • the arrangement area setting unit 234 uses the basic area 13 and the element area 14 to set the arrangement area 12 in which the enemy character 7 can be arranged while making it difficult for the AR marker 10 to be lost for any game participant.
  • overlapping portions of the basic region 13 and each element region 14 are obtained and set as the arrangement region 12.
  • the NPC controller 235 controls the placement of NPCs (non-player characters) such as the enemy character 7, effect objects such as the flying object 6, and background objects that form the background of the game space. So-called “AI control” is performed.
  • the control information (position coordinates, orientation, motion control data, etc.) of an object such as NPC is history information for a predetermined period (for example, several frames of a game image) associated with each object, and play data stored in the storage unit 500. It is stored in the enemy character arrangement information queue 544 of 541 (see FIG. 11).
  • the NPC control unit 235 according to this embodiment includes a control start special control unit 236 and a movement direction control unit 237.
  • the control start special control unit 236 performs control so as to reduce the movement speed and / or movement speed of the object to be controlled for a predetermined period (for example, several frames of the game image) from the start of control. Specifically, past control information stored in the enemy character arrangement information queue 544 and newly calculated control information are averaged to obtain actual control information. For example, at the timing when the game device responsible for the host function is switched, a jump of the control information value may occur before and after switching, but the average value of the past value and the latest value should be used for actual control. Therefore, it is possible to suppress unnatural display such as instantaneous movement or shift / blur of the object at the switching timing. In particular, this is effective against a change (shift / blur) of the display position of the object.
  • a predetermined period for example, several frames of the game image
  • the movement direction control unit 237 determines the movement direction of the object to be controlled based on the image position of the AR marker 10 in the captured image (live view) by the imaging unit 104, and the relative direction of the object in the arrangement area 12. And a process of determining a moving direction based on the position.
  • the object position of the enemy character 7 moves closer to the image position of the AR marker 10 with a higher probability as the image position of the AR marker 10 in the live view of the host function developing machine is farther from the image center.
  • the enemy character 7 is closer to the AR marker 10 as the player viewpoint direction of the host function developing machine (the optical axis direction of the CCD camera module 1516 is the same as the visual line direction of the virtual camera) is farther from the AR marker 10.
  • the moving direction of the enemy character 7 is determined so that the enemy character 7 approaches the AR marker 10 as the angle between the direction from the player (game device) to the AR marker 10 and the player viewpoint direction increases. .
  • it can be realized by temporarily changing the lottery probability or executing the lottery again when the lottery result does not approach the AR marker 10.
  • a process for selecting a moving direction so as not to go out of the area, or a distance from the outline of the placement area 12 is calculated and a predetermined approach condition is set.
  • a process for temporarily reducing the next movement amount is performed.
  • a process for selecting the movement direction so as to return to the area or a process for temporarily increasing the movement amount so as to return as quickly as possible can be applied. .
  • the NPC information transmission control unit 240 controls transmission of the NPC control information obtained by the NPC control unit 235 to another device.
  • the area setting unit 231, the NPC control unit 235, and the NPC information transmission control unit 240 are functional units that appear only when the own device should function as a host device, and these are the host function execution control unit 249. Configure.
  • the sound generation unit 250 is realized by, for example, a digital signal processor (DSP), a processor such as a voice synthesis IC, an audio codec that can play back an audio file, and the like. Sound effects, BGM, and sound signals of various operation sounds are generated and output to the sound output unit 350.
  • DSP digital signal processor
  • a processor such as a voice synthesis IC, an audio codec that can play back an audio file, and the like. Sound effects, BGM, and sound signals of various operation sounds are generated and output to the sound output unit 350.
  • the sound output unit 350 is realized by a device that outputs sound effects, BGM, telephone communication voices, and the like related to the game based on the sound signal input from the sound generation unit 250.
  • the speaker 1510 corresponds to this.
  • the image generation unit 260 is, for example, a processor such as a GPU or a digital signal processor (DSP), a program such as a video signal IC or a video codec, an IC memory for drawing frames such as a frame buffer, or an IC used for developing texture data. This is realized by a memory or the like.
  • the image generation unit 260 generates one game screen in one frame time (for example, 1/60 second) based on the processing result by the game calculation unit 202, and outputs the generated image signal of the game screen to the image display unit 360. To do.
  • the image display unit 360 displays various game images based on the image signal input from the image generation unit 260.
  • it can be realized by an image display device such as a flat panel display, a cathode ray tube (CRT), a projector, or a head mounted display.
  • the touch panel 1506 in FIG. 1 corresponds to this.
  • the communication control unit 270 executes data processing related to data communication, and realizes data exchange with an external device via the communication unit 370.
  • a communication unit 370 related to this is connected to the communication line 1 to realize communication.
  • it is realized by a wireless communication device, a modem, a TA (terminal adapter), a cable communication cable jack, a control circuit, and the like, and the wireless communication module 1553 of FIG. 1 corresponds to this.
  • the positioning control unit 280 performs control for calculating position information from a signal obtained from the positioning system via the positioning signal receiving unit 380, that is, positioning calculation and management of the result.
  • a signal obtained from the positioning system via the positioning signal receiving unit 380 that is, positioning calculation and management of the result.
  • the GPS module 1554 shown in FIG. When the known position information of the mobile phone base station is used for the positioning calculation, the wireless communication module 1553 for wireless communication with the base station is also applicable.
  • the storage unit 500 stores programs, various data, and the like for realizing various functions for causing the processing unit 200 to control the game apparatus 1500 in an integrated manner. Further, it is used as a work area of the processing unit 200, and temporarily stores calculation results executed by the processing unit 200 according to various programs, input data input from the operation input unit 100, and the like.
  • Such a function is realized by, for example, an IC memory such as a RAM or a ROM, a magnetic disk such as a hard disk, or an optical disk such as a CD-ROM or DVD.
  • the IC memory 1552 and the memory card 1540 mounted on the control board 1550 correspond to this.
  • the storage unit 500 of the present embodiment stores a system program 502 and a game program 504 for the game apparatus 1500.
  • a system program 502 is a program for realizing basic functions of the game apparatus 1500 as a computer.
  • the game chromatogram 504 is a program for causing the processing unit 200 to realize the function as the game calculation unit 202. Although it is assumed that it is stored in advance in the memory card 1540, the present embodiment may be configured to download from a predetermined server before starting the game.
  • the storage unit 500 stores game space initial setting data 510, character initial setting data 511, AR marker registration data 512, and depth function setting data 514 in advance. These are also stored in the memory card 1540 in advance, but may be downloaded from a predetermined server before the game is started.
  • game participation machine registration data 520, own machine information queue 530, current position 537, current attitude 538, and play data 541 are generated as the game progresses and updated as needed.
  • virtual three-dimensional space data 560 and host function inheritance timing 562 are stored.
  • data necessary for executing various processes for example, compressed / decompressed texture data, elapsed time, various timer values, counters, flags
  • various processes for example, compressed / decompressed texture data, elapsed time, various timer values, counters, flags
  • the game space initial setting data 510 is initial setting data that defines a background object for creating a game stage. This includes model data, texture data, arrangement position data, etc. of the background object.
  • Character initial setting data 511 stores initial setting data of game characters such as player characters PC1 to PC3 and enemy character 7. For each character, initial values of model data, texture data, motion data, and ability parameters (attack power, defense power, HP, etc.) are stored for each character.
  • AR marker registration data 512 is data for registering AR markers that can be used in the game, and is stored for each type that can be used. Then, as shown in FIG. 13, a marker type, a corresponding marker category, design pattern data, card dimensions, a basic area model that serves as a template for the basic area 13, and a basic that designates a dimension with a basic length Lb. Stores the length applicable dimension.
  • the depth function setting data 514 is data for setting a function for calculating the depth Db of the element region 14, and is prepared for each marker category of the AR marker 10 (see FIG. 7).
  • the game participant registration data 520 is a data group related to registration of game devices participating in a game, and is generated by participation processing. For example, as shown in FIG. 14, in association with the game machine ID 521, address information 522 for specifying the other party by communication connection, expression priority 523, player character type 524, marker recognition state 525, host A host function expression flag 526 indicating whether the machine expresses a function is stored.
  • the game machine registration data 520 is distributed to each guest machine after an original is generated by the host machine in connection with the game participation process.
  • the own device information queue 530 stores information such as the position and posture of the own device based on the AR marker 10 for a predetermined number of times of calculation. For example, as shown in FIG. 15, the relative position 533, the relative posture 534, and the relative distance 535 are stored in association with the calculation time 532.
  • the current position 537 and the current posture 538 store the weighted average value of the relative position 533 and the weighted average value of the relative posture 534 stored in the own device information queue 530, respectively.
  • the play data 541 is a data group generated and managed by executing the host function, and stores various data describing the game progress status.
  • the player character state data 542 includes data describing the states of the player characters PC1 to PC3, for example, current values of ability values such as HP (hit points), identification information of applied motion data, motion control data, and the like. Store.
  • the enemy character state data 543 stores data describing the state of the enemy character 7. For example, the current value of ability values such as HP of the enemy character, identification information of motion data to be applied, motion control data, and the like are stored.
  • the enemy character arrangement information queue 544 stores the position and posture of the enemy character 7 in the CG space associated with the calculation time for a predetermined calculation count.
  • the flying object arrangement data 545 stores information describing the flying state such as the position, posture, speed, and acceleration of each launched flying object 6.
  • the basic area setting data 550 stores the latest definition data of the basic area 13.
  • the element area setting data 552 stores the latest definition data of the element area 14 obtained for each game participant, that is, for each player viewpoint position.
  • the arrangement area setting data 554 stores the latest information of the arrangement area 12.
  • the virtual three-dimensional space data 560 stores arrangement information of various objects such as player characters PC1 to PC3, enemy character 7, flying object 6, and background objects arranged in the virtual three-dimensional space.
  • the host function inheritance timing 562 stores timing information (for example, system time) when the machine that expresses the host function has changed. In other words, the timing at which the execution function of the host function is inherited by another machine is stored.
  • FIG. 17 is a flowchart for explaining the main processing flow in the present embodiment.
  • the processing unit 200 of the game device 1500 first establishes a communication connection with another game device in an ad hoc mode (step S2). Thereafter, a peer-to-peer (P2P) local network is formed between the game devices.
  • P2P peer-to-peer
  • FIG. 18 is a flowchart for explaining the flow of the pre-game preparation process in the present embodiment.
  • the processing unit 200 first executes a host / guest selection process for displaying a selection screen for selecting the own machine as a host machine or a guest machine and causing the player to select one (step S6).
  • step S8 game participation machine registration data 520 is generated to register the own machine (step S10). That is, the first game machine ID 521 is issued and address information 522 in the local area network established previously is stored.
  • the expression priority order 523 is set to the first order, and the marker recognition state 525 is initialized to information indicating the recognition state (“1” in the example of FIG. 14).
  • the processing unit 200 of the host machine executes the player character selection process (step S12) and the game space initialization process (step S14).
  • the selection result of the player character is stored in the player character type 524 of the game participant registration data 520.
  • the background space is arranged in the virtual three-dimensional space to arrange the game space, and the player character PC1 and the enemy character are arranged. 7 is arranged.
  • player character state data 542 and enemy character state data 543 are generated and initialized.
  • the processing unit 200 of the host machine executes the participation process as the host machine for a limited time (step S16).
  • Step S6 when the guest is selected in the host / guest selection process (“Guest” in step S6), the processing unit 200 of the game device 1500 that is the guest machine executes the player character selection process. (Step S18), a game participation request signal is transmitted to the host machine, and a participation process as a guest machine is performed (Step S22).
  • the processing unit 200 of the host machine appropriately transmits and receives information to and from the guest machine that requested the game participation and registers as a participating machine. That is, the newly assigned game machine ID 521 is set in the game participation machine registration data 520, the address information 522 of the guest machine is registered in association with this, and the expression priority 523 is set to the registration order of the guest machine +1 (therefore, Set the first guest machine's expression priority to 2nd).
  • the player character type 524 is acquired from the guest machine, and the marker recognition state 525 is a value indicating the recognition state.
  • game participation machine registration data 520 is distributed from the host machine to the guest machine. In the guest machine, the received game participation machine registration data 520 is stored in the storage unit 500.
  • step S24 the processing unit 200 repeatedly executes steps S32 to S320 in a predetermined cycle until the game end condition is satisfied.
  • the processing unit 200 first executes an automatic information calculation process (step S32).
  • FIG. 19 is a flowchart for explaining the flow of the device information calculation process.
  • the processing unit 200 first captures a video image taken by the imaging unit 104 (step S60), and detects the AR marker 10 in the captured image (step S62).
  • the processing unit 200 recognizes the AR marker 10 and determines the type (step S66). That is, in the same manner as in the known marker system AR technique, a portion where the AR marker is reflected is detected, and the portion is compared with the design pattern registered in the AR marker registration data 512 (see FIG. 13). The AR marker 10 is recognized, and the marker direction, marker type, and marker category are determined.
  • the processing unit 200 measures and calculates the relative position (Xc, Yc, Zc), the relative posture ( ⁇ p, ⁇ y, ⁇ r), and the relative distance L with respect to the AR marker 10 (step S68). These calculation results are stored in the own device information queue 530.
  • the processing unit 200 does not calculate the relative position and the relative attitude, and does not calculate the relative position 533 and the relative position in the latest past information queue 530. Refer to distance 535.
  • step S70 If those values in the past are stored in the own device information queue 530 (YES in step S70), they are copied and directly stored in the own device information queue 530 as the current relative position and relative distance. Store (step S72). If those values in the latest past are not stored (NO in step S70), predetermined initial values are stored in the own device information queue 530 as the current relative position and relative distance (step S74). Regarding the relative posture, regardless of whether or not those values in the latest past are stored in the own device information queue 530, the result measured based on the detection result of the posture detecting unit 108 is newly added to the own device information queue 530. (Step S76).
  • the processing unit 200 next calculates a weighting wn (n: storage order of data stored in the own device information queue 530) (step S78).
  • the current position 537 is obtained by weighted average of the relative positions 533 stored in the own device information queue 530 using the weighted wn thus obtained (step S80).
  • the current posture 538 is obtained by weighted average of the relative postures 534 stored in the own device information queue 530 (step S82).
  • the weighting wn related to the weighted average is calculated by using the latest relative distance Lc of the own device for a predetermined function h (n, Lc).
  • the processing unit 200 next executes host function expressing machine setting processing (step S110).
  • FIG. 20 is a flowchart for explaining the flow of host function developing machine setting processing in the present embodiment.
  • the processing unit 200 first performs a monitoring process of the recognition state of the AR marker 10 in each game device (steps S112 to S122). Specifically, when the AR marker 10 cannot be recognized in the own device information calculation process (YES in step S112), the processing unit 200 recognizes the marker recognition state 525 of the own device in the game participant registration data 520 (FIG. 14) is changed to “recognition is not possible (LOST)” (step S114), and a predetermined recognition impossibility signal is transmitted to another device (step S116). If the AR marker 10 can be recognized (NO in step S112), the marker recognition state 525 of the own device is set to “In Sight” (step S118).
  • the processing unit 200 changes the marker recognition state 525 of the other device that is the transmission source of the unrecognizable signal to “unrecognizable (LOST)” (step S120). For other devices that have not received the unrecognizable signal, they are set to “Identifying (In Sight)” (step S122). Thus, the marker identification state in each game participant is updated.
  • the processing unit 200 selects a game device that expresses a host function based on the monitoring result of the marker recognition state, that is, a “host function expressing machine” (step S140). Specifically, referring to the marker recognition state 525 of the game machine registration data 520, the marker recognition state of all other machines whose expression priority is higher than the game apparatus is “recognizable (LOST)”. The game machine is selected as the machine that should express the host function.
  • the processing unit 200 refers to the host function expression flag 526 of the selected machine. If the flag is “0” (“0” in step S 142), the same flag of other game machines is set to “0” (step S 144), and the current system time is stored in the host function inheritance timing 562. Then, it is updated (step S146), and the host function developing device setting process is terminated. If the host function expression flag 526 of the selected machine is already “1” (“1” in step S142), the host function expression machine setting process is not performed without performing the flag operation or updating the host function inheritance timing 562. finish.
  • step S150 when the own device is set as the host function developing device (YES in step S150), the processing unit 200 determines that the own device should develop the host function and executes the host function. Processing is performed (step S152).
  • FIG. 21 is a flowchart for explaining the flow of host function execution processing in the present embodiment.
  • the processing unit 200 first obtains the current position 537, the current posture 538, and operation input data (in this embodiment, whether or not there is a shooting operation input) as the other machine information from all other machines (step S160). ). Then, basic area setting processing is executed (step S162).
  • FIG. 22 is a flowchart for explaining the flow of the basic area setting process in the present embodiment.
  • the processing unit 200 first obtains the relative distance Lc to the AR marker 10 for each game participating machine, that is, for each player's viewpoint, by obtaining or transmitting from another machine (step S170), and calculating or obtaining the relative distance.
  • a basic length Lb is calculated based on Lc (step S172).
  • the basic length Lb is obtained using a predetermined function f (Lc) using the minimum value among the relative distances Lc calculated for each game participant.
  • the processing unit 200 compares the calculated basic length Lb with a predetermined minimum value, and if it is below the minimum value (YES in step S174), replaces the basic length Lb with this minimum value (step S176). ). Then, the basic area model is read from the AR marker registration card 512 (see FIG. 13) corresponding to the recognized type / category of the AR marker (see step S66 in FIG. 19), and the basic length Lb set previously is used as the basic length. The basic area 13 assigned to the applicable dimension is set (step S178). Information (for example, functions describing vertex coordinates and contour lines) defining the obtained basic area 13 is stored in the play data 541 as basic area setting data 550. Then, the basic area setting process ends.
  • the processing unit 200 next executes an element area setting process for each game participant and sets an element area 14 for each player viewpoint (step S180).
  • FIG. 23 is a flowchart for explaining the flow of the element area setting process.
  • the processing unit 200 first obtains the vertex positions of the four corners of the AR marker 10 shown in the captured image (step S190), and the position and roll of the game apparatus 1500, that is, the position and roll of the CCD camera module 1516 ( Assuming that the rotation around the optical axis is fixed, the right end of the four corners of the AR marker 10 is close to the right end of the imaging range of the CCD camera module 1516, and the lower end of the four corners of the AR marker 10 is the lower end of the imaging range. Is obtained, and the optical axis AL1 of the CCD camera module 1516 in the posture is obtained (step S192; see FIG. 6).
  • the processing unit 200 obtains the optical axis AL2 by obtaining the second posture in which the left ends and the upper ends are close to each other between the AR marker 10 and the imaging range (step S194), and the left ends are obtained between the AR marker 10 and the imaging range.
  • the optical axis AL3 is obtained by obtaining a third posture in which the lower ends are close to each other (step S196), and the optical posture AL4 is obtained by obtaining a fourth posture in which the right ends and the upper ends are close to each other between the AR marker 10 and the imaging range ( Step S198).
  • the processing unit 200 calculates the optical axis angle of the CCD camera module 1516 relative to the design surface (marker plane) of the AR marker 10, that is, the depression angle ⁇ c, and selects / references the depth function setting data 514 corresponding to the category of the AR marker 10. Then, the depth Db based on the calculated depression angle ⁇ c is calculated (step S200).
  • the intersection of the clip plane that is separated from the camera viewpoint position of the CCD camera module 1516 by the depth Db in the current optical axis direction and each of the optical axes AL1 to AL4 previously obtained is obtained, and the obtained four intersection points and the camera viewpoint are obtained.
  • a volume surrounded by the position is set as the element area 14 in the target game device 1500 (target player viewpoint) (step S202).
  • Information for example, functions describing vertex coordinates, contour lines, etc.
  • the element area setting process ends.
  • the processing unit 200 next obtains the overlapping area of the basic area 13 and the element area 14 and sets it as the arrangement area 12 (step S220).
  • Information that defines the obtained overlapping area (for example, functions that describe vertex coordinates and contour lines) is stored in the play data 541 as arrangement area setting data 554.
  • the processing unit 200 controls the movement of the enemy character 7 so as to exist within the latest arrangement area 12 (step S222).
  • the operation control here includes two operations of movement and attack.
  • the movement control for example, if the enemy character 7 is in the latest arrangement area 12, a process for selecting a movement direction so as not to go out of the area, or a distance from the outline of the area is calculated to obtain a predetermined value. When a state satisfying the approach condition is detected, a process for temporarily reducing the next movement amount is executed to determine a new arrangement position. Also, if the enemy character 7 is outside the area, a process for selecting the movement direction so as to return to the area, a process for temporarily increasing the movement amount (movement speed) so as to return as quickly as possible, etc. Execute to determine a new placement position.
  • the movement control is performed so that the enemy character 7 approaches the image position of the AR marker 10 with a higher probability as the image position of the AR marker 10 in the captured image (live view) by the imaging unit 104 is farther from the image center.
  • the operation control is performed so that the enemy character 7 is closer to the AR marker 10.
  • the lottery probability is temporarily changed so that the moving direction toward the current AR marker 10 is selected with higher probability, This can be realized by performing a re-lottery when the result does not follow the line-of-sight direction.
  • the newly determined position and posture of the enemy character 7 are stored in the enemy character arrangement information queue 544.
  • the control data of the object related to the enemy character 7 in the virtual three-dimensional space data 560 is appropriately rewritten.
  • the attack is controlled by a predetermined algorithm (so-called AI control) so as to shoot at the appropriate player characters PC1 to PC3 at an appropriate timing.
  • the processing unit 200 compares the current system time with the system time stored in the host function inheritance timing 562 (that is, the control start timing of the host function), and determines a predetermined time from the control start timing of the host function. Determine if it has passed.
  • the processing unit 200 performs special control at the start of control for adjusting the movement amount and / or movement speed of the enemy character 7 to be reduced (step S226). Specifically, for example, weighted average values of the positions and postures stored in the enemy character arrangement information queue 544 (weighting is lower as the past value) is obtained, and the latest values of the enemy character arrangement information queue 544 are weighted averaged. Update to position and orientation. Thereby, even if the position and posture of the enemy character 7 due to the replacement of the aircraft responsible for the host function are changed, the influence can be reduced.
  • the apparent movement amount and movement speed of the enemy character 7 are reduced, and an unnatural movement such as an instantaneous increase in the movement amount and movement speed can be prevented. If the predetermined time has not elapsed from the control start timing of the host function (YES in step S224), such special control at the start of control is skipped.
  • the processing unit 200 updates the arrangement positions of the player characters PC1 to PC3 (step S228). Accordingly, the control data of the objects related to the player characters PC1 to PC3 in the virtual three-dimensional space data 560 is appropriately rewritten.
  • the processing unit 200 manages the flying object 6 (step S240). For example, when an attacking action is performed by the enemy character 7 or when an attack operation input is detected in each game device, a new flying object 6 launched from the corresponding player character is placed in the virtual three-dimensional space. To do. Further, the arranged flying object 6 is moved. Accordingly, the flying object arrangement data 545 of the play data 541 is appropriately rewritten, and the control data of the object related to the flying object 6 in the virtual three-dimensional space data 560 is appropriately rewritten.
  • the processing unit 200 determines an attack hit based on the position of the flying object 6 after the movement, the updated positions of the player characters PC1 to PC3, and the position of the enemy character 7, and the damage caused by the attack hit. Determination and damage reflection processing are performed (step S242). If it is determined that the flying object 6 has been hit, it goes without saying that the flying object 6 is erased from the virtual three-dimensional space. By the damage reflection process, the player character state data 542 and the enemy character state data 543 of the play data 541 are updated.
  • the processing unit 200 distributes the latest play data 541 to the other machine (step S244), and executes the host function execution processing. finish.
  • the processing unit 200 performs control so as to behave as a guest device. That is, the processing unit 200 of the guest machine acquires the current position 537, the current posture 538, and the operation input information from all other machines (Step S300), and acquires play data from the host machine (Step S302). Then, the arrangement position of the object in the virtual three-dimensional space is updated based on the acquired current position 537 and current posture 538 of the other device, the current position 537 and current posture 538 of the own device, and the acquired play data ( Step S304).
  • the processing unit 200 next executes processing related to generation and display of the game screen. That is, the captured image captured by the imaging unit 104 is cropped to generate a background image (step S310), and the virtual camera CM is placed in the virtual three-dimensional space based on the current position 537 and the current posture 538 of the own device. Arrange and render the state of the virtual three-dimensional space photographed by the virtual camera (step S312).
  • the rendered CG is synthesized on the background image, and an information display body such as the sight 8 is synthesized on the center of the screen to complete the game screen (step S314), and this is displayed on the image display unit 360. It is displayed (step S316; see FIG. 3).
  • step S320 determines whether or not a game end condition is satisfied. If the game end condition is not satisfied (NO in step S320), the process proceeds to the next control cycle. If it is satisfied (YES in step S320), a game end process such as displaying an ending screen is executed (step S322), and the series of processes ends.
  • the relative position for each player viewpoint with respect to the AR marker 10 (the game participant represented by the relative position of the viewpoint of the CCD camera module 1516 with respect to the reference point of the AR marker 10 in this embodiment).
  • Relative position the display position of the character in the augmented reality space can be appropriately controlled conveniently for multiplayer. Specifically, even if the viewpoint position and the line-of-sight direction of each game device 1500 are changed so as to track the attention character (enemy character 7), the AR marker 10 does not fall outside the imaging range of the CCD camera module 1516.
  • the arrangement of the attention character can be adjusted. That is, it is possible to improve the quality of a multiplayer game using an augmented reality space and avoid and reduce various inconveniences associated with character placement control.
  • the current position for actually controlling the virtual camera can be determined using the relative position for a given time (or given number of times) retroactively from the present, Camera shake can be suppressed.
  • the position coordinates are temporarily fixed to the values immediately before the marker lost, while the current position is continuously calculated for the posture.
  • the accuracy of coordinate alignment between the real space and the CG space is lower than when the AR marker 10 can be recognized, but it is possible to suppress the display misalignment of characters and the like that the game must be interrupted. That is, it is possible to increase resistance to the interruption of the game due to the lost AR marker.
  • the components can be changed, added, or omitted as appropriate.
  • a “recognition impossible signal” is transmitted, and the marker recognition state is managed based on the presence or absence of the recognition unrecognized signal.
  • the “recognition signal” may be transmitted when the AR marker 10 is recognized. While the “recognition signal” is received, the marker recognition state 525 of the transmission source is set to “In Sight (recognizing)”, and the marker recognition state 525 of the aircraft to which the “recognition signal” is not transmitted is set to “LOST ( It is better to set to "Unrecognizable)”.
  • the expression priority can be changed as appropriate during game play from the initial value set in the pre-game preparation process.
  • the processing unit 200 acquires the relative distance Lc with respect to the latest AR marker 10 from all the other machines (step S250), and the own unit is included in the acquired relative distance Lc. Sorting in order of increasing distance including the latest relative distance Lc, the expression priority order 523 is reset in the sorted order and distributed (step S254). For example, when the processing unit 200 of the game apparatus 1500 that does not express the host function receives a new expression priority 523 following step S304 in FIG. It is assumed that the expression priority order 523 of the registered game participant registration data 520 is updated (see FIG. 17).
  • the game device 1500 that is far from the AR marker 10 can shoot a wider range, it is expected that the AR marker 10 is less likely to be lost. Therefore, by resetting the expression priority 523 in order of increasing relative distance Lc, it is possible to reduce the switching frequency of the aircraft that exhibits the host function.
  • FIG. 25 is a diagram illustrating a configuration example of the game apparatus 1500B in the present embodiment.
  • the game apparatus 1500B includes a game apparatus main body 1501 having a built-in control board 1550 and a plurality of wirelessly connected user terminals 1590. Each player carries one user terminal 1590 in the same manner as the game apparatus 1500 of the first embodiment, and plays by holding the user terminal 1590 over the AR marker 10.
  • User terminal 1590 corresponds to a wireless game controller. Similar to the game apparatus 1500 of the first embodiment, the user terminal 1590 is provided on the back side of the apparatus main body so that the CCD camera module 1516 captures the back direction of the apparatus main body.
  • the user terminal 1590 includes a terminal control board 1560, a three-axis gyro 1556, an acceleration sensor 1557, and a wireless communication module 1553.
  • Image data captured by the CCD camera module 1516 of the user terminal 1590 and information detected by the 3-axis gyro 1556 and the 3-axis acceleration sensor 1557 are associated with terminal identification information via wireless communication by the wireless communication module 1553.
  • the game apparatus main body 1501 Based on the received information, the game apparatus main body 1501 performs game progress control in the same manner as in the first embodiment, and generates a game screen for each user terminal 1590 and generates it for each user terminal 1590.
  • the image data for displaying the played game screen is transmitted.
  • Each user terminal 1590 displays a game screen of the AR game on the touch panel 1506 based on the received screen data.
  • FIG. 26 is a functional block diagram illustrating a functional configuration example according to the present embodiment.
  • FIG. 27 is a functional block diagram showing a functional configuration example of the game calculation unit in the present embodiment.
  • the functional configuration of the present embodiment is basically the same as that of the first embodiment, but the user terminal 1590 performs input, audio, and image output. However, the user terminal 1590 has no distinction between a host machine and a guest machine. Therefore, the functional unit related to the own device / other device in the first embodiment is replaced with the functional unit related to the user terminal in the present embodiment.
  • the host function expression determination unit 224 is a function unit that determines which camera of the user terminal 1590 is the reference viewpoint for controlling the enemy character 7.
  • the data stored in the storage unit 500 is basically the same as in the first embodiment, but has the following differences.
  • the game machine registration data 520 of the first embodiment replaces the terminal registration data 520B.
  • the terminal registration data 520B is associated with the terminal ID 521B indicating the identification information of the user terminal 1590, and changes to the address information 522 and the expression viewpoint priority 523B according to the first embodiment.
  • the player character type 524, the marker recognition state 525, and the reference viewpoint flag 527 are stored in association with each other.
  • the reference viewpoint flag 527 is a flag indicating that the CCD camera module 1516 mounted on the terminal is selected as a viewpoint for controlling the NPC such as the enemy character 7.
  • the own device information queue 530 of the first embodiment replaces the terminal information queue 530B provided for each terminal.
  • the terminal information queue 530B stores the relative position 533 and the relative posture 534 of the user terminal with respect to the AR marker 10 and the relative distance 535 in association with the calculation time 532.
  • the terminal information queue 530B stores a terminal current position 537B and a terminal current attitude 538B corresponding to the current position 537 and the current attitude 538 of the first embodiment.
  • a reference viewpoint for controlling the enemy character 7 or the like is set from any user terminal 1590 (more precisely, the CCD camera module 1516 mounted thereon). Since the selection / switching is performed, the reference viewpoint switching timing 562B is stored in the storage unit 500 of this embodiment instead of the host function inheritance timing 562 of the first embodiment (see FIG. 26).
  • FIG. 30 is a flowchart for explaining the main processing flow in this embodiment. Basically, it is the same as that of the first embodiment, but in this embodiment, there is no distinction between host / guest and steps related to the guest machine are omitted. Further, there is no distinction between the own device and the other device, and it is treated as the user terminal 1590 equally.
  • step S2 of the first embodiment the processing unit 200 establishes a communication connection with the user terminal 1590 and generates terminal registration data 520B (step S2B).
  • the reference viewpoint priority 523B is set in the same manner as the setting of the expression priority 523 in step S10 of the first embodiment.
  • step S4 of the first embodiment a player character selection process is executed for each user terminal 1590, and the selection result is stored in the player character type 524 of the terminal registration data 520B (step S12B).
  • the processing unit 200 replaces the own device information calculation process of the first embodiment for each user terminal 1590. Terminal information calculation processing is executed (step S32B).
  • the terminal information calculation process is basically the same as the own apparatus information calculation process of the first embodiment, but instead of step S60 of the first embodiment, the target user terminal Processing for acquiring and capturing image data captured by the CCD camera module 1516 of 1590 is performed (step S60B). Further, when the AR marker 10 is detected, a step of setting the marker recognition state 525 of the user terminal to the recognition state “In Sight” is added. (Step S69). Similarly, when the AR marker 10 cannot be detected, a step of setting the marker recognition state 525 to the unrecognizable “LOST” is added (step S77). Regarding the other steps, “own device” may be read as “user terminal” and “own device information queue” may be read as “terminal information queue” (steps S68B, S72B, S74B, S76B, S80B, and S82B).
  • FIG. 32 is a flowchart for explaining the flow of the reference viewpoint setting process. Basically, it is the same as the host function developing device setting process of the first embodiment, but the steps related to monitoring the marker recognition state are omitted. Otherwise, “own device” and “other device” may be read as “user terminal” (steps S140B, S142B, and S144B), and “host function inheritance timing” may be read as “reference viewpoint switching timing” (step S146B).
  • steps S150 and S300 to S304 of the first embodiment are omitted, and character control processing is executed instead of step S152 (host function execution processing) of the first embodiment. (Step S152B).
  • FIG. 33 is a flowchart for explaining the flow of the character control process. This process basically has the same flow as the host function execution process of the first embodiment, but has the following differences.
  • step S160 in the first embodiment is omitted, and basic area setting processing is executed (step S162B).
  • the relative distance Lc is calculated for each “game participating machine”.
  • the relative distance Lc is calculated for each “user terminal 1590”. The other processes are the same (see FIG. 22).
  • an element area setting process is executed for each user terminal 1590 (step S172B).
  • step S224 reference viewpoint switching timing 562B is referred to and it is determined whether a predetermined time has elapsed from the switching timing (step S224B).
  • the processing unit 200 executes loop A for each user terminal 1590 to generate a terminal-specific game screen and display processing thereof (steps S309 to S317).
  • the present embodiment is not limited to being realized by a single game device 1500B.
  • a smartphone or a portable game device (corresponding to the user terminal 1590) connected by starting the Internet and a predetermined server device (game) It can also be realized by the apparatus main body 1501).
  • the computer used as the game apparatus 1500 in the first embodiment is equipped with an image sensor serving as the player's viewpoint, a gyroscope and an acceleration sensor for detecting a change in posture, and can execute a game program
  • the portable game apparatus For example, electronic devices such as smartphones, personal computers, and mobile phones may be used as “game devices” or “user terminals”.
  • the genre of the game is not limited to the shooting game and can be set as appropriate.
  • the image display unit 360 of the game device or the user terminal is configured by a display device capable of autostereoscopic viewing (for example, a parallax barrier method or a lenticular method), and the relative position / relative posture of the game device or user terminal with respect to the AR marker 10. Accordingly, display control of a stereoscopic image may be performed.
  • the live view image captured by the CCD camera module 1516 is set as the farthest view, and the characters and the like (objects) arranged on the coordinate system of the game space (virtual three-dimensional space) are three-dimensionally controlled. It is good.
  • the posture detected by the posture detection unit 108 of the game device 1500 is transmitted and received between the game devices 1500, and the display posture of the character corresponding to the game device 1500 is changed to the corresponding game device 1500. It is good also as controlling to change according to the attitude
  • the game apparatus main body 1501 receives the posture detected by the posture detection unit 108 of each user terminal 1590, and the display posture of the character corresponding to each user terminal 1590 is changed to the corresponding user terminal. It may be controlled to change according to the posture of 1590.
  • Unrecognizable signal transmission control unit 224 ... Host function expression determination unit 230 ... Character display control unit 231 ... Area setting unit 232 ... Basic region setting unit 233 ... Element region setting unit 234 ... Arrangement region setting unit 235 ... NPC control unit 236 ... Control start special control unit 237 ... Movement direction control unit 249 ... Host function execution control unit 500 ... Storage unit 504 ... Game chromatogram 512 ... AR marker registration data 514 ... Depth function setting data 520 ... Game participation Machine registration data 523 ... Expression priority 524 ... Player character type 525 ... Marker recognition state 526 ... Host function expression flag 530 ... Own machine information queue 533 ... Relative position 534 ... Relative attitude 535 ...

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Child & Adolescent Psychology (AREA)
  • Health & Medical Sciences (AREA)
  • Optics & Photonics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

拡張現実空間を利用したマルチプレイ型のゲームにおけるキャラクタの配置制御に伴うさまざまな不都合を回避・低減する。 ゲーム装置1500毎のARマーカ10に対する相対位置に基づいて基礎領域13を設定し、各ゲーム装置においてARマーカ10がCCDカメラモジュール1516の撮影範囲外とならない撮影範囲として要素領域14を設定する。基礎領域13と要素領域14との重合領域を求めて、配置領域12とする。注目オブジェクト(敵キャラクタ7)を配置領域12内にとどまるように動作制御する。

Description

プログラム、記憶媒体、ゲーム装置及びコンピュータ
 本発明は、コンピュータに拡張現実技術を利用したゲームを実行させるためのプログラム等に関する。
 拡張現実(AR:Augmented Reality)技術の一つとして、ビデオカメラで撮影した画像を解析して現実空間とCG空間との座標合わせを行い、ビデオ撮影した画像(いわゆるライブビュー)上にCGを合成表示することでAR空間を表示する技術が知られるところである。
 近年では、ビデオゲームにおいてもAR技術を用いたものが登場するようになってきている。こうしたAR技術を利用したゲームでは、ゲームキャラクタのオブジェクトを配置するCG空間(コンピュータグラフィックス空間)を、如何にカメラで撮影されている現実空間とマッチさせるかが鍵となる。これに関連する公知技術としては、固定位置のカメラで撮影した拡張現実マーカ(ARマーカ)の画像を解析し、当該拡張現実マーカが配置されている現実の平面とマッチするように仮想マップを生成する技術が知られている(例えば、特許文献1参照)。
特開2010-49690号公報
 さて、ゲームスタイルとしては、シングルプレイと同じぐらいマルチプレイも人気がある。特許文献1のようにARマーカを撮影するカメラが限定される場合には、相対位置関係が固定され、現実空間とCG空間との座標合わせも固定であるから、プレーヤの人数に係わらず問題なくゲームを進めることができる。しかし、プレーヤ毎にカメラを用意して(例えば、CCDカメラモジュールを搭載した携帯型ゲーム装置を持って)それぞれが異なる視点位置から見るようにしてARゲームをプレイする場合には不都合が生じるケースがある。
 例えば、プレーヤの視点が複数あってそれぞれがマーカに対して移動できるにもかかわらず、AR空間に配置されるゲームキャラクタ等のAR表示体の存在は共通であるからである。具体的には、プレーヤ全員で共通の敵キャラクタを攻撃するゲームや、プレーヤがそれぞれの視点から見て楽しめる仮想ペットの育成ゲームなどがこれに当たる。
 こうした共通するキャラクタが登場するゲームでは、あるプレーヤAの視点とマーカとの相対位置関係に基づいてのみキャラクタの配置を制御すると、当該プレーヤAの視点に基づくゲーム画面(AR空間画像)上では何ら問題無いが、その他のプレーヤB,プレーヤC,…の視点に基づく別のゲーム画面では、共通のキャラクタが人物等の背後に回り込んでしまい、オクルージョンを起こす事態が起こり得る。
 更には、このプレーヤAが、共通キャラクタに注目しようとしてカメラの向きを変えることによってマーカがカメラの撮影範囲外になると、現実空間とCG空間との座標合わせにズレが生じる。すると、その他のプレーヤB,プレーヤC,…のカメラではマーカを撮影できていたとしても、彼らのゲーム画面でもプレーヤAのカメラがマーカを認識できなくなったことに起因する表示位置のズレが生じると言った不都合が生じ得る。
 まとめると、拡張現実空間を利用したマルチプレイ型のゲームの品質向上が課題としてあった。また、キャラクタの配置制御に伴うさまざまな不都合があるという課題があった。
 本発明の一態様は、撮影部、表示部及び通信部を備えたコンピュータに、他機と通信させることで、拡張現実空間でのマルチプレイ型のゲームを実行させるためのプログラムであって、
 前記撮影部によりマーカが撮影された場合に前記表示部のライブビュー内にキャラクタを合成表示させることと、
 前記マーカの撮影画像を用いて、前記マーカに対する自機の位置を示す情報を少なくとも含む自機位置情報を算出することと、
 前記他機から、前記マーカに対する前記他機の位置を示す情報を少なくとも含む他機位置情報を含む他機情報を受信することと、
 前記自機位置情報及び前記他機情報を用いて、前記拡張現実空間中の前記キャラクタの表示位置を制御することと、
 を前記コンピュータに実行させるためのプログラムに関する。
 また、他の態様として、
 前記自機位置情報には、前記マーカに対する前記自機の距離を示す情報が含まれ、
 前記他機位置情報には、前記マーカに対する前記他機の距離を示す情報が含まれ、
 前記自機位置情報を算出することは、前記マーカの撮影画像を用いて、前記マーカに対する自機の距離を示す情報を算出することを含む、
 プログラムを構成することとしてもよい。
 また、他の態様として、
 前記マーカは、基準方向が表された規定形状を有し、
 前記自機位置情報には、前記マーカに対する前記自機の相対的な位置関係の情報が含まれ、
 前記他機位置情報には、前記マーカに対する前記他機の相対的な位置関係の情報が含まれ、
 前記自機位置情報を算出することは、前記マーカの撮影画像中の前記マーカの前記基準方向を用いて、前記マーカに対する自機の相対的な位置関係の情報を算出することを含む、
 プログラムを構成することとしてもよい。
 これによれば、自機位置情報と他機情報に含まれる他機位置情報とを用いて拡張現実空間中のキャラクタの表示位置を制御できる。つまり、ゲームに参加する複数のプレーヤのプレーヤ視点とマーカとの距離や相対位置が時々刻々と変化するマルチプレイスタイルであっても、その時々における各プレーヤ視点とマーカとの距離や位置関係を考慮した適切な表示位置にキャラクタを表示させることが可能となる。よって、あるプレーヤ視点に基づいてキャラクタの配置を制御したとしても、他プレーヤのゲーム画面でオクルージョンやキャラクタの不自然な表示ズレが起きるのを抑制できる。
 また、他の態様として、
 前記自機位置情報及び前記他機情報を用いて、前記キャラクタを表示させる前記拡張現実空間中の領域を設定すること、を前記コンピュータに更に実行させ、
 前記キャラクタの表示位置を制御することは、前記領域内に前記キャラクタを表示させることを含む、
 プログラムを構成することとしてもよい。
 これによれば、キャラクタの表示可能な領域、換言するとCG空間におけるキャラクタというオブジェクトを配置可能な領域を設定することができる。領域を設定することにより、NPC(ノンプレーヤキャラクタ)を自動制御(いわゆるAI制御)する場合にもキャラクタの表示位置の制御が有効に機能する。また、キャラクタ毎に適用する領域を設定することによって、大きさやアクションパターンの異なる複数種類のキャラクタを同時に表示させる場合にも対応できる。
 また、他の態様として、
 前記領域を設定することは、前記自機位置情報が示す位置関係で前記マーカを撮影した場合の自機撮影範囲と、前記他機情報に含まれる他機位置情報が示す位置関係で前記マーカを撮影した場合の他機撮影範囲とを用いて、前記領域を設定することを含む、
 プログラムを構成してもよい。
 これによれば、プレーヤ視点別の撮影範囲を元にして領域を設定することで、マルチプレイであっても、キャラクタを追いかけて撮影方向が変化することに起因して意図せずにマーカが撮影できなくなって不自然な表示が起きるのをより確実に防ぐことができる。
 また、他の態様として、
 前記領域を設定することは、前記自機撮影範囲と前記他機撮影範囲との重合範囲を少なくとも含むように前記領域を設定することを含む、
 プログラムを構成することとしてもよい。
 これによれば、自機撮影範囲と他機撮影範囲との重なり合っている部分を少なくとも含むように領域を設定することができる。
 また、他の態様として、
 前記領域を設定することは、前記自機位置情報が示す位置関係で且つ、前記マーカが写る範囲で撮影方向を変化させて前記マーカを撮影した場合の範囲を前記自機撮影範囲とし、前記他機位置情報が示す位置関係で且つ、前記マーカが写る範囲で撮影方向を変化させて前記マーカを撮影した場合の範囲を前記他機撮影範囲とすることを含む、
 プログラムを構成することとしてもよい。
 これによれば、撮影位置を固定と仮定し撮影方向のみ変化させることで、領域設定のもとになる自機撮影範囲及び他機撮影範囲を定める。このようにして定めた自機撮影範囲及び他機撮影範囲を用いて領域が設定されるため、手ブレなどの影響も考慮されたより広い領域を設定することができる。
 また、他の態様として、
 前記マーカは平面形状でなり、
 前記領域を設定することは、前記自機から前記マーカ方向への前記自機撮影範囲の奥行を、前記自機から見た前記マーカの平面方向に対する俯角を用いて変更することを含む、
 プログラムを構成することとしてもよい。
 マーカ方式のAR技術では、マーカのデザインを識別することにより、マーカの方向やマーカの種類を画像識別する必要があるが、そうした画像認識能力を左右するのが、デザインされたマーカ平面をどのような撮影角度(俯角)で撮影するかである。例えば、マーカ平面に対して俯角が小さい(マーカ平面方向と視線方向とが近い)と撮像手段で撮影されたマーカの像は小さくなり、画像認識し難くなるが、俯角が大きければマーカの像は大きくなり画像認識し易くなる。
 よって、上述の態様によれば、マーカの平面方向に対する俯角に応じた自機撮影範囲の奥行を設定することでその時々において可能な限り広い領域を設定できる。
 また、他の態様として、
 前記領域を設定することは、前記自機位置情報及び前記他機情報を用いて前記マーカから前記自機及び前記他機それぞれまでの距離を求め、当該距離に基づいて前記領域のサイズを設定することを含む、
 プログラムを構成することとしてもよい。
 これによれば、プレーヤ視点のマーカに対する位置関係に応じて適切なサイズの領域を設定することができる。
 また、他の態様として、
 前記マーカには複数種類有り、
 前記領域を設定することは、
 前記撮影部により撮影された前記マーカの種類に基づいて前記領域の形状を設定することと、
 前記自機位置情報及び前記他機情報を用いて前記マーカから前記自機及び前記他機それぞれまでの距離を求め、当該距離に基づいて前記領域のサイズを設定することと、
 を含む、プログラムを構成することとしてもよい。
 これによれば、複数種類のマーカを利用可能として、マーカの種類に応じて領域の形状を変え、且つプレーヤ視点のマーカに対する位置関係に応じて適切なサイズの領域を設定することができる。
 また、他の態様として、
 前記コンピュータは、当該コンピュータの姿勢を検出する姿勢検出部を備えており、
 前記他機情報には、前記他機の姿勢検出部で検出された姿勢の情報が含まれており、
 前記姿勢検出部で検出された前記自機の姿勢情報及び前記他機情報に含まれる前記他機の姿勢情報を用いて、前記キャラクタの表示姿勢を制御すること、を前記コンピュータに更に実行させるための、
 プログラムを構成することとしてもよい。
 また、他の態様として、
 撮影部及び表示部を備えた複数のユーザ端末それぞれと通信可能なコンピュータが、前記ユーザ端末に対して、マルチプレイ型のゲームを実行させるためのプログラムであって、
 前記マルチプレイ型のゲームは、前記撮影部によりマーカが撮影された場合に前記表示部のライブビュー内にキャラクタを合成表示する拡張現実空間ゲームであり、
 前記ユーザ端末それぞれの前記マーカの撮影画像を用いて、前記マーカに対する当該ユーザ端末の位置関係を算出することと、
 前記ユーザ端末それぞれの前記位置関係を用いて、前記拡張現実空間中の前記キャラクタの表示位置を制御することと、
 を前記コンピュータに実行させるためのプログラムを構成することとしてもよい。
 これによれば、ユーザ端末毎のマーカに対する位置関係に基づいて拡張現実空間中のキャラクタの表示位置を制御できる。つまり、ゲームに参加する複数のユーザ端末の撮影手段とマーカとの相対位置が時々刻々と変化するプレイスタイルであっても、その時々において各端末の位置取りに適した適切な表示位置にキャラクタを表示させることが可能となる。ユーザ端末のどれかで、オクルージョンや、マーカを撮影できなくなると言った不都合が生じないようにしたり、不都合の度合を軽減することができるようになる。
 また、他の態様として、
 前記ユーザ端末は、当該ユーザ端末の姿勢を検出する姿勢検出部を備えており、
 前記ユーザ端末それぞれから当該ユーザ端末の姿勢検出部で検出された姿勢の情報を受信することと、
 前記姿勢の情報を用いて、前記キャラクタの表示姿勢を制御することと、
 を前記コンピュータに更に実行させるためのプログラムを構成することとしてもよい。
 また、他の態様として、上述ののプログラムを記憶したコンピュータ読み取り可能な記憶媒体を構成することとしてもよい。
 ここで言う「記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリなどを含む。
 また、上述した態様はプログラムであるが、別の態様として次が考えられる。
 すなわち、
 撮影部、表示部及び通信部を備え、他機と通信することで、拡張現実空間でのマルチプレイ型のゲームを実行するゲーム装置であって、
 前記撮影部によりマーカが撮影された場合に前記表示部のライブビュー内にキャラクタを合成表示する合成表示制御部と、
 前記マーカの撮影画像を用いて、前記マーカに対する自機の位置を示す情報を少なくとも含む自機位置情報を算出する自機位置情報算出部と、
 他機から、前記マーカに対する当該他機の位置を示す情報を少なくとも含む他機位置情報を含む他機情報を受信する他機情報受信部と、
 前記自機位置情報及び前記他機情報を用いて、前記拡張現実空間中の前記キャラクタの表示位置を制御するキャラクタ表示制御部と、
 を備えたゲーム装置を構成することとしてもよい。
 更には、
 撮影部及び表示部を備えた複数のユーザ端末それぞれと通信して、マルチプレイ型のゲームを前記ユーザ端末に実行させる制御を行うコンピュータであって、
 前記マルチプレイ型のゲームは、前記撮影部によりマーカが撮影された場合に前記表示部のライブビュー内にキャラクタを合成表示する拡張現実空間ゲームであり、
 前記ユーザ端末それぞれの前記マーカの撮影画像を用いて、前記マーカに対する当該ユーザ端末の位置関係を算出する位置関係算出部と、
 前記ユーザ端末それぞれの前記位置関係を用いて、前記拡張現実空間中の前記キャラクタの表示位置を制御するキャラクタ表示制御部と、
 を備えたコンピュータを構成することとしてもよい。
図1は、第1実施形態においてゲームプレイために使用されるコンピュータに相当するゲーム装置の構成例を示す図。 図2は、第1実施形態におけるプレイスタイルを説明するための概念図。 図3は、ゲーム画面及びライブビューの一例を示す図。 図4は、敵キャラクタを配置制御するために設定される領域の概念図。 図5は、基本領域の概念図。 図6は、要素領域の設定方法を示す概念図。 図7は、要素領域の奥行の考え方を示す概念図。 図8は、ARマーカに対するプレーヤ視点の相対位置と相対姿勢の利用形態について説明するための概念図。 図9は、ARマーカをロストした場合における相対位置と相対姿勢の利用形態を説明する原理図。 図10は、ホスト機能発現機の切り換えの仕組みを説明するための概念図。 図11は、第1実施形態における機能構成例を示す機能ブロック図。 図12は、第1実施形態におけるゲーム演算部の機能構例を示す機能ブロック図。 図13は、ARマーカ登録データのデータ構成例を示す図。 図14は、ゲーム参加機登録データのデータ構成例を示す図。 図15は、自機情報キューのデータ構成例を示す図。 図16は、敵キャラクタ配置情報キューのデータ構成例を示す図。 図17は、第1実施形態における主たる処理の流れを説明するためのフローチャート。 図18は、ゲーム前準備処理流れを説明するためのフローチャート。 図19は、自機情報算出処理流れを説明するためのフローチャート。 図20は、ホスト機能発現機設定処理流れを説明するためのフローチャート。 図21は、ホスト機能実行処理流れを説明するためのフローチャート。 図22は、基本領域設定処理の流れを説明するためのフローチャート。 図23は、要素領域設定処理流れを説明するためのフローチャート。 図24は、ホスト機能実行処理流れを説明するためのフローチャート。 図25は、第2実施形態におけるゲーム装置の構成例を示す図。 図26は、第2実施形態における機能構成例を示す機能ブロック図。 図27は、第2実施形態におけるゲーム演算部の機能構成の一例を示す機能ブロック図。 図28は、端末登録データのデータ構成例を示す図。 図29は、端末情報キューのデータ構成例を示す図。 図30は、第3実施形態における主たる処理の流れを説明するためのフローチャート。 図31は、端末情報算出処理の流れを説明するためのフローチャート。 図32は、基準視点設定処理流れを説明するためのフローチャート。 図33は、キャラクタ制御処理の流れを説明するためのフローチャート。
 以下、本発明を適用した実施形態について説明する。なお、以下に説明する実施形態は、請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
 〔第1実施形態〕
 第1実施形態として、マーカ方式ARを用いて実現される拡張現実空間内でマルチプレイ型シューティングゲームを実行する例を挙げて説明する。
 図1は、本実施形態においてゲームプレイのために使用されるコンピュータであり、電子機器の一種であるゲーム装置1500の構成例を示す図であって、(1)正面外観図、(2)背面外観図である。ゲーム装置1500は、方向入力キー1502と、ホームキー1504と、タッチパネル1506と、スピーカ1510と、マイク1512と、GPS(Global Positioning System)アンテナ1514と、CCDカメラモジュール1516と、制御基板1550と、コンピュータ読み出し可能な記憶媒体であるメモリカード1540からデータを読み書きできるメモリカード読取装置1542と、を備える。その他、図示されていない内蔵バッテリーや電源ボタン、音量調節ボタン等が設けられている。
 CCDカメラモジュール1516は、オートフォーカス機構と、CCDイメージセンサと、イメージ信号生成チップとを搭載したモジュールであって、ゲーム装置1500の背面方向を撮影できるように配置されている。尚、イメージセンサ素子はCCDに限らず、CMOSなどその他の方式の素子でも良い。
 制御基板1550は、CPU(Central Processing Unit))1551やGPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などの各種マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、VRAMやRAM,ROM等の各種ICメモリ1552を適宜搭載する。
 そして、制御基板1550には、携帯電話や無線LANなどの無線基地局と無線接続するための無線通信モジュール1553と、GPSモジュール1554と、電子コンパス1555と、3軸ジャイロ1556と、3軸加速度センサ1557とが搭載されている。
 その他、タッチパネル1506のドライバ回路、方向入力キー1502及びホームキー1504からの信号を受信する回路、スピーカ1510へ音声信号を出力する出力アンプ回路、マイク1512から入力された音声の信号を生成する入力信号生成回路、メモリカード読取装置1542への信号入出力回路といった所謂I/F回路(インターフェース回路)、が搭載されている。これら制御基板1550に搭載されている各要素は、それぞれバス回路などを介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。
 GPSモジュール1554は、GPSアンテナ1514とともにGPSを利用した位置情報を取得する手段を構成する。GPSモジュール1554は、GPSアンテナ1514で受信したGPS衛星3からの信号に基づいて、所定時間毎(例えば、1秒毎)に、位置情報(例えば、緯度・経度)及びその他の情報(絶対時間)を、制御基板1550で演算処理可能なデータとして出力する。尚、測位に利用するシステムはGPSに限らない。その他の衛星測位システムでも良いし、衛星を用いない測位システムを用いることもできる。後者の例としては、例えば、無線通信モジュール1553が無線接続できる無線基地局から当該基地局に予め設定されている位置情報を取得したり、3つの無線基地局からの信号到達時間差を利用した三角測量方式により位置情報を算出するとしても良い。
 制御基板1550は、ゲーム実行に必要なゲームプログラムやデータをメモリカード1540から読み出してICメモリ1552に一時記憶する。そして、ゲームプログラムを実行して演算処理を実行し、方向入力キー1502やホームキー1504、タッチパネル1506からの操作入力、3軸ジャイロ1556や3軸加速度センサ1557で検出される姿勢変化や加速度変化に応じてゲーム装置1500の各部を制御してビデオゲームを実行する。尚、本実施形態では、ゲーム装置1500は必要なプログラムや各種設定データをメモリカード1540から読み出す構成としているが、サーバ装置等から通信回線1を介してダウンロードする構成としても良い。
 尚、ゲーム装置1500はコンピュータであるから本明細書で言う「自機」は「自コンピュータ」と読み替えることができる。同様に「他機」は「他コンピュータ」と読み替えることができる。
 [ゲームの概要]
 次に、本実施形態におけるゲームの概要を説明する。
 図2は、本実施形態におけるプレイスタイルを説明するための概念図であって、(1)現実空間における様子を示す斜視図、(2)ゲーム装置1500のCCDカメラモジュール1516と、ARマーカ10との関係を示す図、(3)ゲームに登場するオブジェクトを配置する仮想3次元空間における様子を示す斜視図である。
 本実施形態におけるビデオゲームは、ARマーカ10を利用して実現されるAR空間を舞台としたゲーム、いわゆるARゲームに属するマルチプレイシューティングゲームに属する。図2(1)に示すように、プレーヤPL1~PL3は、それぞれゲーム装置1500を手に持って、テーブル9等に置かれたARマーカ10をCCDカメラモジュール1516で撮影しながらプレイする。図中のプレーヤPL1のゲーム装置1500が当初のホスト機であって、ゲームに参加するクライアント機の受付処理を行ったり、敵キャラクタ7などのNPCの制御を受け持つ。プレーヤPL2,PL3のゲーム装置1500がゲスト機であり、NPCの制御データをホスト機から取得して利用する。尚、プレーヤの数は図に示すような3名に限らないのは勿論である。
 本実施形態におけるARマーカ10は、少なくとも一面に基準方向が表されるとともに、当該マーカの種類を識別するためのデザインが施された規定形状のカードであり、複数種類存在する。
 本実施形態のゲーム装置1500では、CCDカメラモジュール1516は装置本体の背面方向を撮影するように、装置本体の背面側に固定されている。よって、本実施形態では、プレーヤの視点位置は、ゲーム装置1500の位置であり、CCDカメラモジュール1516の視点位置と同じに扱うことができる。同様に、プレーヤの視点姿勢は、ゲーム装置1500の姿勢であり、CCDカメラモジュール1516の姿勢と同じ扱いとなる。
 図2(2)に示すように、ゲーム装置1500は、CCDカメラモジュール1516で撮影した画像からARマーカ10を検出するとともにその種類を認識する。また、認識したARマーカ10までの3次元の相対位置(Xc,Yc,Zc)や相対姿勢(ωp,ωy,ωr)を計測する。例えば、ARマーカ10(カード)の実サイズが規定されているので、CCDカメラモジュール1516の撮影画像中のARマーカ10が占める画素サイズから現実空間における尺度を基準とした相対位置を求めることができる。
 そして、計測した相対位置や相対姿勢に基づいて、ARマーカ10を配置した面(例えば、テーブル面)が仮想3次元空間内の基準面(例えば、ゲーム世界における地面、仮想マップなどとも呼ぶ)と一致するように、ゲーム空間を形成する。ゲーム空間は仮想3次元空間の座標系(Xw,Yw,Zw)で表され、ARマーカ10を基準とした実空間の座標系(Xm,Ym,Zm)に合致させる。
 図2(3)に示すように、仮想3次元空間は所謂CG空間である。仮想3次元空間には、標的となる敵キャラクタ7や背景物などのオブジェクトが配置されてゲーム空間が形成される。そして、仮想3次元空間には、プレーヤPL1~PL3それぞれのプレーヤキャラクタPC1~PC3の他、敵キャラクタ7や、各キャラクタから発射される飛翔体6(図2では非図示;図3にて図示)などのオブジェクトも配置される。
 各ゲーム装置1500における仮想3次元空間は、ARマーカ10が基準とされるため、原則として共通の座標軸として定義される。仮想3次元空間には、各ゲーム装置1500の仮想カメラCM1~CM3が設定される。各ゲーム装置1500に対応するプレーヤキャラクタPC1~PC3は、対応するゲーム装置の仮想カメラCM1~CM3に対して、所定の相対位置(Xp,Yp,Zp)に配置される。具体的には、本実施形態では、三人称視点に相当するように、プレーヤキャラクタPC1~PC3は仮想カメラCM1~CM3の斜め下前方に配置される。尚、プレーヤキャラクタと仮想カメラとの相対位置関係は、予め決定されているとは言っても絶対的な固定値を意味するものでは無く、適当なズレや揺らぎを含むことができる。
 図3は、本実施形態におけるゲーム画面及びライブビューの一例を示す図であって、(1)プレーヤPL1が所持するゲーム装置1500におけるゲーム画面の例、(2)CCDカメラモジュール1516により撮影されるライブビューの例である。
 各ゲーム装置1500では、それぞれが対応する仮想カメラCM1~CM3から見たCG(コンピュータグラフィックス)画像を生成し、それをCCDカメラモジュール1516で撮影したライブビューに合成表示する。
 ちなみに、図3(1)の例では、プレーヤPL1のプレーヤキャラクタPC1と、ARマーカ10の周りにいる敵キャラクタ7と、テーブル9脇の他のプレーヤPL2と、対応するプレーヤキャラクタPC2とが画面に映っている。また、画面中央には、プレーヤPL1がゲーム中に使用する射撃用の照準8が表示されている。このように現実空間の映像にゲームキャラクタ等のCGが合成されてプレーヤに認識される仮想世界が、ゲームの舞台となる「拡張現実空間」である。
 本実施形態では、CCDカメラモジュール1516の撮影画角と仮想カメラCM1~CM3の画と角は異なる。
 CCDカメラモジュール1516は、撮影範囲が広い事に意味があるので、撮影画角は広角に設定されている。例えば、35mmフィルム用レンズ換算で焦点距離15mm~24mm、公称対角画角90°前後などとする。一方、仮想カメラCM1~CM3の撮影画角は、ゲーム装置1500のタッチパネル1506越しに現実空間を透かし見るようにしながらARゲームをプレイすることを考えて、CCDカメラモジュール1516の画角の概ね50%程度となるように狭く設定されている。プレイスタイルを考慮して、プレーヤが軽くひじを曲げた状態でゲーム装置1500を前方にかざした時に、あたかもタッチパネル1506の表示部分から現実世界を透かし見ているように錯覚させる撮影画角とすると好適である。例えば、35mmフィルム用レンズ換算で40mm~55mm、公称対角画角45°前後などとする。
 従って、図3(1)で示したゲーム画面の背景は、図3(2)で示すCCDカメラモジュール1516で撮影したライブビューそのままではなく、仮想カメラCM1~CM3の撮影画角に合致するようにクロップ(画像の端をカットして使用)されて得られたものである。
 [敵キャラクタの配置について]
 さて、前述のように本実施形態のゲームはマーカ方式のARゲームであるので、現実空間と仮想3次元空間の座標系を適切にマッチングさせるためには、ARマーカ10を常にCCDカメラモジュール1516の撮影範囲に含まれるようにプレイするのが望ましい。
 シューティングゲームとしての特性上、プレーヤは照準8を敵キャラクタ7に合わせるようにゲーム装置1500の位置や姿勢を変化させながらプレイすることになる。よって、敵キャラクタ7がARマーカ10からあまり離れると、敵キャラクタ7を狙う行為自体がARマーカ10のロスト(撮影範囲に写らなくなる状態)を誘発することになる。しかし、プレーヤは照準8が敵キャラクタ7から外れないようにゲーム装置1500の位置や姿勢を保とうとする。そのため、上手く敵キャラクタ7の位置をコントロールするならば、ARマーカ10が撮影範囲内に含まれるように(換言するとARマーカ10が撮影範囲外とならないように)仕向けることもできる。
 そこで本実施形態では、図4に示すように、ゲームに参加するゲーム装置の位置や姿勢に応じてARマーカ10をロストし難いように敵キャラクタ7を配置できる配置領域12(図中、網掛け表示された範囲)を設定し、敵キャラクタ7をこの配置領域12内に留まるように配置制御する。この配置領域12は、本実施形態では基本領域13と、ゲーム参加機毎(つまりはプレーヤ視点毎)に求められる要素領域14との重合領域として設定される。尚、図の例では、理解を容易にするためにゲーム装置1500を二つのみ表示している。
 図5は、基本領域13の設定方法を示す概念図である。
 基本領域13は、ARマーカ10を中心とし、基本長さLbで規定される所定形状の範囲である。そして、基本長さLbは、ゲーム参加機のARマーカ10からの相対距離Lc(図2(2)参照)を変数とした関数f(Lc)で記述される。
 基本領域13の形状は、ARマーカ10の種類によって予め設定されている。図5の例では、基本長さLbが半径の球形を例示しているが、例えば、立方体形状の範囲として、基本長さLbを立方体中心から8つの頂点までの距離としても良い。形状と基準長Lbを形状のどこの寸法に割り当てるかは適宜変更できる。
 関数f(Lc)の変数となる相対距離Lcは、ゲーム参加機それぞれのARマーカ10に対する個別の相対距離Lcの内、最小の相対距離Lcを採用する。但し、関数f(Lc)の大きさに最小値が設定されている。この最小値は、敵キャラクタ7の行動範囲が小さくなり過ぎないように考慮して予め設定されている。尚、関数f(Lc)の変数として採用される相対距離Lcは、ゲーム参加機別の相対距離Lcのうちの最小値に限らず、最大値や平均値、中央値などとしても良い。
 図6は、要素領域14の設定方法を示す概念図である。要素領域14は、ゲーム装置1500(つまりプレーヤ視点)を基準として、ARマーカ10がCCDカメラモジュール1516の撮影範囲から外れない程度の姿勢変化を許容できる撮影範囲として定められる。
 具体的には、今現在、CCDカメラモジュール1516によるライブビューに、図6(1)に示すようにARマーカ10が写っていると仮定する。尚、外側矩形枠が撮影枠でありライブビューの輪郭を示している。対する内側の矩形枠が、クロップされてゲーム画面の背景として使用される輪郭を示している。
 「ARマーカ10がCCDカメラモジュール1516の撮影範囲から外れない程度の姿勢変化を許容できる撮影範囲」を求めるために、本実施形態では先ずゲーム装置1500の位置が固定されている前提で、どこまでCCDカメラモジュール1516の撮影方向の変化を許容できるかを考える。
 具体的には、図6(2)に示すように、現在の写っているARマーカ10のサイズをそのままに、ARマーカ10の右端と撮影枠の右端が所定条件を満たして近接し、且つARマーカ10の下端と撮影枠の下端とが近接する条件を満たす「第1姿勢」を求めるとともに、当該姿勢におけるCCDカメラモジュール1516の光軸AL1を求める。そして、第1姿勢から対角方向に撮影方向を振ったと仮定し、ARマーカ10の左端が撮影枠の左端とが近接し、且つARマーカ10の上端と撮影枠の上端とが近接する「第2姿勢」を求めるとともに、当該姿勢におけるCCDカメラモジュール1516の光軸AL2を求める。
 次いで、図6(3)に示すように、ARマーカ10の左端と撮影枠の左端が所定条件を満たして近接し、且つARマーカ10の下端と撮影枠の下端とが近接する条件を満たす「第3姿勢」を求めるとともに、当該姿勢におけるCCDカメラモジュール1516の光軸AL3を求める。そして、第3姿勢から対角方向に撮影方向を振ったと仮定し、ARマーカ10の右端が撮影枠の右端とが近接し、且つARマーカ10の上端と撮影枠の上端とが近接する「第4姿勢」を求めるとともに、当該姿勢におけるCCDカメラモジュール1516の光軸AL4を求める。
 そして、図6(4)に示すように、要素領域14をCCDカメラモジュール1516の視点位置から4本の光軸AL1~AL4に囲まれた四角錐形領域とする。
 この四角錐形領域の高さに相当する要素領域14の奥行Dbは、プレーヤ視点から見たARマーカ10の平面方向に対する俯角θcに基づいて設定される(図7参照)。
 図7は、要素領域14の奥行の考え方を示す概念図である。
 図7(1)に示すように、要素領域14の奥行Dbを、ARマーカ10を適正に認識できる視点からの最大距離と考える。図7(2)に示すように、ARマーカ10の認識性能はCCDカメラモジュール1516がARマーカ10を真正面から撮影する状態(俯角θc=π(90°))が最も高くなり、奥行Dbが最大となる(Db1)。そして、ARマーカ10の平面(デザイン面)に対して俯角θcが浅くなる(小さくなる)につれて認識性能は低下し(Db2)、やがて認識性能が実用的でないレベルに達する(θmin)と考
える事ができる。
 俯角θcと奥行Dbとの関係は、CCDカメラモジュール1516の撮像素子や光学系の仕様に基づく解像力や、ARマーカ10の大きさなどにより決まる。また、本実施形態では、大きさの異なるARマーカ10を利用可能になっていて、マーカのサイズにより予めカテゴリ分けされている。どのカテゴリに属するかはARマーカ10のデザイン認識により識別できるようになっている。そこで、図7(3)に示すように、俯角θcを変数として奥行Dbを算出する関数g(θc)を、ARマーカ10のカテゴリ毎に設定しておいて、認識されたARマーカ10のカテゴリに応じた関数g(θc)を選択し、そのときの俯角θcを用いて奥行Dbを求める。
 CCDカメラモジュール1516の撮影画角よりも仮想カメラCM1~MC3の撮影画角が狭いこと、そして照準8がゲーム画面中央に表示されることを考慮すると、要素領域14で示される撮影範囲内であればプレーヤがゲーム装置1500の位置や姿勢を多少変化させたとしても、照準8で敵キャラクタ7を狙っているのであれば、CCDカメラモジュール1516の撮影範囲内にARマーカ10が写るようにすることができる。
 さて、図4に示すように、配置領域12は、基本領域13とゲーム装置毎(つまりはプレーヤ視点毎)に求めた各要素領域14(14a,14b)との4つの領域の重合部分として設定される。
 前述のように、本実施形態ではCCDカメラモジュール1516の撮影画角に対する仮想カメラCM1~CM3の撮影画角との関係、及び照準8がゲーム画面中央に表示されることを合わせると、配置領域12の中に敵キャラクタ7が配置される限りにおいては、ARマーカ10が常に正しく認識され、ゲームキャラクタの表示位置が現実空間とずれるなどの不自然な表示は起こらない。
 また、タッチパネル1506に表示されるゲーム画面上には、ARマーカ10の姿が映っていなくとも、CCDカメラモジュール1516としてはちゃんとARマーカ10を撮影し続けることができる。つまり、ゲーム画面内に常にARマーカ10が写っていない状態でもARゲームは正常に継続され続け、例えば、敵キャラクタ7はARマーカ10を置いていたテーブル面に沿って歩行するように見える。
 プレイ中にARマーカ10がゲーム画面内に写っていない状態でも、実空間との齟齬のない敵キャラクタ7が表示されることで、プレーヤにとってみればARマーカ10から離れた場所ではプレイできないのではないかという閉塞感が低減され、今自分が居るその広い空間全てを使ってゲームが行われてしているかのような開放的な感覚が得られることとなり、ARゲームとしての興趣が高まる。
 また、こうして設定された配置領域12は、その時々に応じて変形する複数の要素領域14の影響により基本領域13とは異なる形状をなすことになるので、敵キャラクタ7の行動範囲が不規則となりゲームの興趣を高める効果が得られる。
 加えて、配置領域12の設定に基本領域13を含めることで、全てのゲーム装置1500でARマーカ10を認識できない状態となり要素領域14が得られない事態となっても、敵キャラクタ7の配置位置を適切に保つことができる。
 [ARマーカのロストを想定した補助機能:その1]
 これまで述べたようにして配置領域12を設定したとしても、必ずしも常にARマーカ10を撮影し続けることができるとは限らない。例えば、プレイに興奮してゲーム装置1500を敵キャラクタ7に向ける動作が過大となり、意図せずにARマーカ10がCCDカメラモジュール1516の撮影範囲から外れることも想定される。そこで本実施形態では、ARマーカ10をロストした場合でもゲーム進行に不都合が起きないように二つの補助機能を設けている。
 先ず、第1の補助機能について説明する。
 図8は、第1の補助機能の前提となるARマーカ10に対するプレーヤ視点の相対位置と相対姿勢の利用形態について説明するための概念図である。
 本実施形態におけるゲーム装置1500は、所定サイクルで時刻t1,t2,…,tm(mは自然数:算出タイミングの識別数)におけるARマーカ10に対する自身(CCDカメラモジュール1516)の相対位置(Xcn,Ycn,Zcn)及び相対姿勢(ωpn,ωyn,ωrn)を算出する。そして、算出した相対位置及び相対姿勢をキュー(queue:待ち行列)に先入れ先出し方式で所定数だけ格納・管理する。キューに格納されている相対位置及び相対姿勢はそれぞれ加重平均され、加重平均された値が現在の位置であり現在の姿勢とみなされ、CG空間における仮想カメラCMの位置及び姿勢として用いられる。図8の例では、キューに4セットの相対位置及び相対姿勢が格納されているように例示しているが、格納数は適宜設定することができる。
 加重平均における重み付けwn(nは自然数:算出タイミングの識別数)は、算出順nと、ARマーカ10からプレーヤ視点までの相対距離Lを変数とする重み付け関数h(n,Lc)によって決定される。
 重み付け関数h(n,Lc)は適宜設定可能であるが、本実施形態では、算出順nについては、最も新しい相対位置及び相対姿勢に付与される重み付けwnが最も大きく、それ以外が相対的に小さくなるように設定されている。また、相対距離Lcについては、相対距離Lcが大きくなるほど算出順n違いによる重み付けwnの差が小さくなり、過去の相対位置及び相対姿勢にも重きがおかれるように設定されている。
 ARの表示制御に関わる仮想カメラCMの制御に、相対位置及び相対姿勢を均した値(現在位置、現在姿勢と呼ぶ)を用いることによって、ゲーム装置1500をかざす手の揺れによる所謂手ブレによるジッター(ゲームキャラクタなどのAR表示体の細かな不快な振動)や、ゲーム装置1500を急激に移動させたり姿勢変化させた場合であって、プレーヤキャラクタ等が瞬間移動すると言った不自然表示を抑制することができる。
 また、ゲーム装置1500がARマーカ10を遠くから撮影しているほど手ブレ等の影響は大きくなるところであるが、重み付け関数h(n,Lc)の相対距離Lcについての特性は、相対距離Lcが大きいほど過去値に対する重み付けwnが相対的に大きくなるように設定されているので、その影響を軽減できる。加えて、重み付け関数h(n,Lc)の相対距離Lcの特性によれば、ARマーカ10を近くから撮影している場合には、過去値への重み付けwnが相対的に小さくなる。相対的に手ブレの影響が大きくなることになるが、この場合のブレは近接戦闘の緊迫感や臨場感を演出する視覚効果を生み出すので有益となる。
 そして、本実施形態ではこうした加重平均を用いた制御を前提として、ARマーカ10をロストした場合には、ロストしている間、ARマーカ10に対する相対位置を固定と仮想し、姿勢変化のみ起きるものと見なして制御する。
 図9は、ARマーカ10をロストした場合における相対位置と相対姿勢の利用形態を説明する原理図である。
 本実施形態では、ARマーカ10をロストした場合、相対位置はARマーカ10をロストしてから認識が再開されるまでの間、ロストする直前の値に固定される。図9の例では、t4まではARマーカ10がCCDカメラモジュール1516の撮影範囲にあって、正しく認識されて正しくマーカ基準の相対位置が求められていたが、t5のタイミングでARマーカ10はカメラで写されない「ロスト」した状態になっている。そこで、キューに格納されたタイミングt5~t7の間の相対位置の値は、ロスト直前のt4のタイミングにおける値に固定する。一方、姿勢については加重平均を行う。つまり、タイミングt5~t7の間ゲーム装置1500は位置移動せずに姿勢変化していると見なす。
 実際のゲーム装置1500はロスト中でも位置移動しているかもしれないが、一時的に相対位置を固定扱いにして処理を継続することで、ゲーム画面の表示が変わる状態を維持できる。相対位置が正しく算出できていない可能性があったとしてもゲームを中断させずに継続させることができる。
 また、「プレーヤ視点の移動が無い前提」の制御に切り換わったとしても、相対位置(仮想カメラの位置)が固定とされてAR表示の制御が継続されるので、プレーヤキャラクタ等の不自然な瞬間移動や、ギクシャクした動きなどを効果的に抑制できる。
 [ARマーカのロストを想定した補助機能:その2]
 また、本実施形態では、ARマーカ10をロストした場合を想定した第2の補助機能として、ゲスト機がホスト機能を代行することができる。換言すると、ホスト機能をマーカの認識状態に応じてゲーム参加機内で継承させることができる。
 図10は、ホスト機能発現機の切り換えの仕組みを説明するための概念図であって、ゲームに参加するゲーム装置1500が3台と仮定した場合の、各ゲーム装置のARマーカ10の認識状態の組み合わせと、その組み合わせにおいてどのゲーム装置1500がホスト機能を発現するかの例を示している。尚、マーカ認識状態の欄の「In Sight」はARマーカ10を認識できている状態を意味し、「LOST」はARマーカ10が撮影範囲から外れて認識できない状態(認識不能状態)にあることを意味している。
 本実施形態では、当初からのホスト機であるゲーム装置1500aは、ゲームへの参加の受付処理を行う。受付されたゲーム装置1500b,1500cはゲスト機となる。
 ホスト機であるゲーム装置1500aは、受付処理に伴って、自身を発現優先順位第1位に設定するとともに、ゲスト機に対しては発現優先順位第2位以降を受付順に付与する。図中では、ゲーム装置のイラストに付与された白数字がそれぞれの発現優先順位を表している。
 また、本実施形態のゲーム装置1500a,1500b,1500cは、ARマーカ10をロストした場合に所定の認識不能信号を他機に送信することができる。つまり、各ゲーム装置は、他機からの認識不能信号を受信したか否かによって他機のマーカ認識状態を知ることができる。
 図10(1)の組み合わせで示すように、ゲームに参加している全てのゲーム装置がARマーカ10を認識できている間は、当初からのホスト機であるゲーム装置1500aが、ホスト機としての機能を発現する。
 すなわち、自プレーヤのプレーヤキャラクタPC1に加えて、敵キャラクタ7などのNPC(ノンプレーヤキャラクタ)、背景物などのオブジェクトの制御、飛び交う銃弾などのエフェクトオブジェクトの制御を行い、それらの配置位置情報等をゲスト機へ配信する。勿論、敵キャラクタ7に係る制御には、配置領域12の設定処理が含まれる。
 一方、ゲスト機であるゲーム装置1500b,1500cでは、操作入力や装置の移動によって各々のプレーヤのプレーヤキャラクタPC2,PC3の動作や仮想3次元空間内における位置が制御されるが、敵キャラクタ7等についてはホスト機から得た情報に基づいて仮想3次元空間内での配置を制御する。つまり、オブジェクトの制御に関しては、ホスト機とゲスト機は、クライアント/サーバ型の関係を成している。
 ここで、もし当初からのホスト機であるゲーム装置1500aがARマーカ10を認識できない状態が発生すると、実空間と仮想3次元空間との位置合わせにズレが発生し、敵キャラクタ7が傾いて配置されるなどの不具合が生じる可能性が高くなる。ホスト機から敵キャラクタ7の配置位置情報を取得しているゲスト機では、ARマーカ10をロストしていないにも係わらず敵キャラクタ7が不自然に表示されることになってしまう。
 そこで、本実施形態のゲーム装置1500は、ARマーカ10のロストした状態を検出して所定の「認識不能信号」を他機へ発信する。もし、ホスト機がARマーカ10をロストした場合には、認識不能信号の送信とともにホスト機能を停止する。
 一方で、それまでゲスト機であったゲーム装置は、それぞれ、受信した認識不能信号に基づいて自身に付与された発現優先順位より上位の他機全てが認識不能信号を出している場合には、ホスト機能を発現させるべきと判断して、ホスト機能を発現させる。
 具体的には、図10(2)の組み合わせで示すように、当初からのホスト機(ゲーム装置1500a)が認識不能状態となった場合、認識不能信号を発信して、ゲーム装置1500aはホスト機としての機能を停止しゲスト機として機能し始める。即ち、敵キャラクタ7に係る制御及び制御結果の配信は中断する。
 一方、発現優先順位第2位のゲスト機(ゲーム装置1500b)は、自身より発現優先順位が上位の機体全てから認識不能信号を受信したのでホスト機能を発現させ、敵キャラクタ7等の制御と制御結果の配信を開始する。つまり、ホスト機能が継承されたことになる。尚、発現優先順位が第3位のゲスト機(ゲーム装置1500c)はそのままゲスト機として機能する。
 図10(3)の組み合わせで示すように、ホスト機能を発現しているゲーム装置1500bもまたARマーカ10をロストした場合、発現優先順位第2位のゲスト機(ゲーム装置1500b)は、ホスト機能を停止しゲスト機として機能し始める。それに代わって、発現優先順位第3位のゲスト機(ゲーム装置1500c)は、自身より上位の機体全てから認識不能信号を受信したことになるので、ホスト機能を発現すべきと判断してホスト機能を発現させる。
 図10(3)の組み合わせ状態から、当初のホスト機であるゲーム装置1500aにてARマーカ10の認識が再開されると、ゲーム装置1500aは、ホスト機能を再開させるとともに認識不能通知の発信を停止する。ホスト機能を代行してきたゲーム装置1500cは、ゲーム装置1500aからの認識不能信号を受信しなくなるので、ホスト機能を停止し、再びゲスト機としての機能のみ発現するようになる。
 このように、本実施形態によれば、ARマーカ10を認識している何れかの機体が、常にARマーカ10を基準としたオブジェクトの位置決め処理を担うように構成できる。よって、もしホスト機であるゲーム装置がARマーカを認識できない状態になると現実空間と仮想3次元空間(CG空間)との位置合わせにズレが発生し、敵キャラクタ7が傾いて配置されるなどの不具合が生じる可能性が高くなるが、本実施形態ではゲスト機によるホスト代行機能によってそうした事態を防ぐことができる。
 [機能ブロックの説明]
 次に、本実施形態を実現するための機能構成について説明する。
 図11は、本実施形態におけるゲーム装置1500の機能構成の一例を示す機能ブロック図である。ゲーム装置1500は、操作入力部100と、撮像部104と、姿勢検出部108と、加速度検出部110と、処理部200と、音出力部350と、画像表示部360と、通信部370と、測位信号受信部380と、記憶部500とを備える。
 操作入力部100は、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部200に出力する。例えば、ボタンスイッチや、ジョイスティック、タッチパッド、トラックボールといった直接プレーヤが指で操作する素子はもちろん、加速度センサや角速度センサ、傾斜センサ、地磁気センサなど、運動や姿勢を検知する素子などによっても実現できる。図1の方向入力キー1502、ホームキー1504がこれに該当する。3軸ジャイロ1556、3軸加速度センサ1557の検出値を操作入力に利用する場合には、それらも該当することとなる。また、本実施形態の操作入力部100はタッチ操作入力部102を備え、表示画面へ指などで触れることによる操作入力を可能としている。図1のタッチパネル1506がこれに該当する。
 撮像部104は、撮影対象からの光を受光して電気信号に変換し、デジタル画像データを生成し、処理部200へ出力する。例えば、レンズ、メカシャッター、シャッタードライバ、CCDイメージセンサモジュールやCMOSイメージセンサモジュールといった光電変換素子、光電変換素子から電荷量を読み出し画像データを生成するデジタルシグナルプロセッサ(DSP)、ICメモリなどで実現される。図1ではCCDカメラモジュール1516がこれに該当する。
 姿勢検出部108は、ゲーム装置1500の姿勢変化を検出し検出信号を処理部200へ出力する。電子コンパスやジャイロスコープなどで実現できる。図1の電子コンパス1555や3軸ジャイロ1556がこれに該当する。姿勢検出は、直交3軸とし、そのうち何れかの軸を撮像部104が撮影する光軸方向に合わせてロール、ピッチ、ヨーの3成分について算出すると好適である。尚、本実施形態では、ゲーム装置1500にCCDカメラモジュール1516が固定されているので、姿勢検出部108は、プレーヤ視点の姿勢変化を検出しているとも言える。
 加速度検出部110は、ゲーム装置1500に作用している加速度を検出することができる。図1の3軸加速度センサ1557がこれに該当する。尚、本実施形態では、ゲーム装置1500にCCDカメラモジュール1516が固定されているので、加速度検出部110は、プレーヤ視点の移動に伴う加速度を検出しているとも言える。
 処理部200は、例えばCPUやGPU等のマイクロプロセッサや、ASIC、ICメモリなどの電子部品の適当な組み合わせによって実現される。処理部200は、各機能部との間でデータの入出力制御を行い、所定のプログラムやデータ、操作入力部100からの操作入力信号等に基づいて各種の演算処理を実行して、ゲーム装置1500の動作を制御する。図1では制御基板1550がこれに該当する。
 そして、処理部200は、ゲーム演算部202と、音生成部250と、画像生成部260と、通信制御部270と、測位制御部280とを備える。
 ゲーム演算部202は、本実施形態のゲームを実行するために必要な各種制御を実行する。また、システムクロックを用いた制限時間などの計時処理、フラグ管理処理、などを適宜実行することができる。
 図12は、本実施形態におけるゲーム演算部202の構成例を示す部分機能ブロック図である。本実施形態のゲーム演算部202は、ゲーム参加管理制御部204と、自機情報算出部206と、自機情報送信制御部220と、他機情報受信制御部221と、認識状態判定部222と、認識不能信号送信制御部223と、ホスト機能発現判断部224と、キャラクタ表示制御部230と、NPC情報送信制御部240と、を含む。
 ゲーム参加管理制御部204は、マルチプレイのためのゲーム参加関連の処理を実行する。例えば、自機をホスト機/ゲスト機とするかをプレーヤに選択させる処理を実行する。そして、この選択処理にてホスト機に選択された場合には、他機をゲーム参加機として受付・登録する処理と、ゲーム参加機の登録情報の配信に関する処理を実行する。また、ホスト機/ゲスト機に係わらず、自プレーヤにプレーヤキャラクタの種類を選択させるなどのプレーヤキャラクタ設定処理をする。そして、プレーヤキャラクタの設定情報を他機に配信する処理を行う。
 また、本実施形態のゲーム参加管理制御部204は、発現優先順位設定部205を備える。発現優先順設定部205は、自機がホスト機能を発現している場合に、参加受付に伴って発現優先順位を設定し他機へ配信制御する。
 自機情報算出部206は、ARマーカ10に対する自機のプレーヤ視点の位置関係に関する情報を算出する。本実施形態では、相対位置算出部207と、現在位置決定部209と、相対姿勢算出部210と、現在姿勢決定部211と、重み付け設定部212とを含む。
 相対位置算出部207は、ARマーカ10の撮影画像を用いて、当該マーカに対する自機の相対的な位置関係を示す情報を周期的に算出する。つまり、その時点におけるプレーヤ視点の最新の相対位置を計測・算出する。
 算出される相対位置の情報の内容は適宜設定可能であるが、例えばARマーカ10の所定位置(例えば、カードの中心や隅の何れか)を基準点とし、ARマーカ10の示す基準方向に基づく3軸直交座標(Xm,Ym,Zm)を求める。そして、当該座標系における相対位置(Xc,Yc,Zc)及び相対距離Lcを算出する。具体的には、撮像部104で撮影した画像を解析してARマーカ10を検出し、当該ARマーカ10の種類と向きとを判定して、マーカ基準の相対位置を算出する。これらの処理は、公知のAR技術を適宜流用することにより実現できる。また、ARマーカ10の種類に対応して予め設定されているカードサイズ(実寸;例えば5cm×7cmなど)と、撮影画像内におけるARマーカ10のドット数とに基づいて相対距離Lcを実寸単位で算出する。
 そして、本実施形態では、相対位置算出部207は、位置変化抑制制御部208としての機能を有する。
 位置変化抑制制御部208は、ARマーカ10を認識できない認識不能状態のときに、ゲーム空間のオブジェクトの位置移動を抑制する処理を行う。具体的には、認識不能となってから認識状態に復帰するまでの間、ゲーム装置の位置の移動を無し(プレーヤ視点の位置移動を無し)と仮定して相対位置を決定する。より具体的には、認識不能以降に新たに算出する相対位置を認識不能になる直前に算出した相対位置に固定し、認識復帰とともにその固定を解除する(図9参照)。換言すると、認識不能状態が検出されている間、コンピュータの姿勢変化に応じてオブジェクトの表示向きを制御する認識不能時向き制御部として機能する。
 現在位置決定部209は、相対位置算出部207により算出された所定分過去の相対位置情報から最新の相対位置までを、重み付け設定部212によって設定された重み付けWnを用いた加重平均によって、仮想カメラCMの制御に適用される位置情報を算出する(図8参照)。
 相対姿勢算出部210は、姿勢検出部108による検出結果に基づいて、自機の姿勢情報を周期的に算出する。例えば、撮像部104による光軸方向を基準として、ピッチ、ヨー、ロールの各成分を、ARマーカ10の所定位置(例えば、カードの中心や隅の何れか)を基準点とマーカの示す基準方向に基づく3軸直交座標(Xm,Ym,Zm)に対する相対姿勢(ωp,ωy,ωr)を算出する。
 現在姿勢決定部211は、所定分過去の姿勢情報から最新の姿勢情報までを重み付け設定部212によって設定された重み付けを用いた加重平均によって、仮想カメラCMの制御に適用される姿勢情報を算出する(図8参照)。
 重み付け設定部212は、加重平均に処せられる算出時期が異なる情報毎の重み付けWn(図8参照)を、最新の相対距離Lcと対応づけられる算出時期に応じて所定関数又は所定のテーブルデータを参照して決定する。換言すると、加重平均に処せられる自機位置情報や自機姿勢の算出時期に応じて重み付けする第1の重み付け変更機能と、自機位置情報や自機姿勢の算出時におけるARマーカ10との距離Lとに応じて重み付けする第2の重み付け変更機能とを実現する。
 自機情報送信制御部220は、自機に係る各種情報をゲームに参加する他機へ送信させる処理を行う。例えば、操作入力部100による操作入力情報、現在位置、現在姿勢、相対距離Lc、要素領域14の定義情報などがこれに含まれる。
 これに対して、他機情報受信制御部221は、他機に係る情報(他機における操作入力部100による操作入力情報、現在位置、現在姿勢、相対距離Lc、要素領域14の定義情報など)を受信制御する。
 認識状態判定部222は、ARマーカ10の認識状態を検出することができる。具体的には、撮像部104で撮影した画像内にARマーカ10が検出できない場合や、当該マーカのデザインを認識できなかった場合に認識不能状態を検出し、再び認識できるようになると認識復帰状態を検出する。
 尚、認識不能状態は、例えばARマーカ10が遠くに有って撮像部104の解像能力との関係からデザイン識別に十分な情報が得られないケースや、ARマーカ10のカード面に対してCCDカメラモジュール1516の光軸方向が浅いために同じくデザイン識別に十分な情報が得られないケース、ARマーカ10の一部が撮影範囲外に残ってデザイン識別に十分な情報が得られないケースなどが考えられる。
 認識不能信号送信制御部223は、認識状態判定部222により認識不能状態が検出された場合に、他のゲーム参加機へ所定の「認識不能信号」を送信させるための処理を実行する。他機に対してホスト機能の発現を要求する継承信号を送信する継承信号送信制御部として機能するとも言える。
 ホスト機能発現判断部224は、ゲームの参加機それぞれの認識不能状態の有無に基づいて自機がホスト機として機能すべきか否かを判断する。本実施形態では、自機に設定された発現優先順位と、自機及び他機の認識不能状態の監視結果とに基づいて、自機の発現優先順位よりも上位にある全ての他機が認識不能状態のとき、ホスト機として機能すべきと判断する。
 キャラクタ表示制御部230は、ゲーム参加機のARマーカ10に対する位置関係に基づいて仮想3次元空間(CG空間)中のキャラクタ等のオブジェクトの配置を制御する。換言すると、プレーヤキャラクPC1~PC3や敵キャラクタ7といったキャラクタの拡張現実空間内における表示位置を制御する。そして、本実施形態のキャラクタ表示制御部230は、領域設定部231と、NPC制御部235とを有する。
 領域設定部231は、所定オブジェクト(本実施形態では敵キャラクタ7)を表示させる拡張現実空間中の領域を設定する。具体的には、基本領域設定部232と、要素領域設定部233と、配置領域設定部234とを有する。
 基本領域設定部232は、ARマーカ10から各プレーヤ視点までの相対距離Lcに基づいて基本領域13を設定する。つまり、配置領域12の基本となるサイズを設定する。具体的には、ゲーム参加機別の相対位置Lcのうち最小値を変数として所定の関数f(Lc)で基本領域13の基本長さLbを求める。そして、ARマーカ10の種類に応じて予め設定されている基本形状を、所定寸法が基本長さLbとなるように拡大/縮小してサイズを変更して基本領域13を設定する。
 要素領域設定部233は、各プレーヤの視点位置でARマーカ10を撮影した場合の自機撮影範囲及び他機撮影範囲を用いて、各プレーヤの視点から見てARマーカ10がロストし難いようにしながら敵キャラクタ7を配置できる要素領域14を設定する。また、プレーヤ視点から見たARマーカの平面方向に対する俯角θcを用いて自機撮影範囲及び他機撮影範囲の奥行を変更する奥行変更部としての機能を果たす。
 配置領域設定部234は、基本領域13と要素領域14とを用いて、何れのゲーム参加機についてもARマーカ10がロストし難いようにしながら敵キャラクタ7を配置できる配置領域12を設定する。本実施形態では、基本領域13及び各要素領域14の重合部分を求め、これを配置領域12とする。
 NPC制御部235は、敵キャラクタ7などのNPC(ノンプレーヤキャラクタ)や、飛翔体6などのエフェクトオブジェクト、ゲーム空間の背景を形成する背景オブジェクトの配置制御を行う。いわゆる「AI制御」を行う。NPC等のオブジェクトの制御情報(位置座標、姿勢、モーション制御データなど)は、オブジェクト毎に対応づけて所定期間分(例えば、ゲーム画像の数フレーム分)の履歴情報が、記憶部500のプレイデータ541の敵キャラクタ配置情報キュー544に格納される(図11参照)。そして、本実施形態におけるNPC制御部235は、制御開始時特殊制御部236と、移動方向制御部237とを有する。
 制御開始時特殊制御部236は、制御開始から所定期間(例えば、ゲーム画像の数フレーム分)、制御対象とするオブジェクトの移動速度及び/又は動作速度を低減させるように制御する。具体的には、敵キャラクタ配置情報キュー544に格納されている分の過去の制御情報と新たに算出した制御情報とを均して実際の制御情報とする。
 例えば、ホスト機能を担うゲーム装置が切り換ったタイミングでは、切り換り前後で制御情報値のジャンプが生じる場合があるが、過去値と最新値との均し値を実際の制御に用いることで、切り換えタイミングにおけるオブジェクトの瞬間移動やズレ・ブレなどの不自然な表示を抑制することができる。特に、オブジェクトの表示位置の変化(ズレ・ブレ)に対して効果的である。
 移動方向制御部237は、制御対象とするオブジェクトの移動方向を撮像部104による撮影画像(ライブビュー)中のARマーカ10の画像位置に基づいて決定する処理と、配置領域12内におけるオブジェクトの相対位置に基づいて移動方向を決定する処理とを行う。
 前者の処理では、ホスト機能発現機のライブビュー中のARマーカ10の画像位置が、画像中心から離れている程、敵キャラクタ7のオブジェクトがARマーカ10の画像位置に高確率で近づくように移動制御する。換言すると、ホスト機能発現機のプレーヤ視点方向(CCDカメラモジュール1516の光軸方向、仮想カメラの視線方向に同じ)がARマーカ10から離れているほど、敵キャラクタ7がよりARマーカ10に近づくように動作制御する。具体的には、プレーヤ(ゲーム装置)からARマーカ10への方向とプレーヤ視点方向とのなす角度が大きいほど、敵キャラクタ7がARマーカ10に近づくように、敵キャラクタ7の移動方向を決定する。移動方向や移動目標地点を抽選処理で決定する場合、抽選確率を一時的に変更したり、抽選結果がARマーカ10に近づかない場合に再抽選を実行するなどにより実現できる。
 例えば、敵キャラクタ7が最新の配置領域12内に有れば、領域外に出ないように移動方向を選択する処理、または、配置領域12の輪郭との距離を算出して所定の接近条件を満たす状態を検出した場合には次の移動量を一時的に低減させる処理を行う。また、もし敵キャラクタ7が領域外に有るのであれば、領域内に戻るように移動方向を選択する処理や、できるだけ速やかに戻れるように移動量を一時的に増加させる処理なども適用可能である。
 NPC情報送信制御部240は、NPC制御部235により求められたNPCの制御情報を他機へ送信制御する。
 尚、領域設定部231と、NPC制御部235と、NPC情報送信制御部240は、自機がホスト機として機能すべきときにのみ発現する機能部であって、これらはホスト機能実行制御部249を構成する。
 図11に戻り、音生成部250は、例えばデジタルシグナルプロセッサ(DSP)や、音声合成ICなどのプロセッサ、音声ファイル再生可能なオーディオコーデック等によって実現され、ゲーム演算部202による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部350に出力する。
 音出力部350は、音生成部250から入力される音信号に基づいてゲームに関する効果音やBGM、電話通信音声等を音出力する装置によって実現される。図1ではスピーカ1510がこれに該当する。
 画像生成部260は、例えば、GPU、デジタルシグナルプロセッサ(DSP)などのプロセッサ、ビデオ信号IC、ビデオコーデックなどのプログラム、フレームバッファ等の描画フレーム用ICメモリ、テクスチャデータの展開用に使用されるICメモリ等によって実現される。画像生成部260は、ゲーム演算部202による処理結果に基づいて1フレーム時間(例えば1/60秒)で1枚のゲーム画面を生成し、生成したゲーム画面の画像信号を画像表示部360に出力する。
 画像表示部360は、画像生成部260から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。本実施形態では、図1のタッチパネル1506がこれに該当する。
 通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
 これに関連する通信部370は、通信回線1と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1の無線通信モジュール1553がこれに該当する。
 測位制御部280は、測位信号受信部380を介して測位システムから得られた信号から位置情報を算出するための制御、つまり測位計算とその結果の管理を行う。例えば、図1のGPSモジュール1554がこれに該当する。測位計算に携帯電話基地局の既知の位置情報を利用する場合には、基地局と無線通信するための無線通信モジュール1553も該当することになる。
 記憶部500は、処理部200にゲーム装置1500を統合的に制御させるための諸機能を実現するためのプログラムや各種データ等を記憶する。また、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。こうした機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVDなどの光学ディスクなどによって実現される。図1では制御基板1550が搭載するICメモリ1552やメモリカード1540がこれに該当する。
 本実施形態の記憶部500は、ゲーム装置1500をシステムプログラム502と、ゲームプログラム504とを記憶している。
 システムプログラム502は、ゲーム装置1500のコンピュータとしての基本機能を実現するためのプログラムである。
 ゲームクログラム504は、処理部200にゲーム演算部202としての機能を実現させせるためのプログラムである。メモリカード1540に予め記憶されているものとするが、本実施形態では、ゲーム開始前に所定のサーバからダウンロードする構成であっても良い。
 また、記憶部500には、予めゲーム空間初期設定データ510と、キャラクタ初期設定データ511と、ARマーカ登録データ512と、奥行関数設定データ514とが記憶されている。これらもメモリカード1540に予め記憶されているものとするが、ゲーム開始前に所定のサーバからダウンロードする構成であっても良い。
 また、記憶部500には、ゲーム進行に応じて生成され随時更新されるデータとして、ゲーム参加機登録データ520と、自機情報キュー530と、現在位置537と、現在姿勢538と、プレイデータ541と、仮想3次元空間データ560と、ホスト機能継承タイミング562と、が記憶される。その他、各種処理を実行するにあたり必要となるデータ(例えば、圧縮解凍されたテクスチャデータ、経過時間、各種タイマー値、カウンタ、フラグ)なども適宜記憶されるものとする。
 ゲーム空間初期設定データ510は、ゲームの舞台を作るための背景オブジェクトを定義する初期設定データである。背景オブジェクトのモデルデータ、テクスチャデータ、配置位置データなどが含まれる。
 キャラクタ初期設定データ511は、プレーヤキャラクタPC1~PC3や、敵キャラクタ7などのゲームキャラクタの初期設定データを格納する。各キャラクタ毎に、モデルデータ、テクスチャデータ、モーションデータ、能力パラメータ(攻撃力、防御力、HPなど)の初期値をキャラクタ毎に格納している。
 ARマーカ登録データ512は、ゲームで使用できるARマーカを登録するデータであって使用できる種類毎に記憶されている。そして、図13に示すように、マーカ種類と、対応マーカカテゴリと、デザインパターンデータと、カード寸法と、基本領域13の雛形となる基本領域モデルと、基本長さLbとする寸法を指定する基本長さ適用寸法と、を格納する。
 奥行関数設定データ514は、要素領域14の奥行Dbを算出するための関数を設定するデータであって、ARマーカ10のマーカカテゴリ別に用意されている(図7参照)。
 ゲーム参加機登録データ520は、ゲームに参加するゲーム装置の登録に関するデータ群であって参加処理により生成される。例えば図14に示すように、ゲーム機ID521と対応づけて、通信接続で相手先を特定するためのアドレス情報522と、発現優先順位523と、プレーヤキャラクタ種類524と、マーカ認識状態525と、ホスト機能を発現する機体であるかを示すホスト機能発現フラグ526とを格納する。
 ゲーム参加機登録データ520は、ゲームの参加処理に関連してホスト機にてオリジナルが生成されたのちに各ゲスト機へ配信される。
 自機情報キュー530は、ARマーカ10を基準とした自機の位置や姿勢等の情報を所定算出回数分格納する。例えば図15に示すように、算出時刻532と対応づけて、相対位置533、相対姿勢534、相対距離535を格納する。
 現在位置537及び現在姿勢538は、それぞれ自機情報キュー530に格納されている相対位置533の加重平均値、相対姿勢534の加重平均値が格納される。
 プレイデータ541は、ホスト機能の実行により生成・管理されるデータ群であって、ゲーム進行状況を記述する各種データを格納する。本実施形態では、プレーヤキャラクタ状態データ542と、敵キャラクタ状態データ543と、敵キャラクタ配置情報キュー544と、飛翔体配置データ545と、基本領域設定データ550と、要素領域設定データ552と、配置領域設定データ554と、を含む。
 プレーヤキャラクタ状態データ542は、プレーヤキャラクタPC1~PC3それぞれの状態を記述するデータ、例えばHP(ヒットポイント)などの能力値の現在値、適用されているモーションデータの識別情報やモーション制御データなど、を格納する。
 敵キャラクタ状態データ543は、敵キャラクタ7の状態を記述するデータが格納される。例えば、敵キャラクタのHPなどの能力値の現在値、適用されるモーションデータの識別情報やモーション制御データなどを格納する。
 敵キャラクタ配置情報キュー544は、算出時刻と対応づけられた敵キャラクタ7のCG空間における位置や姿勢を、所定算出回数分だけ格納する。
 飛翔体配置データ545は、発射された飛翔体6毎の位置や姿勢、速度、加速度など飛翔の状態を記述する情報を格納する。
 基本領域設定データ550は、基本領域13の最新の定義データを格納する。
 要素領域設定データ552は、ゲーム参加機毎つまりはプレーヤ視点位置毎に求めた要素領域14の最新の定義データを格納する。
 配置領域設定データ554は、配置領域12の最新情報を格納する。
 仮想3次元空間データ560は、仮想3次元空間に配置されるプレーヤキャラクタPC1~PC3、敵キャラクタ7、飛翔体6、背景物などの各種オブジェクトの配置情報を格納する。
 ホスト機能継承タイミング562は、ホスト機能を発現する機体が変化したタイミング情報(例えば、システム時刻)を格納する。換言すると、ホスト機能の実行役が別の機体に継承されたタイミングを格納する。
 [処理の流れの説明]
 次に図17~図24を参照しながら、本実施形態における各種処理の流れについて説明する。ここで説明する一連の処理は、ゲーム装置1500が、システムプログラム502及びゲームプログラム504や各種設定データを読み出し実行することにより実現される。尚、テーブル9などの上に予めARマーカ10が配置されていて、プレーヤは各ゲーム装置1500を手に持ってCCDカメラモジュール1516でARマーカ10を撮影する姿勢にあるものとする。
 図17は、本実施形態における主たる処理の流れを説明するためのフローチャートである。ゲーム装置1500の処理部200は、先ず他のゲーム装置とのアドホックモードによる通信接続を確立する(ステップS2)。以降、ゲーム装置同士の間ではピア・ツー・ピア(P2P)のローカルネットワークが形成された状態となる。
 次に、処理部200は、ゲーム前準備処理を実行する(ステップS4)。
 図18は、本実施形態におけるゲーム前準備処理の流れを説明するためのフローチャートである。同処理において、処理部200は先ず、自機をホスト機とするかゲスト機とするかの選択画面を表示してプレーヤに何れかを選択させるホスト/ゲスト選択処理を実行する(ステップS6)。
 もし、ホスト機が選択された場合には(ステップS8の「ホスト」)、ゲーム参加機登録データ520を生成して自機を登録する(ステップS10)。すなわち、最初のゲーム機ID521を発行するとともに、先に確立したローカルエリアネットワークにおけるアドレス情報522を格納する。発現優先順位523は第1順位に設定し、マーカ認識状態525は認識状態を示す情報(図14の例では「1」)に初期化する。
 そして、ホスト機の処理部200は、自プレーヤキャラクタの選択処理(ステップS12)と、ゲーム空間の初期化処理を実行する(ステップS14)。
 自プレーヤキャラクタの選択結果は、ゲーム参加機登録データ520のプレーヤキャラクタ種類524に格納される。
 ゲーム空間の初期化処理では、ゲーム空間初期設定データ510及びキャラクタ初期設定データ511を参照して、仮想3次元空間に背景オブジェクトを配置してゲーム空間を配置するとともに、自プレーヤキャラクタPC1と敵キャラクタ7とを配置する。ゲーム空間にキャラクタが配置されるのに伴って、プレーヤキャラクタ状態データ542と、敵キャラクタ状態データ543とが生成・初期化される。そして、ゲーム空間の初期化処理を実行したならば、ホスト機の処理部200はホスト機としての参加処理を時限実行する(ステップS16)。
 一方、ホスト/ゲストの選択処理にてゲストが選択された場合には(ステップS6の「ゲスト」)、ゲスト機とされたゲーム装置1500の処理部200は、自プレーヤキャラクタの選択処理を実行し(ステップS18)、ホスト機へゲーム参加リクエスト信号を送信してゲスト機としての参加処理を行う(ステップS22)。
 参加処理において、ホスト機の処理部200は、ゲーム参加リクエストしたゲスト機と適宜情報の送受を行って参加機として登録する。即ち、ゲーム参加機登録データ520に新たに付与したゲーム機ID521を設定し、これに対応付けて当該ゲスト機のアドレス情報522を登録し、発現優先順位523をゲスト機の登録順+1(よって、最初のゲスト機の発現優先順位は2位となる)を設定する。プレーヤキャラクタ種類524は当該ゲスト機から取得し、マーカ認識状態525は認識状態を示す値とする。そして、参加処理開始から所定受付時間が終了すると、ホスト機からゲーム参加機登録データ520がゲスト機に配信される。ゲスト機では、受信したゲーム参加機登録データ520を記憶部500に記憶させる。
 参加処理を終了したならば、図17のフローチャートに戻る。
 ゲームを開始させたならば(ステップS24)、処理部200はステップS32~S320をゲーム終了条件が満たされるまで所定サイクルで繰り返し実行する。
 一回の制御サイクル内において、処理部200は、先ず自動情報算出処理を実行する(ステップS32)。
 図19は、自機情報算出処理の流れを説明するためのフローチャートである。同処理において、処理部200は先ず撮像部104による撮影映像をキャプチャし(ステップS60)、キャプチャした画像に写っているARマーカ10を検出する(ステップS62)。
 もし、ARマーカ10を検出できたならば(ステップS64のYES)、処理部200はARマーカ10の認識と種類の判別をする(ステップS66)。すなわち、公知のマーカ方式AR技術と同様にして、ARマーカが写っている部分を検出して、当該部分をARマーカ登録データ512(図13参照)に登録されているデザインパターンと照合することで、ARマーカ10を認識するとともにマーカの向きやマーカの種類、マーカのカテゴリを判定する。
 次いで、処理部200は、ARマーカ10に対する相対位置(Xc,Yc,Zc)と相対姿勢(ωp,ωy,ωr)と相対距離Lとを計測・算出する(ステップS68)。これらの算出結果は、自機情報キュー530に格納される。
 もし、ARマーカ10が検出されなかった場合には(ステップS64のNO)、処理部200は相対位置及び相対姿勢等の算出は行わず、自機情報キュー530の直近過去の相対位置533及び相対距離535を参照する。
 もし、自機情報キュー530に直近過去のそれらの値が格納されていれば(ステップS70のYES)、それらをコピーして、そのまま今回の相対位置、相対距離として新たに自機情報キュー530に格納する(ステップS72)。もし、直近過去のそれらの値が格納されていなければ(ステップS70のNO)、所定の初期値を今回の相対位置及び相対距離として自機情報キュー530に格納する(ステップS74)。
 相対姿勢については、自機情報キュー530に直近過去のそれらの値が格納されているか否かに関わらず、姿勢検出部108の検出結果に基づいて計測した結果を、新たに自機情報キュー530に格納する(ステップS76)。
 今回分の相対位置及び相対姿勢を決定したならば、処理部200は次に、重み付けwn(n:自機情報キュー530に記憶されているデータの記憶順番)を算出し(ステップS78)、算出した重み付けwnを用いて自機情報キュー530に記憶されている分の相対位置533を加重平均して現在位置537を求める(ステップS80)。
 更に、自機情報キュー530に記憶されている分の相対姿勢534を加重平均して現在姿勢538を求める(ステップS82)。尚、加重平均に係る重み付けwnは、所定の関数h(n,Lc)に最新の自機の相対距離Lcを用いて算出する。そして、重み付けwnの算出を実行したならば、自機情報算出処理を終了する。
 図17のフローチャートに戻って、処理部200は次にホスト機能発現機設定処理を実行する(ステップS110)。
 図20は、本実施形態におけるホスト機能発現機設定処理の流れを説明するためのフローチャートである。
 同処理において、処理部200は先ず各ゲーム装置におけるARマーカ10の認識状態の監視処理を行う(ステップS112~S122)。
 具体的には、処理部200は、自機情報算出処理にてARマーカ10の認識ができなかった場合(ステップS112のYES)、ゲーム参加機登録データ520の自機のマーカ認識状態525(図14参照)を「認識不能(LOST)」に変更し(ステップS114)、所定の認識不能信号を他機へ送信する(ステップS116)。ARマーカ10が認識できているならば(ステップS112のNO)、自機のマーカ認識状態525を「識別中(In Sight)」に設定する(ステップS118)。
 他機からの認識不能信号については、処理部200は認識不能信号の送信元である他機のマーカ認識状態525を「認識不能(LOST)」に変更する(ステップS120)。認識不能信号を受信しなかった他機については「識別中(In Sight)」に設定(ステップS122)する。これでゲーム参加機それぞれにおけるマーカの識別状態が更新されたことになる。
 次に、処理部200は、マーカ認識状態の監視結果に基づいてホスト機能を発現するゲーム装置すなわち「ホスト機能発現機」を選出する(ステップS140)。
 具体的には、ゲーム参加機登録データ520のマーカ認識状態525を参照し、発現優先順位が当該ゲーム装置よりも上位にあたる全他機のマーカ認識状態が「認識不能(LOST)」になっているゲーム参加機を、ホスト機能を発現するべき機体として選出する。
 そして、処理部200は、当該選出機のホスト機能発現フラグ526を参照する。同フラグが「0」であれば(ステップS142の「0」)、それ以外のゲーム機の同フラグを「0」に設定し(ステップS144)、ホスト機能継承タイミング562に現在のシステム時刻を格納し更新して(ステップS146)、ホスト機能発現機設定処理を終了する。もし、選出機のホスト機能発現フラグ526がすでに「1」の場合には(ステップS142の「1」)、フラグ操作やホスト機能継承タイミング562の更新は行わずに、ホスト機能発現機設定処理を終了する。
 図17のフローチャートに戻って、自機がホスト機能発現機に設定されている場合(ステップS150のYES)、処理部200は自機がホスト機能を発現するべきであると判断してホスト機能実行処理を行う(ステップS152)。
 図21は、本実施形態におけるホスト機能実行処理の流れを説明するためのフローチャートである。同処理において、処理部200は先ず、全他機からそれぞれの他機情報として、現在位置537と、現在姿勢538と操作入力データ(本実施形態では射撃操作入力の有無)を取得する(ステップS160)。そして、基本領域設定処理を実行する(ステップS162)。
 図22は、本実施形態における基本領域設定処理の流れを説明するためのフローチャートである。同処理において、処理部200は先ずゲーム参加機毎つまりはプレーヤ視点毎にARマーカ10までの相対距離Lcを算出又は他機から送信してもらって取得し(ステップS170)、算出又は取得した相対距離Lcに基づいて基本長さLbを算出する(ステップS172)。本実施形態では、ゲーム参加機別に算出した相対距離Lcのうち最小値を用いて所定関数f(Lc)を用いて基本長さLbを求める。
 次で、処理部200は、算出した基本長さLbを所定の最小値と比較し、最小値を下回っていれば(ステップS174のYES)、基本長さLbをこの最小値で置き換える(ステップS176)。そして、認識されたARマーカの種類・カテゴリ(図19のステップS66参照)に対応するARマーカ登録カード512(図13参照)から基本領域モデルを読み出し、先に設定した基本長さLbを基本長さ適用寸法に割り当てた基本領域13を設定する(ステップS178)。求めた基本領域13を定義する情報(例えば、頂点座標、輪郭線を記述する関数など)は、プレイデータ541に基本領域設定データ550として格納される。そして、基本領域設定処理を終了する。
 図21のフローチャートに戻って、処理部200は次に、ゲーム参加機毎に要素領域設定処理を実行して、プレーヤ視点毎の要素領域14を設定する(ステップS180)。
 図23は、要素領域設定処理の流れを説明するためのフローチャートである。同処理において、処理部200は先ず、キャプチャした画像に写っているARマーカ10の四隅の頂点位置を求め(ステップS190)、ゲーム装置1500の位置及びロール、即ちCCDカメラモジュール1516の位置及びロール(光軸周りの回転)を固定と見なして、ARマーカ10の四隅のうち右端が、CCDカメラモジュール1516の撮影範囲の右端に近接し、且つARマーカ10の四隅のうち下端が同撮影範囲の下端に近接する第1姿勢を求めるとともに、当該姿勢におけるCCDカメラモジュール1516の光軸AL1を求める(ステップS192;図6参照)。
 同様にして、処理部200はARマーカ10と撮影範囲とで左端同士・上端同士が近接する第2姿勢を求めて光軸AL2を求め(ステップS194)、ARマーカ10と撮影範囲とで左端同士・下端同士が近接する第3姿勢を求めて光軸AL3を求め(ステップS196)、ARマーカ10と撮影範囲とで右端同士・上端同士が近接する第4姿勢を求めて光軸AL4を求める(ステップS198)。
 次に、処理部200はARマーカ10のデザイン面(マーカ平面)に対するCCDカメラモジュール1516の光軸角度つまり俯角θcを算出し、ARマーカ10のカテゴリに応じた奥行関数設定データ514を選択・参照して、算出した俯角θcに基づく奥行Dbを算出する(ステップS200)。
 そして、CCDカメラモジュール1516のカメラ視点位置から現在の光軸方向に奥行Dbだけ離れたクリップ面と、先に求めた光軸AL1~AL4それぞれとの交点を求め、求めた4つの交点とカメラ視点位置とを頂点として囲まれるボリュームを、対象としているゲーム装置1500(対象としているプレーヤ視点)における要素領域14として設定する(ステップS202)。求めた要素領域14を定義する情報(例えば、頂点座標、輪郭線を記述する関数など)は、プレイデータ541に要素領域設定データ552として格納される。そして、要素領域設定処理を終了する。
 図21のフローチャートに戻って、処理部200は次に、基本領域13及び要素領域14の重合領域を求めこれを配置領域12とする(ステップS220)。求めた重合領域を定義する情報(例えば、頂点座標、輪郭線を記述する関数など)は、プレイデータ541に配置領域設定データ554として格納される。
 次に、処理部200は敵キャラクタ7を最新の配置領域12の範囲内に存在するよう動作制御する(ステップS222)。
 ここでの動作制御には、移動と攻撃の二つの動作が含まれる。
 移動の制御については、例えば、敵キャラクタ7が最新の配置領域12内に有れば、領域外に出ないように移動方向を選択する処理や、領域の輪郭との距離を算出して所定の接近条件を満たす状態を検出した場合には次の移動量を一時的に低減させる処理などを実行して、新たな配置位置を決定する。また、もし敵キャラクタ7が領域外に有るのであれば、領域内に戻るように移動方向を選択する処理や、できるだけ速やかに戻れるように移動量(移動速度)を一時的に増加させる処理などを実行して新たな配置位置を決定する。
 更には、撮像部104による撮影画像(ライブビュー)中のARマーカ10の画像位置が、画像中心から離れている程、敵キャラクタ7がARマーカ10の画像位置に高確率で近づくように移動制御する。換言すると、プレーヤ視点方向(CCDカメラモジュール1516の光軸方向、仮想カメラの視線方向に同じ)がARマーカ10から離れているほど、敵キャラクタ7がよりARマーカ10に近づくように動作制御する。
 具体的には、例えば敵キャラクタ7の移動方向を抽選処理で決定する場合、現在のARマーカ10向きの移動方向がより高確率で選出されるように抽選確率を一時的に変更したり、抽選結果が視線方向に沿わない場合に再抽選を実行するなどにより実現できる。
 尚、新たに決定された敵キャラクタ7の位置及び姿勢は敵キャラクタ配置情報キュー544に格納される。移動制御に伴い、仮想3次元空間データ560のうち、敵キャラクタ7に係るオブジェクトの制御データが適宜書き換えられる。
 攻撃の制御については、所定のアルゴリズム(いわゆるAI制御)によって、適当なタイミングで適当なプレーヤキャラクタPC1~PC3に向けて、射撃するように制御する。
 ここで、処理部200は、現在のシステム時刻とホスト機能継承タイミング562に格納されているシステム時刻(すなわちホスト機能の制御開始タイミング)とを比較して、ホスト機能の制御開始タイミングから所定時間が経過したかを判定する。
 そして、もし経過していない場合には(ステップS224のNO)、処理部200は敵キャラクタ7の移動量及び/又は移動速度が低減されるように調整する制御開始時特殊制御を行う(ステップS226)。
 具体的には、例えば敵キャラクタ配置情報キュー544に格納されている位置及び姿勢の各加重平均値(重み付けは過去値ほど低い)を求め、敵キャラクタ配置情報キュー544の最新値を加重平均された位置及び姿勢に更新する。これにより、ホスト機能を担う機体が代わったことに起因する敵キャラクタ7の位置や姿勢が大きく変化したとしてもその影響を低減できる。敵キャラクタ7の見かけの移動量や移動速度が低減され、瞬時的に移動量や移動速度が増したような不自然な動きとならないようにできる。
 尚、ホスト機能の制御開始タイミングから所定時間が経過していなければ(ステップS224のYES)、こうした制御開始時特殊制御はスキップされる。
 次に、処理部200は各プレーヤキャラクタPC1~PC3の配置位置を更新する(ステップS228)。これに伴い、仮想3次元空間データ560のうち、プレーヤキャラクタPC1~PC3に係るオブジェクトの制御データが適宜書き換えられる。
 次に、処理部200は飛翔体6の管理をする(ステップS240)。例えば、敵キャラクタ7による攻撃動作が行われた場合や、各ゲーム装置にて攻撃操作入力が検出された場合に、対応するプレーヤキャラクタから発射される新たな飛翔体6を仮想3次元空間に配置する。また、配置済の飛翔体6については移動をさせる。これに伴い、プレイデータ541の飛翔体配置データ545が適宜書き換えられ、また仮想3次元空間データ560のうち飛翔体6に係るオブジェクトの制御データが適宜書き換えられる。
 次に、処理部200は、飛翔体6の移動後の位置と、更新されたプレーヤキャラクPC1~PC3の位置、及び敵キャラクタ7の位置とに基づいて攻撃のヒット判定と、攻撃ヒットにともなうダメージ判定及びダメージ反映処理を行う(ステップS242)。もし、飛翔体6がヒットしたと判定された場合には、当該飛翔体6は仮想3次元空間から消去するのは勿論である。ダメージ反映処理により、プレイデータ541のプレーヤキャラクタ状態データ542及び敵キャラクタ状態データ543が更新される。
 ホスト機能実行処理によるこれまでの処理により、1制御サイクルでのゲームが進行したことになるので、処理部200は最新のプレイデータ541を他機へ配信し(ステップS244)、ホスト機能実行処理を終了する。
 図17のフローチャートに戻って、自機がホスト機能を発現するべきと判断されなかった場合(ステップS150のNO)、処理部200はゲスト機として振る舞うように制御することとなる。つまり、ゲスト機の処理部200は、全ての他機から現在位置537と、現在姿勢538と操作入力情報とを取得し(ステップS300)、ホスト機からプレイデータを取得する(ステップS302)。そして、取得した他機の現在位置537および現在姿勢538と、自機の現在位置537および現在姿勢538と、取得したプレイデータとに基づいて仮想3次元空間内のオブジェクトの配置位置を更新する(ステップS304)。
 ここまでの流れによって、ゲーム進行制御とその結果に応じた仮想3次元空間(CG空間)内のオブジェクトの再配置が完了したことになる。
 そこで、処理部200は次に、ゲーム画面の生成及び表示に関する処理を実行する。すなわち、キャプチャされた撮像部104で撮影した画像をクロップ処理して背景画像を生成し(ステップS310)、自機の現在位置537および現在姿勢538に基づいて仮想カメラCMを仮想3次元空間内に配置して、当該仮想カメラで撮影した仮想3次元空間の様子をレンダリングする(ステップS312)。そして、背景画像の上にレンダリングされたCGを合成し、さらにその上に画面中央に照準8などの情報表示体を合成してゲーム画面を完成させ(ステップS314)、これを画像表示部360で表示させる(ステップS316;図3参照)。
 次に、処理部200はゲーム終了条件を満たすか否かを判定する(ステップS320)。もしゲーム終了条件を満たしていなければ(ステップS320のNO)、次の制御サイクルに移行する。もし満たしていれば(ステップS320のYES)、エンディング画面を表示させるなどのゲーム終了処理を実行して(ステップS322)、一連の処理を終了する。
 以上、本実施形態によれば、ARマーカ10に対するプレーヤ視点別の相対位置(本実施形態で言うところのARマーカ10の基準点に対するCCDカメラモジュール1516の視点の相対位置で代表されるゲーム参加機の相対位置)を用いて、拡張現実空間中のキャラクタの表示位置をマルチプレイに都合良く適切に制御できる。
 具体的には、注目キャラクタ(敵キャラクタ7)を追跡するように、それぞれのゲーム装置1500の視点位置、視線方向が変えられたとしても、ARマーカ10がCCDカメラモジュール1516の撮影範囲外にならないように、この注目キャラクタの配置を調整することができる。すなわち、拡張現実空間を利用したマルチプレイ型のゲームの品質を向上させ、キャラクタの配置制御に伴うさまざまな不都合を回避・低減することができる。
 また、本実施形態では、現在から遡って所与の時間分(或いは所与の回数分)の相対位置を用いて、実際に仮想カメラを制御するための現在位置を決定することができるので、手ブレを抑制することができる。更には、ARマーカ10が認識不能な間、一時的に位置座標をマーカロスト直前値に固定する一方で、姿勢については現在置を算出し続ける。これにより、ARマーカ10が認識できているときよりも、現実空間とCG空間との座標合わせの精度が低下するが、ゲームを中断しなければならないほどのキャラクタ等の表示ズレを抑制できる。つまり、ARマーカのロストに起因するゲームの中断への耐性を高める事ができる。
 また、敵キャラクタ7などのNPCの制御などホスト機能を担っていたゲーム参加機において、ARマーカ10を認識できない状態に陥ったとしても、別のゲーム参加機がホスト機能を代行することで、マーカのロストに起因するNPCなどの表示位置ズレなどを抑制し、ゲームを継続させることができる。
 尚、本実施形態では、構成要素を適宜変更・追加・省略することができる。
 例えば、ホスト機能発現機の切り換えに関連して、ARマーカ10を認識できなくなった時に「認識不能信号」を発信し、認識不能信号の有無によってマーカ認識状態を管理する構成であったが、反対にARマーカ10を認識できている時に「認識信号」を送信する構成としても良い。そして「認識信号」が受信されている間は、送信元のマーカ認識状態525を「In Sight(認識中)」とし、「認識信号」が送信されていない機体のマーカ認識状態525を「LOST(認識不能)」に設定すると良い。
 また、発現優先順位は、ゲーム前準備処理で設定した初期値をゲームプレイ中に適宜変更することも可能である。例えば図24に示すように、ホスト機能実行処理にて、処理部200は、他機全てから最新のARマーカ10に対する相対距離Lcを取得し(ステップS250)、取得した相対距離Lcに自機の最新の相対距離Lcを含めて、距離の大きい順にソートして、ソートされた順番に発現優先順位523を再設定し配信する(ステップS254)。尚、ホスト機能を発現していないゲーム装置1500の処理部200は、例えば、図17のステップS304に次いで、新しい発現優先順位523を受信した場合には、自機の記憶部500に記憶されているゲーム参加機登録データ520の発現優先順位523を更新することとする(図17参照)。
 ARマーカ10から離れているゲーム装置1500ほど、より広い範囲を撮影できるのでARマーカ10がロストし難くなる効果が期待される。よって、相対距離Lcの大きい順に発現優先順位523を再設定することで、ホスト機能の発現する機体の切り換え頻度を下げることができる。
 〔第2実施形態〕
 次に、第2実施形態について説明する。本実施形態は、基本的には第1実施形態と同様に実現されるが、複数のゲーム装置ではなく、複数のハンドヘルド型ユーザ端末を有する単独のゲーム装置を用いてマルチプレイを実現する点が異なる。尚、第1実施形態と同様の構成要素については同じ符号を付与して詳細な説明は省略し、主に第1実施形態との差異について述べることとする。
 図25は、本実施形態におけるゲーム装置1500Bの構成例を示す図である。ゲーム装置1500Bは、制御基板1550を内蔵するゲーム装置本体1501と、無線接続式の複数のユーザ端末1590とを有する。プレーヤは、各々1台のユーザ端末1590を第1実施形態のゲーム装置1500と同様にして持ち運び、ユーザ端末1590をARマーカ10にかざすようにしてプレイする。
 ユーザ端末1590は、無線式のゲームコントローラに相当する。ユーザ端末1590には、第1実施形態のゲーム装置1500と同様に、CCDカメラモジュール1516が装置本体の裏面方向を撮影するように、装置本体の裏面側に設けられている。また、ユーザ端末1590には、端末制御基板1560、3軸ジャイロ1556や加速度センサ1557、無線通信モジュール1553が内蔵されている。
 ユーザ端末1590のCCDカメラモジュール1516で撮影された画像データや、3軸ジャイロ1556、3軸加速度センサ1557で検出された情報は、無線通信モジュール1553による無線通信を介して、端末識別情報と対応づけてゲーム装置本体1501に送信される。ゲーム装置本体1501は、受信したそれらの情報に基づいて、第1実施形態と同様にしてゲーム進行制御を行うとともに、各ユーザ端末1590別のゲーム画面を生成して、それぞれのユーザ端末1590へ生成したゲーム画面を表示させるための画像データを送信する。各ユーザ端末1590は、受信した画面データに基づいてタッチパネル1506にてARゲームのゲーム画面を表示する。
 図26は、本実施形態における機能構成例を示す機能ブロック図である。図27は、本実施形態におけるゲーム演算部の機能構成例を示す機能ブロック図である。
 本実施形態の機能構成は、基本的には第1実施形態のそれと同様であるが、入力及び音声、画像の出力がユーザ端末1590にて行われる構成となっている。但し、ユーザ端末1590にはホスト機/ゲスト機の区別は無い。よって、第1実施形態における自機/他機に係る機能部は、本実施形態ではユーザ端末に係る機能部に代わる。
 具体的には、図27に示すように、第1実施形態のゲーム参加管理制御部204に代えて、ユーザ端末1590とゲーム装置本体1501との通信接続を確立し、アドホックモードでの通信を実現するための端末の登録に係る端末管理制御部204Bを含む。また、第1実施形態の自機情報算出部206は端末情報算出部206Bに代わり、第1実施形態の自機情報送信制御部220及び他機情報受信制御部221は省略される。また、ホスト機能発現判断部224は、本実施形態では、いずれのユーザ端末1590のカメラを敵キャラクタ7の制御用の基準視点とするかを判断する機能部となる。
 図26に示すように、記憶部500に格納されるデータも基本的には第1実施形態と同様であるが次の様な差異がある。
 先ず、第1実施形態のゲーム参加機登録データ520は、端末登録データ520Bに代わる。端末登録データ520Bは、例えば図28に示すように、ユーザ端末1590の識別情報を示す端末機ID521Bと対応づけて、アドレス情報522、第1実施形態の発現優先順位523に変わる基準視点優先順位523B、プレーヤキャラクタ種類524、マーカ認識状態525、基準視点フラグ527を対応付けて格納する。
 基準視点フラグ527は、当該端末に搭載されているCCDカメラモジュール1516が、敵キャラクタ7などのNPCの制御を行う視点として選択されていることを示すフラグである。
 また、第1実施形態の自機情報キュー530は、端末別に設けられる端末情報キュー530Bに代わる。例えば図29に示すように、端末情報キュー530Bは、算出時刻532と対応づけて、ARマーカ10に対する当該ユーザ端末の相対位置533及び相対姿勢534と、相対距離535とを対応付けて格納する。また、端末情報キュー530Bは、第1実施形態の現在位置537及び現在姿勢538に相当する端末現在位置537B及び端末現在姿勢538Bを格納する。
 また、本実施形態では、ホスト機能発現機の設定の変わりに、敵キャラクタ7等の制御をするための基準視点を何れかのユーザ端末1590(正確にはそれに搭載されたCCDカメラモジュール1516)から選択・切り換えするので、本実施形態の記憶部500には第1実施形態のホスト機能継承タイミング562の代わりに基準視点切換タイミング562Bが記憶される(図26参照)。
 図30は、本実施形態における主たる処理の流れを説明するためのフローチャートである。基本的には、第1実施形態のそれと同様であるが、本実施形態ではホスト/ゲストの区別が無いのでゲスト機に関連するステップは省略されている。また、自機・他機の区別は無く、等しくユーザ端末1590として扱われる。
 具体的には、次のような違いがある。
 第1実施形態のステップS2に代えて、処理部200はユーザ端末1590との間の通信接続を確立し、端末登録データ520Bを生成する(ステップS2B)。この際、第1実施形態のステップS10の発現優先順位523の設定と同様にして、基準視点優先順位523Bを設定する。
 また、第1実施形態のステップS4に代えて、各ユーザ端末1590別にプレーヤキャラクタの選択処理を実行し、選択結果を端末登録データ520Bのプレーヤキャラクタ種類524に格納する(ステップS12B)。
 また、処理部200は、ゲーム空間の初期化を行った後(ステップS14)、ゲームを開始したならば(ステップS24)、第1実施形態の自機情報算出処理に代えてユーザ端末1590毎に端末情報算出処理を実行する(ステップS32B)。
 端末情報算出処理は、例えば図31に示すように、基本的には第1実施形態の自機情報算出処理と同様であるが、第1実施形態のステップS60に代えて、対象とするユーザ端末1590のCCDカメラモジュール1516で撮影した画像データを取得・キャプチャする処理を行う(ステップS60B)。
 また、ARマーカ10を検出できた場合には、当該ユーザ端末のマーカ認識状態525を認識状態「In Sight」に設定するステップが追加されている。(ステップS69)。同様に、ARマーカ10を検出できなかった場合には、マーカ認識状態525を認識不能「LOST」に設定するステップが追加されている(ステップS77)。
 その他のステップについては、「自機」を「ユーザ端末」に、「自機情報キュー」を「端末情報キュー」に読み替えると良い(ステップS68B、S72B、S74B、S76B、S80B、S82B)。
 図30のフローチャートに戻って、本実施形態では、第1実施形態のステップS110(ホスト機能発現機設定処理)に代えて、基準視点設定処理を実行する(ステップS110B)。
 図32は、基準視点設定処理の流れを説明するためのフローチャートである。基本的には、第1実施形態のホスト機能発現機設定処理と同様であるが、マーカ認識状態の監視に係るステップは省略されている。他は、「自機」「他機」を「ユーザ端末」に読み換え(ステップS140B、S142B、S144B)、「ホスト機能継承タイミング」を「基準視点切換タイミング」に読み替えると良い(ステップS146B)。
 図30のフローチャートに戻って、本実施形態では、第1実施形態のステップS150、S300~S304は省略され、第1実施形態のステップS152(ホスト機能実行処理)に代えて、キャラクタ制御処理を実行する(ステップS152B)。
 図33は、キャラクタ制御処理の流れを説明するためのフローチャートである。同処理は、基本的には第1実施形態のホスト機能実行処理と同様の流れを有するが、次のような差異がある。
 先ず、第1実施形態におけるステップS160を省略し、基本領域設定処理を実行する(ステップS162B)。第1実施形態の基本領域設定処理では、「ゲーム参加機」毎に相対距離Lcを算出したが、本実施形態では、「ユーザ端末1590」毎に相対距離Lcを算出することとする点が異なり、他は同じ処理である(図22参照)。そして、基本領域設定処理に次いで、ユーザ端末1590毎に要素領域設定処理を実行する(ステップS172B)。
 また、基本領域13と要素領域14との重合領域とを求めて配置領域12を設定し、敵キャラクタ7を動作制御したならば(ステップS220~S222)、処理部200は、第1実施形態のステップS224に代えて基準視点切換タイミング562Bを参照し、切換タイミングから所定時間経過しているかを判定する(ステップS224B)。
 図30のフローチャートに戻って、本実施形態では処理部200はユーザ端末1590毎にループAを実行して端末別のゲーム画面の生成とその表示処理を行う(ステップS309~S317)。
 尚、本実施形形態は、単独のゲーム装置1500Bにより実現されるに限らず、例えばインターネットを開始して接続されるスマートフォンや携帯型ゲーム装置(ユーザ端末1590相当)と、所定のサーバ装置(ゲーム装置本体1501相当)により実現することもできる。
 〔変形例〕
 以上、本発明を適用した実施形態について説明したが、本発明の形態がこれらに限定されるものではなく、適宜構成要素の追加・省略・変更などを施すことができる。
 例えば、第1実施形態においてゲーム装置1500としたコンピュータは、プレーヤ視点となる撮像素子と、姿勢変化を検出するジャイロや加速度センサとを搭載し、ゲームプログラムを実行可能であれば、携帯型ゲーム装置などの他、例えばスマートフォンやパソコン、携帯電話機などの電子機器を「ゲーム装置」や「ユーザ端末」としても良い。
 また、ゲームのジャンルはシューティングゲームに限らず、適宜設定することができるのは勿論である。
 また、ゲーム装置やユーザ端末の画像表示部360を裸眼立体視可能な表示装置(例えばパララックスバリア方式やレンチキュラ方式など)で構成し、ARマーカ10に対するゲーム装置やユーザ端末の相対位置・相対姿勢に応じて、立体的な画像を表示制御することとしてもよい。その場合、CCDカメラモジュール1516で撮影されたライブビューの画像を最遠景に設定し、ゲーム空間(仮想三次元空間)の座標系上に配置されるキャラクタ等(オブジェクト)を立体的に表示制御するとしてもよい。このようにすることで、例えば、ARマーカ10に対して回り込むようにゲーム装置やユーザ端末を移動させると、ARマーカ10を基準に出現するオブジェクト(上記実施形態の場合は敵キャラクタ)を、回り込んで立体視し、奥行き感を得ることが可能となる。
 また、第1実施形態において、ゲーム装置1500の姿勢検出部108で検出された姿勢を各ゲーム装置1500同士で送受して、当該ゲーム装置1500に対応するキャラクタの表示姿勢を、対応するゲーム装置1500の姿勢に応じて変化させるように制御することとしてもよい。第2実施形態においても同様であり、各ユーザ端末1590の姿勢検出部108で検出された姿勢をゲーム装置本体1501が受信し、各ユーザ端末1590に対応するキャラクタの表示姿勢を、対応するユーザ端末1590の姿勢に応じて変化させるように制御するとしてもよい。
  10…ARマーカ
  12…配置領域
  13…基本領域
  14…要素領域
  104…撮像部
  108…姿勢検出部
  110…加速度検出部
  200…処理部
  202…ゲーム演算部
  204…ゲーム参加管理制御部
  205…発現優先順設定部
  206…自機情報算出部
  206B…位置関係算出部
  207…相対位置算出部
  208…位置変化抑制制御部
  209…現在位置決定部
  210…相対姿勢算出部
  211…現在姿勢決定部
  212…重み付け設定部
  220…自機情報送信制御部
  221…他機情報受信制御部
  222…認識状態判定部
  223…認識不能信号送信制御部
  224…ホスト機能発現判断部
  230…キャラクタ表示制御部
  231…領域設定部
  232…基本領域設定部
  233…要素領域設定部
  234…配置領域設定部
  235…NPC制御部
  236…制御開始時特殊制御部
  237…移動方向制御部
  249…ホスト機能実行制御部
  500…記憶部
  504…ゲームクログラム
  512…ARマーカ登録データ
  514…奥行関数設定データ
  520…ゲーム参加機登録データ
  523…発現優先順位
  524…プレーヤキャラクタ種類
  525…マーカ認識状態
  526…ホスト機能発現フラグ
  530…自機情報キュー
  533…相対位置
  534…相対姿勢
  535…相対距離
  537…現在位置
  538…現在姿勢
  541…プレイデータ
  544…敵キャラクタ配置情報キュー
  550…基本領域設定データ
  552…要素領域設定データ
  554…配置領域設定データ
  560…仮想3次元空間データ
  562…ホスト機能継承タイミング
  1500…ゲーム装置
  1506…タッチパネル
  1516…CCDカメラモジュール
  1550…制御基板
  1556…3軸ジャイロ
  1557…3軸加速度センサ
  CM、CM1~CM3…仮想カメラ
  Db…奥行
  PL、PL1~PL3…プレーヤPL
  PC、PC1~PC2…プレーヤキャラクタ
  AL1~AL4…光軸

Claims (16)

  1.  撮影部、表示部及び通信部を備えたコンピュータに、他機と通信させることで、拡張現実空間でのマルチプレイ型のゲームを実行させるためのプログラムであって、
     前記撮影部によりマーカが撮影された場合に前記表示部のライブビュー内にキャラクタを合成表示させることと、
     前記マーカの撮影画像を用いて、前記マーカに対する自機の位置を示す情報を少なくとも含む自機位置情報を算出することと、
     前記他機から、前記マーカに対する前記他機の位置を示す情報を少なくとも含む他機位置情報を含む他機情報を受信することと、
     前記自機位置情報及び前記他機情報を用いて、前記拡張現実空間中の前記キャラクタの表示位置を制御することと、
     を前記コンピュータに実行させるためのプログラム。
  2.  前記自機位置情報には、前記マーカに対する前記自機の距離を示す情報が含まれ、
     前記他機位置情報には、前記マーカに対する前記他機の距離を示す情報が含まれ、
     前記自機位置情報を算出することは、前記マーカの撮影画像を用いて、前記マーカに対する自機の距離を示す情報を算出することを含む、
     請求項1に記載のプログラム。
  3.  前記マーカは、基準方向が表された規定形状を有し、
     前記自機位置情報には、前記マーカに対する前記自機の相対的な位置関係の情報が含まれ、
     前記他機位置情報には、前記マーカに対する前記他機の相対的な位置関係の情報が含まれ、
     前記自機位置情報を算出することは、前記マーカの撮影画像中の前記マーカの前記基準方向を用いて、前記マーカに対する自機の相対的な位置関係の情報を算出することを含む、
     請求項1又は2に記載のプログラム。
  4.  前記自機位置情報及び前記他機情報を用いて、前記キャラクタを表示させる前記拡張現実空間中の領域を設定すること、を前記コンピュータに更に実行させ、
     前記キャラクタの表示位置を制御することは、前記領域内に前記キャラクタを表示させることを含む、
     請求項1~3の何れか一項に記載のプログラム。
  5.  前記領域を設定することは、前記自機位置情報が示す位置関係で前記マーカを撮影した場合の自機撮影範囲と、前記他機情報に含まれる他機位置情報が示す位置関係で前記マーカを撮影した場合の他機撮影範囲とを用いて、前記領域を設定することを含む、
     請求項4に記載のプログラム。
  6.  前記領域を設定することは、前記自機撮影範囲と前記他機撮影範囲との重合範囲を少なくとも含むように前記領域を設定することを含む、
     請求項5に記載のプログラム。
  7.  前記領域を設定することは、前記自機位置情報が示す位置関係で且つ、前記マーカが写る範囲で撮影方向を変化させて前記マーカを撮影した場合の範囲を前記自機撮影範囲とし、前記他機位置情報が示す位置関係で且つ、前記マーカが写る範囲で撮影方向を変化させて前記マーカを撮影した場合の範囲を前記他機撮影範囲とすることを含む、
     請求項5又は6に記載のプログラム。
  8.  前記マーカは平面形状でなり、
     前記領域を設定することは、前記自機から前記マーカ方向への前記自機撮影範囲の奥行を、前記自機から見た前記マーカの平面方向に対する俯角を用いて変更することを含む、
     請求項5~7の何れか一項に記載のプログラム。
  9.  前記領域を設定することは、前記自機位置情報及び前記他機情報を用いて前記マーカから前記自機及び前記他機それぞれまでの距離を求め、当該距離に基づいて前記領域のサイズを設定することを含む、
     請求項4~8の何れか一項に記載のプログラム。
  10.  前記マーカには複数種類有り、
     前記領域を設定することは、
     前記撮影部により撮影された前記マーカの種類に基づいて前記領域の形状を設定することと、
     前記自機位置情報及び前記他機情報を用いて前記マーカから前記自機及び前記他機それぞれまでの距離を求め、当該距離に基づいて前記領域のサイズを設定することと、
     を含む、請求項4に記載のプログラム。
  11.  前記コンピュータは、当該コンピュータの姿勢を検出する姿勢検出部を備えており、
     前記他機情報には、前記他機の姿勢検出部で検出された姿勢の情報が含まれており、
     前記姿勢検出部で検出された前記自機の姿勢情報及び前記他機情報に含まれる前記他機の姿勢情報を用いて、前記キャラクタの表示姿勢を制御すること、を前記コンピュータに更に実行させるための、
     請求項1~10の何れか一項に記載のプログラム。
  12.  撮影部及び表示部を備えた複数のユーザ端末それぞれと通信可能なコンピュータが、前記ユーザ端末に対して、マルチプレイ型のゲームを実行させるためのプログラムであって、
     前記マルチプレイ型のゲームは、前記撮影部によりマーカが撮影された場合に前記表示部のライブビュー内にキャラクタを合成表示する拡張現実空間ゲームであり、
     前記ユーザ端末それぞれの前記マーカの撮影画像を用いて、前記マーカに対する当該ユーザ端末の位置関係を算出することと、
     前記ユーザ端末それぞれの前記位置関係を用いて、前記拡張現実空間中の前記キャラクタの表示位置を制御することと、
     を前記コンピュータに実行させるためのプログラム。
  13.  前記ユーザ端末は、当該ユーザ端末の姿勢を検出する姿勢検出部を備えており、
     前記ユーザ端末それぞれから当該ユーザ端末の姿勢検出部で検出された姿勢の情報を受信することと、
     前記姿勢の情報を用いて、前記キャラクタの表示姿勢を制御することと、
     を前記コンピュータに更に実行させるための請求項12に記載のプログラム。
  14.  請求項1~13の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
  15.  撮影部、表示部及び通信部を備え、他機と通信することで、拡張現実空間でのマルチプレイ型のゲームを実行するゲーム装置であって、
     前記撮影部によりマーカが撮影された場合に前記表示部のライブビュー内にキャラクタを合成表示する合成表示制御部と、
     前記マーカの撮影画像を用いて、前記マーカに対する自機の位置を示す情報を少なくとも含む自機位置情報を算出する自機位置情報算出部と、
     他機から、前記マーカに対する当該他機の位置を示す情報を少なくとも含む他機位置情報を含む他機情報を受信する他機情報受信部と、
     前記自機位置情報及び前記他機情報を用いて、前記拡張現実空間中の前記キャラクタの表示位置を制御するキャラクタ表示制御部と、
     を備えたゲーム装置。
  16.  撮影部及び表示部を備えた複数のユーザ端末それぞれと通信して、マルチプレイ型のゲームを前記ユーザ端末に実行させる制御を行うコンピュータであって、
     前記マルチプレイ型のゲームは、前記撮影部によりマーカが撮影された場合に前記表示部のライブビュー内にキャラクタを合成表示する拡張現実空間ゲームであり、
     前記ユーザ端末それぞれの前記マーカの撮影画像を用いて、前記マーカに対する当該ユーザ端末の位置関係を算出する位置関係算出部と、
     前記ユーザ端末それぞれの前記位置関係を用いて、前記拡張現実空間中の前記キャラクタの表示位置を制御するキャラクタ表示制御部と、
     を備えたコンピュータ。
PCT/JP2012/072141 2011-09-14 2012-08-31 プログラム、記憶媒体、ゲーム装置及びコンピュータ WO2013038923A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/345,123 US9155967B2 (en) 2011-09-14 2012-08-31 Method for implementing game, storage medium, game device, and computer
EP12831209.7A EP2756872B1 (en) 2011-09-14 2012-08-31 Program, storage medium, gaming device and computer

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-200816 2011-09-14
JP2011200816A JP5718197B2 (ja) 2011-09-14 2011-09-14 プログラム及びゲーム装置

Publications (1)

Publication Number Publication Date
WO2013038923A1 true WO2013038923A1 (ja) 2013-03-21

Family

ID=47883156

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/072141 WO2013038923A1 (ja) 2011-09-14 2012-08-31 プログラム、記憶媒体、ゲーム装置及びコンピュータ

Country Status (4)

Country Link
US (1) US9155967B2 (ja)
EP (1) EP2756872B1 (ja)
JP (1) JP5718197B2 (ja)
WO (1) WO2013038923A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105935494A (zh) * 2015-03-05 2016-09-14 株式会社万代南梦宫娱乐 计算机系统、游戏装置及用于控制游戏画面的显示的方法
WO2020217727A1 (ja) * 2019-04-22 2020-10-29 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006004197A1 (de) * 2006-01-26 2007-08-09 Klett, Rolf, Dr.Dr. Verfahren und Vorrichtung zur Aufzeichnung von Körperbewegungen
WO2014085823A1 (en) * 2012-12-02 2014-06-05 Bachir Babale Virtual decals for precision alignment and stabilization of motion graphics on mobile video
WO2014091824A1 (ja) * 2012-12-10 2014-06-19 ソニー株式会社 表示制御装置、表示制御方法およびプログラム
WO2014119097A1 (ja) 2013-02-01 2014-08-07 ソニー株式会社 情報処理装置、端末装置、情報処理方法及びプログラム
US10319145B2 (en) * 2013-03-14 2019-06-11 Intel Corporation Asynchronous representation of alternate reality characters
US10930038B2 (en) 2014-06-10 2021-02-23 Lab Of Misfits Ar, Inc. Dynamic location based digital element
US9619940B1 (en) 2014-06-10 2017-04-11 Ripple Inc Spatial filtering trace location
US12008697B2 (en) 2014-06-10 2024-06-11 Ripple, Inc. Of Delaware Dynamic location based digital element
US10026226B1 (en) 2014-06-10 2018-07-17 Ripple Inc Rendering an augmented reality object
US9646418B1 (en) * 2014-06-10 2017-05-09 Ripple Inc Biasing a rendering location of an augmented reality object
JP6562197B2 (ja) * 2014-06-20 2019-08-21 パナソニックIpマネジメント株式会社 画像処理方法および画像処理システム
JP5755785B1 (ja) * 2014-07-25 2015-07-29 ガンホー・オンライン・エンターテイメント株式会社 端末装置
JP6637650B2 (ja) 2014-10-31 2020-01-29 ティフォン インコーポレーテッドTyffon Inc. ゲームプログラム、コンピュータの制御方法、情報処理装置、画像出力装置、画像出力方法および画像出力プログラム
US20170061700A1 (en) * 2015-02-13 2017-03-02 Julian Michael Urbach Intercommunication between a head mounted display and a real world object
US9760790B2 (en) 2015-05-12 2017-09-12 Microsoft Technology Licensing, Llc Context-aware display of objects in mixed environments
US10511895B2 (en) * 2015-10-09 2019-12-17 Warner Bros. Entertainment Inc. Cinematic mastering for virtual reality and augmented reality
WO2017068824A1 (ja) * 2015-10-21 2017-04-27 シャープ株式会社 映像生成装置、映像生成装置の制御方法、表示システム、映像生成制御プログラム、およびコンピュータ読み取り可能な記録媒体
US10532271B2 (en) * 2015-10-23 2020-01-14 Chol Whan OH Data processing method for reactive augmented reality card game and reactive augmented reality card game play device, by checking collision between virtual objects
US10293253B2 (en) * 2015-11-27 2019-05-21 Gree, Inc. Program, game control method, and information processing apparatus
US10565829B1 (en) * 2016-06-27 2020-02-18 First Gaming Group, LLC Skill-based bingo gaming system and method of using the same
JP2018005091A (ja) * 2016-07-06 2018-01-11 富士通株式会社 表示制御プログラム、表示制御方法および表示制御装置
WO2018020661A1 (ja) * 2016-07-29 2018-02-01 三菱電機株式会社 表示装置、表示制御装置および表示制御方法
US10493363B2 (en) * 2016-11-09 2019-12-03 Activision Publishing, Inc. Reality-based video game elements
JP6603438B2 (ja) * 2017-04-03 2019-11-06 株式会社Orso 情報処理装置、プログラム及び方法
JP6926813B2 (ja) * 2017-08-15 2021-08-25 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US20190057180A1 (en) * 2017-08-18 2019-02-21 International Business Machines Corporation System and method for design optimization using augmented reality
JP6590324B2 (ja) 2017-12-28 2019-10-16 株式会社コナミデジタルエンタテインメント 情報処理装置、情報処理装置のプログラム、情報処理システム、及び、表示方法
JP6857795B2 (ja) * 2017-12-28 2021-04-14 株式会社コナミデジタルエンタテインメント 情報処理装置、情報処理装置のプログラム、情報処理システム、及び、表示方法
WO2019141879A1 (en) * 2018-01-22 2019-07-25 The Goosebumps Factory Bvba Calibration to be used in an augmented reality method and system
EP3542877A1 (en) * 2018-03-20 2019-09-25 InterDigital CE Patent Holdings Optimized content sharing interaction using a mixed reality environment
US11403823B2 (en) 2019-02-14 2022-08-02 Lego A/S Toy system for asymmetric multiplayer game play
US10593128B1 (en) * 2019-08-20 2020-03-17 Capital One Services, Llc Using augmented reality markers for local positioning in a computing environment
US11086406B1 (en) 2019-09-20 2021-08-10 Facebook Technologies, Llc Three-state gesture virtual controls
US11189099B2 (en) 2019-09-20 2021-11-30 Facebook Technologies, Llc Global and local mode virtual object interactions
US10991163B2 (en) 2019-09-20 2021-04-27 Facebook Technologies, Llc Projection casting in virtual environments
US11170576B2 (en) * 2019-09-20 2021-11-09 Facebook Technologies, Llc Progressive display of virtual objects
US11176745B2 (en) 2019-09-20 2021-11-16 Facebook Technologies, Llc Projection casting in virtual environments
JP6940119B2 (ja) * 2019-11-30 2021-09-22 株式会社Embedded Wings マルチプレイ型ゲーム実行システム、マルチプレイ型ゲーム実行方法、およびマルチプレイ型ゲーム実行プログラム
US11175730B2 (en) 2019-12-06 2021-11-16 Facebook Technologies, Llc Posture-based virtual space configurations
CN111582148B (zh) * 2020-05-06 2023-06-06 中南民族大学 京剧人物识别方法、设备、存储介质及装置
US11257280B1 (en) 2020-05-28 2022-02-22 Facebook Technologies, Llc Element-based switching of ray casting rules
US11256336B2 (en) 2020-06-29 2022-02-22 Facebook Technologies, Llc Integration of artificial reality interaction modes
US11227445B1 (en) 2020-08-31 2022-01-18 Facebook Technologies, Llc Artificial reality augments and surfaces
US11176755B1 (en) 2020-08-31 2021-11-16 Facebook Technologies, Llc Artificial reality augments and surfaces
US11178376B1 (en) 2020-09-04 2021-11-16 Facebook Technologies, Llc Metering for display modes in artificial reality
US11113893B1 (en) 2020-11-17 2021-09-07 Facebook Technologies, Llc Artificial reality environment with glints displayed by an extra reality device
US11409405B1 (en) 2020-12-22 2022-08-09 Facebook Technologies, Llc Augment orchestration in an artificial reality environment
US11461973B2 (en) 2020-12-22 2022-10-04 Meta Platforms Technologies, Llc Virtual reality locomotion via hand gesture
US11294475B1 (en) 2021-02-08 2022-04-05 Facebook Technologies, Llc Artificial reality multi-modal input switching model
US11762952B2 (en) 2021-06-28 2023-09-19 Meta Platforms Technologies, Llc Artificial reality application lifecycle
US12008717B2 (en) 2021-07-07 2024-06-11 Meta Platforms Technologies, Llc Artificial reality environment control through an artificial reality environment schema
US11798247B2 (en) 2021-10-27 2023-10-24 Meta Platforms Technologies, Llc Virtual object structures and interrelationships
US11748944B2 (en) 2021-10-27 2023-09-05 Meta Platforms Technologies, Llc Virtual object structures and interrelationships
KR102581380B1 (ko) * 2021-10-29 2023-09-21 주식회사 엘지유플러스 3rd party AR/MR 촬영 장치 및 방법
TWI815782B (zh) * 2022-11-27 2023-09-11 互動細胞股份有限公司 擴增實境影像識別的組合方法
US11947862B1 (en) 2022-12-30 2024-04-02 Meta Platforms Technologies, Llc Streaming native application content to artificial reality devices
US11991222B1 (en) 2023-05-02 2024-05-21 Meta Platforms Technologies, Llc Persistent call control user interface element in an artificial reality environment

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950540A (ja) * 1995-08-09 1997-02-18 Hitachi Ltd 画像生成方法
JP2001195601A (ja) * 2000-01-13 2001-07-19 Mixed Reality Systems Laboratory Inc 複合現実感提示装置及び複合現実感提示方法並びに記憶媒体
JP2004234253A (ja) * 2003-01-29 2004-08-19 Canon Inc 複合現実感呈示方法
JP2005165614A (ja) * 2003-12-02 2005-06-23 Canon Inc 画像合成装置および画像合成方法
JP2006072668A (ja) * 2004-09-01 2006-03-16 Sony Computer Entertainment Inc 画像処理装置、ゲーム装置および画像処理方法
JP2006127468A (ja) * 2004-09-28 2006-05-18 Canon Inc 情報処理方法および装置
JP2010049690A (ja) 2008-08-19 2010-03-04 Sony Computer Entertainment Europe Ltd エンタテイメント装置、システム、及び方法
JP2011062390A (ja) * 2009-09-18 2011-03-31 Azuraito:Kk ゲーム装置の制御プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030062675A1 (en) 2001-09-28 2003-04-03 Canon Kabushiki Kaisha Image experiencing system and information processing method
JP3584230B2 (ja) * 2001-09-28 2004-11-04 キヤノン株式会社 映像体験システム、情報処理方法およびプログラム
JP4262011B2 (ja) * 2003-07-30 2009-05-13 キヤノン株式会社 画像提示方法及び装置
WO2006025137A1 (ja) 2004-09-01 2006-03-09 Sony Computer Entertainment Inc. 画像処理装置、ゲーム装置および画像処理方法
GB2449694B (en) * 2007-05-31 2010-05-26 Sony Comp Entertainment Europe Entertainment system and method
WO2011109126A1 (en) 2010-03-05 2011-09-09 Sony Computer Entertainment America Llc Maintaining multiple views on a shared stable virtual space

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950540A (ja) * 1995-08-09 1997-02-18 Hitachi Ltd 画像生成方法
JP2001195601A (ja) * 2000-01-13 2001-07-19 Mixed Reality Systems Laboratory Inc 複合現実感提示装置及び複合現実感提示方法並びに記憶媒体
JP2004234253A (ja) * 2003-01-29 2004-08-19 Canon Inc 複合現実感呈示方法
JP2005165614A (ja) * 2003-12-02 2005-06-23 Canon Inc 画像合成装置および画像合成方法
JP2006072668A (ja) * 2004-09-01 2006-03-16 Sony Computer Entertainment Inc 画像処理装置、ゲーム装置および画像処理方法
JP2006127468A (ja) * 2004-09-28 2006-05-18 Canon Inc 情報処理方法および装置
JP2010049690A (ja) 2008-08-19 2010-03-04 Sony Computer Entertainment Europe Ltd エンタテイメント装置、システム、及び方法
JP2011062390A (ja) * 2009-09-18 2011-03-31 Azuraito:Kk ゲーム装置の制御プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2756872A4

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105935494A (zh) * 2015-03-05 2016-09-14 株式会社万代南梦宫娱乐 计算机系统、游戏装置及用于控制游戏画面的显示的方法
CN105935494B (zh) * 2015-03-05 2021-03-30 株式会社万代南梦宫娱乐 计算机系统、游戏装置及用于控制游戏画面的显示的方法
WO2020217727A1 (ja) * 2019-04-22 2020-10-29 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US12008702B2 (en) 2019-04-22 2024-06-11 Sony Group Corporation Information processing device, information processing method, and program

Also Published As

Publication number Publication date
JP2013059541A (ja) 2013-04-04
US9155967B2 (en) 2015-10-13
EP2756872B1 (en) 2017-12-27
EP2756872A4 (en) 2015-07-08
EP2756872A1 (en) 2014-07-23
US20140357366A1 (en) 2014-12-04
JP5718197B2 (ja) 2015-05-13

Similar Documents

Publication Publication Date Title
JP5718197B2 (ja) プログラム及びゲーム装置
JP5819686B2 (ja) プログラム及び電子機器
JP5474899B2 (ja) プログラム、情報記憶媒体及びゲーム装置
TWI468734B (zh) 用於在共享穩定虛擬空間維持多個視面的方法、攜帶式裝置以及電腦程式
JP5586545B2 (ja) ゲームシステム、携帯型ゲーム装置、情報処理部の制御方法、および情報処理部の制御プログラム
TWI449953B (zh) 經由至少第一和第二裝置而可觀看之互動空間的產生方法、及用以共享可攜式裝置間之虛擬實境的可攜式裝置
US9513700B2 (en) Calibration of portable devices in a shared virtual space
JP5122659B2 (ja) 情報処理プログラム、情報処理方法、情報処理装置及び情報処理システム
US9495800B2 (en) Storage medium having stored thereon image processing program, image processing apparatus, image processing system, and image processing method
US9278281B2 (en) Computer-readable storage medium, information processing apparatus, information processing system, and information processing method
US20160292924A1 (en) System and method for augmented reality and virtual reality applications
US8608563B2 (en) Method for exchanging NPC data between computer devices
CN110755845B (zh) 虚拟世界的画面显示方法、装置、设备及介质
JP5675260B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム、及び、画像処理方法
US8684837B2 (en) Information processing program, information processing system, information processing apparatus, and information processing method
JP5939733B2 (ja) 画像処理プログラム、画像処理装置、画像処理システム、及び、画像処理方法
WO2015048890A1 (en) System and method for augmented reality and virtual reality applications
WO2015162991A1 (ja) 画像融合システム、情報処理装置、情報端末、および情報処理方法
JP2011215886A (ja) プログラム、情報記憶媒体、及び、画像生成装置
JP2013081620A (ja) ゲームシステム、ゲーム処理方法、ゲームプログラム、およびゲーム装置
JP2011251006A (ja) ゲームプログラム、携帯型ゲーム装置、ゲームシステム、及びゲーム方法
JP2023182760A (ja) ゲームプログラム、情報処理装置、および方法
JP5829090B2 (ja) ゲームシステム、ゲーム処理方法、ゲームプログラム、およびゲーム装置
WO2021220866A1 (ja) サーバ装置、端末装置、情報処理システム及び情報処理方法
JP2021126454A (ja) ゲームシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12831209

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14345123

Country of ref document: US