WO2021152906A1 - 画像処理システム、画像処理プログラム、および画像処理方法 - Google Patents

画像処理システム、画像処理プログラム、および画像処理方法 Download PDF

Info

Publication number
WO2021152906A1
WO2021152906A1 PCT/JP2020/035539 JP2020035539W WO2021152906A1 WO 2021152906 A1 WO2021152906 A1 WO 2021152906A1 JP 2020035539 W JP2020035539 W JP 2020035539W WO 2021152906 A1 WO2021152906 A1 WO 2021152906A1
Authority
WO
WIPO (PCT)
Prior art keywords
display
virtual
user
image
camera
Prior art date
Application number
PCT/JP2020/035539
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 EP20916924.2A priority Critical patent/EP4082638A4/en
Priority to JP2021574446A priority patent/JPWO2021152906A1/ja
Publication of WO2021152906A1 publication Critical patent/WO2021152906A1/ja
Priority to US17/868,810 priority patent/US20220362667A1/en

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/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/5252Changing parameters of virtual cameras using two or more virtual cameras concurrently or sequentially, e.g. automatically switching between fixed virtual cameras when a character changes room or displaying a rear-mirror view in a car-driving 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/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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • 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/25Output arrangements for video game devices
    • A63F13/26Output arrangements for video game devices having at least one additional display device, e.g. on the game controller or outside a game booth
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • 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
    • 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/55Controlling game characters or game objects based on the game progress
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems

Definitions

  • the present invention relates to an image processing system, an image processing program, and an image processing method capable of displaying an image on a plurality of displays.
  • Patent Document 1 As a prior art, there is a system in which a virtual object is placed in a virtual space and an image of the virtual space including the virtual object is displayed on a display (see, for example, Patent Document 1).
  • an object of the present invention is to provide an image processing system, an image processing program, and an image processing method capable of improving usability regarding the display of an image in a virtual space.
  • the present invention has adopted the following configuration.
  • the image processing system of the present invention is carried by a second user, a first display visible to the first user, a first input means for receiving the input of the first user, and visible to the second user. It is equipped with a portable second display. Further, the image processing system includes a first object arranging means, a first object controlling means, a first virtual camera arranging means, a second virtual camera arranging means, a second object arranging means, and a first display controlling means. , A second display control means is provided. The first object arranging means arranges the first object in the virtual space regardless of the positions of the first display and the first user in the real space. The first object control means controls the first object according to the input received by the first input means.
  • the first virtual camera arranging means arranges the first virtual camera at a position corresponding to the position of the first object in the virtual space.
  • the second virtual camera arranging means arranges the second virtual camera at the first position in the virtual space set according to the position of the second display with respect to the reference in the real space, and the posture of the second virtual camera. Is set to the first posture according to the posture of the second display in the real space.
  • the second object arranging means arranges the second object at the second position in the virtual space set according to the position of the second display with respect to the reference in the real space.
  • the first display control means causes the first display to display an image of the virtual space including the second object generated based on the first virtual camera.
  • the second display control means causes the second display to display an image of the virtual space including the first object generated based on the second virtual camera.
  • the second position may be the same position as the first position or may be a different position.
  • the "position corresponding to the position of the first object" may be the same position as the position of the first object, or may be a position different from the position of the first object.
  • the first object is set in the virtual space regardless of the position of the first display in the real space
  • the second object is set in the virtual space according to the position of the second display with respect to the reference in the real space.
  • the first virtual camera is arranged at a position in the virtual space corresponding to the position of the first object.
  • the second virtual camera is arranged in the virtual space according to the position of the second display with respect to the reference in the real space, and the posture of the second virtual camera is set according to the posture of the second display. Then, the image of the virtual space including the second object is displayed on the first display based on the first virtual camera, and the image of the virtual space including the first object is displayed on the second display based on the second virtual camera. Is displayed.
  • the first display can display an image viewed from a position corresponding to the position of the first object in the virtual space
  • the second display corresponds to the position of the second display with respect to the reference in the real space. It is possible to display an image of the virtual space viewed from the position of the virtual space. Therefore, the virtual space can be viewed from different viewpoints by the first user and the second user. Since the position of the second object is set in the virtual space in conjunction with the position of the second display in the real space, the first user can see the second object in the virtual space and the second user in the real space. The position can be grasped. In addition, the second user can see the first object in the virtual space according to the position and orientation of the second display in the real space.
  • the image processing system includes a second input means that accepts the input of the second user, a control means that affects the virtual space or the first object according to the input received by the second input means, and the control means. May be further provided.
  • control means may cause a predetermined object to appear in the virtual space in response to the input received by the second input means.
  • the first display control means causes the first display to display an image including the second object and the predetermined object
  • the second display control means includes the first object and the predetermined object. The image may be displayed on the second display.
  • a predetermined object can be made to appear in the virtual space in response to the input of the second user, and the predetermined object can be displayed on the first display and the second display.
  • control means may change the first object by using the predetermined object.
  • a predetermined object can be made to appear in response to the input of the second user, and the first object can be changed by using the predetermined object.
  • the image processing system may further include game control means.
  • the game control means controls a game using the first object.
  • the predetermined object may be an object that is advantageous or disadvantageous to the first object in the game.
  • the first display may be a head-mounted display.
  • the second display may include a camera that captures a real space in the rear direction.
  • the second virtual camera arranging means detects a marker arranged in the real space as the reference based on the image from the camera, and moves the marker to the first position according to the position of the second display with respect to the marker.
  • a second virtual camera may be arranged.
  • the second display control means may superimpose the image of the virtual space generated based on the second virtual camera on the image of the real space captured by the camera and display it on the second display. good.
  • the first user wears the head mount display and looks at the virtual space
  • the second user images the marker in the real space and virtualizes from the position corresponding to the position of the second display with respect to the marker.
  • the second user can see the virtual space from various viewpoints of the virtual space by moving or changing the direction in the real space, and sees the virtual space seen by the first user like the real space. be able to.
  • the image processing system may include a controller held by the first user or the second user.
  • the first display or the second display may be a head-mounted display.
  • the image processing system may include a camera capable of capturing the hand of the first user or the second user wearing the head-mounted display.
  • the image processing system may further include an instruction object arranging means and a third display control means.
  • the instruction object arranging means detects the hand of the first user or the second user or the controller based on the input image from the camera, and a virtual controller imitating the controller at the position of the hand.
  • An object is arranged, and an instruction object for instructing a position in the virtual space is arranged at a predetermined position of the controller object.
  • the third display control means causes the head-mounted display to display an image including the controller object and the instruction object.
  • a virtual controller object that imitates the controller is placed at the position of the hand, even if the user is wearing a head-mounted display, it is easy to operate using the controller while looking at the controller object. It can be carried out. Further, since the instruction object is provided at the predetermined position of the controller object, the position in the virtual space can be accurately instructed while looking at the instruction object, and the operability can be improved.
  • the image processing system may further include a camera that captures an image of the real space and a virtual object arranging means.
  • the virtual object arranging means detects a specific object existing in the real space based on the input image from the camera, and sets the virtual object corresponding to the specific object according to the position of the specific object in the real space. It is placed at a position in the virtual space.
  • the first display control means may display an image of the virtual space including the virtual object on the first display.
  • a virtual object corresponding to a real object existing in the real space can appear in the virtual space, and the virtual object can be displayed on the first display.
  • the second display control means may display an image of the virtual space including the virtual object on the second display.
  • a virtual object corresponding to a real object can be displayed on the second display as well.
  • the virtual object arranging means does not detect the specific object based on the input image from the camera after arranging the virtual object by detecting the specific object, the virtual object is placed. It may be kept in the virtual space.
  • the first display control means may display an image of the virtual space including the virtual object on the first display even when the specific object is no longer detected based on the input image from the camera. ..
  • the specific object can be detected by moving the camera or changing the direction of the camera. Even if it disappears, the virtual object can be kept in the virtual space.
  • the first display may be a head-mounted display.
  • the image processing system determines whether or not the first user has gone out of the predetermined range in the real space, and when it is determined that the first user has gone out of the predetermined range, the image processing system gives a predetermined notification to the first user.
  • Notification means and a second notification that determines whether or not the second user has entered the predetermined range, and if it is determined that the second user has entered the predetermined range, gives a predetermined notification to the second user. Means and may be provided.
  • the first user when the first user goes out of the predetermined range or the second user enters the predetermined range, the first user and the second user can be notified.
  • the first input means may be a controller capable of key input.
  • the first object control means may control the position or orientation of the first object in response to a key input to the first input means.
  • the first user can control the first object by key input.
  • the first virtual camera may be arranged at the position of the first object.
  • the image of the virtual space seen from the first object can be displayed on the first display.
  • the first virtual camera may be arranged at a position separated from the position of the first object by a predetermined distance so as to include the first object in the imaging range.
  • the image of the virtual space including the first object can be displayed on the first display from a position separated from the first object by a predetermined position.
  • the other invention may be a program executed by one or a plurality of computers included in the above image processing system. Further, another invention may be an image processing method performed in the above image processing system.
  • the first display can display an image viewed from a position corresponding to the position of the first object in the virtual space
  • the second display can display the image of the second display with respect to the reference in the real space. It is possible to display an image of the virtual space viewed from a position corresponding to the position.
  • FIG. 1 It is the figure which looked at the 1st HMD 10 and the virtual camera 111 from the right side, and shows the state which the posture of the virtual camera 111 changes in conjunction with the change of the posture of the 1st HMD 10.
  • the figure which shows an example of the method of detecting the position of the 1st HMD10, the 2nd HMD30 and the controller 18, 38 It is a figure which shows an example of the image displayed on the display 12 of the 1st HMD10, and is an example of the image when the 1st user is facing the front. It is a figure which shows an example of the image displayed on the display 12 of the 1st HMD10, and is an example of the image when the 1st user is facing the right side.
  • FIG. 10 shows an example of how the bullet object 112 is ejected into the virtual space in the state shown in FIG. It is a figure which shows an example of the image displayed on the display 22 of the smart device 20a, and is an example of the image when the second user a is in the position shown in FIG. The figure which shows an example of the image displayed on the display 22 of the smart device 20a after the 2nd user a moves closer to the 3rd user. The figure which shows an example of how the character 120a ejects a bullet object 122 in response to the operation with respect to the smart device 20a. It is a figure which shows an example of the image displayed on the display 32 of the 2nd HMD30, and is an example of the image when the virtual camera 131 is set to the 1st mode.
  • FIG. 1 It is a figure which shows an example of the image displayed on the display 32 of the 2nd HMD30, and is an example of the image when the virtual camera 131 is set to the 2nd mode.
  • Diagram showing an example of an image viewed by the user in the creation mode The figure which shows how a plurality of part objects 173 are arranged in a plane.
  • Diagram showing an example of grid lines for displaying the grid on which each part object is placed A diagram showing how a can 80 as a real object is arranged on a table in a real space.
  • the figure which shows how the virtual object 180 corresponding to a can 80 is arranged in a virtual space.
  • the figure which shows an example of the data D20 stored in each smart device 20 The figure which shows an example of the data D10 stored in the 1st HMD10.
  • the figure which shows an example of the data D60 stored in the information processing apparatus 60 A flowchart showing an example of the HMD process executed in the first HMD 10 or the second HMD 30.
  • a flowchart showing an example of smart device processing executed in the smart device 20 A flowchart showing an example of a game control process executed in the information processing device 60.
  • the image processing system 1 of the present embodiment is a system that allows a plurality of users to visually recognize an image of the same virtual space, and is, for example, a system for playing a game among a plurality of users.
  • the image processing system 1 of the present embodiment will be described with reference to the drawings.
  • FIG. 1 is a diagram showing an example of how an image of a virtual space is visually recognized by a plurality of users using the image processing system 1 of the present embodiment.
  • FIG. 2 is a diagram showing an example of the overall configuration of the image processing system 1.
  • FIG. 3 is a diagram showing an example of the configuration of the first HMD 10 (or the second HMD 30) included in the image processing system 1.
  • FIG. 4 is a diagram showing an example of the configuration of the smart device 20 included in the image processing system 1.
  • FIG. 5 is a diagram showing an example of the configuration of the controller 18 included in the image processing system 1.
  • the image processing system 1 includes a first head-mounted display 10 (hereinafter, referred to as “first HMD”) mounted on the first user and a second head mounted on the third user. Includes a mount display 30 (hereinafter referred to as "second HMD”).
  • first HMD first head-mounted display 10
  • second HMD mount display 30
  • the first HMD10 is attached to the head of the first user so as to cover both eyes of the first user.
  • the second HMD 30 is attached to the head of the third user so as to cover both eyes of the third user.
  • the first HMD10 and the second HMD30 are devices having basically the same configuration. Hereinafter, an example of the configuration of the first HMD10 and the second HMD30 will be described with reference to FIG.
  • the first HMD 10 has a right-eye display 12R and a left-eye display 12L.
  • the right-eye display 12R is visually recognized by the user's right eye through a lens (not shown).
  • the left-eye display 12L is visually recognized by the user's left eye through a lens (not shown).
  • any display device may be used, and for example, a liquid crystal display device or an organic EL display device may be used.
  • the right eye and the left eye of the first user are covered by the right eye display 12R and the left eye display 12L, respectively, and the field of view of the first user is substantially covered by the display 12. Therefore, when the first HMD 10 is attached, the first user sees only the image displayed on the display 12 without looking at the real space.
  • the display 12 may be a transmissive display. In this case, the first user can visually recognize the real space through the display 12 and can visually recognize the image displayed on the display 12.
  • a right camera 13R located on the right side when viewed from the user and a left camera 13L located on the left side when viewed from the user are provided.
  • the right camera 13R and the left camera 13L are cameras for receiving visible light and generating an image (RGB image).
  • the right camera 13R and the left camera 13L may be collectively referred to as “camera 13”.
  • a right infrared camera 14R located on the right side when viewed from the user and a left infrared camera 14L located on the left side when viewed from the user are provided.
  • the right infrared camera 14R and the left infrared camera 14L are cameras for receiving infrared light and generating an infrared image.
  • the right infrared camera 14R and the left infrared camera 14L are used to detect the user's hand.
  • the right infrared camera 14R and the left infrared camera 14L may be collectively referred to as “infrared camera 14”.
  • the x-axis which is the right axis of the first HMD 10
  • the y-axis which is the upward axis of the first HMD 10
  • the z-axis which is the front axis of the first HMD 10
  • the first HMD 10 includes an inertial sensor 15 (see FIG. 2) that detects acceleration and angular velocity in each of the x-axis, y-axis, and z-axis directions.
  • the attitude of the first HMD 10 can be calculated based on the acceleration and the angular velocity detected by the inertial sensor 15.
  • the first HMD 10 includes a communication module 16 for connecting to a network (LAN, WAN, Internet, etc.) (see FIG. 2).
  • a network LAN, WAN, Internet, etc.
  • the second HMD30 also has the same configuration as the first HMD10. Specifically, the second HMD 30 has left and right displays 32 (32L and 32R), left and right cameras 33 (33L and 33R), and left and right infrared cameras 34 (34L and 34R) (see FIG. 2).
  • the second HMD 30 includes an inertial sensor 35 that detects acceleration and angular velocity in each of the x-axis, y-axis, and z-axis directions, and a communication module 36 (see FIG. 2).
  • the first HMD10 and the second HMD30 may be collectively referred to as "HMD".
  • the image processing system 1 includes a smart device 20 carried by a second user.
  • the second user includes the second user a and the second user b.
  • the second user a grips the smart device 20a
  • the second user b grips the smart device 20b.
  • the smart devices 20a and 20b are not distinguished, they are referred to as "smart device 20".
  • the smart device 20 is, for example, a smartphone, a tablet terminal, or the like.
  • a display 22 is provided in front of the smart device 20.
  • the display 22 is, for example, a liquid crystal display device or an organic EL display device.
  • a camera 23 is provided on the back surface of the smart device 20 (the surface opposite to the display 22).
  • the camera 23 is a camera for receiving visible light and generating an RGB image.
  • the cameras 23 may be provided at a plurality of locations including a surface different from the back surface.
  • the smart device 20 is set with an x-axis which is an axis in the right direction of the smart device 20, a y-axis which is an upward axis, and a z-axis which is an axis in the front direction.
  • the smart device 20 includes an inertial sensor 24 (see FIG. 2) that detects acceleration and angular velocity in each of the x-axis, y-axis, and z-axis directions.
  • the smart device 20 can calculate the attitude of the smart device 20 based on the acceleration and the angular velocity detected by the inertial sensor 24.
  • the smart device 20 includes a communication module 25 for connecting to a network (see FIG. 2).
  • the image processing system 1 includes a controller 18 gripped by the first user and a controller 38 gripped by the third user.
  • a controller 18 gripped by the first user and a controller 38 gripped by the third user.
  • An example of the configuration of the controller 18 will be described with reference to FIG.
  • the controller 18 provides a plurality of buttons 181 (A button, B button, C button, D button) that can be pressed by the user, an analog stick 182 for giving a direction instruction, and a direction instruction. It is provided with a cross key 183 for performing. Further, the controller 18 includes an inertial sensor (see FIG. 2) that detects acceleration and angular velocity in each of the x-axis, y-axis, and z-axis directions shown in FIG. The attitude and movement of the controller 18 can be calculated based on the acceleration and the angular velocity detected by the inertial sensor of the controller 18. For example, it can be determined whether or not the controller 18 has been shaken based on the acceleration and the angular velocity from the inertial sensor. Further, the controller 18 includes a communication module for connecting to a network (see FIG. 2). Since the controller 38 has basically the same configuration as the controller 18, the description thereof will be omitted.
  • the image processing system 1 includes a marker 40, a display 50, and an information processing device 60 connected to the display 50 by wire or wirelessly.
  • the marker 40 is, for example, a card on which a predetermined image (for example, an image of an arrow) is printed, and is placed on the upper surface of a table or the like.
  • the display 50 is a stationary display device such as a television, and may be, for example, a liquid crystal display device or an organic EL display device.
  • the display 50 is a display device for a fourth user who does not carry an HMD (first HMD 10 or second HMD 30) or a smart device 20 to visually recognize an image in a virtual space.
  • the information processing device 60 includes one or more processors 61, a memory 62, and a communication module 63 for connecting to a network.
  • the information processing device 60 is a device for controlling the entire game of the present embodiment.
  • the information processing device 60 manages the positions and orientations of various virtual objects in the virtual space, and controls the virtual objects.
  • the memory 62 of the information processing device 60 stores character information about each character arranged in the virtual space.
  • the character information includes information regarding the position and posture of the character.
  • the information processing device 60 stores virtual camera information regarding the position and orientation of each virtual camera.
  • the information processing device 60 generates an image of the virtual space to be displayed on the display 50, and outputs the generated image to the display 50. Further, the information processing device 60 generates an image of the virtual space to be displayed on the first HMD 10 and the second HMD 30, and transmits the generated image to the first HMD 10 and the second HMD 30 via the network.
  • any information processing device such as a personal computer, a game device, a server device, a smartphone, or a tablet terminal may be used. Further, the information processing device 60 may be configured by a plurality of devices, or may be configured by connecting a plurality of devices via a network (LAN, WAN, Internet, etc.).
  • the first user to the fourth user are basically located in the same place (for example, the same room), and a plurality of people play a game using the image processing system 1.
  • the first user for example, performs an operation for a game on a mat 51 arranged at a position slightly away from the table.
  • the first user operates the game by, for example, shaking the controller 18 while viewing the images of the virtual space displayed on the left and right displays 12 of the first HMD 10.
  • the right-eye display 12R of the first HMD10 displays a virtual space image for the right eye generated based on the right virtual camera arranged in the virtual space
  • the left-eye display 12L of the first HMD10 is virtual.
  • a virtual space image for the left eye generated based on the left virtual camera placed in space is displayed.
  • the first user can visually recognize the stereoscopic image of the virtual space and can experience the virtual reality (VR) as if he / she exists in the virtual space.
  • VR virtual reality
  • the first user can play the game even if he / she is away from the table (marker 40) regardless of the position with respect to the marker 40 placed on the table. That is, even if the camera 13 of the first HMD 10 does not image the marker 40, the first user can visually recognize the image of the virtual space.
  • the second user is located near the table, images the marker 40 placed on the table with the camera 23 of the smart device 20, and plays the game while viewing the image displayed on the smart device 20.
  • the smart device 20 displays an image (hereinafter, referred to as a superimposed image) in which the image of the virtual space is superimposed on the image of the real space captured by the camera 23.
  • AR augmented reality
  • the smart device 20 does not necessarily have to display a superimposed image in which the image of the virtual space is superimposed on the image of the real space, and may display only the image of the virtual space. Even when only the image of the virtual space is displayed on the smart device 20, since the coordinate system of the virtual space is defined with reference to the marker 40 of the real space, the virtual space and the real space are associated with each other. Therefore, the second user can feel as if a virtual object in the virtual space exists in the real space. That is, the augmented reality (AR) in the present embodiment does not necessarily have to be displayed by superimposing the image of the virtual space on the image of the real space as long as the reference of the real space and the virtual space are associated with each other. , Only the image of the virtual space may be displayed on the display.
  • AR augmented reality
  • the third user is located near the table, images the marker 40 with the camera 33 of the second HMD 30, and operates the controller 38 while viewing the image of the virtual space displayed on the left and right displays 32 of the second HMD 30. Play the game at. Although details will be described later, there are cases where the third user can play the game even if the camera 33 of the second HMD 30 cannot image the marker 40.
  • the fourth user sees the image of the virtual space displayed on the display 50 and watches the game played between the first user and the third user.
  • FIG. 6 is a diagram for explaining a coordinate system of the virtual space set by photographing the marker 40 with the camera 23 of the smart device 20.
  • an image including the marker 40 is acquired.
  • the smart device 20 detects the marker 40 from the acquired image by using various image recognition techniques.
  • the smart device 20 calculates the position of the smart device 20 (camera 23) with respect to the marker 40 in the real space based on the size, shape, orientation, etc. of the image of the marker 40. do.
  • a predetermined vertex of the marker 40 is set as the origin O
  • a direction opposite to the direction of the arrow in the marker 40 is set as the X axis
  • a direction perpendicular to the arrow is set as the Z axis
  • a direction perpendicular to the marker 40 ( Set the XYZ coordinate system with the Y axis (upward) as the Y axis.
  • This XYZ coordinate system is used as a coordinate system for defining the position in the virtual space.
  • the smart device 20 sets the position of the smart device 20 with respect to the marker 40 (relative position from the marker) to the coordinate value (X1) of the XYZ coordinate system based on the image of the marker 40 included in the image acquired from the camera 23. , Y1, Z1).
  • the position of the smart device 20 with respect to the marker 40 in the real space and the position of the virtual camera in the virtual space match. Become.
  • the virtual space is imaged by the virtual camera and displayed on the display 22, so that the virtual object 101 is superimposed on the image of the real space as shown in FIG. Then, the virtual object 101 is displayed.
  • FIG. 7 is a diagram showing an example of a virtual space 100 including a plurality of virtual objects.
  • a virtual space is formed on the table.
  • Various virtual objects for forming the terrain in the virtual space 100 are arranged on the XZ plane (that is, on the table).
  • a ground object 141, a tree object 142, a river object 143, a bridge object 144, and a hill object 145 are arranged on the XZ plane.
  • the hill object 145 is a virtual object having a height
  • the character 110 is arranged on the top of the hill object 145.
  • the character 130 is initially arranged on the ground object 141.
  • the character 110 is a virtual object corresponding to the first user and is controlled by the first user. In the game of this embodiment, the position of the character 110 is fixed to the top of the hill object 145. The character 110 is holding the bullet object 112. For example, when the first user shakes the controller 18, the character 110 ejects the bullet object 112 into the virtual space 100. The ejected bullet object 112 moves in the virtual space 100. For example, when the bullet object 112 hits the character 130, the physical strength value of the character 130 decreases or the character 130 collapses. If the character 130 collapses, the first user wins.
  • the virtual camera 111 is arranged at a position corresponding to the position of the character 110. Specifically, the virtual camera 111 is arranged at a position that coincides with the character 110 (for example, the position of the eyes of the character 110). In FIG. 7, the position of the character 110 and the position of the virtual camera 111 appear to be out of alignment, but it is assumed that these positions actually match.
  • the virtual camera 111 includes a left virtual camera 111L and a right virtual camera 111R.
  • the left virtual camera 111L is a virtual camera for generating a virtual space image for the left eye displayed on the display 12L for the left eye of the first HMD 10.
  • the right virtual camera 111R is a virtual camera for generating a virtual space image for the right eye displayed on the right eye display 12R of the first HMD 10.
  • the left virtual camera 111L and the right virtual camera 111R are arranged in the virtual space 100 at a predetermined distance (for example, the distance of the virtual space corresponding to the average eye spacing of the user).
  • the virtual camera 111 does not have to be strictly arranged at the position of the eyes of the character 110.
  • the position where the character 110 is displayed and deviated from the position of the eyes of the character 110 in the vertical or horizontal direction. May be placed in.
  • the virtual camera 111 may not be arranged at the same position as the character 110, but may be arranged at a position having a predetermined positional relationship with the character 110 (a position separated from the character 110 by a predetermined distance).
  • the virtual camera 111 may be arranged at a predetermined position behind the character 110.
  • the virtual camera 111 may be arranged at a predetermined position diagonally behind the character 110.
  • the orientations of the character 110 and the virtual cameras 111 are set according to the orientation of the first user (first HMD10) in the real space. That is, the postures of the character 110 and the virtual camera 111 are linked with the postures of the first HMD 10 in the real space.
  • FIG. 8 is a view of the first HMD 10 and the virtual camera 111 viewed from the right side, and is a diagram showing how the posture of the virtual camera 111 changes in conjunction with the change in the posture of the first HMD 10.
  • the virtual camera 111 is set with a Zc axis, which is an axis in the line-of-sight direction, an Xc axis, which is an axis in the right direction, and a Yc axis, which is an axis in the upward direction. As shown in FIG.
  • the posture of the virtual camera 111 is controlled so that the Xc-axis, Yc-axis, and Zc-axis of the virtual camera 111 are parallel to the x-axis, y-axis, and z-axis of the first HMD 10. NS.
  • the reference posture When the first HMD 10 is in the reference posture, the virtual camera 111 faces the front (for example, the X-axis positive direction) in the virtual space. That is, the Zc axis indicating the line-of-sight direction of the virtual camera 111 is parallel to the X axis of the virtual space. As shown in the figure on the right side of FIG.
  • the posture of the first HMD 10 changes from the reference posture, and the z-axis of the first HMD 10 faces diagonally upward. ..
  • the Zc axis of the virtual camera 111 also faces diagonally upward in the virtual space.
  • the virtual camera 111 is also right in the virtual space. Rotate 30 degrees in the direction (30 degrees counterclockwise around the Yc axis).
  • the posture of the virtual cameras 111 (111R and 111L) is set so as to match the posture of the first HMD 10 in the real space.
  • the posture of the character 110 is also linked with the posture of the virtual camera 111. That is, when the posture of the first HMD 10 changes, the postures of the virtual camera 111 and the character 110 change.
  • the virtual camera 111 is arranged at a position separated from the character 110 by a predetermined distance (for example, a predetermined position behind the character 110), the virtual camera 111 not only has a posture but also a posture according to a change in the posture of the character 110. The position may also change.
  • the character 130 is placed on the ground object 141.
  • the character 130 is a virtual object corresponding to the third user and is controlled by the third user. Specifically, the character 130 moves in the virtual space 100 in response to a key input (input to a button, an analog stick, or a cross key) to the controller 38. Further, the posture of the character 130 changes according to the key input.
  • the character 130 can move on the ground object 141, the bridge object 144, and the hill object 145.
  • the third user uses the controller 38 to move the character 130 on the ground object 141, for example, through the bridge object 144 to the top of the hill object 145. Then, when the character 130 reaches the top of the hill object 145, the battle between the character 130 and the character 110 is started. If the character 130 defeats the character 110 in the battle, the third user wins.
  • a virtual camera 131 corresponding to a third user is set in the virtual space 100.
  • the virtual camera 131 includes a left virtual camera 131L and a right virtual camera 131R.
  • the left virtual camera 131L is a virtual camera for generating a virtual space image for the left eye displayed on the display 32L for the left eye of the second HMD 30.
  • the right virtual camera 131R is a virtual camera for generating a virtual space image for the right eye displayed on the right eye display 32R of the second HMD 30.
  • the left virtual camera 131L and the right virtual camera 131R are arranged apart by a predetermined distance.
  • the third user plays the game while looking at the image generated based on the virtual camera 131.
  • the third user can switch the viewpoint (that is, the position of the virtual camera 131) between the first mode and the second mode.
  • the virtual camera 131 is arranged at a position overlooking the virtual space 100 without depending on the position of the character 130.
  • the virtual camera 131 is arranged at a position in the virtual space corresponding to the position of the second HMD 30 in the real space.
  • the position of the second HMD 30 with reference to the marker 40 is calculated by the same method as the method described with reference to FIG. 6, and the virtual camera 131 is arranged at the calculated position. That is, the marker 40 is detected based on the image captured by the camera 33 of the second HMD 30, and the position of the second HMD 30 with respect to the marker 40 is calculated based on the size, shape, and orientation of the detected marker 40.
  • the virtual camera 131 is set at a position in the virtual space corresponding to the calculated position of the second HMD 30.
  • the left virtual camera 131L is set to a position in a virtual space that matches the position of the left camera 33L of the second HMD30 with respect to the marker 40
  • the right virtual camera 131R is the right camera of the second HMD30 with reference to the marker 40. It is set to a position in the virtual space that matches the position of 33R.
  • the virtual camera 131 is set at a position corresponding to the position of the character 130 (the position of 131'in FIG. 7).
  • the virtual camera 131 may be set at a position that coincides with the character 130 (for example, the positions of both eyes of the character 130). Further, the virtual camera 131 may be set at a predetermined position behind the character 130.
  • the virtual camera 131 moves following the character 130.
  • characters 120a and 120b are arranged in the virtual space 100.
  • the character 120a is a virtual object corresponding to the second user a (smart device 20a).
  • the character 120b is a virtual object corresponding to the second user b (smart device 20b).
  • the virtual camera 121a is arranged at a position corresponding to the position of the character 120a.
  • the virtual camera 121a may be set at a position that coincides with the character 120a (for example, the position of the head of the character 120a). Further, the virtual camera 121a may be set at a predetermined position behind the character 120a.
  • the virtual camera 121b is arranged at a position corresponding to the position of the character 120b. The virtual camera 121b may be set at a position that coincides with the character 120b, or may be set at a predetermined position behind the character 120b.
  • the positions of the character 120a and the virtual camera 121a are set according to the positions of the smart device 20a in the real space.
  • the positions of the character 120a and the virtual camera 121a in the virtual space 100 coincide with the positions of the smart device 20a with respect to the marker 40 in the real space.
  • the positions of the character 120b and the virtual camera 121b in the virtual space 100 coincide with the positions of the smart device 20b with respect to the marker 40 in the real space.
  • the postures of the character 120a and the virtual camera 121a are controlled so as to match the postures of the smart device 20a in the real space.
  • the postures of the character 120b and the virtual camera 121b are controlled to match the postures of the smart device 20b in the real space.
  • the second user can move while holding the smart device 20 or the smart device 20.
  • the orientation of the character 120 (and the virtual camera 121) is changed, the character 120 (and the virtual camera 121) also moves in the virtual space 100, or the orientation of the character 120 (and the virtual camera 121) is changed.
  • a virtual camera 150 is arranged in the virtual space 100.
  • the virtual camera 150 is a virtual camera for generating an image to be displayed on the stationary display 50, and is fixed at a predetermined position in the virtual space 100 in a predetermined posture.
  • the virtual camera 150 is arranged at a position that gives a bird's-eye view of the entire virtual space 100.
  • the imaging range of the virtual camera 150 includes characters 110, 120, and 130, and an image of the virtual space including the characters 110, 120, and 130 is displayed on the display 50.
  • the position and / or posture of the virtual camera 150 may be changed according to the operation of the user.
  • the display 50 may display an image of the virtual space viewed from the virtual camera 111 or the virtual camera 131. Further, the display 50 may display an image of the virtual space viewed from the virtual camera 121. Further, the user may select any of the virtual cameras 111, 121, 131, and 150, and the image generated based on the selected virtual camera may be displayed on the display 50. Further, the display 50 may display the same image as the image displayed on the display 22 of the smart device 20 (an image in which the image of the virtual space is superimposed on the image of the real space).
  • the marker 40 is arranged on the table, and the coordinate system of the virtual space is set with the marker 40 as a reference.
  • the upper surface of the table corresponds to the XZ plane of the virtual space, and the virtual object is arranged on the XZ plane.
  • FIG. 9 is a diagram showing an example of a method of detecting the positions of the first HMD10, the second HMD30, and the controllers 18 and 38.
  • two sensor bars 55 are arranged at predetermined positions in the real space.
  • the sensor bar 55 outputs, for example, infrared light from its tip portion at predetermined time intervals.
  • the infrared camera 14 (or another infrared receiving chip) of the first HMD 10 can receive infrared light from the sensor bar 55, calculate the distance and angle from the sensor bar 55, and calculate the position.
  • the controllers 18 and 38 are provided with an infrared receiving chip that receives infrared light from the sensor bar 55, and similarly detect the position.
  • the method of detecting the positions of the first HMD10, the second HMD30, and the controllers 18 and 38 is not limited to this, and these positions may be detected by other methods.
  • one or more cameras are installed in a real space
  • the first HMD10, the second HMD30, and the controllers 18 and 38 are provided with a light emitting unit that emits a predetermined light, and a camera installed in the real space emits light from the light emitting unit.
  • the positions of the first HMD10, the second HMD30, and the controllers 18 and 38 in the real space may be detected.
  • the detected positions of the first HMD10, the second HMD30, and the controllers 18 and 38 may be used for game control.
  • the position of the second HMD 30 with respect to the reference (marker) in the real space was detected by imaging the marker 40 with the camera 33 included in the second HMD 30, but the reference (sensor bar) in the real space was detected by the method shown in FIG.
  • the position of the second HMD 30 with respect to the relative position may be detected, and the detected position may be used for game control as described above.
  • the position of the second HMD 30 in the XYZ coordinate system with respect to the marker can be calculated by determining the positional relationship between the marker in the real space and the sensor bar.
  • the controller 18 by detecting the position of the controller 18 in the real space, it may be detected whether or not the controller 18 has been shaken. When the controller 18 is swung, the bullet object 112 may be ejected.
  • Information regarding the position and orientation of each virtual object (characters 110, 120a, 120b, 130, virtual cameras 111, 112a, 112b, 131, etc.) shown in FIG. 7 is transmitted to the information processing device 60 via the network, and the information is transmitted. It is managed in the processing device 60.
  • the smart device 20a detects the position and orientation of its own device in the real space, and sets the position and orientation of the character 120a in the virtual space so as to match the detected position and orientation.
  • the smart device 20a transmits information regarding the position and posture of the set character 120a to the information processing device 60.
  • the position information and the like of virtual objects (141 to 145, etc.) related to the terrain arranged in the virtual space 100 are managed in the information processing device 60.
  • the operation information corresponding to the operation on the controllers 18 and 38 is transmitted to the information processing device 60.
  • the game control process is performed in the information processing device 60 based on the information about each of these virtual objects and the operation information of the controllers 18 and 38. As a result of this game control process, images of the virtual space are displayed in the first HMD 10 and the second HMD 30. Further, the smart device 20 acquires information about each virtual object from the information processing device 60, performs game processing on its own device, and displays an image based on the result on the display 22.
  • an example of an image displayed on each device will be described.
  • FIG. 10 is a diagram showing an example of an image displayed on the display 12 of the first HMD 10, and is an example of an image when the first user is facing the front.
  • An image of the virtual space 100 viewed from the virtual camera 111 is displayed on the display 12 of the first HMD 10.
  • one image is shown in a plane in FIG. 10, in reality, an image having parallax is displayed on each of the right-eye display 12R and the left-eye display 12L, and the first user can see stereoscopically. Recognize as an image.
  • the field of view of the first user is substantially covered by the display 12 of the first HMD 10.
  • the display 12 of the first HMD 10 displays an image that looks down on the entire terrain including the character 130 from the top of the hill object 145.
  • the virtual space seems to spread out in front of the first user, and the first user feels as if he / she is standing on the top of the hill object 145.
  • a part of the character 110's right hand can be seen in the field of view of the first user, and a state of holding the bullet object 112 can be seen in the right hand.
  • the size of the right hand of the character 110 seen by the first user is similar to the size when the first user sees his / her right hand in the real space. That is, the scale of the virtual space seen by the first user is almost the same as the scale of the real space.
  • the posture of the right hand of the character 110 is the same as the posture of the controller 18 in the real space, and if the first user raises the right hand holding the controller 18, the right hand of the character 110 is also raised.
  • the character 130 appears to be located on the ground object 141 on the right side in the depth direction. To the first user, it seems that the character 130 exists, for example, several tens of meters away. In addition, the character 120a can be seen in the upper left direction away from the ground object 141. The character 120a appears to be floating in the virtual space.
  • FIG. 11 is a diagram showing an example of an image displayed on the display 12 of the first HMD 10, and is an example of an image when the first user is facing the right side.
  • the virtual camera 111 and the character 110 in the virtual space also face the right side, for example, the character 130 is displayed substantially in front. Further, the character 120b, which was not displayed in FIG. 10, is displayed in the upper right corner in FIG. Further, the character 120a displayed in FIG. 10 is no longer displayed in FIG.
  • the first user attacks the character 130 using the bullet object 112.
  • the controller 18 held by the first user is shaken, the character 110 swings his right arm in the virtual space, and the bullet object 112 is ejected into the virtual space.
  • the bullet object 112 may be ejected into the virtual space in response to an operation on the button 181 of the controller 18.
  • FIG. 12 is a diagram showing an example of how the bullet object 112 is ejected into the virtual space in the state shown in FIG. As shown in FIG. 12, for example, when the first user swings the controller 18, the bullet object 112 is ejected into the virtual space, and the bullet object 112 moves in the virtual space.
  • the moving direction of the bullet object 112 may be determined, for example, by the swing direction of the controller 18 by the first user or the direction indicated by the analog stick 182 or the cross key 183.
  • the bullet object 112 hits the character 130, the physical strength value of the character 130 decreases or the character 130 collapses.
  • FIG. 13 is a diagram showing an example of an image displayed on the display 22 of the smart device 20a, and is an example of an image when the second user a is in the position shown in FIG.
  • An image of a bird's-eye view of the virtual space 100 from the virtual camera 121a is displayed on the display 22 of the smart device 20a.
  • the display 22 displays an image of the virtual space generated based on the virtual camera 121a superimposed on the image of the real space captured by the camera 23 of the smart device 20a.
  • the display 22 displays an image in which a virtual space is arranged on a table in the real space. For example, in FIG.
  • each image (141 to 145, 110, 130) on the table is an image of virtual space
  • the image around the table including the image of the second user b is an image of real space.
  • the character 120b is not displayed on the display 22 of the smart device 20a.
  • the character 120b is displayed at the position of the smart device 20b by superimposing it on the image of the second user b.
  • the smart device 20b when the image of the real space captured by the camera 23 is not displayed on the display 22 of the smart device 20a, the smart device 20b includes the smart device 20b in the imaging range of the camera 23 of the smart device 20a. Only the character 120b may be displayed at the position.
  • the second user a uses the smart device 20a to create a small virtual space formed on the table from the position of the second user a shown in FIG. 1 (the position of the virtual camera 121a shown in FIG. 7). Look at it from a bird's-eye view.
  • the image displayed on the display 22 of the smart device 20a also changes.
  • FIG. 14 is a diagram showing an example of an image displayed on the display 22 of the smart device 20a after the second user a moves closer to the third user.
  • the virtual camera 121a also moves in the virtual space.
  • the camera 23 of the smart device 20a acquires an image as if the table including the marker 40 is viewed from an angle, and based on the acquired image, the virtual camera 121a The position of is set. As shown in FIG. 14, the image of the real space seen from the moved camera 23 is superimposed on the image of the virtual space seen from the moved virtual camera 121a and displayed on the display 22.
  • the second user can inject a virtual object for changing the character 130 into the virtual space in response to an operation on the smart device 20.
  • the second user can inject a virtual object for supporting the character 130 (third user) into the virtual space.
  • FIG. 15 is a diagram showing an example of how the character 120a ejects the bullet object 122 in response to an operation on the smart device 20a.
  • a touch panel is provided on the display 22 of the smart device 20a.
  • the bullet object 122 is ejected from the character 120a in response to a touch operation (for example, a tap operation, a swipe operation, etc.) on the touch panel of the smart device 20a.
  • the bullet object 122 is a virtual object for supporting the character 130 (third user).
  • the bullet object 122 is an object for preventing the bullet object 112 ejected by the character 110 (first user) from hitting the character 130. For example, when the bullet object 122 hits the bullet object 112, the bullet object 112 disappears and the attack on the character 130 becomes invalid.
  • the support of the third user by the second user may be provided by another method.
  • an obstacle object for defending the bullet object 111 from the character 110 may be arranged in the virtual space according to the operation of the second user.
  • the obstacle object may prevent the bullet object 111 from the character 110 from hitting the character 130.
  • the character 120 may inject a recovery object for recovering the physical strength value of the character 130 into the virtual space according to the operation of the second user.
  • the recovery object ejected from the character 120 is placed in the virtual space.
  • the second user may support the third user.
  • the character 120 may attack the character 110 by ejecting a bullet object according to the operation of the second user.
  • the physical strength value of the character 110 may be reduced, or the attack on the character 130 by the character 110 may be stopped.
  • the second user may support the third user.
  • the second user can participate in the battle game between the first user and the third user by supporting the character 130 (third user).
  • the second user may support the first user instead of supporting the third user.
  • the character 120 may eject an object for attacking the character 130 into the virtual space. Further, the character 120 may arrange a recovery object for recovering the physical strength of the character 110 in the virtual space. Further, the character 120 may arrange an obstacle object in the virtual space to prevent an attack from the character 130 to the character 110.
  • the character 120 may arrange a predetermined object in the virtual space, which is advantageous or disadvantageous in the game for the character 130 (or the character 110).
  • the character 120 uses a predetermined object to change the character 110.
  • the character 120 is a character that affects the virtual space or the character 110 in response to the input of the second user.
  • the second user may participate in the game in the same position as the first user and the third user. That is, a game may be played in which each user (character) of the first user, the second user, and the third user attacks another user (character) and defeats the other user.
  • the game is not limited to a game in which each character fights, and another game in which each character operates in the virtual space may be played.
  • a game in which the characters of each user cooperate to perform an adventure may be played, or a race game in which the characters of each user race may be played.
  • FIG. 16 is a diagram showing an example of an image displayed on the display 32 of the second HMD 30, and is an example of an image when the virtual camera 131 is set to the first mode.
  • the image displayed on the display 32 of the second HMD 30 is also a stereoscopic image like the first HMD 10.
  • the virtual camera 131 when the virtual camera 131 is set to the first mode, the virtual camera 131 is arranged according to the position of the second HMD 30 with respect to the marker 40 in the real space. For example, when the second HMD 30 is located at a position overlooking the table (for example, the position shown in FIG. 1), the virtual camera 131 is arranged at a position overlooking the virtual space on the table (for example, the position of 130 shown in FIG. 7). NS. In this case, as shown in FIG. 16, the display 32 of the second HMD 30 displays each virtual object (character 130, character 110, virtual objects 141 to 145) in the virtual space formed on the table.
  • the character 120b located at a position away from the table is included in the field of view of the virtual camera 131, the character 120b is also displayed.
  • the position or posture of the second HMD 30 changes, the position or posture of the virtual camera 131 also changes accordingly.
  • the image of the virtual space generated based on the virtual camera 131 is superimposed and displayed on the image of the real space captured by the camera 33 of the second HMD 30.
  • the virtual camera 131 is set to the first mode, it appears to the third user that a small virtual space is formed on the table in the real space. That is, when the first mode is set, the third user looks at the small virtual space formed on the table from a bird's-eye view, like the second user of the smart device 20.
  • the display 32 of the second HMD 30 may not display the image of the real space, but may display only the image of the virtual space generated based on the virtual camera 131.
  • the third user can switch to either the first mode or the second mode by using the controller 38.
  • FIG. 17 is a diagram showing an example of an image displayed on the display 32 of the second HMD 30, and is an example of an image when the virtual camera 131 is set to the second mode.
  • the display 32 of the second HMD 30 displays an image of the virtual space seen from the character 130.
  • the virtual camera 131 moves according to the movement of the character 130.
  • FIG. 17 shows an image when the virtual camera 131 is arranged at the position of the character 130, but when the virtual camera 131 is set at a predetermined position behind the character 130, for example, the character 130. An image of the virtual space viewed from behind is displayed.
  • the third user sees the virtual space spreading in front of him, and the third user feels as if he is standing on the ground object 141.
  • the bridge object 144 appears to exist several tens of meters away.
  • the third user operates the controller 38 while looking at the image as shown in FIG. 16 or 17, and moves the character 130 in the virtual space. For example, the third user moves the character 130 in response to an operation on the analog stick or the cross key of the controller 38. When the character 130 reaches the position of the character 110, the third user causes the character 130 to attack the character 110 in response to an operation on the button of the controller 38.
  • the operations of the first user, the second user, and the third user and the operations on the controller are reflected in the virtual space in real time.
  • the orientation of the first user first HMD10
  • the orientation of the character 110 changes in the virtual space according to the change in the orientation.
  • the first user swings the controller 18 the character 110 throws the bullet object 112.
  • the smart device 20 or the second HMD 30 displays a state in which the direction of the character 110 changes or a state in which the character 110 throws a bullet object 112. Will be done.
  • the second user or the third user can grasp the operation of the first user.
  • the orientation or position of the second user changes, the orientation or position of the character 120 changes in the virtual space according to the change. Further, when the second user performs a predetermined operation on the smart device 20, the character 120 throws the bullet object 122.
  • the first HMD 10 or the second HMD 30 shows how the direction or position of the character 120 changes, or how the character 120 throws a bullet object 122. Is displayed. As a result, the first user or the third user can grasp the operation of the second user.
  • the first user wears the first HMD10
  • the second user carries the smart device 20.
  • the character 110 is arranged in the virtual space regardless of the position of the first HMD 10 in the real space, and the virtual camera 111 is arranged at a position corresponding to the position of the character 110.
  • the posture of the character 110 changes according to the posture of the first HMD 10, and the character 110 operates in response to an operation on the controller 18 (for example, throwing a bullet object 112).
  • the virtual camera 121 is arranged at a position in the virtual space corresponding to the position of the smart device 20 with respect to the marker 40 in the real space, and the posture of the virtual camera 121 is set according to the posture of the smart device 20 in the real space.
  • NS the posture of the virtual camera 121
  • the XYZ coordinate system for defining the position of the virtual space is set with reference to the marker 40 of the virtual space, so that the real space and the virtual space are associated with each other.
  • the position of the smart device 20 is calculated with reference to the marker 40, and the character 120 and the virtual camera 121 are set at the calculated positions.
  • the image of the virtual space generated based on the virtual camera 111 is displayed on the display 12 of the first HMD 10, and the image of the virtual space generated based on the virtual camera 121 is displayed on the display 22 of the smart device 20.
  • NS the XYZ coordinate system for defining the position of the virtual space
  • the first user sees the virtual space from the position of the character 110 in the virtual space (or a position separated from the character 110 by a predetermined distance), and sees the virtual space from a subjective viewpoint. Therefore, the first user can enter the virtual space and play the game with the same scale feeling as the real space.
  • the virtual camera 131 is set to the second mode
  • the third user also sees the virtual space from the viewpoint of the character 130 (or a position separated from the character 130 by a predetermined distance).
  • the second user sees the virtual space associated with the real space from the position of the smart device 20 with respect to the marker 40 in the real space.
  • the second user can play the game while being aware of the real space and the virtual space as if a virtual object in the virtual space exists in the real space, and overlooks the virtual space formed on the table. You can play the game while playing the game. To the second user, the virtual space feels like it is formed on a table on a small scale. In this way, the game can be played by the first user who sees the virtual space from the subjective viewpoint and the second user who sees the virtual space from the bird's-eye view. Each user can see the virtual space from a different viewpoint, and each user can see the virtual space with a different sense of scale, so that a new game that has never existed can be played by a plurality of users.
  • the marker 40 is arranged on the table, a virtual space is formed on the table, and the game is played in the virtual space.
  • the first user can enter the virtual space formed on the table and play the game, while the second user can play the game while looking down at the small virtual space formed on the table. This makes it possible for a plurality of users to play a new game that has never existed before.
  • the first user to the third user can see the movement of the character corresponding to the other user by looking at the display of the own device, and can recognize the movement of the other user.
  • the first user can recognize the movement of the second user by seeing the movement of the character 120 displayed on the display 12 of the first HMD 10. Since the position of the character 120 is set in the virtual space in conjunction with the position of the smart device 20 in the real space, the first user can determine the position of the second user in the real space by looking at the character 120 in the virtual space. Can be grasped.
  • the second user can recognize the movement of the first user by looking at the display of his / her smart device 20 for the change in the posture of the character 110 and the action of the character 110 throwing the bullet object 112.
  • the second user can see the state of the virtual space and the first user in the real space through the smart device 20, what kind of image the first user sees. You can see what you are doing and what you are doing in virtual space. That is, the second user can visually recognize the movement of the character 110 (first user) in the virtual space by looking at the smart device 20, and can see the movement of the first user by looking at the real space. You can see it. As a result, the second user can enter the virtual space in which the user wearing the HMD is present and see the virtual space.
  • the stationary display 50 displays an image of the virtual space viewed from the virtual camera 150. Further, the image viewed by the user wearing the HMD may be displayed on the stationary display 50.
  • the fourth user can see the image displayed on the display 50 and grasp the state of the virtual space in which the user wearing the HMD is present.
  • the second user can also grasp the state of the virtual space in which the user wearing the HMD is present via the smart device 20, but the second user does not only look inside the virtual space but also uses AR technology. You can have a new experience that has never existed before. That is, since the virtual space is formed corresponding to the real space, the second user can move or change the direction in the real space to create the virtual space from the same viewpoint as the second user's viewpoint in the real space. You can peep into it. As a result, the second user can see the virtual space in which the first user has entered as if he / she sees the real space.
  • the first user usually plays the game so as not to leave the mat 51, but when the first user goes out of the predetermined range based on the mat 51, or the first user moves by a predetermined distance or more. In that case, the first user is notified.
  • the display 12 of the first HMD 10 may be displayed by an image or characters, may be notified by voice, or may be notified by vibration.
  • the second user is also notified.
  • the display 22 of the smart device 20 may be displayed by an image or characters, may be notified by voice, or may be notified by vibration.
  • the notification may be performed to the third user and the fourth user. Further, when the second user enters the predetermined range or approaches the predetermined range, the first user and the second user are notified by using images, characters, voices, vibrations, and the like.
  • the image processing system 1 detects the position of the first HMD 10 by the method shown in FIG.
  • the image processing system 1 determines whether or not the first user has left the predetermined range or whether or not the first user has moved by a predetermined distance or more based on the position of the first HMD 10.
  • the first user is imaged by the camera of the smart device 20 or the second HMD30 or another camera arranged in the real space, and based on the captured image, whether or not the first user is out of the predetermined range, or the first It may be determined whether or not one user has moved by a predetermined distance or more.
  • the first user has moved out of the predetermined range or whether or not the first user has moved by a predetermined distance or more based on the captured image by imaging the periphery of the first user with the camera of the first HMD10. May be determined. Further, based on the images captured by the first HMD 10, the smart device 20, the second HMD 30, and other cameras, it may be determined whether or not the second user has entered the predetermined range or has approached the predetermined range. ..
  • An image showing the above-mentioned predetermined range may be displayed on the display 22 of the smart device 20. That is, when the camera 23 of the smart device 20 images a predetermined range with reference to the mat 51, a range image indicating the predetermined range may be superimposed and displayed on the predetermined range.
  • a predetermined range may be set for the third user.
  • the third user goes out of the predetermined range, or when the third user moves by a predetermined distance or more, the third user, the second user, and the first user may be notified.
  • the marker 40 may be imaged by the camera 33 of the second HMD 30, and the virtual camera 131 may be arranged according to the position of the second HMD 30 with respect to the marker 40 in the real space. That is, the third user also experiences AR in the same way as the second user.
  • the third user goes out of the predetermined range, or when the third user moves by a predetermined distance or more, the third user is notified (notification using the display 32, the speaker, the vibration motor, etc.) and at the same time. Notification (notification using a display 22, a speaker, a vibration motor, or the like) may also be performed to the second user.
  • FIG. 18 is a diagram showing an example of an image viewed by the user in the creation mode.
  • the user wears the first HMD 10 and arranges virtual objects in the virtual space using the controller 18 while looking at the display 12 of the first HMD 10.
  • the marker 40 is arranged on the table, and by imaging the marker 40 on the table with the camera 13 of the first HMD 10, an image as shown in FIG. 18 is displayed on the display 12 of the first HMD 10.
  • the virtual camera is arranged at the position of the virtual space corresponding to the position of the first HMD 10 with respect to the marker 40 in the real space.
  • the user creates a virtual space while looking at the image seen from the virtual camera.
  • the display 12 of the first HMD 10 displays a left-hand object 160L that imitates the user's left hand and a right-hand object 160R that imitates the user's right hand.
  • the left-hand object 160L and the right-hand object 160R are virtual objects.
  • the user's hand is detected based on the image captured by the infrared camera 14 of the first HMD 10. Detection of the user's hand is performed using known image recognition techniques.
  • the left hand object 160L and the right hand object 160R are arranged at the detected positions of the left hand and the right hand.
  • the user's hand may be detected based on the image from the camera 13 of the first HMD 10. Further, the user's hand may be imaged and detected by a camera other than the camera included in the first HMD 10 or an infrared camera.
  • the UI object 170 is displayed on the left hand object 160L or in the vicinity of the left hand object 160L.
  • the UI object 170 is a user interface for creating a virtual space, and includes a plurality of part objects for arranging in the virtual space.
  • the UI object 170 includes a part object 171 for forming a ground object 141 whose surface is covered with grass, a part object 172 for forming a river object 143, and a part object 173 for forming a block. including.
  • the UI object 170 may include a plurality of part objects for forming the terrain of the virtual space.
  • Each part object is formed by, for example, a cube, and the terrain of the virtual space is formed by arranging a plurality of part objects in a grid shape.
  • the grass-covered ground object 141 is formed by arranging a plurality of part objects 171 in a grid pattern.
  • a green texture image is attached to the upper surface of the part object 171, and by arranging a plurality of the part objects 171 in a plane, a ground object 141 whose upper surface is covered with grass is formed.
  • the controller object 161 that imitates the controller 18 is displayed on the right-hand object 160R.
  • An image is displayed in which the right-hand object 160R grips the controller object 161 as if the controller 18 is gripped by the right hand in the real space.
  • the controller 18 may be detected based on the image captured by the camera 13 of the first HMD 10, and the controller object 161 may be displayed when the controller 18 is detected.
  • the controller 18 may not be detected, and when the user's right hand is detected, the controller object 161 may be displayed together with the right hand object 160R.
  • the controller object 161 is a virtual object having substantially the same appearance as the controller 18, and has a portion imitating a plurality of buttons like the controller 18. Further, the controller object 161 has a portion imitating an analog stick or a cross key.
  • An instruction object 162 for instructing a part object in the UI object 170 is provided at a predetermined position of the controller object 161.
  • the instruction object 162 is an object that protrudes from a predetermined position of the controller object 161, and when the tip thereof is brought close to the part object, the part object can be instructed.
  • the part object 173 is instructed.
  • the part object 173 is selected (a state in which the part object 173 is grasped).
  • the selected part object is displayed in a display mode different from that of other non-selected objects.
  • a character indicating the selected part object (character of "block" in FIG. 18) is displayed on the UI object 170.
  • the part object 173 When the user moves his right hand on the table with the part object 173 selected and the user performs a predetermined operation (for example, an operation of releasing a finger from the button), the part object 173 is placed on the table (on the XZ plane). Will be done.
  • the user grabs the part objects one by one and puts them on the table, and uses the controller 18 to place a plurality of part objects in the virtual space to form the terrain in the virtual space where the characters are placed. can do.
  • Whether or not the part object is selected may be determined based on the movement of the finger of the user's right hand. For example, it may be determined whether or not the user has bent the finger, and when the user bends the finger, the instructed part object may be selected.
  • the controller object 161 is displayed in the right hand object 160R. Further, the instruction object 162 is displayed at a predetermined position of the controller object 161.
  • the controller object 161 having substantially the same appearance as the controller 18 held by the user in the virtual space
  • the user wearing the first HMD 10 can see the same image as the controller 18 actually held. , Makes it easier to place part objects in virtual space.
  • the instruction object 162 that does not exist in the real space is displayed in the virtual space, the user wearing the first HMD 10 can easily instruct the position using the instruction object 162, and can easily select and arrange the part object. It can be performed.
  • a plurality of selected part objects may be arranged in the virtual space. For example, when the user moves his right hand parallel to the surface of the table while one part object is selected, a plurality of selected part objects may be arranged in a plane.
  • FIG. 19 is a diagram showing how a plurality of part objects 173 are arranged in a plane.
  • the part object 173 is planar in the area surrounded by the locus of the right hand. It may be arranged in.
  • the plurality of part objects 173 may be further arranged in a plane on the plurality of part objects 173 arranged in a plane.
  • FIG. 20 is a diagram showing an example of grid lines for displaying a grid on which each part object is arranged.
  • grid lines 175 may be displayed when creating the virtual space.
  • the grid line 175 includes a line parallel to the X-axis, a line parallel to the Y-axis, and a line parallel to the Z-axis.
  • One part object will be placed in the area surrounded by the grid lines 175. For example, when the part object 171 is selected and the tip of the instruction object 162 enters one area surrounded by the grid lines 175, the part object 171 is arranged in that area.
  • the part object may be arranged in a floating state (at a position away from the XZ plane) without any other object below.
  • the part objects 171 for each grid By arranging the part objects 171 for each grid in this way, the part objects can be easily arranged in the virtual space without the user specifying the position of the part objects accurately.
  • FIG. 21 is a diagram showing a state in which a can 80 as a real object is arranged on a table in a real space.
  • FIG. 22 is a diagram showing how the virtual object 180 corresponding to the can 80 is arranged in the virtual space.
  • the smart device 20 detects the can 80 based on the image.
  • the smart device 20 has learned a plurality of real objects in advance, and can recognize the real objects based on the images acquired from the camera 13.
  • the can object 180 is arranged at a position in the virtual space corresponding to the position of the can 80 in the real space.
  • Information regarding the arrangement of the can object 180 and its position and posture is transmitted to the information processing device 60 and stored in the information processing device 60.
  • the can object 180 is arranged in the virtual space, and the position and orientation thereof are shared by each device of the image processing system 1.
  • an image of the virtual space including the can object 180 is acquired based on each virtual camera.
  • the display 12 of the first HMD 10 displays an image of a virtual space including the can object 180.
  • the display 32 of the second HMD 30 also displays an image of the virtual space including the can object 180.
  • the display 22 of the smart device 20 also displays an image including the can object 180 superimposed on the image in the real space. Specifically, when the camera 23 of the smart device 20 captures an image including the can 80 and the can object 180 is arranged in the virtual space, the display 22 of the smart device 20 superimposes the image on the can 80. The image of the can object 180 is displayed. Therefore, the second user visually recognizes the image of the can object 180 as a virtual object instead of the image of the can 80 as a real object through the display 22 of the smart device 20.
  • the display 22 of the smart device 20 may display an image of the can 80 as a real object captured by the camera 23 instead of the image of the can object 180.
  • the image of the can 80 the image of the virtual space is not superimposed on the image of the real space captured by the camera 23, and other parts different from the image of the can 80 (for example, the ground object 141 or the area of the character).
  • the image of the virtual space is superimposed on the image of the real space captured by the camera 23.
  • the can 80 is moved from the imaging range of the camera 23 due to the change in the position and orientation of the smart device 20a. If disengaged, the can object 180 remains in that position. That is, even if the can object 180 is placed in the virtual space and the can 80 is not moved and the can 80 is not detected by the smart device 20a, the can object 180 continues to exist in the virtual space.
  • the detection of the can 80 is continuously performed even after that.
  • Information regarding the position and orientation of the can 80 is transmitted to the information processing device 60 in real time. If the position or orientation of the smart device 20a is changed without moving the can 80, the position of the can 80 in the image captured by the camera 23 of the smart device 20a changes, but the can 80 with reference to the marker 40 is used. The position of is unchanged. Therefore, the position of the can object 180 does not change. Even if the can 80 is out of the imaging range of the camera 23 due to a change in the position or orientation of the smart device 20a, the position of the can object 180 does not change unless the change in the position of the can 80 is detected.
  • the smart device 20b continues to detect the can 80.
  • the camera 33 of the second HMD 30 may capture an image to detect the can 80. In this way, for example, after the can 80 is detected by the smart device 20a and the can object 180 is placed, the position of the can 80 is tracked by a device other than the smart device 20a.
  • the smart device 20 will not detect the can 80 and the can object 180 will be erased from the virtual space. NS.
  • the smart device 20a or 20b continuously detects the can 80, and the position of the can object 180 is updated.
  • the camera 33 of the second HMD 30 may capture an image to detect the can 80.
  • the position of the can object 180 is continuously updated until the can 80 is removed from the table, and when the position of the can object 180 exceeds a predetermined range (for example, outside the table).
  • the can object 180 is erased from the virtual space.
  • the can object 180 is placed at a predetermined position in the virtual space and then the can 80 is removed from the imaging range of the camera 23 due to a change in the position or orientation of the smart device 20, the can object 180 remains at the predetermined position. do. However, when the position and orientation of the smart device 20 return, the position in the real space corresponding to the predetermined position (the position where the can 80 existed before going out of the imaging range) is again within the imaging range of the camera 23. At that time, if the smart device 20 does not detect the can 80, the can object 180 is erased from the virtual space.
  • the imaging range of the camera 23 changes due to the change in the position and orientation of the smart device 20, and the can 80 is removed from the imaging range of the camera 23.
  • the can object 180 is placed at the second position in the virtual space corresponding to the newly detected position of the can 80, and the can object 180 is arranged.
  • the can object 180 at the first position may be erased. In other words, in this case, the can object 180 may be instantaneously moved from the first position to the second position.
  • the imaging range of the camera 23 changes due to the change in the position and orientation of the smart device 20, and the can 80 is moved from the imaging range of the camera 23.
  • the can 80 is detected within the imaging range of the changed camera 23 in the case of disengagement, a new can object 180 is placed at the second position in the virtual space according to the newly detected position of the can 80.
  • the can object 180 may be kept in the first position as well as being arranged. In this case, after detecting one can 80 and arranging the first can object 180 in the virtual space, the same can 80 is detected in another place and the second can object 180 is arranged in the virtual space. can do.
  • a condition regarding the number of can objects 180 arranged in the virtual space is set, and when the can 80 is detected within the imaging range of the changed camera 23 according to the condition, the can object 180 at the first position is described above. You may control whether to erase the can object 180 or to keep the can object 180 in the first position. For example, it may be determined whether the number of can objects 180 arranged in the virtual space is set to one or a plurality of can objects 180, and control may be performed according to the determination result. For example, when the number of can objects 180 arranged in the virtual space is set (restricted) to one, after the can objects 180 are arranged at the first position in the virtual space, from the imaging range of the camera 23.
  • the can object 180 When the can 80 is removed and the can 80 is detected within the imaging range of the changed camera 23, the can object 180 is placed at the second position in the virtual space according to the position of the detected can 80. , The can object 180 at the first position may be erased.
  • the cans can be determined from the imaging range of the camera 23.
  • the can 80 is detected within the imaging range of the changed camera 23 when the 80 is removed, the can object 180 is placed at the second position in the virtual space according to the position of the detected can 80, and the can object 180 is placed.
  • the can object 180 may also survive in the first position.
  • the can object 180 may remain in the virtual space even if the can 80 is removed from the table. That is, the can object 180 may be kept in the virtual space even in a situation where it can be traced by the camera that the can 80 is removed from the table after the can object 180 is placed in the virtual space.
  • the first specific object is placed on the table
  • the first specific object is removed and the second specific object is placed on the table, so that the first specific object corresponds to the first specific object.
  • a virtual object of 1 and a second virtual object corresponding to the second specific object can be arranged in the virtual space.
  • the game is controlled using the can object 180 placed in the virtual space.
  • the can object 180 may be used to defend against an attack from the character 110, and when the bullet object 112 from the character 110 hits the can object 180, the bullet object 112 may be erased.
  • another change may be added to the virtual space by using the can object 180. For example, when the user performs a predetermined operation on the can object 180, a state in which the liquid is ejected from the can object 180 may be displayed.
  • a virtual object corresponding to a specific object in the real space can appear in the virtual space so that the first user can have the real space and the virtual space coexist. Can give a good feeling.
  • a specific object may be imaged with a camera. Then, when the information processing device 60 or the smart device 20 detects a specific object based on the image from the camera and detects the specific object, the virtual object corresponding to the specific object is arranged in the virtual space. You may.
  • FIG. 23 is a diagram showing an example of data D20 stored in each smart device 20.
  • the smart device 20 stores a program for performing smart device processing described later. Further, the smart device 20 stores the image data acquired from the camera 23 and the angular velocity data and the acceleration data from the inertial sensor 24. Further, the smart device 20 stores position data indicating the position of the smart device 20 with respect to the marker 40 calculated based on the image data. Further, the smart device 20 stores attitude data indicating the attitude information of the smart device 20 calculated based on the angular velocity data and the acceleration data.
  • the smart device 20 stores character 120 data related to the character 120 corresponding to the user of the own device and virtual camera 121 data indicating the position and orientation of the virtual camera 121.
  • the character 120 data includes data indicating the position and posture of the character 120 in the virtual space, data indicating the shape of the character 120, and data relating to a virtual object (for example, a bullet object 122) possessed by the character 120.
  • the smart device 20 stores other character data, terrain object data, emission object data, and detection object data.
  • Other character data is data related to each character corresponding to a user of a device other than the own machine.
  • Other character data is acquired from the information processing device 60.
  • the smart device 20a stores data related to the character 110, the character 120b, and the character 130 as other character data.
  • the other character data includes data indicating the position and posture of each character and data relating to the shape of each character.
  • the terrain object data is data of objects (141 to 145) related to the terrain forming the virtual space, and includes information on a plurality of part objects and their arrangement.
  • the terrain object data is acquired from the information processing device 60.
  • the terrain object data includes data created in advance by the game creator and stored in the image processing system 1 and data created by the user and stored in the image processing system 1 as described above.
  • the ejected object data is data related to the bullet object ejected into the virtual space, and includes data related to the position, moving speed, and moving direction of the bullet object.
  • the ejection object data includes data relating to the bullet object 122 ejected from the character 120 of the own machine and data relating to the bullet object ejected from the character corresponding to another device acquired from the information processing device 60.
  • the detected object data is data related to a virtual object (for example, a can object 180) that is arranged in a virtual space when a predetermined specific object (for example, a can 80) is detected.
  • the detected object data includes data related to the shape of the virtual object and data related to the position and orientation.
  • FIG. 24 is a diagram showing an example of data D10 stored in the first HMD 10.
  • FIG. 25 is a diagram showing an example of data D30 stored in the second HMD 30.
  • the first HMD 10 includes a program for performing HMD processing described later, angular velocity data and acceleration data from the inertial sensor 15, and attitude information of the first HMD 10 calculated from the angular velocity data and acceleration data. Attitude data related to is stored.
  • the second HMD 30 includes a program for performing HMD processing, angular velocity data and acceleration data from the inertial sensor 35, attitude data related to the attitude information of the second HMD 30 calculated from the angular velocity data and acceleration data, and the camera 33. Image data and are stored.
  • FIG. 26 is a diagram showing an example of data D60 stored in the information processing device 60.
  • the information processing device 60 stores a program for performing a game control process described later, HMD data, smart device data, controller data, character data, and virtual camera data. Will be done. Further, the information processing device 60 stores the terrain object data, the emission object data, and the detection object data.
  • the HMD data is data related to the first HMD10 and the second HMD30. Specifically, the HMD data includes the posture data acquired from the first HMD 10. Further, the HMD data includes the position data of the second HMD 30 calculated based on the image data from the second HMD 30 and the posture data acquired from the second HMD 30.
  • the smart device data includes data indicating the position and posture of each smart device 20 acquired from each smart device 20 and data related to operations performed in each smart device 20.
  • Controller data is data related to each controller (18, 38).
  • the controller data includes data related to operations performed on the buttons, sticks, cross keys, etc. of each controller.
  • the controller data includes data related to the posture and movement of each controller.
  • the character data is data related to each character (110, 120, 130), and includes data related to the position and posture of each character.
  • the virtual camera data is data related to each virtual camera (111, 121, 131, 150), and includes data related to the position and orientation of each virtual camera.
  • FIG. 27 is a flowchart showing an example of the HMD process executed in the first HMD 10 or the second HMD 30.
  • the process shown in FIG. 27 is started in response to an instruction to start the game in the image processing system 1.
  • the first HMD 10 (processor 11) executes the process shown in FIG. 27, but the same process is also performed in the second HMD 30.
  • the first HMD 10 performs an initial process (step S100).
  • the posture of the first HMD 10 is initialized.
  • the first HMD 10 repeatedly executes steps S101 to S105 at predetermined time intervals (for example, 1/60 second intervals).
  • the first HMD 10 acquires the angular velocity data and the acceleration data detected by the inertial sensor 15 (step S101).
  • the first HMD 10 calculates the attitude information of the first HMD 10 based on the acquired angular velocity data and acceleration data (step S102). Specifically, the first HMD 10 calculates the change in posture from the time when the initial processing is performed.
  • the first HMD 10 transmits the calculated posture information to the information processing device 60 (step S103).
  • the first HMD 10 acquires a left-eye virtual space image displayed on the left-eye display 12L and a right-eye virtual space image displayed on the right-eye display 12R from the information processing device 60 (step S104). Then, the first HMD 10 displays the acquired virtual space image for the left eye and the virtual space image for the right eye on the left eye display 12L and the right eye display 12R, respectively (step S105).
  • a processing for acquiring an image captured by the camera 33 and a processing for transmitting the acquired image to the information processing device 60 are performed.
  • FIG. 28 is a flowchart showing an example of smart device processing executed in the smart device 20.
  • the process shown in FIG. 28 is performed by the processor 21 of the smart device 20.
  • the user gives an instruction to start the game, and necessary data (for example, terrain object data or other character data) is acquired from the information processing device 60. And.
  • the smart device 20 acquires an image from the camera 23 (step S201), and acquires angular velocity data and acceleration data from the inertial sensor 24 (step S202).
  • the smart device 20 performs a marker detection process (step S203). Specifically, the smart device 20 detects the marker 40 from the image acquired in step S201. If the smart device 20 does not detect the marker 40, the smart device 20 repeatedly executes the processes of steps S201 to S203.
  • the smart device 20 When the marker 40 is detected, the smart device 20 performs a position calculation process (step S204). Specifically, the smart device 20 sets the XYZ coordinate system with reference to the detected marker 40, and calculates the position (XYZ coordinate value) of the smart device 20 with respect to the marker 40. Specifically, the smart device 20 calculates the distance from the marker 40 to the smart device 20 and the direction from the marker 40 to the smart device 20 based on the size of the image of the marker 40, the direction of the arrow, and the like. The relative position of the smart device 20 with respect to the marker 40 is calculated.
  • the smart device 20 performs a posture calculation process (step S205). Specifically, the smart device 20 calculates the posture of the smart device 20 based on the angular velocity data and the acceleration data acquired in step S202. The smart device 20 may calculate the posture based on the image from the camera 23 (detection result of the marker 40). Further, the smart device 20 may calculate the posture based on the image from the camera 23 and the angular velocity data and the acceleration data from the inertial sensor 24.
  • the smart device 20 sets the position and posture of the character 120 based on the position calculated in step S204 and the posture calculated in step S205 (step S206). Further, the smart device 20 sets the position and posture of the virtual camera 121 based on the position calculated in step S204 and the posture calculated in step S205. For example, the smart device 20 sets the positions of the character 120 and the virtual camera 121 so as to match the positions calculated in step S204. Further, the smart device 20 sets the postures of the character 120 and the virtual camera 121 so as to match the postures calculated in step S205. The position and posture of the virtual camera 121 do not necessarily match the position and posture of the character 120. For example, the position of the virtual camera 121 may be set to a predetermined position behind the character 120.
  • the smart device 20 determines whether or not a predetermined operation has been performed on the operation unit (step S207). For example, the smart device 20 determines whether or not a swipe operation for ejecting the bullet object 122 has been performed on the touch panel.
  • step S207 When a predetermined operation is performed (step S207: YES), the smart device 20 ejects a bullet object 122 into the virtual space (step S208). As a result, the bullet object 122 is ejected into the virtual space, and the state in which the bullet object 122 moves is displayed.
  • step S208 determines whether or not a predetermined specific object is detected from the images acquired in step S201.
  • Step S209 The smart device 20 has learned a plurality of specific objects in advance, and determines whether or not there is a specific object from the acquired images.
  • step S210 the smart device 20 arranges a virtual object corresponding to the detected specific object in the virtual space (step S210). Specifically, the smart device 20 calculates the position of a specific object from the positional relationship between the marker 40 and the specific object, and corresponds to the detected specific object at the same position in the virtual space as the calculated position. Place the virtual object to be used. For example, when the can 80 is detected as a specific object, the smart device 20 arranges the can object 180 in the virtual space.
  • the smart device 20 transmits / receives information to / from the information processing device 60 (step S211). Specifically, the smart device 20 transmits the position calculated in step S204 and the posture calculated in step S205 to the information processing device 60. Further, the smart device 20 transmits information regarding the positions and postures of the character 120 and the virtual camera 121 set in step S206 to the information processing device 60. Further, when the bullet object 122 is ejected into the virtual space in step S208, the smart device 20 transmits data regarding the ejection direction, ejection speed, etc. of the bullet object 122 to the information processing device 60 as ejection object data. Further, when the virtual object corresponding to the specific object is arranged in step S210, the smart device 20 transmits the data related to the arranged virtual object (type, position and posture of the virtual object) to the information processing device 60 as the detected object data. Send.
  • the smart device 20 receives other character data from the information processing device 60 in step S211. Specifically, the smart device 20 receives information on the positions and postures of the character 110 corresponding to the first HMD 10, the character 120 corresponding to the other smart device 20, and the character 130 corresponding to the second HMD 30 as other character data. .. As a result, the smart device 20 updates the other character data stored in the smart device 20. Further, the smart device 20 transmits the injection object data regarding the injection object ejected in response to the operation on the other device and the detection object data regarding the virtual object corresponding to the specific object detected by the other device from the information processing device 60. Receive.
  • the smart device 20 performs other game processing (step S212).
  • the smart device 20 performs game processing according to the position of each character or the ejection object. For example, the smart device 20 determines whether or not the ejection object 112 hits the character 130, and if it hits, the physical strength value of the character 130 is reduced.
  • the smart device 20 performs image generation / display processing (step S213). Specifically, the smart device 20 first generates an image of the virtual space based on the virtual camera 121. As a result, an image of the virtual space viewed from the virtual camera 121 is generated. For example, when the character 110 or the character 130 is included in the imaging range of the virtual camera 121, an image of the virtual space including the character 110 or the character 130 is generated. Further, the smart device 20 generates a superposed image in which the generated virtual space image is superimposed on the real space image acquired in step S201. Then, the smart device 20 displays the generated superimposed image on the display 22.
  • the smart device 20 returns the process to step S201 after the process of step S213.
  • the game progresses by repeating the processes of steps S201 to S213 at predetermined time intervals (for example, 1/60 second intervals).
  • FIG. 29 is a flowchart showing an example of the game control process executed in the information processing device 60. The process shown in FIG. 29 is performed by the processor 61 of the information processing device 60.
  • the information processing device 60 first performs initial processing in response to an instruction to start a game (step S600).
  • various objects related to the terrain 141 to 145) are arranged in the virtual space, the character 110 is arranged on the top of the hill object 145, and the character 130 is arranged at the initial position.
  • virtual cameras corresponding to each character are arranged.
  • the information processing device 60 acquires information from each device (step S601). Specifically, the information processing device 60 acquires the attitude information of the first HMD 10 transmitted from the first HMD 10. Further, the information processing device 60 acquires the posture information of the second HMD 30 transmitted from the second HMD 30 and the image captured by the camera 33. Further, the information processing device 60 acquires the position information and the posture information calculated by each smart device 20. Further, when the bullet object 122 is ejected in the smart device 20 (when the step S208 is executed), the information processing device 60 receives the ejected object data from the smart device 20. Further, when the information processing device 60 detects a specific object in the smart device 20 and arranges a virtual object corresponding to the specific object (when the above step S210 is executed), the information processing device 60 detects the detected object data from the smart device 20. To get.
  • step S601 the information processing device 60 acquires operation data corresponding to the operations on the controllers 18 and 38.
  • the operation data includes data indicating whether or not the button is pressed, data corresponding to the operation on the analog stick, data corresponding to the operation on the cross key, angular velocity data from the inertial sensor, and angular velocity data.
  • the information processing device 60 calculates the position information of the second HMD 30 (step S602). Specifically, the information processing apparatus 60 detects the marker 40 based on the image from the second HMD 30 acquired in step S601, and calculates the position of the second HMD 30 with respect to the marker 40 based on the detection result of the marker 40. .. The information processing device 60 may calculate the posture information of the second HMD 30 based on the image from the second HMD 30 in addition to the position information of the second HMD 30.
  • the information processing device 60 updates the position information and the posture information of each character (step S603). Specifically, the information processing device 60 updates the position information and posture information of the character 120 corresponding to each smart device 20 according to the position information and posture information acquired from each smart device 20 in step S601. Further, the information processing device 60 updates the posture information of the character 110 according to the posture information acquired from the first HMD 10 in step S601. Further, the information processing device 60 moves the character 130 in the virtual space based on the operation data acquired from the controller 38 in step S601, and updates the position information of the character 130.
  • the information processing device 60 updates the position information and the posture information of each virtual camera (step S604). Specifically, the information processing device 60 updates the position information and the posture information of each virtual camera 121 according to the position information and the posture information acquired from each smart device 20 in step S601. For example, the information processing device 60 sets the position and orientation of the virtual camera 121 so as to match the position and orientation of the character 120. Further, the information processing device 60 updates the posture information of the virtual camera 111 according to the posture information acquired from the first HMD 10 in step S601. When the virtual camera 131 is set to the first mode, the information processing device 60 updates the position information and the posture information of the virtual camera 131 according to the position information and the posture information of the second HMD 30.
  • the position information and the posture information of the virtual camera 131 are set according to the position information and the posture information of the character 130.
  • the position and orientation of the virtual camera 131 are set so as to match the position and orientation of the character 130.
  • the information processing device 60 controls each character based on the operation data (step S605). For example, the information processing device 60 causes the character 120 to eject the bullet object 122 based on the operation data from the smart device 20. Further, the information processing device 60 causes the character 110 to eject the bullet object 112 based on the operation data from the controller 18. Further, the information processing device 60 causes the character 130 to perform a predetermined operation (for example, an attack on the character 110) based on the operation data from the controller 38.
  • a predetermined operation for example, an attack on the character 110
  • the information processing device 60 performs other game processing (step S606). For example, when the bullet object 112 is moving, the information processing device 60 moves the bullet object 112 in the virtual space and determines whether or not the bullet object 112 hits the character 130. When the bullet object 112 hits the character 130, the information processing device 60 reduces the physical strength value of the character 130. Further, when the bullet object 122 hits the character 110, the information processing device 60 reduces the physical strength value of the character 110.
  • the information processing device 60 performs a transmission process (step S607). Specifically, the information processing device 60 transmits the processing results of steps S603, S605, and S606 to each smart device 20. As a result, the position information and posture information of each character (110, 120, 130) are transmitted to each smart device 20. In addition, information about the character ejecting the bullet object, the ejection direction of the bullet object, and the ejection speed is transmitted to each smart device 20.
  • the information processing device 60 performs a first image generation / transmission process in order to display an image on the display 12 of the first HMD 10 (step S608). Specifically, the information processing device 60 generates a virtual space image for the left eye based on the left virtual camera 111L, and generates a virtual space image for the right eye based on the right virtual camera 111R. Then, the information processing device 60 transmits the generated virtual space image for the left eye and the virtual space image for the right eye to the first HMD 10. As a result, the left-eye virtual space image and the right-eye virtual space image based on the virtual camera 111 are displayed on the left-eye display 12L and the right-eye display 12R of the first HMD 10, respectively.
  • the information processing device 60 performs a second image generation / transmission process in order to display an image on the display 32 of the second HMD 30 (step S609). Specifically, the information processing device 60 generates a virtual space image for the left eye based on the left virtual camera 131L and generates a virtual space image for the right eye based on the right virtual camera 131R. Then, the information processing device 60 transmits the generated virtual space image for the left eye and the virtual space image for the right eye to the second HMD 30. As a result, the left-eye virtual space image and the right-eye virtual space image based on the virtual camera 131 are displayed on the left-eye display 32L and the right-eye display 32R of the second HMD 30, respectively.
  • the information processing device 60 performs a third image generation / transmission process in order to display an image on the display 50 (step S610). Specifically, the information processing device 60 generates a virtual space image based on the virtual camera 150, and outputs the generated image to the display 50. As a result, the image based on the virtual camera 150 is displayed on the display 50.
  • the character 110 is arranged in the virtual space regardless of the position of the first HMD 10 in the real space.
  • the virtual camera 111 is arranged at a position corresponding to the position of the character 110 (S600).
  • the virtual camera 121 is arranged at a position in the virtual space corresponding to the position of the smart device 20 with respect to the marker 40 in the real space, and the posture of the virtual camera 121 is set according to the posture of the smart device 20 (S604). ..
  • the character 120 is set at a position in the virtual space corresponding to the position of the smart device 20 with respect to the marker 40.
  • the image of the virtual space including the character 120 seen from the virtual camera 111 is displayed on the display 12 of the first HMD 10.
  • an image of the virtual space including the character 110 seen from the virtual camera 121 is displayed on the display 22 of the smart device 20.
  • the first user can play the game while visually recognizing the virtual space from the viewpoint of the character 110 using the first HMD10, and can experience as if he / she exists in the virtual space. ..
  • the second user can visually recognize the same virtual space by using the smart device 20, and can feel as if a virtual object in the virtual space exists in the real space.
  • the first user wears the first HMD 10 on the head and visually recognizes the images displayed on the left and right displays 12 of the first HMD 10.
  • the display 12 visually recognized by the first user is not limited to the head-mounted display, but is a portable display held by hand (for example, a smartphone, a tablet terminal, a portable game device, a portable personal computer). Etc.), or it may be a stationary display (for example, a display of a television or a stationary personal computer).
  • the second user holds the portable smart device 20 and visually recognizes the image displayed on the display 22 of the smart device 20.
  • the portable display 22 visually recognized by the second user may be a display of a smartphone or a game device, or may be a head-mounted display. , It may be a glasses-type device including a transmissive display.
  • the character 110 is fixed at a predetermined position in the virtual space, the orientation of the character 110 is controlled according to the posture of the first HMD 10, and the character 110 is predetermined according to the swing operation with respect to the controller 18.
  • the action (the action of throwing the bullet object 112) was performed.
  • the position and orientation of the character 110 are controlled in response to an operation on the controller 18 (key input on the controller 18 (input on a button, analog stick, or cross key), swing operation on the controller 18, etc.).
  • the character 110 may be made to perform a predetermined operation.
  • the position of the character 110 may be controlled according to the operation on the first HMD 10, or the character 110 may be made to perform a predetermined operation.
  • the character 110 responds to an input to any input device including the first HMD 10 and the controller 18 (the inertial sensor of the first HMD 10, the key or inertial sensor of the controller 18, and other input devices different from the first HMD 10 and the controller 18). It may be controlled in the virtual space.
  • the "control of the character 110" referred to here includes a change in the position of the character 110, a change in the posture, a predetermined operation, and the like.
  • the position and orientation of the character 130 are controlled according to the key input to the controller 38.
  • the character 130 may be controlled in response to an operation on the controller 18 (key input on the controller 38, swing operation on the controller 38, etc.).
  • the character 130 may be controlled in response to an input to an arbitrary input device.
  • the position of the character 130 may be controlled according to the operation with respect to the controller 38, and the orientation of the character 130 may be controlled according to the posture of the second HMD 30.
  • the character 120 is made to perform a predetermined operation (for example, an operation of throwing a bullet object 122) in response to an input to the smart device 20.
  • control over the character 120 is in response to input to any input device, including the smart device 20, such as the touch panel, buttons, inertial sensors, and other input devices of the smart device 20. It may be done.
  • the position of the smart device 20 with respect to the marker 40 is calculated based on the image captured by the camera 23 of the smart device 20.
  • the position of the smart device 20 with respect to the marker 40 may be calculated by another method.
  • the position of the smart device 20 with respect to the marker 40 may be calculated by photographing the marker 40 and the smart device 20 with a camera arranged in a real space different from the smart device 20. Further, as described with reference to FIG. 9, the position of the smart device 20 in the real space may be calculated using the sensor bar 55.
  • the position of the smart device 20 with respect to the marker 40 is calculated, but in other embodiments, the position of the smart device 20 with respect to a predetermined reference in the real space is not limited to the marker 40. ..
  • the predetermined reference may be the marker 40, the sensor bar 55, another object, or a predetermined place.
  • the "position of the smart device 20 with respect to a predetermined reference" may be represented by coordinate values.
  • the posture of the first HMD 10 is calculated based on the data from the inertial sensor 15 of the first HMD 10.
  • the posture of the first HMD 10 may be calculated by another method.
  • the first HMD 10 may be imaged by a camera, and the posture of the first HMD 10 may be calculated based on the image from the camera.
  • the posture of the smart device 20 may also be calculated based on the image of the camera.
  • processing shown in the above flowchart is merely an example, and the order and contents of the processing may be changed as appropriate.
  • Each process of the above flowchart may be executed by any device of the first HMD 10, the smart device 20, the second HMD 30, and the information processing device 60.
  • the first HMD 10 calculates the posture based on the sensor data from the inertial sensor included in the own machine, and transmits the calculated posture information to the information processing device 60.
  • the information processing device 60 may acquire sensor data from the first HMD 10 and calculate the posture of the first HMD 10. Further, in the above embodiment, only the posture is calculated in the first HMD 10, and the information processing device 60 performs processing related to the actual game (setting the posture of the character 110, setting the posture of the virtual camera 111, generating an image). rice field.
  • the postures of the character 110 and the virtual camera 111 may be set and an image may be generated in the first HMD 10. The same applies to the second HMD30.
  • a part or all of the processes performed by the smart device 20 may be performed by the information processing device 60.
  • a part or all of the said processing performed in the information processing apparatus 60 may be executed in another apparatus.
  • all the processing of the information processing device 60 may be executed by the smart device 20.
  • the information processing device 60 may be composed of one or a plurality of devices.
  • the information processing device 60 may be composed of a plurality of devices connected to a network (for example, the Internet).
  • the first HMD 10, the smart device 20, the second HMD 30, and the display 50 are located at one local location. In other embodiments, they may each be located in remote locations and connected via a network.
  • the first HMD 10, the smart device 20, the second HM 30, and the information processing device 60 may be connected via the Internet.
  • an image may be generated based on one virtual camera, and the generated image may be modified to generate two images having parallax with each other.
  • first HMD10 and the second HMD30 a head-mounted display that is fixedly attached to the user's head is used.
  • a device for looking into the left and right displays while being held by the user may be used.
  • Image processing system 10 1st HMD 12 Display 18 Controller 20 Smart Device 22 Display 30 2nd HMD 40 Marker 50 Display 110 Character 111 Virtual Camera 120 Character 121 Virtual Camera 130 Character 131 Virtual Camera

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Optics & Photonics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Heart & Thoracic Surgery (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

仮想空間の画像の表示に関してユーザビリティを向上させることが可能な画像処理システムを提供する。画像処理システムの一例は、第1ユーザに装着される第1HMDと、第2ユーザによって携帯されるスマートデバイスとを含む。仮想空間には、現実空間の基準に対するスマートデバイスの位置に応じて、第2仮想カメラ及び第2オブジェクトが配置される。また、仮想空間には現実空間における第1HMDの位置とは無関係に第1オブジェクトが配置され、第1オブジェクトの位置に対応する位置に第1仮想カメラが配置される。第1仮想カメラに基づいて第2オブジェクトを含む仮想空間の画像が第1HMDに表示され、第2仮想カメラに基づいて第1オブジェクトを含む仮想空間の画像がスマートデバイスに表示される。

Description

画像処理システム、画像処理プログラム、および画像処理方法
 本発明は、複数のディスプレイに画像を表示させることが可能な画像処理システム、画像処理プログラム、および画像処理方法に関する。
 先行技術として、仮想空間に仮想オブジェクトを配置し、ディスプレイに仮想オブジェクトを含む仮想空間の画像を表示させるシステムがある(例えば、特許文献1参照)。
特開2019-74362号公報
 しかしながら、仮想空間の画像の表示に関してユーザビリティを向上するという観点では改善の余地があった。
 それ故、本発明の目的は、仮想空間の画像の表示に関してユーザビリティを向上させることが可能な画像処理システム、画像処理プログラム、および画像処理方法を提供することである。
 上記の課題を解決すべく、本発明は、以下の構成を採用した。
 本発明の画像処理システムは、第1ユーザが視認可能な第1ディスプレイと、前記第1ユーザの入力を受け付ける第1入力手段と、第2ユーザによって携帯され、前記第2ユーザが視認可能な可搬型の第2ディスプレイとを備える。また、画像処理システムは、第1オブジェクト配置手段と、第1オブジェクト制御手段と、第1仮想カメラ配置手段と、第2仮想カメラ配置手段と、第2オブジェクト配置手段と、第1表示制御手段と、第2表示制御手段とを備える。第1オブジェクト配置手段は、前記第1ディスプレイ及び前記第1ユーザの現実空間における位置に関わらず、仮想空間内に第1オブジェクトを配置する。第1オブジェクト制御手段は、前記第1入力手段が受け付けた入力に応じて、前記第1オブジェクトの制御を行う。第1仮想カメラ配置手段は、前記仮想空間内において、前記第1オブジェクトの位置に対応する位置に第1仮想カメラを配置する。第2仮想カメラ配置手段は、現実空間の基準に対する前記第2ディスプレイの位置に応じて設定される前記仮想空間内の第1位置に、第2仮想カメラを配置し、前記第2仮想カメラの姿勢を、現実空間における前記第2ディスプレイの姿勢に応じた第1姿勢に設定する。第2オブジェクト配置手段は、現実空間の前記基準に対する前記第2ディスプレイの位置に応じて設定される前記仮想空間内の第2位置に、第2オブジェクトを配置する。第1表示制御手段は、前記第1仮想カメラに基づいて生成された、前記第2オブジェクトを含む前記仮想空間の画像を、前記第1ディスプレイに表示させる。第2表示制御手段は、前記第2仮想カメラに基づいて生成された、前記第1オブジェクトを含む前記仮想空間の画像を、前記第2ディスプレイに表示させる。
 なお、前記第2位置は、前記第1位置と同じ位置であってもよいし異なる位置であってもよい。また、「前記第1オブジェクトの位置に対応する位置」とは、前記第1オブジェクトの位置と同じ位置であってもよいし、前記第1オブジェクトの位置とは異なる位置であってもよい。
 上記によれば、第1オブジェクトは、現実空間における第1ディスプレイの位置に関係なく仮想空間に設定され、第2オブジェクトは、現実空間の基準に対する第2ディスプレイの位置に応じて仮想空間に設定される。第1仮想カメラは、第1オブジェクトの位置に対応する仮想空間の位置に配置される。第2仮想カメラは、現実空間の基準に対する第2ディスプレイの位置に応じて仮想空間に配置され、第2仮想カメラの姿勢は、第2ディスプレイの姿勢に応じて設定される。そして、第1ディスプレイには、第1仮想カメラに基づいて第2オブジェクトを含む仮想空間の画像が表示され、第2ディスプレイには、第2仮想カメラに基づいて第1オブジェクトを含む仮想空間の画像が表示される。これにより、第1ディスプレイには、仮想空間の第1オブジェクトの位置に対応する位置から見た画像を表示させることができ、第2ディスプレイには、現実空間の基準に対する第2ディスプレイの位置に応じた仮想空間の位置から仮想空間を見た画像を表示させることができる。このため、第1ユーザと第2ユーザとで異なる視点から仮想空間を見ることができる。現実空間における第2ディスプレイの位置と連動して仮想空間内で第2オブジェクトの位置が設定されるため、第1ユーザは、仮想空間内で第2オブジェクトを見ることで現実空間における第2ユーザの位置を把握することができる。また、第2ユーザは、現実空間における第2ディスプレイの位置や姿勢に応じて仮想空間内の第1オブジェクトを見ることができる。
 また、画像処理システムは、前記第2ユーザの入力を受け付ける第2入力手段と、前記第2入力手段が受け付けた入力に応じて、前記仮想空間又は前記第1オブジェクトに影響を与える制御手段と、をさらに備えてもよい。
 上記によれば、第2ユーザの入力に基づいて仮想空間又は第1オブジェクトに影響を与えることができる。
 また、前記制御手段は、前記第2入力手段が受け付けた入力に応じて、前記仮想空間内に所定のオブジェクトを出現させてもよい。前記第1表示制御手段は、前記第2オブジェクトと前記所定のオブジェクトとを含む画像を前記第1ディスプレイに表示させ、前記第2表示制御手段は、前記第1オブジェクトと前記所定のオブジェクトとを含む画像を前記第2ディスプレイに表示させてもよい。
 上記によれば、第2ユーザの入力に応じて、仮想空間内に所定のオブジェクトを出現させ、第1ディスプレイ及び第2ディスプレイに所定のオブジェクトを表示させることができる。
 また、前記制御手段は、前記所定のオブジェクトを用いて、前記第1オブジェクトに変化を与えてもよい。
 上記によれば、第2ユーザの入力に応じて所定のオブジェクトを出現させ、当該所定のオブジェクトを用いて、第1オブジェクトに変化を与えることができる。
 また、画像処理システムは、ゲーム制御手段をさらに備えてもよい。ゲーム制御手段は、前記第1オブジェクトを用いたゲームを制御する。前記所定のオブジェクトは、前記第1オブジェクトにとって前記ゲームにおいて有利又は不利なオブジェクトであってもよい。
 上記によれば、第1ユーザによって制御される第1オブジェクトを用いたゲームを行うことができ、第2ユーザの入力に応じて、第1オブジェクトにとってゲーム上有利又は不利な所定のオブジェクトを仮想空間に出現させることができる。これにより、第2ユーザは、第1ユーザが行うゲームに参加することができる。
 また、前記第1ディスプレイは、ヘッドマウントディスプレイであってもよい。前記第2ディスプレイは、背面方向の現実空間を撮像するカメラを備えてもよい。前記第2仮想カメラ配置手段は、前記カメラからの画像に基づいて、前記基準として現実空間に配置されたマーカを検出し、前記マーカに対する前記第2ディスプレイの位置に応じた前記第1位置に前記第2仮想カメラを配置してもよい。前記第2表示制御手段は、前記カメラで撮像された現実空間の画像に、前記第2仮想カメラに基づいて生成された前記仮想空間の画像を重畳して、前記第2ディスプレイに表示させてもよい。
 上記によれば、第1ユーザはヘッドマウントディスプレイを装着して仮想空間を見る一方で、第2ユーザは、現実空間のマーカを撮像して、マーカに対する第2ディスプレイの位置に応じた位置から仮想空間を見ることができ、現実空間の画像に重畳して仮想空間の画像を見ることができる。第2ユーザは、現実空間内で移動したり向きを変えたりすることで、仮想空間の様々な視点から仮想空間を見ることができ、第1ユーザが見る仮想空間を、現実空間のように見ることができる。
 また、画像処理システムは、前記第1ユーザ又は前記第2ユーザによって把持されるコントローラを備えてもよい。前記第1ディスプレイ又は前記第2ディスプレイは、ヘッドマウントディスプレイであってもよい。画像処理システムは、前記ヘッドマウントディスプレイを装着している前記第1ユーザ又は前記第2ユーザの手を撮像可能なカメラを備えてもよい。また、画像処理システムは、指示オブジェクト配置手段と、第3表示制御手段とをさらに備えてもよい。指示オブジェクト配置手段は、前記カメラからの入力画像に基づいて、前記第1ユーザ又は前記第2ユーザの手、又は、前記コントローラを検出し、当該手の位置に前記コントローラを模した仮想的なコントローラオブジェクトを配置し、さらに前記コントローラオブジェクトの所定位置に、前記仮想空間内の位置を指示するための指示オブジェクトを配置する。第3表示制御手段は、前記コントローラオブジェクトと前記指示オブジェクトとを含む画像を前記ヘッドマウントディスプレイに表示させる。
 上記によれば、手の位置にコントローラを模した仮想的なコントローラオブジェクトが配置されるため、ユーザがヘッドマウントディスプレイを装着している場合でも、コントローラオブジェクトを見ながらコントローラを用いた操作を容易に行うことができる。また、コントローラオブジェクトの所定位置には指示オブジェクトが設けられるため、指示オブジェクトを見ながら仮想空間内の位置を正確に指示することができ、操作性を向上させることができる。
 また、画像処理システムは、現実空間を撮像するカメラと、仮想オブジェクト配置手段とをさらに備えてもよい。仮想オブジェクト配置手段は、前記カメラからの入力画像に基づいて、現実空間に存在する特定の物体を検出し、当該特定の物体に対応する仮想オブジェクトを、現実空間の前記特定の物体の位置に応じた前記仮想空間内の位置に配置する。前記第1表示制御手段は、前記仮想オブジェクトを含む前記仮想空間の画像を前記第1ディスプレイに表示させてもよい。
 上記によれば、現実空間に存在する実在物に対応する仮想オブジェクトを仮想空間に登場させることができ、第1ディスプレイに当該仮想オブジェクトを表示することができる。
 また、前記第2表示制御手段は、前記仮想オブジェクトを含む前記仮想空間の画像を前記第2ディスプレイに表示させてもよい。
 上記によれば、第2ディスプレイにも実在物に対応する仮想オブジェクトを表示することができる。
 また、前記仮想オブジェクト配置手段は、前記特定の物体を検出したことによって前記仮想オブジェクトを配置した後、前記カメラからの入力画像に基づいて前記特定の物体を検出しなくなった場合、前記仮想オブジェクトを前記仮想空間内に存続させてもよい。前記第1表示制御手段は、前記カメラからの入力画像に基づいて前記特定の物体を検出しなくなった場合でも、前記仮想オブジェクトを含む前記仮想空間の画像を前記第1ディスプレイに表示させてもよい。
 上記によれば、カメラで現実空間の特定の物体を検出したことによって仮想オブジェクトが仮想空間に配置された後、例えば、カメラが移動したりカメラの向きが変化することで特定の物体を検出できなくなった場合でも、仮想オブジェクトを仮想空間に存続させることができる。
 また、前記第1ディスプレイは、ヘッドマウントディスプレイであってもよい。画像処理システムは、前記第1ユーザが現実空間における所定範囲外に出たか否かを判定し、前記所定範囲外に出たと判定した場合に、前記第1ユーザに対して所定の報知を行う第1報知手段と、前記第2ユーザが前記所定範囲に進入したか否かを判定し、前記所定範囲に進入したと判定した場合に、前記第2ユーザに対して所定の報知を行う第2報知手段と、を備えてもよい。
 上記によれば、第1ユーザが所定範囲外に出た場合や第2ユーザが所定範囲内に進入した場合に、第1ユーザ及び第2ユーザに報知を行うことができる。
 また、前記第1入力手段は、キー入力可能なコントローラであってもよい。前記第1オブジェクト制御手段は、前記第1入力手段に対するキー入力に応じて、前記第1オブジェクトの位置または姿勢を制御してもよい。
 上記によれば、第1ユーザはキー入力によって第1オブジェクトを制御することができる。
 また、前記第1仮想カメラは、前記第1オブジェクトの位置に配置されてもよい。
 上記によれば、第1ディスプレイには、第1オブジェクトから見た仮想空間の画像を表示することができる。
 また、前記第1仮想カメラは、前記第1オブジェクトの位置から所定距離離れた位置に、前記第1オブジェクトを撮像範囲に含むように配置されてもよい。
 上記によれば、第1ディスプレイには、第1オブジェクトから所定位置離れた位置から、第1オブジェクトを含む仮想空間の画像を表示することができる。
 また、他の発明は、上記画像処理システムに含まれる1又は複数のコンピュータにおいて実行されるプログラムであってもよい。また、他の発明は、上記画像処理システムにおいて行われる画像処理方法であってもよい。
 本発明によれば、第1ディスプレイには、仮想空間の第1オブジェクトの位置に対応する位置から見た画像を表示させることができ、第2ディスプレイには、現実空間の基準に対する第2ディスプレイの位置に応じた位置から仮想空間を見た画像を表示させることができることができる。
本実施形態の画像処理システム1を用いて複数のユーザによって仮想空間の画像が視認される様子の一例を示す図 画像処理システム1の全体構成の一例を示す図 画像処理システム1に含まれる第1HMD10(又は第2HMD30)の構成の一例を示す図 画像処理システム1に含まれるスマートデバイス20の構成の一例を示す図 画像処理システム1に含まれるコントローラ18の構成の一例を示す図 スマートデバイス20のカメラ23でマーカ40を撮像することによって設定される仮想空間の座標系について説明するための図 複数の仮想オブジェクトを含む仮想空間100の一例を示す図 第1HMD10及び仮想カメラ111を右側から見た図であって、第1HMD10の姿勢の変化と連動するように仮想カメラ111の姿勢が変化する様子を示す図 第1HMD10、第2HMD30及びコントローラ18,38の位置を検出する方法の一例を示す図 第1HMD10のディスプレイ12に表示される画像の一例を示す図であって、第1ユーザが正面を向いているときの画像の一例である。 第1HMD10のディスプレイ12に表示される画像の一例を示す図であって、第1ユーザが右側を向いているときの画像の一例である。 図10に示す状態で、弾オブジェクト112が仮想空間内に射出される様子の一例を示す図 スマートデバイス20aのディスプレイ22に表示される画像の一例を示す図であって、第2ユーザaが図1に示す位置にいるときの画像の一例である。 第2ユーザaが第3ユーザ寄りに移動した後のスマートデバイス20aのディスプレイ22に表示される画像の一例を示す図 スマートデバイス20aに対する操作に応じて、キャラクタ120aが弾オブジェクト122を射出する様子の一例を示す図 第2HMD30のディスプレイ32に表示される画像の一例を示す図であって、仮想カメラ131が第1モードに設定されているときの画像の一例である。 第2HMD30のディスプレイ32に表示される画像の一例を示す図であって、仮想カメラ131が第2モードに設定されているときの画像の一例である。 作成モードにおけるユーザが見る画像の一例を示す図 複数のパーツオブジェクト173が平面状に並べられる様子を示す図 各パーツオブジェクトが配置されるグリッドを表示するためのグリッド線の一例を示す図 現実空間に実在物としての缶80がテーブル上に配置される様子を示す図 缶80に対応する仮想オブジェクト180が仮想空間内に配置される様子を示す図 各スマートデバイス20において記憶されるデータD20の一例を示す図 第1HMD10において記憶されるデータD10の一例を示す図 第2HMD30において記憶されるデータD30の一例を示す図 情報処理装置60において記憶されるデータD60の一例を示す図 第1HMD10又は第2HMD30において実行されるHMD処理の一例を示すフローチャート スマートデバイス20において実行されるスマートデバイス処理の一例を示すフローチャート 情報処理装置60において実行されるゲーム制御処理の一例を示すフローチャート
 (画像処理システムの構成)
 本実施形態の画像処理システム1は、複数のユーザに同一の仮想空間の画像を視認させるシステムであり、例えば、複数のユーザ間でゲームを行うためのシステムである。以下、図面を参照して、本実施形態の画像処理システム1について説明する。
 図1は、本実施形態の画像処理システム1を用いて複数のユーザによって仮想空間の画像が視認される様子の一例を示す図である。図2は、画像処理システム1の全体構成の一例を示す図である。図3は、画像処理システム1に含まれる第1HMD10(又は第2HMD30)の構成の一例を示す図である。図4は、画像処理システム1に含まれるスマートデバイス20の構成の一例を示す図である。図5は、画像処理システム1に含まれるコントローラ18の構成の一例を示す図である。
 図1に示されるように、画像処理システム1は、第1ユーザに装着される第1ヘッドマウントディスプレイ10(以下、「第1HMD」と表記する)と、第3ユーザに装着される第2ヘッドマウントディスプレイ30(以下、「第2HMD」と表記する)とを含む。
 第1HMD10は、第1ユーザの頭部に第1ユーザの両目を覆うように装着される。また、第2HMD30は、第3ユーザの頭部に第3ユーザの両目を覆うように装着される。第1HMD10及び第2HMD30は、基本的に同じ構成を有する装置である。以下、図3を参照して、第1HMD10及び第2HMD30の構成の一例について説明する。
 図3に示されるように、第1HMD10は、右目用ディスプレイ12Rと、左目用ディスプレイ12Lとを有する。右目用ディスプレイ12Rは、ユーザが第1HMD10を装着した場合に、図示しないレンズを介してユーザの右目で視認される。左目用ディスプレイ12Lは、ユーザが第1HMD10を装着した場合に、図示しないレンズを介してユーザの左目で視認される。右目用ディスプレイ12Rおよび左目用ディスプレイ12Lとしては、任意の表示装置が用いられてもよく、例えば液晶表示装置や有機EL表示装置が用いられてもよい。ユーザが第1HMD10を装着した場合、第1ユーザの右目及び左目は、右目用ディスプレイ12R及び左目用ディスプレイ12Lのそれぞれに覆われ、第1ユーザの視野はほぼディスプレイ12に覆われる。このため、第1HMD10を装着した場合、第1ユーザは、現実空間を見ずにディスプレイ12に表示された画像のみを見る。
 なお、ディスプレイ12は、透過型のディスプレイであってもよい。この場合、第1ユーザは、ディスプレイ12を介して現実空間を視認可能であるとともに、ディスプレイ12に表示された画像を視認可能である。
 また、第1HMD10の正面には、ユーザから見て右側に位置する右カメラ13Rと、ユーザから見て左側に位置する左カメラ13Lとが設けられる。右カメラ13Rおよび左カメラ13Lは、可視光を受光して画像(RGB画像)を生成するためのカメラである。以下では、右カメラ13Rと左カメラ13Lを総称して「カメラ13」と表記することがある。
 また、第1HMD10の正面には、ユーザから見て右側に位置する右赤外線カメラ14Rと、ユーザから見て左側に位置する左赤外線カメラ14Lとが設けられる。右赤外線カメラ14Rおよび左赤外線カメラ14Lは、赤外光を受光して赤外線画像を生成するためのカメラである。詳細は後述するが、右赤外線カメラ14Rおよび左赤外線カメラ14Lは、ユーザの手を検出するために用いられる。以下では、右赤外線カメラ14Rと左赤外線カメラ14Lを総称して「赤外線カメラ14」と表記することがある。
 第1HMD10には、第1HMD10の右方向の軸であるx軸と、第1HMD10の上方向の軸であるy軸と、第1HMD10の正面方向の軸であるz軸とが設定される。第1HMD10は、x軸、y軸、z軸の各軸方向に関する加速度および角速度を検出する慣性センサ15(図2参照)を備える。慣性センサ15によって検出された加速度および角速度に基づいて、第1HMD10の姿勢を算出することができる。
 また、第1HMD10は、ネットワーク(LANやWAN、インターネット等)に接続するための通信モジュール16を備える(図2参照)。
 第2HMD30も第1HMD10と同様の構成を有する。具体的には、第2HMD30は、左右のディスプレイ32(32L及び32R)と、左右のカメラ33(33L及び33R)と、左右の赤外線カメラ34(34L及び34R)とを有する(図2参照)。また、第2HMD30は、x軸、y軸、z軸の各軸方向に関する加速度および角速度を検出する慣性センサ35と、通信モジュール36とを備える(図2参照)。なお、以下では、第1HMD10及び第2HMD30を総称して、「HMD」と表記することがある。
 また、図1に示されるように、画像処理システム1は、第2ユーザによって携帯されるスマートデバイス20を含む。第2ユーザは複数存在してもよい。ここでは、第2ユーザは、第2ユーザaと、第2ユーザbとを含むものとする。第2ユーザaはスマートデバイス20aを把持し、第2ユーザbはスマートデバイス20bを把持する。なお、以下では、スマートデバイス20a及び20bを区別しない場合には、「スマートデバイス20」と表記する。
 スマートデバイス20は、例えば、スマートフォンやタブレット端末等である。図4に示されるように、スマートデバイス20の正面には、ディスプレイ22が設けられる。ディスプレイ22は、例えば液晶表示装置や有機EL表示装置である。また、スマートデバイス20の背面(ディスプレイ22と反対側の面)には、カメラ23が設けられる。カメラ23は、可視光を受光してRGB画像を生成するためのカメラである。なお、カメラ23は、背面と異なる面を含めて複数個所に設けられてもよい。
 また、スマートデバイス20には、スマートデバイス20の右方向の軸であるx軸と、上方向の軸であるy軸と、正面方向の軸であるz軸とが設定される。スマートデバイス20は、x軸、y軸、z軸の各軸方向に関する加速度および角速度を検出する慣性センサ24(図2参照)を備える。スマートデバイス20は、慣性センサ24によって検出された加速度および角速度に基づいて、スマートデバイス20の姿勢を算出することができる。また、スマートデバイス20は、ネットワークに接続するための通信モジュール25を備える(図2参照)。
 また、画像処理システム1は、第1ユーザによって把持されるコントローラ18と、第3ユーザによって把持されるコントローラ38とを含む。図5を参照して、コントローラ18の構成の一例について説明する。
 図5に示されるように、コントローラ18は、ユーザが押下可能な複数のボタン181(Aボタン、Bボタン、Cボタン、Dボタン)と、方向指示を行うためのアナログスティック182と、方向指示を行うための十字キー183とを備える。また、コントローラ18は、図5に示すx軸、y軸、z軸の各軸方向に関する加速度および角速度を検出する慣性センサ(図2参照)を備える。コントローラ18の慣性センサによって検出された加速度および角速度に基づいて、コントローラ18の姿勢や動きを算出することができる。例えば、慣性センサからの加速度及び角速度に基づいて、コントローラ18が振られたか否かを判定することができる。また、コントローラ18は、ネットワークに接続するための通信モジュールを備える(図2参照)。なお、コントローラ38は、コントローラ18と基本的に同じ構成を有するため、説明を省略する。
 また、図1に示されるように、画像処理システム1は、マーカ40と、ディスプレイ50と、ディスプレイ50に有線又は無線で接続された情報処理装置60とを含む。
 マーカ40は、例えば、所定の画像(例えば矢印の画像)が印刷されたカードであり、テーブル等の上面に載置される。ディスプレイ50は、テレビ等の据置型の表示装置であり、例えば、液晶表示装置や有機EL表示装置であってもよい。ディスプレイ50は、HMD(第1HMD10又は第2HMD30)やスマートデバイス20を携帯していない第4ユーザが仮想空間の画像を視認するための表示装置である。
 図2に示されるように、情報処理装置60は、1又は複数のプロセッサ61と、メモリ62と、ネットワークに接続するための通信モジュール63とを備える。情報処理装置60は、本実施形態のゲームの全体を制御するための装置である。情報処理装置60は、仮想空間内の様々な仮想オブジェクトの位置や姿勢を管理し、仮想オブジェクトの制御を行う。詳細は後述するが、情報処理装置60のメモリ62には、仮想空間に配置される各キャラクタに関するキャラクタ情報が記憶される。キャラクタ情報は、キャラクタの位置や姿勢に関する情報を含む。また、情報処理装置60には、各仮想カメラの位置や姿勢に関する仮想カメラ情報が記憶される。
 また、詳細は後述するが、情報処理装置60は、ディスプレイ50に表示するための仮想空間の画像を生成し、生成した画像をディスプレイ50に出力する。また、情報処理装置60は、第1HMD10および第2HMD30に表示するための仮想空間の画像を生成し、生成した画像を第1HMD10および第2HMD30にネットワークを介して送信する。情報処理装置60としては、パーソナルコンピュータ、ゲーム装置、サーバ装置、スマートフォン、タブレット端末等、任意の情報処理装置が用いられてもよい。また、情報処理装置60は、複数の装置によって構成されてもよく、複数の装置がネットワーク(LAN、WAN、インターネット等)を介して接続されることによって構成されてもよい。
 本実施形態では、第1ユーザ~第4ユーザが基本的に同じ場所(例えば同じ部屋)に位置し、画像処理システム1を用いて複数人でゲームを行う。第1ユーザは、例えば、テーブルから少し離れた位置に配置されたマット51の上でゲームのための操作を行う。第1ユーザは、第1HMD10の左右のディスプレイ12に表示された仮想空間の画像を見ながら、例えばコントローラ18を振ることでゲーム操作を行う。具体的には、第1HMD10の右目用ディスプレイ12Rには、仮想空間に配置された右仮想カメラに基づいて生成された右目用仮想空間画像が表示され、第1HMD10の左目用ディスプレイ12Lには、仮想空間に配置された左仮想カメラに基づいて生成された左目用仮想空間画像が表示される。これにより、第1ユーザは、仮想空間の立体視画像を視認することができ、自身が仮想空間に存在するかのようなバーチャルリアリティ(VR)を体験することができる。
 第1ユーザ(第1HMD10)は、テーブル上に置かれたマーカ40に対する位置に関わらず、テーブル(マーカ40)から離れていてもゲームを行うことが可能である。すなわち、第1HMD10のカメラ13がマーカ40を撮像しなくても、第1ユーザは仮想空間の画像を視認することができる。
 第2ユーザは、テーブルの近くに位置し、スマートデバイス20のカメラ23でテーブル上に載置されたマーカ40を撮像し、スマートデバイス20に表示された画像を見ながらゲームを行う。スマートデバイス20(のディスプレイ22)には、カメラ23で撮像した現実空間の画像に仮想空間の画像が重畳された画像(以下、重畳画像という)が表示される。これにより、第2ユーザは、例えば現実空間に仮想空間内の仮想オブジェクトが存在するような感覚を抱くことができ、拡張現実(Augmented Reality:AR)を体験することができる。詳細は後述するが、現実空間のマーカ40を基準として仮想空間の座標系が定義され、仮想空間と現実空間とが対応付けられる。
 なお、スマートデバイス20には、必ずしも現実空間の画像に仮想空間の画像が重畳された重畳画像が表示される必要はなく、仮想空間の画像のみが表示されてもよい。スマートデバイス20に仮想空間の画像のみが表示される場合でも、現実空間のマーカ40を基準として仮想空間の座標系が定義されるため、仮想空間と現実空間とが対応付けられる。このため、第2ユーザは、現実空間に仮想空間内の仮想オブジェクトが存在するような感覚を抱くことができる。すなわち、本実施形態における拡張現実(AR)とは、現実空間の基準と仮想空間とが対応付けられていれば、必ずしも現実空間の画像に仮想空間の画像が重畳されて表示される必要はなく、仮想空間の画像のみがディスプレイに表示されてもよい。
 また、第3ユーザは、テーブルの近くに位置し、第2HMD30のカメラ33でマーカ40を撮像し、第2HMD30の左右のディスプレイ32に表示された仮想空間の画像を見ながらコントローラ38を操作することでゲームを行う。なお、詳細は後述するが、第2HMD30のカメラ33がマーカ40を撮像できなくても、第3ユーザがゲームを行うことができる場合がある。
 また、第4ユーザは、ディスプレイ50に表示された仮想空間の画像を見て、第1ユーザ~第3ユーザの間で行われるゲームを観戦する。
 (マーカ40を基準とした仮想空間の座標系の定義)
 次に、カメラでマーカ40を撮像することによって現実空間と仮想空間とを対応付けることについて説明する。図6は、スマートデバイス20のカメラ23でマーカ40を撮像することによって設定される仮想空間の座標系について説明するための図である。
 図6に示されるように、スマートデバイス20のカメラ23で現実空間を撮像した場合、マーカ40を含む画像が取得される。スマートデバイス20は、種々の画像認識技術を用いて、取得された画像からマーカ40を検出する。スマートデバイス20は、取得された画像からマーカ40を検出した場合、マーカ40の画像の大きさや形状、向き等に基づいて、現実空間におけるマーカ40に対するスマートデバイス20(のカメラ23)の位置を算出する。例えば、スマートデバイス20は、マーカ40の所定の頂点を原点Oとし、マーカ40内の矢印の方向と反対方向をX軸とし、矢印と垂直な方向をZ軸とし、マーカ40に垂直な方向(上方向)をY軸とする、XYZ座標系を設定する。このXYZ座標系は、仮想空間の位置を定義するための座標系として用いられる。また、スマートデバイス20は、カメラ23から取得された画像に含まれるマーカ40の画像に基づいて、マーカ40対するスマートデバイス20の位置(マーカからの相対位置)を、XYZ座標系の座標値(X1,Y1,Z1)として算出する。仮想空間におけるこの位置(X1,Y1,Z1)に仮想カメラを配置することで、現実空間におけるマーカ40を基準としたスマートデバイス20の位置と、仮想空間における仮想カメラの位置とが一致するようになる。そして、例えば、仮想空間のXZ平面の所定位置に仮想オブジェクト101を配置した場合、仮想カメラで仮想空間を撮像してディスプレイ22に表示することで、図6のように、現実空間の画像に重畳して仮想オブジェクト101が表示されるようになる。
 (仮想空間の説明)
 次に仮想空間に配置される各種仮想オブジェクトについて説明する。テーブル上のマーカ40を基準としてXYZ座標系が設定され、複数の仮想オブジェクトを含む仮想空間が設定される。図7は、複数の仮想オブジェクトを含む仮想空間100の一例を示す図である。
 図7に示されるように、本実施形態のゲームでは、テーブル上に仮想空間が形成される。XZ平面(すなわち、テーブル上)には、仮想空間100内の地形を形成するための様々な仮想オブジェクトが配置される。例えば、XZ平面には、地面オブジェクト141と、木オブジェクト142と、川オブジェクト143と、橋オブジェクト144と、丘オブジェクト145とが配置される。丘オブジェクト145は、高さを有する仮想オブジェクトであり、丘オブジェクト145の頂上には、キャラクタ110が配置される。また、例えば、地面オブジェクト141上には、初期的にキャラクタ130が配置される。
 キャラクタ110は、第1ユーザに対応する仮想オブジェクトであり、第1ユーザによって制御される。本実施形態のゲームでは、キャラクタ110の位置は丘オブジェクト145の頂上に固定されている。キャラクタ110は、弾オブジェクト112を把持している。例えば、第1ユーザがコントローラ18を振ると、キャラクタ110が弾オブジェクト112を仮想空間100内に射出する。射出された弾オブジェクト112は仮想空間100内を移動する。例えば、弾オブジェクト112がキャラクタ130に当たった場合、キャラクタ130の体力値が減少したり、キャラクタ130が倒れたりする。キャラクタ130が倒れた場合、第1ユーザ側の勝利となる。
 また、キャラクタ110の位置に対応する位置に、仮想カメラ111が配置される。具体的には、キャラクタ110(例えばキャラクタ110の目の位置)と一致する位置に、仮想カメラ111が配置される。なお、図7では、キャラクタ110の位置と仮想カメラ111の位置とがずれているように見えるが、実際にはこれらの位置は一致しているものとする。仮想カメラ111は、左仮想カメラ111Lと右仮想カメラ111Rとを含む。左仮想カメラ111Lは、第1HMD10の左目用ディスプレイ12Lに表示される左目用仮想空間画像を生成するための仮想カメラである。右仮想カメラ111Rは、第1HMD10の右目用ディスプレイ12Rに表示される右目用仮想空間画像を生成するための仮想カメラである。左仮想カメラ111Lと右仮想カメラ111Rとは、所定距離(例えば、ユーザの平均的な目の間隔に対応する仮想空間の距離)だけ離れて仮想空間100内に配置される。
 なお、仮想カメラ111は、厳密にキャラクタ110の目の位置に配置される必要はなく、例えば、キャラクタ110が表示される位置であってキャラクタ110の目の位置から上下又は左右方向にずれた位置に配置されてもよい。また、仮想カメラ111は、キャラクタ110と同じ位置に配置されず、キャラクタ110と所定の位置関係を有する位置(キャラクタ110から所定距離だけ離れた位置)に配置されてもよい。例えば、仮想カメラ111は、キャラクタ110の後方の所定位置に配置されてもよい。また、仮想カメラ111は、キャラクタ110の斜め後方の所定位置に配置されてもよい。すなわち、「キャラクタ110の位置に対応する位置に仮想カメラ111が配置される」とは、キャラクタ110と同じ位置に仮想カメラ111が配置される場合と、キャラクタ110から所定距離離れた位置に仮想カメラ111が配置される場合の両方を含む。
 キャラクタ110及び仮想カメラ111(111R及び111L)の向きは、現実空間における第1ユーザ(第1HMD10)の向きに応じて設定される。すなわち、キャラクタ110及び仮想カメラ111の姿勢は、現実空間における第1HMD10の姿勢と連動する。
 図8は、第1HMD10及び仮想カメラ111を右側から見た図であって、第1HMD10の姿勢の変化と連動するように仮想カメラ111の姿勢が変化する様子を示す図である。仮想カメラ111には、視線方向の軸であるZc軸と、右方向の軸であるXc軸と、上方向の軸であるYc軸とが設定される。図8に示されるように、仮想カメラ111のXc軸、Yc軸、Zc軸が、第1HMD10のx軸、y軸、z軸のそれぞれと平行となるように、仮想カメラ111の姿勢が制御される。
 具体的には、第1HMD10の姿勢の初期化が行われた時点から第1HMD10のz軸の向きが変化しておらず、かつ、第1HMD10のy軸が重力方向と反対方向を向いている状態を基準姿勢と呼ぶ。第1HMD10が基準姿勢であるときは、仮想カメラ111は、仮想空間内で正面(例えば、X軸正方向)を向く。すなわち、仮想カメラ111の視線方向を示すZc軸は、仮想空間のX軸と平行になる。図8の右側の図に示されるように、第1ユーザが現実空間で斜め上を向いた場合、第1HMD10の姿勢が基準姿勢から変化し、第1HMD10のz軸が斜め上を向くようになる。この第1HMD10の姿勢変化に連動して、仮想カメラ111のZc軸も仮想空間内で斜め上を向くようになる。また、図示は省略するが、例えば、第1HMD10が基準姿勢から右方向に30度だけ回転した場合(y軸回りに反時計回りに30度回転した場合)、仮想空間内で仮想カメラ111も右方向に30度(Yc軸回りに反時計回りに30度)回転する。
 このように、現実空間における第1HMD10の姿勢と一致するように仮想カメラ111(111R及び111L)の姿勢が設定される。また、キャラクタ110の姿勢も、仮想カメラ111の姿勢と連動する。すなわち、第1HMD10の姿勢が変化することで、仮想カメラ111及びキャラクタ110の姿勢が変化する。なお、仮想カメラ111がキャラクタ110から所定距離だけ離れた位置(例えば、キャラクタ110の後方の所定位置)に配置される場合、キャラクタ110の姿勢の変化に応じて、仮想カメラ111は姿勢だけでなく位置も変化してもよい。
 一方、現実空間における第1HMD10の位置が変化しても、仮想カメラ111及びキャラクタ110の位置は変化せず、仮想カメラ111及びキャラクタ110は、丘オブジェクト145の頂上に固定される。
 図7に戻り、地面オブジェクト141上には、キャラクタ130が配置される。キャラクタ130は、第3ユーザに対応する仮想オブジェクトであり、第3ユーザによって制御される。具体的には、キャラクタ130は、コントローラ38に対するキー入力(ボタン、アナログスティック、又は、十字キーに対する入力)に応じて、仮想空間100内を移動する。また、キャラクタ130の姿勢は、当該キー入力に応じて変化する。キャラクタ130は、地面オブジェクト141、橋オブジェクト144、丘オブジェクト145上を移動可能である。第3ユーザは、コントローラ38を用いて、キャラクタ130を地面オブジェクト141上で移動させ、例えば、橋オブジェクト144を通って丘オブジェクト145の頂上まで移動させる。そして、キャラクタ130が丘オブジェクト145の頂上まで辿り着くと、キャラクタ130とキャラクタ110との戦闘が開始される。当該戦闘において、キャラクタ130がキャラクタ110を倒した場合、第3ユーザ側の勝利となる。
 仮想空間100には、第3ユーザに対応する仮想カメラ131が設定される。仮想カメラ131は、左仮想カメラ131Lと右仮想カメラ131Rとを含む。左仮想カメラ131Lは、第2HMD30の左目用ディスプレイ32Lに表示される左目用仮想空間画像を生成するための仮想カメラである。右仮想カメラ131Rは、第2HMD30の右目用ディスプレイ32Rに表示される右目用仮想空間画像を生成するための仮想カメラである。左仮想カメラ131Lと右仮想カメラ131Rとは、所定距離だけ離れて配置される。
 第3ユーザは、仮想カメラ131に基づいて生成された画像を見ながらゲームを行う。第3ユーザは、第1モードと第2モードとで視点(すなわち、仮想カメラ131の位置)を切り替えることが可能である。第1モードに設定されている場合、仮想カメラ131は、キャラクタ130の位置には依存せず、仮想空間100を俯瞰する位置に配置される。
 具体的には、第1モードに設定されている場合、仮想カメラ131は、現実空間の第2HMD30の位置に応じた仮想空間の位置に配置される。図6を参照して説明した方法と同様の方法により、マーカ40を基準とした第2HMD30の位置が算出され、算出された位置に仮想カメラ131が配置される。すなわち、第2HMD30のカメラ33によって撮像された画像に基づいて、マーカ40が検出され、検出されたマーカ40の大きさ、形状、向きに基づいて、マーカ40に対する第2HMD30の位置が算出される。算出された第2HMD30の位置に応じた仮想空間の位置に、仮想カメラ131が設定される。例えば、左仮想カメラ131Lは、マーカ40を基準とした第2HMD30の左カメラ33Lの位置と一致する仮想空間の位置に設定され、右仮想カメラ131Rは、マーカ40を基準とした第2HMD30の右カメラ33Rの位置と一致する仮想空間の位置に設定される。
 一方、第2モードに設定されている場合、仮想カメラ131は、キャラクタ130の位置に対応する位置(図7の131’の位置)に設定される。例えば、仮想カメラ131は、キャラクタ130と一致する位置(例えば、キャラクタ130の両目の位置)に設定されてもよい。また、仮想カメラ131は、キャラクタ130の後方の所定位置に設定されてもよい。第2モードに設定されている場合、仮想カメラ131は、キャラクタ130に追従して移動する。
 また、仮想空間100には、キャラクタ120aおよび120bが配置される。キャラクタ120aは、第2ユーザa(スマートデバイス20a)に対応する仮想オブジェクトである。また、キャラクタ120bは、第2ユーザb(スマートデバイス20b)に対応する仮想オブジェクトである。
 キャラクタ120aの位置に対応する位置に、仮想カメラ121aが配置される。仮想カメラ121aは、キャラクタ120aと一致する位置(例えば、キャラクタ120aの頭部の位置)に設定されてもよい。また、仮想カメラ121aは、キャラクタ120aの後方の所定位置に設定されてもよい。同様に、キャラクタ120bの位置に対応する位置に、仮想カメラ121bが配置される。仮想カメラ121bは、キャラクタ120bと一致する位置に設定されてもよいし、キャラクタ120bの後方の所定位置に設定されてもよい。
 図6を参照して説明したように、キャラクタ120a及び仮想カメラ121aの位置は、現実空間におけるスマートデバイス20aの位置に応じて設定される。例えば、仮想空間100におけるキャラクタ120a及び仮想カメラ121aの位置は、現実空間におけるマーカ40に対するスマートデバイス20aの位置と一致する。同様に、仮想空間100におけるキャラクタ120b及び仮想カメラ121bの位置は、現実空間におけるマーカ40に対するスマートデバイス20bの位置と一致する。
 また、キャラクタ120a及び仮想カメラ121aの姿勢は、現実空間におけるスマートデバイス20aの姿勢と一致するように制御される。同様に、キャラクタ120b及び仮想カメラ121bの姿勢は、現実空間におけるスマートデバイス20bの姿勢と一致するように制御される。
 現実空間におけるスマートデバイス20の位置及び姿勢に応じて、キャラクタ120(及び仮想カメラ121)の位置及び姿勢が制御されるため、第2ユーザがスマートデバイス20を把持しながら移動したり、スマートデバイス20の向きを変化させたりすると、仮想空間100においてキャラクタ120(及び仮想カメラ121)も移動したり、キャラクタ120(及び仮想カメラ121)の向きが変化したりする。
 また、図7に示されるように、仮想空間100には、仮想カメラ150が配置される。仮想カメラ150は、据置型のディスプレイ50に表示する画像を生成するための仮想カメラであり、仮想空間100の所定位置に所定の姿勢で固定される。仮想カメラ150は、仮想空間100の全体を俯瞰する位置に配置される。例えば、仮想カメラ150の撮像範囲には、キャラクタ110、120及び130が含まれ、キャラクタ110、120及び130を含む仮想空間の画像がディスプレイ50に表示される。なお、仮想カメラ150の位置及び/又は姿勢は、ユーザの操作に応じて変化されてもよい。
 なお、ディスプレイ50には、仮想カメラ111又は仮想カメラ131から仮想空間を見た画像が表示されてもよい。また、ディスプレイ50には、仮想カメラ121から仮想空間を見た画像が表示されてもよい。また、ユーザが仮想カメラ111、121、131、及び、150の中から何れかを選択し、選択した仮想カメラに基づいて生成された画像がディスプレイ50に表示されてもよい。また、ディスプレイ50には、スマートデバイス20のディスプレイ22に表示される画像と同じ画像(現実空間の画像に仮想空間の画像が重畳された画像)が表示されてもよい。
 このように、本実施形態では、テーブル上にマーカ40を配置し、マーカ40を基準として仮想空間の座標系が設定される。テーブルの上面が仮想空間のXZ平面に対応し、当該XZ平面上に仮想オブジェクトが配置される。これにより、スマートデバイス20を介してテーブルを見たときにテーブル上に仮想オブジェクトが表示され、テーブルをディスプレイのように用いてゲームを行うことができる。
 なお、次に示す方法により、第1HMD10及び/又は第2HMD30の位置が検出されてもよい。図9は、第1HMD10、第2HMD30及びコントローラ18,38の位置を検出する方法の一例を示す図である。
 図9に示されるように、現実空間の所定位置には2つのセンサバー55が配置される。センサバー55は、その先端部分から所定の時間間隔で、例えば赤外光を出力する。例えば、第1HMD10の赤外線カメラ14(又は他の赤外線受信チップ)は、センサバー55からの赤外光を受信し、センサバー55からの距離や角度を計算し、位置を算出することができる。第2HMD30についても同様である。また、コントローラ18,38は、センサバー55からの赤外光を受信する赤外線受信チップを備え、同様に位置を検出する。なお、第1HMD10、第2HMD30、及びコントローラ18,38の位置を検出する方法はこれに限らず、他の方法によりこれらの位置が検出されてもよい。例えば、現実空間に1又は複数のカメラを設置し、第1HMD10、第2HMD30、及びコントローラ18,38が所定の光を発する発光部を備え、現実空間に設置されたカメラで発光部からの光を受信することで、第1HMD10、第2HMD30、及びコントローラ18,38の現実空間の位置が検出されてもよい。
 検出された第1HMD10、第2HMD30、及びコントローラ18,38の位置がゲーム制御に用いられてもよい。例えば、上記では現実空間の基準(マーカ)に対する第2HMD30の位置を、第2HMD30が備えるカメラ33でマーカ40を撮像することにより検出したが、図9で示した方法により現実空間の基準(センサバー)に対する第2HMD30の位置を検出し、検出した位置を上述のようにゲーム制御に用いてもよい。この場合、現実空間のマーカと、センサバーとの位置関係が定められることで、マーカを基準としたXYZ座標系における第2HMD30の位置を算出することができる。
 また、例えば、コントローラ18の現実空間における位置を検出することで、コントローラ18が振られたか否かを検出してもよい。コントローラ18が振られた場合には、弾オブジェクト112が射出されてもよい。
 図7に示される各仮想オブジェクト(キャラクタ110、120a、120b、130、仮想カメラ111、112a、112b、131等)の位置や姿勢に関する情報は、ネットワークを介して情報処理装置60に送信され、情報処理装置60内で管理される。例えば、スマートデバイス20aが、現実空間における自機の位置及び姿勢を検出し、検出した位置及び姿勢と一致するように仮想空間内のキャラクタ120aの位置及び姿勢を設定する。スマートデバイス20aは、設定したキャラクタ120aの位置及び姿勢に関する情報を、情報処理装置60に送信する。また、仮想空間100内に配置される地形に関する仮想オブジェクト(141~145等)の位置情報等は、情報処理装置60内で管理される。また、コントローラ18、38に対する操作に応じた操作情報は、情報処理装置60に送信される。
 これら各仮想オブジェクトに関する情報や、コントローラ18、38の操作情報に基づいて、情報処理装置60においてゲーム制御処理が行われる。このゲーム制御処理の結果、第1HMD10及び第2HMD30において仮想空間の画像が表示される。また、スマートデバイス20は、情報処理装置60から各仮想オブジェクトに関する情報を取得し、自機においてゲーム処理を行い、その結果に基づく画像をディスプレイ22に表示する。以下、各デバイスにおいて表示される画像の一例について説明する。
 (各デバイスに表示される画像の一例)
 図10は、第1HMD10のディスプレイ12に表示される画像の一例を示す図であって、第1ユーザが正面を向いているときの画像の一例である。第1HMD10のディスプレイ12には、仮想カメラ111から仮想空間100を見た画像が表示される。なお、図10では、1つの画像が平面的に示されているが、実際には、右目用ディスプレイ12R及び左目用ディスプレイ12Lのそれぞれに互いに視差を有する画像が表示され、第1ユーザは立体視画像として認識する。第1ユーザの視野はほぼ第1HMD10のディスプレイ12に覆われる。
 図10に示されるように、第1HMD10のディスプレイ12には、丘オブジェクト145の頂上から、キャラクタ130を含む地形全体を見下ろすような画像が表示される。第1ユーザには目の前に仮想空間が広がっているように見え、第1ユーザは、丘オブジェクト145の頂上に立っているような感覚を覚える。第1ユーザの視界には、キャラクタ110の右手の一部が見え、右手には弾オブジェクト112を把持している様子が見える。第1ユーザから見えるキャラクタ110の右手の大きさは、現実空間において第1ユーザが自身の右手を見るときの大きさと類似する大きさである。すなわち、第1ユーザから見える仮想空間のスケールは、現実空間のスケールとほぼ同じである。キャラクタ110の右手の姿勢は、現実空間におけるコントローラ18の姿勢と同じであり、第1ユーザがコントローラ18を把持した右手を上げれば、キャラクタ110の右手も上げられる。
 第1ユーザからは、キャラクタ130は、地面オブジェクト141上に奥行き方向の右側に位置しているように見える。第1ユーザにとっては、例えば数十メートル先にキャラクタ130が存在しているように見える。また、地面オブジェクト141から離れた左上の方向には、キャラクタ120aが見える。キャラクタ120aは、仮想空間内で浮いているように見える。
 図10に示される状態から第1ユーザが現実空間において右側を向いた場合、図11に示すような画像が表示される。図11は、第1HMD10のディスプレイ12に表示される画像の一例を示す図であって、第1ユーザが右側を向いているときの画像の一例である。
 図11に示されるように、第1ユーザが右側を向くと、仮想空間の仮想カメラ111及びキャラクタ110も右側を向き、例えば、キャラクタ130がほぼ正面に表示されるようになる。また、図10では表示されなかったキャラクタ120bが、図11では右上に表示されるようになる。また、図10では表示されていたキャラクタ120aが、図11では表示されなくなる。
 ここで、第1ユーザは、弾オブジェクト112を用いてキャラクタ130に対して攻撃を行う。例えば、第1ユーザが把持しているコントローラ18を振った場合、仮想空間内でキャラクタ110が右腕を振るような動作を行い、弾オブジェクト112が仮想空間内に射出される。なお、コントローラ18のボタン181に対する操作に応じて弾オブジェクト112が仮想空間内に射出されてもよい。
 図12は、図10に示す状態で、弾オブジェクト112が仮想空間内に射出される様子の一例を示す図である。図12に示されるように、例えば、第1ユーザがコントローラ18を振った場合、弾オブジェクト112が仮想空間内に射出され、弾オブジェクト112が仮想空間内を移動する。弾オブジェクト112の移動方向は、例えば、第1ユーザによるコントローラ18の振り方向や、アナログスティック182又は十字キー183によって指示された方向によって定められてもよい。弾オブジェクト112がキャラクタ130に当たった場合、キャラクタ130の体力値が減少したり、キャラクタ130が倒れたりする。
 図13は、スマートデバイス20aのディスプレイ22に表示される画像の一例を示す図であって、第2ユーザaが図1に示す位置にいるときの画像の一例である。スマートデバイス20aのディスプレイ22には、仮想カメラ121aから仮想空間100を俯瞰した画像が表示される。具体的には、ディスプレイ22には、スマートデバイス20aのカメラ23で撮像された現実空間の画像に、仮想カメラ121aに基づいて生成された仮想空間の画像が重畳されて表示される。ディスプレイ22には、現実空間のテーブル上に、仮想空間が配置されたような画像が表示される。例えば、図13において、テーブル上の各画像(141~145、110、130)は仮想空間の画像であり、第2ユーザbの画像を含む、テーブルの周辺の画像は現実空間の画像である。なお、図13の例ではスマートデバイス20aのカメラ23の撮像範囲にスマートデバイス20bが含まれていないため、スマートデバイス20aのディスプレイ22には、キャラクタ120bは表示されていない。スマートデバイス20aのカメラ23の撮像範囲にスマートデバイス20bが含まれている場合には、第2ユーザbの画像に重畳して、スマートデバイス20bの位置にキャラクタ120bが表示される。あるいは、スマートデバイス20aのディスプレイ22に、カメラ23で撮像した現実空間の画像が表示されない場合には、スマートデバイス20aのカメラ23の撮像範囲にスマートデバイス20bが含まれている場合、スマートデバイス20bの位置にキャラクタ120bのみが表示されてもよい。
 このように、第2ユーザaは、スマートデバイス20aを用いて、図1に示す第2ユーザaの位置(図7に示す仮想カメラ121aの位置)から、テーブル上に形成された小さな仮想空間を俯瞰するように見る。
 図13に示す状態から、第2ユーザaがスマートデバイス20aの位置や姿勢を変更すると、スマートデバイス20aのディスプレイ22に表示される画像も変化する。
 図14は、第2ユーザaが第3ユーザ寄りに移動した後のスマートデバイス20aのディスプレイ22に表示される画像の一例を示す図である。スマートデバイス20aが現実空間内で移動した場合、仮想カメラ121aも仮想空間において移動する。第2ユーザaが第3ユーザ寄りに移動した場合、スマートデバイス20aのカメラ23によって、マーカ40を含むテーブルを斜めから見たような画像が取得され、取得された画像に基づいて、仮想カメラ121aの位置が設定される。図14に示すように、移動後のカメラ23から見た現実空間の画像に、移動後の仮想カメラ121aから見た仮想空間の画像が重畳されて、ディスプレイ22に表示される。
 ここで、第2ユーザは、スマートデバイス20に対する操作に応じて、キャラクタ130に変化を与えるための仮想オブジェクトを仮想空間に射出することができる。具体的には、第2ユーザは、キャラクタ130(第3ユーザ)を支援するための仮想オブジェクトを仮想空間に射出することができる。
 図15は、スマートデバイス20aに対する操作に応じて、キャラクタ120aが弾オブジェクト122を射出する様子の一例を示す図である。
 例えば、スマートデバイス20aのディスプレイ22上にはタッチパネルが設けられる。スマートデバイス20aのタッチパネルに対するタッチ操作(例えば、タップ操作やスワイプ操作等)に応じて、キャラクタ120aから弾オブジェクト122が射出される。この弾オブジェクト122は、キャラクタ130(第3ユーザ)を支援するための仮想オブジェクトである。具体的には、弾オブジェクト122は、キャラクタ110(第1ユーザ)によって射出された弾オブジェクト112が、キャラクタ130に当たらないようにするためのオブジェクトである。例えば、弾オブジェクト122が弾オブジェクト112に当たった場合、弾オブジェクト112は消滅し、キャラクタ130への攻撃が無効になる。
 第2ユーザによる第3ユーザの支援は、別の方法により行われてもよい。例えば、第2ユーザの操作に応じて、キャラクタ110からの弾オブジェクト111を防御するための障害物オブジェクトが仮想空間内に配置されてもよい。障害物オブジェクトによってキャラクタ110からの弾オブジェクト111がキャラクタ130に当たらないようにしてもよい。また、例えば、第2ユーザの操作に応じて、キャラクタ120がキャラクタ130の体力値を回復させるための回復オブジェクトを仮想空間内に射出してもよい。キャラクタ120から射出された回復オブジェクトは、仮想空間内に配置される。キャラクタ130が、回復オブジェクトが配置された位置まで移動して回復オブジェクトを取得した場合、キャラクタ130の体力値が回復する。これにより、第2ユーザが第3ユーザを支援してもよい。また、第2ユーザの操作に応じて、キャラクタ120が弾オブジェクトを射出することでキャラクタ110を攻撃してもよい。キャラクタ120からの弾オブジェクトがキャラクタ110に当たった場合、キャラクタ110の体力値が減少したり、キャラクタ110によるキャラクタ130への攻撃が停止したりしてもよい。これにより、第2ユーザが第3ユーザを支援してもよい。
 このように、第2ユーザは、キャラクタ130(第3ユーザ)を支援することによって、第1ユーザと第3ユーザとの間で行われる戦闘ゲームに参加することができる。
 逆に、第2ユーザは、第3ユーザを支援するのではなく、第1ユーザを支援してもよい。例えば、キャラクタ120は、キャラクタ130を攻撃するためのオブジェクトを仮想空間内に射出してもよい。また、キャラクタ120は、キャラクタ110の体力を回復させるための回復オブジェクトを仮想空間内に配置してもよい。また、キャラクタ120は、キャラクタ130からキャラクタ110への攻撃を防御するための障害物オブジェクトを仮想空間内に配置してもよい。
 すなわち、キャラクタ120は、キャラクタ130(又はキャラクタ110)にとってゲーム上有利又は不利となる所定のオブジェクトを仮想空間内に配置してもよい。キャラクタ120は、所定のオブジェクトを用いてキャラクタ110に変化を与える。キャラクタ120は、第2ユーザの入力に応じて仮想空間又はキャラクタ110に影響を与えるキャラクタである。
 また、第2ユーザは、第1ユーザおよび第3ユーザと同等の立場でゲームに参加してもよい。すなわち、第1ユーザ、第2ユーザ、第3ユーザの各ユーザ(キャラクタ)がそれぞれ他のユーザ(キャラクタ)を攻撃し、他のユーザを倒すゲームが行われてもよい。
 あるいは、各キャラクタが戦闘するゲームに限らず、仮想空間内で各キャラクタが動作する他のゲームが行われてもよい。例えば、各ユーザのキャラクタが協力して冒険を行うゲームが行われてもよいし、各ユーザのキャラクタがレースを行うレースゲームが行われてもよい。
 図16は、第2HMD30のディスプレイ32に表示される画像の一例を示す図であって、仮想カメラ131が第1モードに設定されているときの画像の一例である。第2HMD30のディスプレイ32に表示される画像も、第1HMD10と同様に立体視画像である。
 上述のように、仮想カメラ131が第1モードに設定されている場合、仮想カメラ131は、現実空間におけるマーカ40を基準とした第2HMD30の位置に応じて配置される。例えば、第2HMD30がテーブルを俯瞰する位置(例えば図1に示す位置)に位置する場合、仮想カメラ131は、テーブル上の仮想空間を俯瞰する位置(例えば図7に示す130の位置)に配置される。この場合、図16に示されるように、第2HMD30のディスプレイ32には、テーブル上に形成された仮想空間の各仮想オブジェクト(キャラクタ130、キャラクタ110、仮想オブジェクト141~145)が表示される。また、テーブルから離れた位置に位置するキャラクタ120bが仮想カメラ131の視野内に含まれる場合、キャラクタ120bも表示される。第2HMD30の位置や姿勢が変化した場合には、それに応じて仮想カメラ131の位置や姿勢も変化する。
 なお、キャラクタ110が仮想空間内に弾オブジェクト112を射出した場合には、弾オブジェクト112が仮想空間内を移動する画像が表示される。また、キャラクタ120bやキャラクタ120aが仮想空間内に弾オブジェクト122を射出した場合には、弾オブジェクト122が仮想空間内を移動する画像が表示される。
 第2HMD30のディスプレイ32には、第2HMD30のカメラ33によって撮像された現実空間の画像に、仮想カメラ131に基づいて生成された仮想空間の画像が重畳して表示される。仮想カメラ131が第1モードに設定されている場合、第3ユーザには、現実空間のテーブル上に小さな仮想空間が形成されているように見える。すなわち、第1モードに設定されている場合、第3ユーザは、スマートデバイス20の第2ユーザと同様に、テーブル上に形成された小さな仮想空間を俯瞰するように見る。なお、第2HMD30のディスプレイ32には、現実空間の画像は表示されず、仮想カメラ131に基づいて生成された仮想空間の画像のみが表示されてもよい。
 第3ユーザは、コントローラ38を用いて、第1モードと第2モードとのうちの何れかに切り替えることが可能である。
 図17は、第2HMD30のディスプレイ32に表示される画像の一例を示す図であって、仮想カメラ131が第2モードに設定されているときの画像の一例である。
 図17に示されるように、第2HMD30のディスプレイ32には、キャラクタ130から仮想空間を見た画像が表示される。第2モードに設定されている場合、仮想カメラ131は、キャラクタ130の移動に応じて移動する。なお、図17では、仮想カメラ131がキャラクタ130の位置に配置される場合の画像が示されているが、仮想カメラ131が例えばキャラクタ130の後方の所定位置に設定される場合には、キャラクタ130の後方から仮想空間を見た画像が表示される。
 仮想カメラ131が第2モードに設定されている場合、第3ユーザには、目の前に仮想空間が広がっているように見え、第3ユーザは、地面オブジェクト141上に立っているような感覚を覚える。第3ユーザにとっては、例えば、数十メートル先に橋オブジェクト144が存在しているように見える。
 第3ユーザは、図16又は図17に示すような画像を見ながら、コントローラ38に対する操作を行い、キャラクタ130を仮想空間内で移動させる。例えば、第3ユーザは、コントローラ38のアナログスティックや十字キーに対する操作に応じて、キャラクタ130を移動させる。また、キャラクタ130がキャラクタ110の位置まで到達した場合、第3ユーザは、コントローラ38のボタンに対する操作に応じて、キャラクタ130にキャラクタ110を攻撃させる。
 第1ユーザ、第2ユーザ、及び第3ユーザの動作やコントローラに対する操作は、リアルタイムで仮想空間に反映される。例えば、第1ユーザ(第1HMD10)の向きが変化した場合には、その向きの変化に応じて仮想空間内でキャラクタ110の向きが変化する。また、第1ユーザがコントローラ18を振った場合、キャラクタ110が弾オブジェクト112を投げる動作を行う。仮想カメラ121や仮想カメラ131の撮像範囲内にキャラクタ110が含まれている場合、スマートデバイス20や第2HMD30には、キャラクタ110の向きが変化する様子やキャラクタ110が弾オブジェクト112を投げる様子が表示される。これにより、第2ユーザ又は第3ユーザは、第1ユーザの動作を把握することができる。
 同様に、第2ユーザ(スマートデバイス20)の向きや位置が変化した場合には、その変化に応じて仮想空間内でキャラクタ120の向きや位置が変化する。また、第2ユーザがスマートデバイス20に対して所定の操作を行った場合、キャラクタ120が弾オブジェクト122を投げる動作を行う。仮想カメラ111や仮想カメラ131の撮像範囲内にキャラクタ120が含まれている場合、第1HMD10や第2HMD30には、キャラクタ120の向きや位置が変化する様子や、キャラクタ120が弾オブジェクト122を投げる様子が表示される。これにより、第1ユーザ又は第3ユーザは、第2ユーザの動作を把握することができる。
 以上のように、本実施形態では、第1ユーザは、第1HMD10を装着し、第2ユーザは、スマートデバイス20を携帯する。第1HMD10の現実空間における位置に関わらず、仮想空間内にキャラクタ110が配置され、キャラクタ110の位置に対応する位置に仮想カメラ111が配置される。キャラクタ110の姿勢は、第1HMD10の姿勢に応じて変化し、キャラクタ110は、コントローラ18に対する操作に応じて動作する(例えば弾オブジェクト112を投げる)。また、現実空間におけるマーカ40に対するスマートデバイス20の位置に応じた仮想空間内の位置に、仮想カメラ121が配置され、現実空間におけるスマートデバイス20の姿勢に応じて、仮想カメラ121の姿勢が設定される。具体的には、仮想空間の位置を定義するためのXYZ座標系が、仮想空間のマーカ40を基準として設定されることで、現実空間と仮想空間とが対応付けられる。マーカ40を基準としたスマートデバイス20の位置が算出され、算出された位置にキャラクタ120及び仮想カメラ121が設定される。そして、仮想カメラ111に基づいて生成された仮想空間の画像が、第1HMD10のディスプレイ12に表示され、仮想カメラ121に基づいて生成された仮想空間の画像が、スマートデバイス20のディスプレイ22に表示される。
 これにより、第1ユーザは、仮想空間内のキャラクタ110の位置(又はキャラクタ110から所定距離離れた位置)から仮想空間を見ることになり、主観視点から仮想空間を見ることになる。このため、第1ユーザは、現実空間と同じスケール感で、仮想空間内に入り込んでゲームを行うことができる。また、仮想カメラ131が第2モードに設定されている場合には、第3ユーザも、キャラクタ130の視点(又はキャラクタ130から所定距離離れた位置)から仮想空間を見ることになる。これに対して、第2ユーザは、現実空間に対応付けられた仮想空間を、現実空間のマーカ40に対するスマートデバイス20の位置から見ることになる。第2ユーザは、現実空間に仮想空間内の仮想オブジェクトが存在するような感覚で、現実空間と仮想空間とを意識しながらゲームを行うことができ、テーブル上に形成された仮想空間を俯瞰しながらゲームを行うことができる。第2ユーザにとっては、仮想空間はテーブル上に小さなスケールで形成されているように感じる。このようにして、主観視点で仮想空間を見る第1ユーザと、俯瞰視点で仮想空間を見る第2ユーザとでゲームを行うことができる。各ユーザで異なる視点から仮想空間を見ることができるとともに、各ユーザで異なるスケール感で仮想空間を見ることができ、従来にはない新たなゲームを複数のユーザで行うことができる。
 また、本実施形態では、テーブル上にマーカ40を配置し、テーブル上に仮想空間が形成され、当該仮想空間内でゲームが行われる。第1ユーザは、テーブル上に形成された仮想空間に入り込んでゲームを行う一方で、第2ユーザは、テーブル上に形成された小さな仮想空間を俯瞰しながらゲームを行うことができる。これにより、従来にはない新たなゲームを複数のユーザで行うことができる。
 また、本実施形態では、第1ユーザ~第3ユーザは、自身のデバイスのディスプレイを見ることで他のユーザに対応するキャラクタの動きを見ることができ、他のユーザの動きを認識することができる。例えば、第1ユーザは、第1HMD10のディスプレイ12に表示されたキャラクタ120の動きを見ることで、第2ユーザの動きを認識することができる。現実空間におけるスマートデバイス20の位置と連動して仮想空間内でキャラクタ120の位置が設定されるため、第1ユーザは、仮想空間内でキャラクタ120を見ることで現実空間における第2ユーザの位置を把握することができる。また、第2ユーザは、キャラクタ110の姿勢の変化やキャラクタ110が弾オブジェクト112を投げる動作を、自身のスマートデバイス20のディスプレイを見ることで、第1ユーザの動きを認識することができる。
 基本的には、ユーザがHMDを装着している場合には、他のユーザは、HMDを装着しているユーザがどのような映像を見ているのか、仮想空間で何をしているのかを把握することはできない。しかしながら本実施形態のシステムでは、第2ユーザは、スマートデバイス20を介して仮想空間の様子と、現実空間における第1ユーザとを見ることができるため、第1ユーザがどのような映像を見ているのか、仮想空間で何をしているのかを把握することができる。すなわち、第2ユーザは、スマートデバイス20を見ることで仮想空間内でのキャラクタ110(第1ユーザ)の動きを視認することができるとともに、現実空間に目を向けることで第1ユーザの動きを見ることができる。これにより、第2ユーザは、HMDを装着したユーザがいる仮想空間に入り込んで仮想空間を見ることができる。
 ここで、据置型のディスプレイ50には、仮想カメラ150から仮想空間を見た画像が表示される。また、HMDを装着しているユーザが見ている画像を、据置型のディスプレイ50に表示してもよい。第4ユーザは、ディスプレイ50に表示された画像を見て、HMDを装着したユーザがいる仮想空間の様子を把握することができる。第2ユーザも、スマートデバイス20を介してHMDを装着したユーザがいる仮想空間の様子を把握することができるが、第2ユーザは、単に仮想空間内を見るだけにとどまらず、AR技術を用いて従来にはない新たな体験をすることができる。すなわち、現実空間に対応して仮想空間が形成されるため、第2ユーザは、現実空間内で移動したり向きを変えたりすることで、現実空間における第2ユーザの視点と同じ視点から仮想空間を覗き見ることができる。これにより、第2ユーザは、第1ユーザが入り込んでいる仮想空間を、現実空間を見るように見ることができる。
 なお、第1ユーザは通常マット51から離れないようにゲームを行うものとするが、第1ユーザがマット51を基準とした所定範囲から出た場合、又は、第1ユーザが所定距離以上移動した場合には、第1ユーザに対して報知が行われる。例えば、第1HMD10のディスプレイ12上で画像や文字による表示が行われてもよいし、音声により報知が行われてもよいし、振動による報知が行われてもよい。また、第1ユーザが所定範囲から出た場合、又は、第1ユーザが所定距離以上移動した場合には、第2ユーザに対しても報知が行われる。例えば、スマートデバイス20のディスプレイ22上で画像や文字による表示が行われてもよいし、音声により報知が行われてもよいし、振動による報知が行われてもよい。同様に、第3ユーザ及び第4ユーザに対しても報知が行われてもよい。また、第2ユーザが所定範囲内に入ったり所定範囲に近づいたりした場合、第1ユーザ及び第2ユーザに対して画像や文字、音声、振動等を用いて報知が行われる。
 例えば、画像処理システム1は、図9で示した方法により第1HMD10の位置を検出する。画像処理システム1は、第1HMD10の位置に基づいて、第1ユーザが所定範囲から出たか否か、又は、第1ユーザが所定距離以上移動したか否かを判定する。あるいは、スマートデバイス20や第2HMD30のカメラ、その他現実空間に配置されたカメラで第1ユーザを撮像し、撮像された画像に基づいて、第1ユーザが所定範囲から出たか否か、又は、第1ユーザが所定距離以上移動したか否かが判定されてもよい。また、第1HMD10のカメラで第1ユーザの周辺を撮像し、撮像された画像に基づいて、第1ユーザが所定範囲から出たか否か、又は、第1ユーザが所定距離以上移動したか否かが判定されてもよい。また、第1HMD10、スマートデバイス20、第2HMD30、その他のカメラで撮像された画像に基づいて、第2ユーザが所定範囲内に入ったか否か、所定範囲に近づいたか否かが判定されてもよい。
 なお、スマートデバイス20のディスプレイ22に、上記所定範囲を示す画像が表示されてもよい。すなわち、スマートデバイス20のカメラ23が上記マット51を基準とした所定範囲を撮像した場合、当該所定範囲に、所定範囲を示す範囲画像を重畳して表示してもよい。
 また、第3ユーザにも所定範囲が設定されてもよい。第3ユーザが所定範囲から出た場合、又は、第3ユーザが所定距離以上移動した場合に、第3ユーザ、第2ユーザ、及び第1ユーザに対して報知が行われてもよい。この場合、第2HMD30のカメラ33でマーカ40を撮像し、現実空間のマーカ40に対する第2HMD30の位置に応じて仮想カメラ131が配置されてもよい。すなわち、第3ユーザも第2ユーザと同様にARを体験する。第3ユーザが所定範囲から出た場合、又は、第3ユーザが所定距離以上移動した場合、第3ユーザに対して報知(ディスプレイ32やスピーカ、振動モータ等を用いた報知)が行われるとともに、第2ユーザに対しても報知(ディスプレイ22やスピーカ、振動モータ等を用いた報知)が行われてもよい。
 (仮想空間の作成)
 本実施形態では、上述したゲームを行うゲームモードの他に、上記ゲームを行うための仮想空間をユーザ自身が作成する作成モードがある。以下では、作成モードにおいて、ユーザが仮想空間を作成することについて説明する。図18は、作成モードにおけるユーザが見る画像の一例を示す図である。
 仮想空間の作成モードでは、ユーザは、例えば第1HMD10を装着し、第1HMD10のディスプレイ12を見ながら、コントローラ18を用いて仮想空間内に仮想オブジェクトを配置していく。テーブル上にマーカ40が配置され、第1HMD10のカメラ13でテーブル上のマーカ40を撮像することで、第1HMD10のディスプレイ12に図18に示すような画像が表示される。
 作成モードでは、現実空間におけるマーカ40に対する第1HMD10の位置に応じた仮想空間の位置に、仮想カメラが配置される。ユーザは、当該仮想カメラから見た画像を見ながら仮想空間を作成する。
 具体的には、第1HMD10のディスプレイ12には、ユーザの左手を模した左手オブジェクト160Lと、ユーザの右手を模した右手オブジェクト160Rとが表示される。左手オブジェクト160L及び右手オブジェクト160Rは、仮想オブジェクトである。第1HMD10の赤外線カメラ14によって撮像された画像に基づいて、ユーザの手の検出が行われる。ユーザの手の検出は、既知の画像認識技術を用いて行われる。ユーザの左手及び右手が検出された場合、検出された左手及び右手の位置に、左手オブジェクト160L及び右手オブジェクト160Rが配置される。
 なお、第1HMD10のカメラ13からの画像に基づいて、ユーザの手が検出されてもよい。また、第1HMD10が備えるカメラとは別のカメラ又は赤外線カメラでユーザの手を撮像し、検出してもよい。
 ユーザが、例えば左手の手のひらを第1HMD10に向けた場合、左手オブジェクト160Lに重畳して、又は、左手オブジェクト160Lの近傍に、UIオブジェクト170が表示される。UIオブジェクト170は、仮想空間を作成するためのユーザインターフェイスであり、仮想空間に配置するための複数のパーツオブジェクトを含む。例えば、UIオブジェクト170は、表面が草で覆われた地面オブジェクト141を形成するためのパーツオブジェクト171と、川オブジェクト143を形成するためのパーツオブジェクト172と、ブロックを形成するためのパーツオブジェクト173とを含む。UIオブジェクト170は、これらの他にも仮想空間の地形を形成するための複数のパーツオブジェクトを含んでもよい。
 各パーツオブジェクトは、例えば立方体により形成されており、複数のパーツオブジェクトがグリッド状に配置されることで、仮想空間の地形が形成される。例えば、草で覆われた地面オブジェクト141は、複数のパーツオブジェクト171がグリッド状に配置されることで形成される。例えば、パーツオブジェクト171の上面には緑色のテクスチャ画像が張り付けられており、このパーツオブジェクト171が平面的に複数並べられることで、上面が草で覆われた地面オブジェクト141が形成される。
 また、右手オブジェクト160Rには、コントローラ18を模したコントローラオブジェクト161が表示される。現実空間において右手でコントローラ18を把持するように、右手オブジェクト160Rがコントローラオブジェクト161を把持するような画像が表示される。例えば、第1HMD10のカメラ13によって撮像された画像に基づいて、コントローラ18の検出が行われ、コントローラ18が検出された場合に、コントローラオブジェクト161が表示されてもよい。あるいは、コントローラ18の検出は行わず、ユーザの右手が検出された場合に、右手オブジェクト160Rとともにコントローラオブジェクト161が表示されてもよい。
 コントローラオブジェクト161は、コントローラ18と実質的に外観が同じ仮想オブジェクトであり、コントローラ18と同様に複数のボタンを模した部分を有する。また、コントローラオブジェクト161は、アナログスティックや十字キーを模した部分を有する。
 コントローラオブジェクト161の所定位置には、UIオブジェクト170内のパーツオブジェクトを指示するための指示オブジェクト162が設けられる。指示オブジェクト162は、コントローラオブジェクト161の所定位置から突出したオブジェクトであり、その先端をパーツオブジェクトに近づけると、パーツオブジェクトを指示することができる。
 例えば、ユーザが、第1HMD10のディスプレイ12を見ながら、指示オブジェクト162の先端をパーツオブジェクト173に近づけた場合、パーツオブジェクト173が指示される。この状態で、ユーザが、例えばコントローラ18の所定のボタンを押下すると、パーツオブジェクト173が選択された状態(パーツオブジェクト173を掴んだ状態)になる。図18に示すように、選択されたパーツオブジェクトは、選択されていない他のオブジェクトとは異なる表示態様で表示される。また、選択されたパーツオブジェクトを示す文字(図18では「ブロック」の文字)が、UIオブジェクト170に表示される。パーツオブジェクト173が選択された状態でユーザが右手をテーブル上に移動させ、ユーザが所定の操作(例えばボタンから指を離す操作)を行うと、パーツオブジェクト173がテーブル上(XZ平面上)に配置される。ユーザは、パーツオブジェクトを1つずつ掴んでテーブル上に置くようにして、コントローラ18を用いて複数のパーツオブジェクトを仮想空間内に配置することで、キャラクタが配置される仮想空間内の地形を形成することができる。
 パーツオブジェクトが選択されたか否かは、ユーザの右手の指の動きに基づいて判定されてもよい。例えば、ユーザが指を曲げたか否かを判定し、ユーザが指を曲げた場合に、指示されたパーツオブジェクトが選択されてもよい。
 このように、ユーザの右手が検出された場合、コントローラオブジェクト161が右手オブジェクト160Rの中に表示される。また、コントローラオブジェクト161の所定位置に指示オブジェクト162が表示される。ユーザが把持するコントローラ18と実質的に外観が同じコントローラオブジェクト161を仮想空間に配置することによって、第1HMD10を装着したユーザは、実際に把持しているコントローラ18と同様の映像を見ることができ、仮想空間内でパーツオブジェクトを配置し易くなる。また、現実空間には存在しない指示オブジェクト162が仮想空間内では表示されるため、第1HMD10を装着したユーザは、指示オブジェクト162を用いて位置を指示し易くなり、容易にパーツオブジェクトの選択、配置を行うことができる。
 なお、ユーザがパーツオブジェクトを選択して配置する場合に、選択したパーツオブジェクトが仮想空間内に複数配置されてもよい。例えば、1つのパーツオブジェクトを選択した状態でユーザが右手をテーブルの面に平行に移動させた場合、選択されたパーツオブジェクトが平面的に複数並べられてもよい。
 図19は、複数のパーツオブジェクト173が平面状に並べられる様子を示す図である。図19に示されるように、例えばユーザがパーツオブジェクト173を選択した状態で右手をテーブルとほぼ平行に半円を描くように動かした場合、右手の軌跡によって囲まれる領域にパーツオブジェクト173が平面状に並べられてもよい。さらに、同様の動作をユーザが行った場合に、平面的に並べられた複数のパーツオブジェクト173の上に、さらに平面的に複数のパーツオブジェクト173が配置されてもよい。
 また、ユーザがパーツオブジェクトを配置し易くするために、仮想空間内にグリッドが表示されてもよい。図20は、各パーツオブジェクトが配置されるグリッドを表示するためのグリッド線の一例を示す図である。図20に示されるように、仮想空間の作成の際には、グリッド線175が表示されてもよい。グリッド線175は、X軸に平行な線と、Y軸に平行な線と、Z軸に平行な線とを含む。グリッド線175によって囲まれた領域に、1つのパーツオブジェクトが配置されることになる。例えば、パーツオブジェクト171が選択された状態で、指示オブジェクト162の先端がグリッド線175によって囲まれる1つの領域内に入った場合、その領域にパーツオブジェクト171が配置される。なお、パーツオブジェクトは、下方に他のオブジェクトがなく、浮いた状態で(XZ平面から離れた位置に)配置されてもよい。
 このようにグリッド毎にパーツオブジェクト171が配置されることで、ユーザが正確にパーツオブジェクトの位置を指定しなくても、パーツオブジェクトを仮想空間内で容易に並べることができる。
 (実在物の配置)
 本実施形態の画像処理システム1では、現実空間の実在物を認識し、実在物に対応する仮想オブジェクトを仮想空間に配置することができる。図21は、現実空間に実在物としての缶80がテーブル上に配置される様子を示す図である。図22は、缶80に対応する仮想オブジェクト180が仮想空間内に配置される様子を示す図である。
 例えば、スマートデバイス20のカメラ13から缶80とマーカ40とを含む画像が取得された場合、スマートデバイス20は、当該画像に基づいて、缶80を検出する。スマートデバイス20は、予め複数の実在物を学習しており、カメラ13から取得された画像に基づいて、実在物を認識することができる。例えば、スマートデバイス20aが、取得された画像から缶80を認識した場合、現実空間における缶80の位置に応じた仮想空間の位置に、缶オブジェクト180を配置する。缶オブジェクト180が配置されたこと、及び、その位置や姿勢に関する情報は、情報処理装置60に送信され、情報処理装置60に記憶される。これにより、仮想空間内に缶オブジェクト180が配置されたこと、その位置及び姿勢が、画像処理システム1の各デバイスに共有される。
 仮想空間に缶オブジェクト180が配置された後、各仮想カメラに基づいて、缶オブジェクト180を含む仮想空間の画像が取得される。例えば、第1HMD10のディスプレイ12には、缶オブジェクト180を含む仮想空間の画像が表示される。また、第2HMD30のディスプレイ32にも、缶オブジェクト180を含む仮想空間の画像が表示される。
 また、スマートデバイス20のディスプレイ22にも、現実空間の画像に重畳して、缶オブジェクト180を含む画像が表示される。具体的には、スマートデバイス20のカメラ23が缶80を含む画像を撮像し、缶オブジェクト180が仮想空間内に配置された場合、スマートデバイス20のディスプレイ22には、缶80の画像に重畳して、缶オブジェクト180の画像が表示される。このため、第2ユーザは、スマートデバイス20のディスプレイ22を介して、実在物としての缶80の画像ではなく、仮想オブジェクトとしての缶オブジェクト180の画像を視認する。
 なお、スマートデバイス20のディスプレイ22には、缶オブジェクト180の画像ではなく、カメラ23が撮像した実在物としての缶80の画像が表示されてもよい。この場合、缶80の画像については、カメラ23が撮像した現実空間の画像に、仮想空間の画像が重畳されず、缶80の画像とは異なる他の部分(例えば、地面オブジェクト141やキャラクタの領域部分)については、カメラ23が撮像した現実空間の画像に、仮想空間の画像が重畳される。
 例えば、スマートデバイス20aが現実空間の缶80を検出し、仮想空間内に缶オブジェクト180が配置された後、スマートデバイス20aの位置や向きが変更されたことによってカメラ23の撮像範囲から缶80が外れた場合、缶オブジェクト180はその位置に配置されたままとなる。すなわち、仮想空間内に缶オブジェクト180が配置された後、缶80が移動されずに、スマートデバイス20aによって缶80が検出されなくなっても、缶オブジェクト180は仮想空間に存在し続ける。
 具体的には、スマートデバイス20aが缶80を検出し、仮想空間内に缶オブジェクト180を配置した場合、その後も、缶80の検出を継続して行う。缶80の位置及び姿勢に関する情報は、リアルタイムで情報処理装置60に送信される。缶80が移動されずに、スマートデバイス20aの位置や向きが変化された場合、スマートデバイス20aのカメラ23によって撮像される画像における缶80の位置は変化するが、マーカ40を基準とした缶80の位置は変化しない。このため、缶オブジェクト180の位置は変化しない。スマートデバイス20aの位置や向きの変化によってカメラ23の撮像範囲から缶80が外れた場合でも、缶80の位置の変化が検出されなければ、缶オブジェクト180の位置は変化しない。
 なお、スマートデバイス20aのカメラ23の撮像範囲から缶80が外れても、スマートデバイス20bのカメラ23の撮像範囲に缶80が含まれる場合には、スマートデバイス20bが、缶80の検出を継続して行う。あるいは、第2HMD30のカメラ33で画像を撮像し、缶80の検出が行われてもよい。このように、例えばスマートデバイス20aによって缶80が検出されて缶オブジェクト180が配置された後、スマートデバイス20a以外の他のデバイスによっても、缶80の位置が追跡される。
 一方、仮想空間内に缶オブジェクト180が配置された後、缶80が移動されてテーブルから除去された場合には、スマートデバイス20によって缶80が検出されなくなり、缶オブジェクト180は仮想空間から消去される。
 具体的には、缶80が移動する場合、スマートデバイス20a又は20bによって缶80の検出が継続して行われ、缶オブジェクト180の位置が更新される。あるいは、第2HMD30のカメラ33で画像を撮像し、缶80の検出が行われてもよい。缶80が移動する場合には、缶80がテーブル上から除かれるまで缶オブジェクト180の位置の更新が継続して行われ、缶オブジェクト180の位置が所定範囲を超えた場合(例えばテーブルの外に移動した場合)、仮想空間から缶オブジェクト180が消去される。
 また、仮想空間の所定位置に缶オブジェクト180が配置された後、スマートデバイス20の位置や向きが変化することによってカメラ23の撮像範囲から缶80が外れた場合、缶オブジェクト180は所定位置に存続する。しかしながら、スマートデバイス20の位置や向きが戻ることによって、再びカメラ23の撮像範囲内に上記所定位置に応じた現実空間の位置(撮像範囲から外れる前に缶80が存在していた位置)が入ったときに、スマートデバイス20が缶80を検出しなかった場合、缶オブジェクト180は仮想空間から消去される。
 また、仮想空間の第1位置に缶オブジェクト180が配置された後、スマートデバイス20の位置や向きが変化することによってカメラ23の撮像範囲が変化し、カメラ23の撮像範囲から缶80が外れた場合において、変化したカメラ23の撮像範囲内に缶80が検出された場合には、新たに検出された缶80の位置に応じた仮想空間の第2位置に、缶オブジェクト180を配置するとともに、第1位置の缶オブジェクト180を消去してもよい。言い換えると、この場合、缶オブジェクト180を第1位置から第2位置に瞬間的に移動させてもよい。
 また、例えば、仮想空間の第1位置に缶オブジェクト180が配置された後、スマートデバイス20の位置や向きが変化することによってカメラ23の撮像範囲が変化し、カメラ23の撮像範囲から缶80が外れた場合において、変化したカメラ23の撮像範囲内に缶80が検出された場合には、新たに検出された缶80の位置に応じた仮想空間の第2位置に、新たな缶オブジェクト180を配置するとともに、第1位置にも缶オブジェクト180を存続させてもよい。この場合、1つの缶80を検出させて1つ目の缶オブジェクト180を仮想空間に配置した後、同じ缶80を別の場所で検出させて、2つ目の缶オブジェクト180を仮想空間に配置することができる。
 また、仮想空間に配置される缶オブジェクト180の数に関する条件が設定され、条件に応じて、変化したカメラ23の撮像範囲内に缶80が検出された場合に、上記第1位置の缶オブジェクト180を消去するか、上記第1位置にも缶オブジェクト180を存続させるかを制御してもよい。例えば、仮想空間に配置される缶オブジェクト180の数が1つに設定されているか、あるいは複数に設定されているかを判定し、判定結果に応じた制御が行われてもよい。例えば、仮想空間に配置される缶オブジェクト180の数が1つに設定(制限)されている場合には、缶オブジェクト180が仮想空間の第1位置に配置された後、カメラ23の撮像範囲から缶80が外れた場合において、変化したカメラ23の撮像範囲内に缶80が検出された場合に、検出された缶80の位置に応じた仮想空間の第2位置に缶オブジェクト180を配置するとともに、第1位置の缶オブジェクト180を消去してもよい。また、仮想空間に配置される缶オブジェクト180の数が複数に設定(許容)されている場合には、缶オブジェクト180が仮想空間の第1位置に配置された後、カメラ23の撮像範囲から缶80が外れた場合において、変化したカメラ23の撮像範囲内に缶80が検出された場合に、検出された缶80の位置に応じた仮想空間の第2位置に缶オブジェクト180を配置するとともに、第1位置にも缶オブジェクト180を存続させてもよい。
 また、缶80が認識されて缶オブジェクト180が仮想空間に配置された後、缶80がテーブルの外に除去されても、缶オブジェクト180が仮想空間に存続してもよい。すなわち、缶オブジェクト180が仮想空間に配置された後、カメラで缶80がテーブルの外に除去されることが追跡可能な状況であっても、缶オブジェクト180を仮想空間に存続させてもよい。これにより、例えば、第1の特定物体をテーブル上に配置した後、第1の特定物体を除去して第2の特定物体をテーブル上に配置することで、第1の特定物体に対応する第1の仮想オブジェクトと、第2の特定物体に対応する第2の仮想オブジェクトとを仮想空間に配置することができる。
 仮想空間に配置された缶オブジェクト180を用いてゲームの制御が行われる。例えば、缶オブジェクト180はキャラクタ110から攻撃を防御するために用いられてもよく、キャラクタ110からの弾オブジェクト112が缶オブジェクト180に当たった場合、弾オブジェクト112が消去されてもよい。また、缶オブジェクト180を用いて、仮想空間に別の変化が加えられてもよい。例えば、ユーザが缶オブジェクト180に対して所定の操作を行った場合、缶オブジェクト180から液体が噴き出す様子が表示されてもよい。
 このように、本実施形態の画像処理システム1では、現実空間における特定の物体に対応する仮想オブジェクトを仮想空間内に登場させることができ、第1ユーザに現実空間と仮想空間とが混在するような感覚を与えることができる。
 なお、上記ではスマートデバイス20のカメラ23で特定の物体を撮像する例について説明したが、カメラ23とは異なる別のカメラ(例えば現実空間の所定位置に配置されたカメラ、第2HMD30又は第1HMD10のカメラ)で特定の物体を撮像してもよい。そして、情報処理装置60又はスマートデバイス20が、当該カメラからの画像に基づいて、特定の物体の検出を行い、特定の物体を検出した場合、仮想空間に特定の物体に対応する仮想オブジェクトを配置してもよい。
 (各デバイスに記憶されるデータ)
 次に、各デバイスにおいて記憶されるデータについて説明する。図23は、各スマートデバイス20において記憶されるデータD20の一例を示す図である。
 図23に示されるように、スマートデバイス20には、後述するスマートデバイス処理を行うためのプログラムが記憶される。また、スマートデバイス20には、カメラ23から取得された画像データと、慣性センサ24からの角速度データ及び加速度データとが記憶される。また、スマートデバイス20には、画像データに基づいて算出されたマーカ40に対するスマートデバイス20の位置を示す位置データが記憶される。また、スマートデバイス20には、角速度データ及び加速度データに基づいて算出されたスマートデバイス20の姿勢情報を示す姿勢データが記憶される。
 また、スマートデバイス20には、自機のユーザに対応するキャラクタ120に関するキャラクタ120データと、仮想カメラ121の位置及び姿勢を示す仮想カメラ121データとが記憶される。キャラクタ120データは、キャラクタ120の仮想空間における位置及び姿勢を示すデータと、キャラクタ120の形状を示すデータと、キャラクタ120が有する仮想オブジェクト(例えば弾オブジェクト122)に関するデータとを含む。
 また、スマートデバイス20には、他キャラクタデータと、地形オブジェクトデータと、射出オブジェクトデータと、検出オブジェクトデータとが記憶される。
 他キャラクタデータは、自機以外の他のデバイスのユーザに対応する各キャラクタに関するデータである。他キャラクタデータは、情報処理装置60から取得される。例えば、スマートデバイス20aには、他キャラクタデータとして、キャラクタ110、キャラクタ120b、キャラクタ130に関するデータが記憶される。他キャラクタデータは、各キャラクタの位置及び姿勢を示すデータと、各キャラクタの形状に関するデータとを含む。
 地形オブジェクトデータは、仮想空間を形成する地形に関するオブジェクト(141~145)のデータであり、複数のパーツオブジェクトとその配置に関する情報を含む。地形オブジェクトデータは、情報処理装置60から取得される。地形オブジェクトデータとして、予めゲーム制作者によって作成されて画像処理システム1に記憶されたデータと、上述のようにユーザによって作成されて画像処理システム1に記憶されたデータとがある。
 射出オブジェクトデータは、仮想空間に射出された弾オブジェクトに関するデータであり、弾オブジェクトの位置、移動速度や移動方向に関するデータを含む。射出オブジェクトデータは、自機のキャラクタ120から射出された弾オブジェクト122に関するデータと、情報処理装置60から取得された、他のデバイスに対応するキャラクタから射出された弾オブジェクトに関するデータとを含む。
 検出オブジェクトデータは、予め定められた特定の物体(例えば缶80)が検出された場合に仮想空間に配置される仮想オブジェクト(例えば缶オブジェクト180)に関するデータである。検出オブジェクトデータは、仮想オブジェクトの形状に関するデータや、位置及び姿勢に関するデータを含む。
 図24は、第1HMD10において記憶されるデータD10の一例を示す図である。図25は、第2HMD30において記憶されるデータD30の一例を示す図である。
 図24に示されるように、第1HMD10には、後述するHMD処理を行うためのプログラムと、慣性センサ15からの角速度データ及び加速度データと、角速度データ及び加速度データから算出された第1HMD10の姿勢情報に関する姿勢データとが記憶される。
 また、第2HMD30には、HMD処理を行うためのプログラムと、慣性センサ35からの角速度データ及び加速度データと、角速度データ及び加速度データから算出された第2HMD30の姿勢情報に関する姿勢データと、カメラ33からの画像データとが記憶される。
 図26は、情報処理装置60において記憶されるデータD60の一例を示す図である。
 図26に示されるように、情報処理装置60には、後述するゲーム制御処理を行うためのプログラムと、HMDデータと、スマートデバイスデータと、コントローラデータと、キャラクタデータと、仮想カメラデータとが記憶される。また、情報処理装置60には、上記地形オブジェクトデータと、射出オブジェクトデータと、検出オブジェクトデータとが記憶される。
 HMDデータは、第1HMD10及び第2HMD30に関するデータである。具体的には、HMDデータは、第1HMD10から取得した姿勢データを含む。また、HMDデータは、第2HMD30からの画像データに基づいて算出された第2HMD30の位置データと、第2HMD30から取得した姿勢データとを含む。
 スマートデバイスデータは、各スマートデバイス20から取得した各スマートデバイス20の位置及び姿勢を示すデータと、各スマートデバイス20において行われた操作に関するデータとを含む。
 コントローラデータは、各コントローラ(18、38)に関するデータである。コントローラデータは、各コントローラのボタン、スティック、十字キー等において行われた操作に関するデータを含む。また、コントローラデータは、各コントローラの姿勢や動きに関するデータを含む。
 キャラクタデータは、各キャラクタ(110、120、130)に関するデータであり、各キャラクタの位置や姿勢に関するデータを含む。また、仮想カメラデータは、各仮想カメラ(111、121、131、150)に関するデータであり、各仮想カメラの位置や姿勢に関するデータを含む。
 (HMDにおける処理の詳細)
 次に、各デバイスにおいて行われる処理の詳細について具体的に説明する。図27は、第1HMD10又は第2HMD30において実行されるHMD処理の一例を示すフローチャートである。図27に示す処理は、画像処理システム1においてゲームの開始が指示されたことに応じて開始される。なお、以下では、第1HMD10(のプロセッサ11)が図27に示す処理を実行するものとして説明するが、第2HMD30においても同様の処理が行われる。
 図27に示されるように、第1HMD10は、初期処理を行う(ステップS100)。初期処理においては、第1HMD10の姿勢が初期化される。第1HMD10は、初期処理を行った後、ステップS101~ステップS105を所定の時間間隔(例えば、1/60秒間隔)で繰り返し実行する。
 次に、第1HMD10は、慣性センサ15によって検出された角速度データ及び加速度データを取得する(ステップS101)。第1HMD10は、取得した角速度データ及び加速度データに基づいて、第1HMD10の姿勢情報を算出する(ステップS102)。具体的には、第1HMD10は、初期処理を行った時点からの姿勢の変化を算出する。次に、第1HMD10は、算出した姿勢情報を情報処理装置60に送信する(ステップS103)。
 次に、第1HMD10は、左目用ディスプレイ12Lに表示される左目用仮想空間画像と、右目用ディスプレイ12Rに表示される右目用仮想空間画像とを情報処理装置60から取得する(ステップS104)。そして、第1HMD10は、取得した左目用仮想空間画像および右目用仮想空間画像を、左目用ディスプレイ12Lおよび右目用ディスプレイ12Rにそれぞれ表示する(ステップS105)。
 なお、第2HMD30においては、上記処理に加えて、カメラ33によって撮像された画像を取得する処理、及び、取得した画像を情報処理装置60に送信するための処理が行われる。
 (スマートデバイスにおける処理の詳細)
 次に、スマートデバイス20において実行される処理について説明する。図28は、スマートデバイス20において実行されるスマートデバイス処理の一例を示すフローチャートである。図28に示す処理は、スマートデバイス20のプロセッサ21によって行われる。なお、図28に示す処理が開始される前に、ユーザによってゲームの開始の指示が行われ、情報処理装置60から必要なデータ(例えば、地形オブジェクトデータや他キャラクタデータ)が取得されているものとする。
 図28に示されるように、スマートデバイス20は、カメラ23からの画像を取得し(ステップS201)、慣性センサ24からの角速度データ及び加速度データを取得する(ステップS202)。
 次に、スマートデバイス20は、マーカ検出処理を行う(ステップS203)。具体的には、スマートデバイス20は、ステップS201で取得した画像の中からマーカ40を検出する。スマートデバイス20は、マーカ40を検出しない場合には、ステップS201~ステップS203の処理を繰り返し実行する。
 マーカ40を検出した場合、スマートデバイス20は、位置算出処理を行う(ステップS204)。具体的には、スマートデバイス20は、検出されたマーカ40を基準としてXYZ座標系を設定するとともに、マーカ40に対するスマートデバイス20の位置(XYZ座標値)を算出する。具体的には、スマートデバイス20は、マーカ40の画像の大きさ、矢印の向き等に基づいて、マーカ40からのスマートデバイス20への距離、マーカ40からスマートデバイス20への方向を算出し、マーカ40を基準としたスマートデバイス20の相対位置を算出する。
 次に、スマートデバイス20は、姿勢算出処理を行う(ステップS205)。具体的には、スマートデバイス20は、ステップS202で取得した角速度データ及び加速度データに基づいて、スマートデバイス20の姿勢を算出する。なお、スマートデバイス20は、カメラ23からの画像(マーカ40の検出結果)に基づいて、姿勢を算出してもよい。また、スマートデバイス20は、カメラ23からの画像と、慣性センサ24からの角速度データ及び加速度データとに基づいて、姿勢を算出してもよい。
 次に、スマートデバイス20は、ステップS204で算出した位置と、ステップS205で算出した姿勢とに基づいて、キャラクタ120の位置及び姿勢を設定する(ステップS206)。また、スマートデバイス20は、ステップS204で算出した位置と、ステップS205で算出した姿勢とに基づいて、仮想カメラ121の位置及び姿勢を設定する。例えば、スマートデバイス20は、キャラクタ120及び仮想カメラ121の位置を、ステップS204で算出した位置と一致するように設定する。また、スマートデバイス20は、キャラクタ120及び仮想カメラ121の姿勢を、ステップS205で算出した姿勢と一致するように設定する。なお、仮想カメラ121の位置及び姿勢は、キャラクタ120の位置及び姿勢と必ずしも一致していなくてもよく、例えば、仮想カメラ121の位置はキャラクタ120の後方の所定位置に設定されてもよい。
 次に、スマートデバイス20は、操作部に対して所定の操作が行われたか否かを判定する(ステップS207)。例えば、スマートデバイス20は、タッチパネルにおいて弾オブジェクト122を射出するためのスワイプ操作が行われたか否かを判定する。
 所定の操作が行われた場合(ステップS207:YES)、スマートデバイス20は、仮想空間に弾オブジェクト122を射出する(ステップS208)。これにより、仮想空間内に弾オブジェクト122が射出され、弾オブジェクト122が移動する様子が表示される。
 ステップS208の処理を実行した場合、又は、ステップS207でNOと判定した場合、スマートデバイス20は、ステップS201で取得した画像の中から予め定められた特定の物体が検出されたか否かを判定する(ステップS209)。スマートデバイス20は、予め複数の特定の物体を学習しており、取得した画像の中から特定の物体があるか否かを判定する。
 特定の物体を検出した場合(ステップS209:YES)、スマートデバイス20は、検出した特定の物体に対応する仮想オブジェクトを仮想空間に配置する(ステップS210)。具体的には、スマートデバイス20は、マーカ40と特定の物体との位置関係から、特定の物体の位置を算出し、算出した位置と同じ仮想空間内の位置に、検出した特定の物体に対応する仮想オブジェクトを配置する。例えば、特定の物体として缶80が検出された場合、スマートデバイス20は缶オブジェクト180を仮想空間内に配置する。
 ステップS210の処理を実行した場合、又は、ステップS209でNOと判定した場合、スマートデバイス20は、情報処理装置60との間で情報の送受信を行う(ステップS211)。具体的には、スマートデバイス20は、ステップS204で算出した位置およびステップS205で算出した姿勢を情報処理装置60に送信する。また、スマートデバイス20は、ステップS206で設定したキャラクタ120及び仮想カメラ121の位置及び姿勢に関する情報を、情報処理装置60に送信する。また、スマートデバイス20は、ステップS208で弾オブジェクト122を仮想空間内に射出した場合、射出オブジェクトデータとして、弾オブジェクト122の射出方向、射出速度等に関するデータを情報処理装置60に送信する。また、スマートデバイス20は、ステップS210で特定の物体に対応する仮想オブジェクトを配置した場合、検出オブジェクトデータとして、配置した仮想オブジェクトに関するデータ(仮想オブジェクトの種類、位置及び姿勢)を情報処理装置60に送信する。
 また、スマートデバイス20は、ステップS211において、情報処理装置60から他キャラクタデータを受信する。具体的には、スマートデバイス20は、他キャラクタデータとして、第1HMD10に対応するキャラクタ110、他のスマートデバイス20に対応するキャラクタ120、第2HMD30に対応するキャラクタ130の位置及び姿勢に関する情報を受信する。これにより、スマートデバイス20は、自機に記憶した他キャラクタデータを更新する。また、スマートデバイス20は、他のデバイスに対する操作に応じて射出された射出オブジェクトに関する射出オブジェクトデータ、他のデバイスによって検出された特定の物体に対応する仮想オブジェクトに関する検出オブジェクトデータを情報処理装置60から受信する。
 ステップS212に続いて、スマートデバイス20は、その他のゲーム処理を行う(ステップS212)。ここでは、スマートデバイス20は、各キャラクタや射出オブジェクトの位置に応じてゲーム処理を行う。例えば、スマートデバイス20は、射出オブジェクト112がキャラクタ130に当たったか否かを判定し、当たった場合にはキャラクタ130の体力値を減少させる。
 次に、スマートデバイス20は、画像生成・表示処理を行う(ステップS213)。具体的には、スマートデバイス20は、まず、仮想カメラ121に基づいて仮想空間の画像を生成する。これにより、仮想カメラ121から仮想空間を見た画像が生成される。例えば、仮想カメラ121の撮像範囲内にキャラクタ110やキャラクタ130が含まれる場合、キャラクタ110やキャラクタ130を含む仮想空間の画像が生成される。また、スマートデバイス20は、ステップS201で取得した現実空間の画像に、生成した仮想空間の画像を重畳した重畳画像を生成する。そして、スマートデバイス20は、生成した重畳画像をディスプレイ22に表示させる。
 スマートデバイス20は、ステップS213の処理の後、ステップS201に処理を戻す。ステップS201~ステップS213の処理が所定の時間間隔(例えば1/60秒間隔)で繰り返し行われることにより、ゲームが進行する。
 (情報処理装置における処理の詳細)
 図29は、情報処理装置60において実行されるゲーム制御処理の一例を示すフローチャートである。図29に示す処理は、情報処理装置60のプロセッサ61によって行われる。
 図29に示されるように、情報処理装置60は、まず、ゲームの開始が指示されたことに応じて初期処理を行う(ステップS600)。初期処理では、地形に関する各種オブジェクト(141~145)が仮想空間に配置されたり、キャラクタ110が丘オブジェクト145の頂上に配置されたり、キャラクタ130が初期位置に配置されたりする。また、各キャラクタに対応する仮想カメラが配置される。
 次に、情報処理装置60は、各デバイスから情報を取得する(ステップS601)。具体的には、情報処理装置60は、第1HMD10から送信された第1HMD10の姿勢情報を取得する。また、情報処理装置60は、第2HMD30から送信された第2HMD30の姿勢情報と、カメラ33によって撮像された画像とを取得する。また、情報処理装置60は、各スマートデバイス20において算出された位置情報及び姿勢情報を取得する。また、情報処理装置60は、スマートデバイス20において弾オブジェクト122が射出された場合(上記ステップS208が実行された場合)、スマートデバイス20から射出オブジェクトデータを受信する。また、情報処理装置60は、スマートデバイス20において特定の物体が検出され、特定の物体に対応する仮想オブジェクトが配置された場合(上記ステップS210が実行された場合)、スマートデバイス20から検出オブジェクトデータを取得する。
 また、情報処理装置60は、ステップS601において、コントローラ18、38に対する操作に応じた操作データを取得する。操作データには、ボタンが押下されたか否かを示すデータ、アナログスティックに対する操作に応じたデータ、十字キーに対する操作に応じたデータ、慣性センサからの角速度データ及び角速度データを含む。
 次に、情報処理装置60は、第2HMD30の位置情報を算出する(ステップS602)。具体的には、情報処理装置60は、ステップS601で取得した第2HMD30からの画像に基づいて、マーカ40を検出し、マーカ40の検出結果に基づいて、マーカ40に対する第2HMD30の位置を算出する。なお、情報処理装置60は、第2HMD30の位置情報に加えて、第2HMD30からの画像に基づいて、第2HMD30の姿勢情報を算出してもよい。
 次に、情報処理装置60は、各キャラクタの位置情報及び姿勢情報を更新する(ステップS603)。具体的には、情報処理装置60は、ステップS601で各スマートデバイス20から取得した位置情報及び姿勢情報に応じて、各スマートデバイス20に対応するキャラクタ120の位置情報及び姿勢情報を更新する。また、情報処理装置60は、ステップS601で第1HMD10から取得した姿勢情報に応じて、キャラクタ110の姿勢情報を更新する。また、情報処理装置60は、ステップS601でコントローラ38から取得した操作データに基づいて、キャラクタ130を仮想空間内で移動させ、キャラクタ130の位置情報を更新する。
 次に、情報処理装置60は、各仮想カメラの位置情報及び姿勢情報を更新する(ステップS604)。具体的には、情報処理装置60は、ステップS601で各スマートデバイス20から取得した位置情報及び姿勢情報に応じて、各仮想カメラ121の位置情報及び姿勢情報を更新する。例えば、情報処理装置60は、キャラクタ120の位置及び姿勢と一致するように、仮想カメラ121の位置及び姿勢を設定する。また、情報処理装置60は、ステップS601で第1HMD10から取得した姿勢情報に応じて、仮想カメラ111の姿勢情報を更新する。また、仮想カメラ131が第1モードに設定されている場合、情報処理装置60は、第2HMD30の位置情報及び姿勢情報に応じて、仮想カメラ131の位置情報及び姿勢情報を更新する。
 なお、仮想カメラ131が第2モードに設定されている場合には、仮想カメラ131の位置情報及び姿勢情報は、キャラクタ130の位置情報及び姿勢情報に応じて設定される。例えば、キャラクタ130の位置及び姿勢と一致するように、仮想カメラ131の位置及び姿勢が設定される。
 ステップS604に続いて、情報処理装置60は、操作データに基づいて各キャラクタを制御する(ステップS605)。例えば、情報処理装置60は、スマートデバイス20からの操作データに基づいて、キャラクタ120に弾オブジェクト122を射出させる。また、情報処理装置60は、コントローラ18からの操作データに基づいて、キャラクタ110に弾オブジェクト112を射出させる。また、情報処理装置60は、コントローラ38からの操作データに基づいて、キャラクタ130に所定の動作(例えば、キャラクタ110への攻撃)を行わせる。
 次に、情報処理装置60は、その他のゲーム処理を行う(ステップS606)。例えば、情報処理装置60は、弾オブジェクト112が移動中である場合、弾オブジェクト112を仮想空間内で移動させ、弾オブジェクト112がキャラクタ130に当たったか否かを判定する。弾オブジェクト112がキャラクタ130に当たった場合、情報処理装置60は、キャラクタ130の体力値を減少させる。また、情報処理装置60は、弾オブジェクト122がキャラクタ110に当たった場合、キャラクタ110の体力値を減少させる。
 次に、情報処理装置60は、送信処理を行う(ステップS607)。具体的には、情報処理装置60は、ステップS603、ステップS605、及び、ステップS606の処理の結果を、各スマートデバイス20に送信する。これにより、各キャラクタ(110、120、130)の位置情報及び姿勢情報が、各スマートデバイス20に送信される。また、キャラクタが弾オブジェクトを射出したこと、弾オブジェクトの射出方向や射出速度に関する情報が、各スマートデバイス20に送信される。
 ステップS607に続いて、情報処理装置60は、第1HMD10のディスプレイ12に画像を表示させるために第1画像生成・送信処理を行う(ステップS608)。具体的には、情報処理装置60は、左仮想カメラ111Lに基づいて左目用仮想空間画像を生成するとともに、右仮想カメラ111Rに基づいて右目用仮想空間画像を生成する。そして、情報処理装置60は、生成した左目用仮想空間画像および右目用仮想空間画像を第1HMD10に送信する。これにより、仮想カメラ111に基づく左目用仮想空間画像および右目用仮想空間画像が、第1HMD10の左目用ディスプレイ12Lおよび右目用ディスプレイ12Rにそれぞれ表示される。
 次に、情報処理装置60は、第2HMD30のディスプレイ32に画像を表示させるために第2画像生成・送信処理を行う(ステップS609)。具体的には、情報処理装置60は、左仮想カメラ131Lに基づいて左目用仮想空間画像を生成するとともに、右仮想カメラ131Rに基づいて右目用仮想空間画像を生成する。そして、情報処理装置60は、生成した左目用仮想空間画像および右目用仮想空間画像を第2HMD30に送信する。これにより、仮想カメラ131に基づく左目用仮想空間画像および右目用仮想空間画像が、第2HMD30の左目用ディスプレイ32Lおよび右目用ディスプレイ32Rにそれぞれ表示される。
 次に、情報処理装置60は、ディスプレイ50に画像を表示させるために第3画像生成・送信処理を行う(ステップS610)。具体的には、情報処理装置60は、仮想カメラ150に基づいて仮想空間画像を生成し、生成した画像をディスプレイ50に出力する。これにより、仮想カメラ150に基づく画像がディスプレイ50に表示される。
 以上のように、本実施形態では、第1HMD10の現実空間における位置に関わらず、仮想空間内にキャラクタ110が配置される。キャラクタ110の位置に対応する位置に仮想カメラ111が配置される(S600)。また、現実空間におけるマーカ40に対するスマートデバイス20の位置に応じた仮想空間内の位置に、仮想カメラ121が配置され、スマートデバイス20の姿勢に応じて仮想カメラ121の姿勢が設定される(S604)。また、マーカ40に対するスマートデバイス20の位置に応じた仮想空間内の位置に、キャラクタ120が設定される。そして、仮想カメラ111から見たキャラクタ120を含む仮想空間の画像が、第1HMD10のディスプレイ12に表示される。また、仮想カメラ121から見たキャラクタ110を含む仮想空間の画像が、スマートデバイス20のディスプレイ22に表示される。
 これにより、第1ユーザは、第1HMD10を用いてキャラクタ110の視点から仮想空間を視認しながらゲームを行うことができ、自身が仮想空間内に存在しているかのような体験をすることができる。また、第2ユーザは、スマートデバイス20を用いて同じ仮想空間を視認することができ、現実空間に仮想空間内の仮想オブジェクトが存在するような感覚を抱くことができる。
 (変形例)
 以上、本実施形態の画像処理ついて説明したが、上記実施形態は単なる一例であり、例えば以下のような変形が加えられてもよい。
 例えば、上記実施形態では、第1ユーザは、頭部に第1HMD10を装着し、第1HMD10の左右のディスプレイ12に表示された画像を視認することとした。他の実施形態では、第1ユーザが視認するディスプレイ12は、ヘッドマウントディスプレイに限らず、手で把持する可搬型のディスプレイ(例えば、スマートフォン、タブレット端末、携帯型のゲーム装置、携帯型のパーソナルコンピュータ等)であってもよいし、据置型のディスプレイ(例えば、テレビや据置型のパーソナルコンピュータのディスプレイ)であってもよい。
 また、上記実施形態では、第2ユーザは、可搬型のスマートデバイス20を把持し、スマートデバイス20のディスプレイ22に表示された画像を視認することとした。このような携帯型の装置として、他の実施形態では、第2ユーザが視認する可搬型のディスプレイ22は、スマートフォンやゲーム装置のディスプレイであってもよいし、ヘッドマウントディスプレイであってもよいし、透過型のディスプレイを備えるメガネ型の装置であってもよい。
 また、上記実施形態では、キャラクタ110は、仮想空間の所定位置に固定され、第1HMD10の姿勢に応じて、キャラクタ110の向きが制御され、コントローラ18に対する振り操作に応じて、キャラクタ110に所定の動作(弾オブジェクト112を投げる動作)を行わせた。他の実施形態では、コントローラ18に対する操作(コントローラ18に対するキー入力(ボタン、アナログスティック、又は、十字キーに対する入力)、コントローラ18に対する振り操作等)に応じて、キャラクタ110の位置や姿勢が制御されてもよいし、キャラクタ110に所定の動作を行わせてもよい。また、第1HMD10に対する操作に応じて、キャラクタ110の位置が制御されてもよいし、キャラクタ110に所定の動作を行わせてもよい。すなわち、キャラクタ110は、第1HMD10及びコントローラ18を含む任意の入力装置(第1HMD10の慣性センサ、コントローラ18のキーや慣性センサ、第1HMD10及びコントローラ18とは異なる他の入力装置)に対する入力に応じて仮想空間内で制御されてもよい。ここでいう「キャラクタ110の制御」は、キャラクタ110の位置の変化、姿勢の変化、所定の動作等を含む。
 また、上記実施形態では、コントローラ38に対するキー入力に応じて、キャラクタ130の位置や向きを制御した。他の実施形態では、コントローラ18に対する操作(コントローラ38に対するキー入力、コントローラ38に対する振り操作等)に応じて、キャラクタ130が制御されてもよい。また、他の実施形態では、任意の入力装置に対する入力に応じてキャラクタ130が制御されてもよい。例えば、コントローラ38に対する操作に応じてキャラクタ130の位置が制御され、第2HMD30の姿勢に応じてキャラクタ130の向きが制御されてもよい。
 また、上記実施形態では、スマートデバイス20に対する入力に応じて、キャラクタ120に所定の動作(例えば弾オブジェクト122を投げる動作)を行わせた。他の実施形態では、キャラクタ120に対する制御は、スマートデバイス20を含む任意の入力装置(スマートデバイス20のタッチパネル、ボタン、慣性センサ、スマートデバイス20とは分離した他の入力装置)に対する入力に応じて行われてもよい。
 また、上記実施形態では、スマートデバイス20のカメラ23によって撮像された画像に基づいて、マーカ40に対するスマートデバイス20の位置が算出された。他の実施形態では、別の方法によってマーカ40に対するスマートデバイス20の位置が算出されてもよい。例えば、スマートデバイス20とは異なる現実空間に配置されたカメラで、マーカ40とスマートデバイス20とを撮像することにより、マーカ40に対するスマートデバイス20の位置が算出されてもよい。また、図9を参照して説明したように、センサバー55を用いて現実空間におけるスマートデバイス20の位置が算出されてもよい。
 また、上記実施形態では、マーカ40に対するスマートデバイス20の位置が算出されたが、他の実施形態では、マーカ40に限らず現実空間における所定の基準に対するスマートデバイス20の位置が算出されてもよい。ここで、所定の基準は、マーカ40であってもよいし、センサバー55であってもよいし、他の物体であってもよいし、所定の場所であってもよい。また、「所定の基準に対するスマートデバイス20の位置」は、座標値で表されてもよい。
 また、上記実施形態では、第1HMD10の姿勢を第1HMD10の慣性センサ15からのデータに基づいて算出した。他の実施形態では、第1HMD10の姿勢を他の方法により算出してもよい。例えば、第1HMD10をカメラで撮像し、当該カメラからの画像に基づいて、第1HMD10の姿勢が算出されてもよい。第2HMD30についても同様である。また、スマートデバイス20の姿勢についてもカメラの画像に基づいて算出されてもよい。
 また、上記フローチャートで示した処理は単なる例示に過ぎず、処理の順番や内容等は適宜変更されてもよい。上記フローチャートの各処理は、第1HMD10、スマートデバイス20、第2HMD30、及び、情報処理装置60のうちの何れのデバイスで実行されてもよい。
 例えば、上記実施形態では、第1HMD10は、自機が備える慣性センサからのセンサデータに基づいて姿勢を算出し、算出した姿勢情報を情報処理装置60に送信した。他の実施形態では、情報処理装置60が第1HMD10からセンサデータを取得し、第1HMD10の姿勢を算出してもよい。また、上記実施形態では、第1HMD10においては姿勢のみを算出し、情報処理装置60において実質的なゲームに関する処理(キャラクタ110の姿勢の設定、仮想カメラ111の姿勢の設定、画像の生成)を行った。他の実施形態では、第1HMD10においてキャラクタ110及び仮想カメラ111の姿勢の設定、画像の生成を行ってもよい。第2HMD30についても同様である。また、スマートデバイス20が行う処理(例えば、上記S204~S206、S207~S208、S209~S210、S211、S212、S213)のうちの一部または全部は、情報処理装置60において行われてもよい。また、情報処理装置60において行われる上記処理のうちの一部又は全部は、他の装置において実行されてもよい。例えば、情報処理装置60の処理の全部は、スマートデバイス20において実行されてもよい。
 また、情報処理装置60は、1又は複数の装置によって構成されてもよい。情報処理装置60は、ネットワーク(例えばインターネット)に接続された複数の装置によって構成されてもよい。
 また、上記実施形態では、第1HMD10、スマートデバイス20、第2HMD30、ディスプレイ50は、1つのローカルな場所に位置するものとした。他の実施形態では、これらは、それぞれ遠隔地に位置し、ネットワークを介して接続されてもよい。例えば、第1HMD10と、スマートデバイス20と、第2HM30と、情報処理装置60とはインターネットを介して接続されてもよい。
 また、上記実施形態では、左右の仮想カメラに基づいて、互いに視差を有する2つの画像を生成することとした。他の実施形態では、1つの仮想カメラに基づいて画像を生成し、生成した画像に変形を加えて互いに視差を有する2つの画像を生成してもよい。
 また、上記実施形態では、第1HMD10及び第2HMD30として、ユーザの頭部に固定的に装着するヘッドマウントディスプレイが用いられた。他の実施形態では、第1HMD10又は第2HMD30として、ユーザが手で把持したまま左右のディスプレイを覗き込む装置が用いられてもよい。
 また上記実施形態及びその変形例に係る構成は、互いに矛盾しない限り、任意に組み合わせることが可能である。また、上記は本発明の例示に過ぎず、上記以外にも種々の改良や変形が加えられてもよい。
 1 画像処理システム
 10 第1HMD
 12 ディスプレイ
 18 コントローラ
 20 スマートデバイス
 22 ディスプレイ
 30 第2HMD
 40 マーカ
 50 ディスプレイ
 110 キャラクタ
 111 仮想カメラ
 120 キャラクタ
 121 仮想カメラ
 130 キャラクタ
 131 仮想カメラ

Claims (16)

  1.  第1ユーザが視認可能な第1ディスプレイと、
     前記第1ユーザの入力を受け付ける第1入力手段と、
     第2ユーザによって携帯され、前記第2ユーザが視認可能な可搬型の第2ディスプレイと、
     前記第1ディスプレイ及び前記第1ユーザの現実空間における位置に関わらず、仮想空間内に第1オブジェクトを配置する第1オブジェクト配置手段と、
     前記第1入力手段が受け付けた入力に応じて、前記第1オブジェクトの制御を行う第1オブジェクト制御手段と、
     前記仮想空間内において、前記第1オブジェクトの位置に対応する位置に第1仮想カメラを配置する第1仮想カメラ配置手段と、
     現実空間の基準に対する前記第2ディスプレイの位置に応じて設定される前記仮想空間内の第1位置に、第2仮想カメラを配置し、前記第2仮想カメラの姿勢を、現実空間における前記第2ディスプレイの姿勢に応じた第1姿勢に設定する第2仮想カメラ配置手段と、
     現実空間の前記基準に対する前記第2ディスプレイの位置に応じて設定される前記仮想空間内の第2位置に、第2オブジェクトを配置する第2オブジェクト配置手段と、
     前記第1仮想カメラに基づいて生成された、前記第2オブジェクトを含む前記仮想空間の画像を、前記第1ディスプレイに表示させる第1表示制御手段と、
     前記第2仮想カメラに基づいて生成された、前記第1オブジェクトを含む前記仮想空間の画像を、前記第2ディスプレイに表示させる第2表示制御手段と、を備える、画像処理システム。
  2.  前記第2ユーザの入力を受け付ける第2入力手段と、
     前記第2入力手段が受け付けた入力に応じて、前記仮想空間又は前記第1オブジェクトに影響を与える制御手段と、をさらに備える、請求項1に記載の画像処理システム。
  3.  前記制御手段は、前記第2入力手段が受け付けた入力に応じて、前記仮想空間内に所定のオブジェクトを出現させ、
     前記第1表示制御手段は、前記第2オブジェクトと前記所定のオブジェクトとを含む画像を前記第1ディスプレイに表示させ、
     前記第2表示制御手段は、前記第1オブジェクトと前記所定のオブジェクトとを含む画像を前記第2ディスプレイに表示させる、請求項2に記載の画像処理システム。
  4.  前記制御手段は、前記所定のオブジェクトを用いて、前記第1オブジェクトに変化を与える、請求項3に記載の画像処理システム。
  5.  前記第1オブジェクトを用いたゲームを制御するゲーム制御手段、をさらに備え、
     前記所定のオブジェクトは、前記第1オブジェクトにとって前記ゲームにおいて有利又は不利なオブジェクトである、請求項3に記載の画像処理システム。
  6.  前記第1ディスプレイは、ヘッドマウントディスプレイであり、
     前記第2ディスプレイは、背面方向の現実空間を撮像するカメラを備え、
     前記第2仮想カメラ配置手段は、前記カメラからの画像に基づいて、前記基準として現実空間に配置されたマーカを検出し、前記マーカに対する前記第2ディスプレイの位置に応じた前記第1位置に前記第2仮想カメラを配置し、
     前記第2表示制御手段は、前記カメラで撮像された現実空間の画像に、前記第2仮想カメラに基づいて生成された前記仮想空間の画像を重畳して、前記第2ディスプレイに表示させる、請求項1から5の何れかに記載の画像処理システム。
  7.  前記第1ユーザ又は前記第2ユーザによって把持されるコントローラを備え、
     前記第1ディスプレイ又は前記第2ディスプレイは、ヘッドマウントディスプレイであり、
     前記ヘッドマウントディスプレイを装着している前記第1ユーザ又は前記第2ユーザの手を撮像可能なカメラを備え、
     前記カメラからの入力画像に基づいて、前記第1ユーザ又は前記第2ユーザの手、又は、前記コントローラを検出し、当該手の位置に前記コントローラを模した仮想的なコントローラオブジェクトを配置し、さらに前記コントローラオブジェクトの所定位置に、前記仮想空間内の位置を指示するための指示オブジェクトを配置する指示オブジェクト配置手段と、
     前記コントローラオブジェクトと前記指示オブジェクトとを含む画像を前記ヘッドマウントディスプレイに表示させる第3表示制御手段と、をさらに備える、請求項1から5の何れかに記載の画像処理システム。
  8.  現実空間を撮像するカメラと、
     前記カメラからの入力画像に基づいて、現実空間に存在する特定の物体を検出し、当該特定の物体に対応する仮想オブジェクトを、現実空間の前記特定の物体の位置に応じた前記仮想空間内の位置に配置する仮想オブジェクト配置手段と、をさらに備え、
     前記第1表示制御手段は、前記仮想オブジェクトを含む前記仮想空間の画像を前記第1ディスプレイに表示させる、請求項1から7の何れかに記載の画像処理システム。
  9.  前記第2表示制御手段は、前記仮想オブジェクトを含む前記仮想空間の画像を前記第2ディスプレイに表示させる、請求項8に記載の画像処理システム。
  10.  前記仮想オブジェクト配置手段は、前記特定の物体を検出したことによって前記仮想オブジェクトを配置した後、前記カメラからの入力画像に基づいて前記特定の物体を検出しなくなった場合、前記仮想オブジェクトを前記仮想空間内に存続させ、
     前記第1表示制御手段は、前記カメラからの入力画像に基づいて前記特定の物体を検出しなくなった場合でも、前記仮想オブジェクトを含む前記仮想空間の画像を前記第1ディスプレイに表示させる、請求項8又は9に記載の画像処理システム。
  11.  前記第1ディスプレイは、ヘッドマウントディスプレイであり、
     前記第1ユーザが現実空間における所定範囲外に出たか否かを判定し、前記所定範囲外に出たと判定した場合に、前記第1ユーザに対して所定の報知を行う第1報知手段と、
     前記第2ユーザが前記所定範囲に進入したか否かを判定し、前記所定範囲に進入したと判定した場合に、前記第2ユーザに対して所定の報知を行う第2報知手段と、を備える、請求項1から10の何れかに記載の画像処理システム。
  12.  前記第1入力手段は、キー入力可能なコントローラであり、
     前記第1オブジェクト制御手段は、前記第1入力手段に対するキー入力に応じて、前記第1オブジェクトの位置または姿勢を制御する、請求項1から11の何れかに記載の画像処理システム。
  13.  前記第1仮想カメラは、前記第1オブジェクトの位置に配置される、請求項1から12の何れかに記載の画像処理システム。
  14.  前記第1仮想カメラは、前記第1オブジェクトの位置から所定距離離れた位置に、前記第1オブジェクトを撮像範囲に含むように配置される、請求項1から12の何れかに記載の画像処理システム。
  15.  第1ユーザが視認可能な第1ディスプレイと、第2ユーザによって携帯され、前記第2ユーザが視認可能な可搬型の第2ディスプレイとを含む画像処理システムのコンピュータにおいて実行される画像処理プログラムであって、前記コンピュータを、
     前記第1ディスプレイ及び前記第1ユーザの現実空間における位置に関わらず、仮想空間内に第1オブジェクトを配置する第1オブジェクト配置手段と、
     前記第1ユーザからの入力に応じて、前記第1オブジェクトの制御を行う第1オブジェクト制御手段と、
     前記仮想空間内において、前記第1オブジェクトの位置に対応する位置に第1仮想カメラを配置する第1仮想カメラ配置手段と、
     現実空間の基準に対する前記第2ディスプレイの位置に応じて設定される前記仮想空間内の第1位置に、第2仮想カメラを配置し、前記第2仮想カメラの姿勢を、現実空間における前記第2ディスプレイの姿勢に応じた第1姿勢に設定する第2仮想カメラ配置手段と、
     現実空間の前記基準に対する前記第2ディスプレイの位置に応じて設定される前記仮想空間内の第2位置に、第2オブジェクトを配置する第2オブジェクト配置手段と、
     前記第1仮想カメラに基づいて生成された、前記第2オブジェクトを含む前記仮想空間の画像を、前記第1ディスプレイに表示させる第1表示制御手段と、
     前記第2仮想カメラに基づいて生成された、前記第1オブジェクトを含む前記仮想空間の画像を、前記第2ディスプレイに表示させる第2表示制御手段、として機能させる、画像処理プログラム。
  16.  第1ユーザが視認可能な第1ディスプレイと、第2ユーザによって携帯され、前記第2ユーザが視認可能な可搬型の第2ディスプレイとを含む画像処理システムにおいて行われる画像処理方法であって、
     前記第1ディスプレイ及び前記第1ユーザの現実空間における位置に関わらず、仮想空間内に第1オブジェクトを配置する第1オブジェクト配置ステップと、
     前記第1ユーザからの入力に応じて、前記第1オブジェクトの制御を行う第1オブジェクト制御ステップと、
     前記仮想空間内において、前記第1オブジェクトの位置に対応する位置に第1仮想カメラを配置する第1仮想カメラ配置ステップと、
     現実空間の基準に対する前記第2ディスプレイの位置に応じて設定される前記仮想空間内の第1位置に、第2仮想カメラを配置し、前記第2仮想カメラの姿勢を、現実空間における前記第2ディスプレイの姿勢に応じた第1姿勢に設定する第2仮想カメラ配置ステップと、
     現実空間の前記基準に対する前記第2ディスプレイの位置に応じて設定される前記仮想空間内の第2位置に、第2オブジェクトを配置する第2オブジェクト配置ステップと、
     前記第1仮想カメラに基づいて生成された、前記第2オブジェクトを含む前記仮想空間の画像を、前記第1ディスプレイに表示させる第1表示制御ステップと、
     前記第2仮想カメラに基づいて生成された、前記第1オブジェクトを含む前記仮想空間の画像を、前記第2ディスプレイに表示させる第2表示制御ステップと、を含む、画像処理方法。
PCT/JP2020/035539 2020-01-28 2020-09-18 画像処理システム、画像処理プログラム、および画像処理方法 WO2021152906A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20916924.2A EP4082638A4 (en) 2020-01-28 2020-09-18 Image processing system, image processing program, and image processing method
JP2021574446A JPWO2021152906A1 (ja) 2020-01-28 2020-09-18
US17/868,810 US20220362667A1 (en) 2020-01-28 2022-07-20 Image processing system, non-transitory computer-readable storage medium having stored therein image processing program, and image processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-011691 2020-01-28
JP2020011691 2020-01-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/868,810 Continuation US20220362667A1 (en) 2020-01-28 2022-07-20 Image processing system, non-transitory computer-readable storage medium having stored therein image processing program, and image processing method

Publications (1)

Publication Number Publication Date
WO2021152906A1 true WO2021152906A1 (ja) 2021-08-05

Family

ID=77078522

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/035539 WO2021152906A1 (ja) 2020-01-28 2020-09-18 画像処理システム、画像処理プログラム、および画像処理方法

Country Status (4)

Country Link
US (1) US20220362667A1 (ja)
EP (1) EP4082638A4 (ja)
JP (1) JPWO2021152906A1 (ja)
WO (1) WO2021152906A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7412497B1 (ja) 2022-09-26 2024-01-12 株式会社コロプラ 情報処理システム
JP7413472B1 (ja) 2022-09-26 2024-01-15 株式会社コロプラ 情報処理システムおよびプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6713591B1 (ja) * 2019-04-17 2020-06-24 楽天株式会社 表示制御装置、表示制御方法、プログラム、ならびに、非一時的なコンピュータ読取可能な情報記録媒体

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013061870A (ja) * 2011-09-14 2013-04-04 Namco Bandai Games Inc プログラム、情報記憶媒体及び電子機器
JP2019074362A (ja) 2017-10-13 2019-05-16 任天堂株式会社 姿勢位置推測システム、姿勢位置推測方法、および姿勢位置推測装置
JP2019516159A (ja) * 2016-03-18 2019-06-13 株式会社ソニー・インタラクティブエンタテインメント Vr環境における観客ビュー視点
JP2019518261A (ja) * 2016-03-17 2019-06-27 株式会社ソニー・インタラクティブエンタテインメント 仮想現実(vr)ユーザインタラクティブ性に関連付けられた仮想現実環境の観戦
JP2019192173A (ja) * 2018-04-27 2019-10-31 株式会社コロプラ プログラム、情報処理装置、および方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445925B2 (en) * 2016-09-30 2019-10-15 Sony Interactive Entertainment Inc. Using a portable device and a head-mounted display to view a shared virtual reality space

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013061870A (ja) * 2011-09-14 2013-04-04 Namco Bandai Games Inc プログラム、情報記憶媒体及び電子機器
JP2019518261A (ja) * 2016-03-17 2019-06-27 株式会社ソニー・インタラクティブエンタテインメント 仮想現実(vr)ユーザインタラクティブ性に関連付けられた仮想現実環境の観戦
JP2019516159A (ja) * 2016-03-18 2019-06-13 株式会社ソニー・インタラクティブエンタテインメント Vr環境における観客ビュー視点
JP2019074362A (ja) 2017-10-13 2019-05-16 任天堂株式会社 姿勢位置推測システム、姿勢位置推測方法、および姿勢位置推測装置
JP2019192173A (ja) * 2018-04-27 2019-10-31 株式会社コロプラ プログラム、情報処理装置、および方法

Non-Patent Citations (1)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7412497B1 (ja) 2022-09-26 2024-01-12 株式会社コロプラ 情報処理システム
JP7413472B1 (ja) 2022-09-26 2024-01-15 株式会社コロプラ 情報処理システムおよびプログラム

Also Published As

Publication number Publication date
EP4082638A4 (en) 2023-06-28
US20220362667A1 (en) 2022-11-17
JPWO2021152906A1 (ja) 2021-08-05
EP4082638A1 (en) 2022-11-02

Similar Documents

Publication Publication Date Title
WO2021152906A1 (ja) 画像処理システム、画像処理プログラム、および画像処理方法
JP6276882B1 (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP6933727B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP5689707B2 (ja) 表示制御プログラム、表示制御装置、表示制御システム、および、表示制御方法
US8970623B2 (en) Information processing system, information processing method, information processing device and tangible recoding medium recording information processing program
JP5800501B2 (ja) 表示制御プログラム、表示制御装置、表示制御システム、及び、表示制御方法
US9064335B2 (en) System, method, device and computer-readable medium recording information processing program for superimposing information
JP7058034B2 (ja) ゲーム処理プログラム、ゲーム処理方法、および、ゲーム処理装置
JP5814532B2 (ja) 表示制御プログラム、表示制御装置、表示制御システム及び表示制御方法
KR20220012990A (ko) 인공 현실 시스템들을 위한 팔 응시-구동 사용자 인터페이스 요소 게이팅
JP6321263B1 (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
KR20220018561A (ko) 사용자 인터페이스 요소들을 게이팅하기 위한 개인 어시스턴트 요소를 갖는 인공 현실 시스템들
CN116328317A (zh) 应用处理系统、应用处理方法以及应用处理程序
KR20220018562A (ko) 인공 현실 시스템을 위한 모서리-식별 제스처-구동 사용자 인터페이스 요소 게이팅
JP2019046120A (ja) 仮想体験を提供するためにコンピュータで実行される方法、プログラム及びコンピュータ
KR20230015826A (ko) 프로그램, 방법, 및 정보 단말 장치
JP6580624B2 (ja) 仮想空間を提供するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
EP3454304A1 (en) Image processing device
JP6419268B1 (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP6554139B2 (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP2019049987A (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018192238A (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018190397A (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP7145177B2 (ja) プログラム、方法および情報処理装置
JP6810325B2 (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: 20916924

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021574446

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2020916924

Country of ref document: EP

Effective date: 20220727

NENP Non-entry into the national phase

Ref country code: DE