WO2024038787A1 - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
WO2024038787A1
WO2024038787A1 PCT/JP2023/028693 JP2023028693W WO2024038787A1 WO 2024038787 A1 WO2024038787 A1 WO 2024038787A1 JP 2023028693 W JP2023028693 W JP 2023028693W WO 2024038787 A1 WO2024038787 A1 WO 2024038787A1
Authority
WO
WIPO (PCT)
Prior art keywords
play area
user
head
mounted display
unit
Prior art date
Application number
PCT/JP2023/028693
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 株式会社ソニー・インタラクティブエンタテインメント
Publication of WO2024038787A1 publication Critical patent/WO2024038787A1/ja

Links

Images

Classifications

    • 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
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics

Definitions

  • the present invention relates to an information processing device and an information processing method that process data related to a head mounted display.
  • Image display systems that allow a user wearing a head-mounted display to view a target space from a free viewpoint are becoming widespread.
  • electronic content is known that realizes virtual reality (VR) by displaying a virtual three-dimensional space and displaying an image on a head-mounted display according to the direction of the user's line of sight.
  • VR virtual reality
  • a head-mounted display it is possible to enhance the sense of immersion in images and improve the operability of applications such as games.
  • Walk-through systems have also been developed that allow a user wearing a head-mounted display to virtually walk around a space displayed as an image by physically moving around.
  • the range in which a user wearing a head-mounted display can move while playing an application needs to be limited depending on the size of the user's room and the environment such as furniture and luggage installed in the user's room.
  • the present invention was made in view of these problems, and its purpose is to provide a technology that allows a user wearing a head-mounted display to easily and appropriately set a movable play area.
  • an embodiment of the present invention relates to an information processing device.
  • This information processing device includes a storage unit that stores data of a play area in which the user can move while playing an application in a space surrounding the user wearing a head-mounted display, and an image indicating the play area stored in the storage unit.
  • a display control unit that is displayed on a head-mounted display, and a play area editor that accepts user operations to edit the play area, detects that the size of the play area exceeds the upper limit, and adjusts the size by cutting out a part. It is characterized by comprising: and.
  • This information processing method includes the steps of reading from memory data on a play area in which the user can move while playing an application in the space surrounding the user wearing a head-mounted display, and displaying an image showing the play area on the head-mounted display.
  • the present invention is characterized by comprising the steps of: receiving a user's operation for editing the play area, detecting that the size of the play area exceeds the upper limit, and adjusting the size by cutting out a part of the play area.
  • FIG. 1 is a diagram showing an example of the appearance of a head-mounted display according to the present embodiment.
  • 1 is a diagram showing a configuration example of an image display system according to the present embodiment.
  • FIG. 2 is a diagram for explaining an example of an image world displayed on a head-mounted display by the image generation device in the present embodiment.
  • 1 is a diagram showing an internal circuit configuration of an image generation device according to the present embodiment.
  • FIG. 2 is a diagram showing an internal circuit configuration of a head-mounted display according to the present embodiment.
  • FIG. 2 is a block diagram showing functional blocks of an image generation device according to the present embodiment. It is a flowchart showing the operation of the image generation device when setting a play area in this embodiment.
  • FIG. 8 is a diagram showing an image of the play area displayed in S20 of FIG. 7.
  • FIG. FIG. 3 is a diagram schematically showing how a user edits a play area in this embodiment. It is a figure which illustrates the movement of a controller cursor and the change of a play area in this Embodiment.
  • FIG. 7 is a diagram illustrating a method in which the play area editing unit adjusts the size of the play area after editing by the user in the present embodiment.
  • FIG. 7 is a diagram illustrating an example of an image that the play area editing section displays on the head-mounted display during the editing period of the play area according to the present embodiment.
  • FIG. 6 is a diagram illustrating a mode in which the play area editing unit monitors an excess of the play area size during a period when the user is drawing the boundary line of the play area in the present embodiment.
  • FIG. 7 is a diagram for explaining a mode in which the play area editing unit cuts out an area other than the area added by the user from the new play area in the present embodiment.
  • FIG. 7 is a diagram for explaining a policy for determining a cutting line when a user edits a play area from outside the play area in the present embodiment.
  • FIG. 6 is a diagram for explaining a mode in which the play area editing unit determines a cutting line based on the shape of the play area and existing real objects in the present embodiment.
  • 7 is a flowchart illustrating a processing procedure in which the play area editing unit updates play area data in response to an editing operation by a user in the present embodiment.
  • the present embodiment relates to an image display system that displays an image of an application on a head-mounted display mounted on a user's head.
  • FIG. 1 shows an example of the appearance of a head mounted display 100.
  • the head mounted display 100 of this embodiment includes an output mechanism section 102 and a mounting mechanism section 104.
  • the attachment mechanism section 104 includes an attachment band 106 that is worn by the user to wrap around the head and secure the device.
  • the output mechanism section 102 includes a casing 108 shaped to cover the left and right eyes when the user wears the head-mounted display 100, and has a display panel inside so as to directly face the eyes when the user wears the head-mounted display 100.
  • the display panel of the head mounted display 100 of this embodiment is assumed to be non-transparent. That is, the head mounted display 100 is a light-opaque head mounted display.
  • the inside of the housing 108 may further include an eyepiece lens that is located between the display panel and the user's eyes when the head-mounted display 100 is worn, and expands the user's viewing angle.
  • the head-mounted display 100 may further include a speaker or earphones at a position corresponding to the user's ears when worn.
  • the head mounted display 100 has a built-in motion sensor, and detects the translational movement and rotational movement of the head of the user wearing the head mounted display 100, as well as the position and posture at each time.
  • the head mounted display 100 also includes a stereo camera 110 on the front of the housing 108.
  • the stereo camera 110 captures a moving image of the surrounding real space with a field of view corresponding to the user's line of sight. By immediately displaying the captured image, it is possible to realize so-called video see-through, in which the user can see the real space in the direction in which he or she is facing.
  • augmented reality AR can be realized by drawing a virtual object on top of the image of the real object shown in the photographed image.
  • FIG. 2 shows an example of the configuration of the image display system of this embodiment.
  • the image display system includes a head mounted display 100, an image generation device 200, and a controller 140.
  • Head mounted display 100 is connected to image generation device 200 via wireless communication.
  • Image generation device 200 may further be connected to a server via a network.
  • the server may provide image generation device 200 with data of an online application such as a game in which multiple users can participate via a network.
  • the image generation device 200 identifies the position of the viewpoint and the direction of the line of sight based on the position and posture of the head of the user wearing the head-mounted display 100, generates a display image so that the field of view corresponds to the position, and displays the head-mounted display 100.
  • This is an information processing device that outputs to a display 100.
  • the image generation device 200 may generate a display image of the virtual world that is the stage of the game while progressing in an electronic game, or may generate a moving image for viewing or providing information regardless of whether it is a virtual world or the real world. may be displayed.
  • the image generation device 200 may be a stationary game machine or a PC.
  • the controller 140 is a controller (for example, a game controller) that is held in the user's hand and into which the user's operations for controlling image generation in the image generation device 200 and image display on the head-mounted display 100 are input. Controller 140 is connected to image generation device 200 via wireless communication. As a modification, one or both of the head-mounted display 100 and the controller 140 may be connected to the image generation device 200 by wired communication via a signal cable or the like.
  • FIG. 3 is a diagram for explaining an example of the image world that the image generation device 200 displays on the head-mounted display 100.
  • a state is created in which the user 12 is in a room that is a virtual space.
  • objects such as walls, floors, windows, tables, and objects on the tables are arranged in the world coordinate system that defines the virtual space.
  • the image generation device 200 defines a view screen 14 in the world coordinate system according to the position of the viewpoint and the direction of the line of sight of the user 12, and draws a display image by representing an image of an object there.
  • the image generation device 200 acquires the position of the user's 12 viewpoint and the direction of the line of sight (hereinafter, these may be collectively referred to as "viewpoints") from the head-mounted display 100 at a predetermined rate.
  • the position and direction of the view screen 14 are changed. Thereby, an image can be displayed on the head-mounted display 100 in a field of view corresponding to the user's viewpoint.
  • the image generation device 200 can also make the virtual space stereoscopically visible to the user 12 by generating stereo images with parallax and displaying the stereo images on the left and right areas of the display panel of the head-mounted display 100. Thereby, the user 12 can experience virtual reality as if he were inside the room in the displayed world.
  • FIG. 4 shows the internal circuit configuration of the image generation device 200.
  • the image generation device 200 includes a CPU (Central Processing Unit) 222, a GPU (Graphics Processing Unit) 224, and a main memory 226. These units are interconnected via a bus 230.
  • An input/output interface 228 is further connected to the bus 230.
  • a communication section 232 , a storage section 234 , an output section 236 , an input section 238 , and a recording medium drive section 240 are connected to the input/output interface 228 .
  • the communication unit 232 includes peripheral device interfaces such as USB and IEEE1394, and network interfaces such as wired LAN or wireless LAN.
  • the storage unit 234 includes a hard disk drive, nonvolatile memory, and the like.
  • the output unit 236 outputs data to the head mounted display 100.
  • the input unit 238 receives data input from the head mounted display 100 and also receives data input from the controller 140.
  • the recording medium drive unit 240 drives a removable recording medium such as a magnetic disk, an optical disk, or a semiconductor memory.
  • the CPU 222 controls the entire image generation device 200 by executing the operating system stored in the storage unit 234. Further, the CPU 222 executes various programs (eg, VR game applications, etc.) read from the storage unit 234 or a removable recording medium and loaded into the main memory 226, or downloaded via the communication unit 232.
  • the GPU 224 has the function of a geometry engine and the function of a rendering processor, performs a drawing process in accordance with a drawing command from the CPU 222, and outputs the drawing result to the output unit 236.
  • the main memory 226 is composed of a RAM (Random Access Memory) and stores programs and data necessary for processing.
  • FIG. 5 shows the internal circuit configuration of the head mounted display 100.
  • the head mounted display 100 includes a CPU 120, a main memory 122, a display section 124, and an audio output section 126. These parts are interconnected via a bus 128.
  • An input/output interface 130 is further connected to the bus 128.
  • a communication unit 132 including a wireless communication interface, a motion sensor 134, and a stereo camera 110 are connected to the input/output interface 130.
  • the CPU 120 processes information acquired from each part of the head-mounted display 100 via the bus 128, and supplies display image and audio data acquired from the image generation device 200 to the display unit 124 and the audio output unit 126.
  • the main memory 122 stores programs and data necessary for processing by the CPU 120.
  • the display unit 124 includes a display panel such as a liquid crystal panel or an organic EL panel, and displays images in front of the eyes of the user wearing the head-mounted display 100.
  • the display unit 124 may realize stereoscopic vision by displaying a pair of stereo images in areas corresponding to the left and right eyes.
  • the display unit 124 may further include a pair of lenses that are located between the display panel and the user's eyes when the head-mounted display 100 is attached, and expand the user's viewing angle.
  • the audio output unit 126 is configured with a speaker or earphone provided at a position corresponding to the user's ear when the head-mounted display 100 is worn, and allows the user to hear audio.
  • the communication unit 132 is an interface for transmitting and receiving data to and from the image generation device 200, and realizes communication using known wireless communication technology such as Bluetooth (registered trademark).
  • Motion sensor 134 includes a gyro sensor and an acceleration sensor, and acquires the angular velocity and acceleration of head-mounted display 100.
  • the stereo cameras 110 are a pair of video cameras that photograph the surrounding real space from left and right viewpoints with a field of view corresponding to the user's viewpoint. This is an image captured by the stereo camera 110, and the image showing the space around the user is also referred to as a "camera image” hereinafter.
  • the camera image can also be said to be an image showing an object that exists in the user's line of sight direction (typically in front of the user). Measured values by the motion sensor 134 and data of captured images (camera images) by the stereo camera 110 are transmitted to the image generation device 200 via the communication unit 132 as necessary.
  • a play area is set that defines the range of the real world in which the user wearing the head-mounted display 100 can move while playing an application.
  • the play area is an area in the user's surrounding space (the real-world space surrounding the user) in which the user is allowed to move around while viewing virtual reality images (hereinafter also referred to as "VR images"). It can be said to be a range. If the user attempts to leave or deviates from the play area while playing the application, the image display system provides the user with a warning that calls for attention or prompts the user to return to the play area.
  • a VR game is a tennis game that displays a VR image showing a tennis court in a virtual world, and changes the position of a character on the tennis court in the virtual world as the user moves (walks, etc.) in the real world. It's okay.
  • the image generation device 200 automatically detects the play area. At this time, the image generation device 200 determines the range within which the user can move without colliding with those objects by identifying the positions and shapes of surrounding objects in the real space photographed by the stereo camera 110 of the head-mounted display 100. decide. The image generation device 200 further receives a user's operation to edit the automatically detected play area, and changes the shape of the play area in accordance with the operation. This allows the user to efficiently set a play area of any shape.
  • FIG. 6 is a block diagram showing functional blocks of the image generation device.
  • the image generation device 200 executes general information processing such as progressing the VR game and communicating with the server, but FIG. 6 particularly shows the functional blocks related to setting the play area in detail.
  • the functions of the image generation device 200 shown in FIG. 6 may be implemented in a server connected to the image generation device 200 via a network, or may be implemented in the head-mounted display 100. .
  • the plurality of functional blocks shown in FIG. 6 can be realized in terms of hardware by the configuration of the CPU 222, GPU 224, main memory 226, storage unit 234, etc. shown in FIG. 4, and in terms of software, the plurality of functional blocks This can be realized by a computer program that implements this function. Therefore, those skilled in the art will understand that these functional blocks can be implemented in various ways using only hardware, only software, or a combination thereof, and are not limited to either.
  • the image generation device 200 includes a data processing section 250 and a data storage section 252.
  • the data processing unit 250 performs various data processing.
  • the data processing unit 250 transmits and receives data to and from the head mounted display 100 and the controller 140 via the communication unit 232, output unit 236, and input unit 238 shown in FIG.
  • the data storage unit 252 stores data referenced or updated by the data processing unit 250.
  • the data storage unit 252 includes an App storage unit 254, a play area storage unit 256, and a map storage unit 258.
  • the App storage unit 254 stores data of an application (VR game in the embodiment) that generates a VR image.
  • the play area storage unit 256 stores data related to the play area.
  • the data related to the play area includes data indicating the positions of points forming the boundaries of the play area (for example, coordinate values of each point in the world coordinate system).
  • the map storage unit 258 stores map data for estimating the position of the head-mounted display 100 (that is, the position of the user wearing the head-mounted display 100).
  • the map data of this embodiment is an image showing the room in which the user plays the VR game (feature points shown in the image), and an image for which the positional relationship (position and direction) is known (features shown in the image). points).
  • the map data includes a plurality of sets in which the position of the head-mounted display 100, the line-of-sight direction, and key frames are associated with each other. Note that the map data may include other items necessary for so-called self-position estimation.
  • a certain set of key frames is data indicating the characteristics of an image seen at the same set of positions and line-of-sight directions.
  • a key frame is an image generated based on a camera image captured by the stereo camera 110 of the head-mounted display 100, and is an image that includes a predetermined number or more of feature points.
  • the number of feature points to be included in a key frame may be 24 or more.
  • the feature points may include corners detected by known corner detection methods, or may be detected based on brightness gradients.
  • a key frame can also be said to be a collection of partial images cut out from a camera image.
  • the data processing unit 250 includes a system unit 260, an App execution unit 290, and a display control unit 292.
  • the functions of these multiple functional blocks may be implemented in a computer program.
  • the CPU 222 and GPU 224 of the image generation device 200 may perform the functions of the plurality of functional blocks by reading the computer program from the storage unit 234 or a recording medium into the main memory 226 and executing it.
  • the App execution unit 290 reads data of the application selected by the user (VR game in the embodiment) from the App storage unit 254, and executes the application selected by the user.
  • the display control unit 292 transmits data of various images (for example, VR images and AR images) generated by the system unit 260 and the App execution unit 290 to the head mounted display 100, and displays these images on the head mounted display 100. 124 (display panel). Note that the display control unit 292 may transmit audio data to the head mounted display 100 and cause the audio output unit 126 of the head mounted display 100 to output it.
  • the system unit 260 executes system processing regarding the head mounted display 100.
  • the system unit 260 provides common services to multiple applications (for example, VR games) for the head mounted display 100.
  • the system section 260 includes a camera image acquisition section 262, a play area setting section 264, a map generation section 274, a notification section 278, a position estimation section 280, and a warning processing section 282.
  • the camera image acquisition unit 262 acquires a camera image captured by the stereo camera 110 of the head mounted display 100 and transmitted from the head mounted display 100.
  • the play area setting unit 264 executes various processes related to play area setting. Specifically, the play area setting unit 264 sets the play area based on the camera image acquired by the camera image acquisition unit 262 and the user's operation input via the controller 140.
  • the play area setting section 264 includes a play area detection section 266, a floor setting section 268, and a play area editing section 270.
  • the play area detection unit 266 automatically detects a play area from the surrounding space of the user wearing the head-mounted display 100 based on the camera image acquired by the camera image acquisition unit 262.
  • the floor setting section 268 receives a user's operation to edit the height of the floor detected as a play area by the play area detection section 266, and changes the height of the floor according to the operation.
  • the play area editing section 270 receives a user's operation to edit the play area automatically detected by the play area detection section 266, and changes the shape of the play area according to the operation. For example, the play area editing section 270 reduces or expands the play area automatically detected by the play area detection section 266 in accordance with a user's operation.
  • the map generation unit 274 generates a map for estimating the user's position based on the camera image acquired by the camera image acquisition unit 262 in parallel with the play area detection unit 266 detecting the play area. .
  • the map generation unit 274 stores the generated map data in the map storage unit 258.
  • the map generation unit 274 ends generation of the map when a predetermined number or more of camera images, which are camera images showing the user's surrounding space from a plurality of directions, are input.
  • the notification unit 278 notifies the App execution unit 290 of information necessary for the App execution unit 290 to execute the VR game.
  • the position estimation unit 280 estimates the user's position in the real world based on the map data stored in the map storage unit 258 and the camera image acquired by the camera image acquisition unit 262. Estimate the user's location.
  • the position estimation unit 280 matches a plurality of key frames included in the map data with the camera image, and based on the matching result and the position and line-of-sight direction of the head-mounted display 100 associated with each key frame.
  • the user's location may also be estimated.
  • the position estimation unit 280 may estimate the user's position using a known self-position estimation technique such as SLAM (Simultaneous Localization and Mapping).
  • the warning processing unit 282 executes a warning process to the user according to the relationship between the boundary of the play area and the user's position.
  • FIG. 7 is a flowchart showing the operation of the image generation device 200 when setting a play area.
  • the user can select initial settings or resetting of the play area in the system settings menu of the head mounted display 100.
  • the play area setting unit 264 of the image generation device 200 causes the head mounted display 100 to display a message urging the user to look around via the display control unit 292. .
  • the head-mounted display 100 sequentially transmits data of a plurality of camera images to the image generation device 200.
  • Each of the plurality of camera image data includes sensor data at the time of generation of each camera image.
  • the sensor data includes values measured by the motion sensor 134, and includes, for example, the angular velocity and acceleration of the head-mounted display 100.
  • the camera image acquisition unit 262 of the image generation device 200 acquires camera image data transmitted from the head mounted display 100 (S10).
  • the play area detection unit 266 of the image generation device 200 automatically detects the play area in the user's surrounding space based on the camera image acquired in S10 (S12). Specifically, the play area detection unit 266 may estimate the three-dimensional shape of the user's room using a known method based on a camera image and sensor data corresponding to the camera image. The play area detection unit 266 detects a plane (typically a floor surface) perpendicular to the direction of gravity indicated by the sensor data based on the estimated three-dimensional shape of the room, and detects a plurality of planes at the same height. The result of combining the planes may be detected as the play area. The play area detection unit 266 stores play area data including the coordinate values of the point group forming the boundary of the play area in the play area storage unit 256.
  • a plane typically a floor surface
  • the play area detection unit 266 detects the height of the floor surface as the play area when detecting the play area.
  • the height of the floor surface may be, for example, the distance between the floor surface and the head-mounted display 100 in the direction of gravity.
  • the play area detection section 266 stores data indicating the height of the floor surface in the play area storage section 256. When the position of the head mounted display 100 is the origin, the height of the floor surface may be minus 1 meter or the like.
  • the map generation unit 274 of the image generation device 200 generates a map for estimating the user's position based on the camera image acquired in S10 (S14).
  • the play area detection unit 266 and the map generation unit 274 perform the processing in S12 and S14 using the new camera image until a predetermined condition indicating that sufficient map data has been obtained to estimate the user's position is satisfied. is repeated (N at S16).
  • the play area detection unit 266 ends the play area detection process
  • the map generation unit 274 ends the map generation process (Y in S16).
  • the floor setting section 268 of the image generation device 200 generates a floor adjustment screen based on the data indicating the height of the floor stored in the play area storage section 256.
  • the floor surface adjustment screen may include an AR image obtained by superimposing an object (for example, a translucent grid-shaped object) indicating the floor surface on the camera image acquired by the camera image acquisition unit 262.
  • the floor setting section 268 causes the display panel of the head-mounted display 100 to display a floor adjustment screen via the display control section 292.
  • the floor setting unit 268 receives a user's operation to adjust the height of the floor entered on the floor adjustment screen, and changes the height of the floor according to the user's operation.
  • the floor setting unit 268 stores data indicating the changed floor height in the play area storage unit 256 (S18).
  • the play area editing unit 270 of the image generation device 200 generates an image showing the play area automatically detected by the play area detection unit 266. Specifically, play area editing section 270 generates a play area editing screen based on the play area data stored in play area storage section 256.
  • the play area editing screen includes an AR image in which an object indicating the play area is superimposed on the camera image acquired by the camera image acquisition unit 262.
  • the display control unit 292 of the image generation device 200 causes the play area editing screen to be displayed on the display panel of the head mounted display 100 (S20).
  • the play area editing unit 270 accepts the user's operation to edit the play area input on the play area editing screen (S22). Specifically, the play area editing unit 270 changes the shape of the play area according to the user's operation, that is, expands or contracts the play area according to the user's operation.
  • the play area editing unit 270 stores the data of the play area after the shape change (for example, the coordinate values of the point group forming the boundary) in the play area storage unit 256, thereby editing the play area stored in the play area storage unit 256. Update data.
  • FIG. 8 is a diagram for explaining a method of detecting a play area by the play area detection unit 266.
  • the play area detection section 266 identifies the presence of an object there by detecting a surface substantially perpendicular to the floor surface in the map generated by the map generation section 274.
  • three-dimensional feature points of obstacles for example, obstacles 70a, 70b
  • directions S, S' directions S, S'
  • the play area detection unit 266 sets the boundary 72 of the play area in front of the detected obstacle. Until it is determined in S16 of FIG. 7 that sufficient map data has been obtained, the play area detection unit 266 updates the play area boundary 72 as appropriate in response to new detection of an obstacle. When it is determined that sufficient map data has been obtained, such as by completing one round of viewing, the play area detection unit 266 determines the play area at that time as a provisional play area.
  • FIG. 9 shows an image of the play area displayed in S20 of FIG. 7.
  • the play area image 60 includes a play area portion 62 and a boundary portion 64.
  • the play area section 62 is an image showing a play area (typically a floor surface without obstacles), and may be an image showing a translucent grid-like object, for example.
  • the boundary portion 64 is an image showing the boundary surface of the play area, and is an image representing a surface perpendicularly intersecting the play area at the boundary of the play area.
  • the boundary portion 64 may also be, for example, a translucent grid-like object.
  • FIG. 10 schematically shows how the user edits the play area.
  • the play area editing unit 270 causes the head mounted display 100 to display an AR image in which an object indicating a play area, such as the play area unit 62 shown in FIG. 9, is superimposed on a camera image. That is, the user 400 sees an object 404 in the play area provisionally determined by the play area detection unit 266 on the floor surrounded by real objects (for example, the real object 402).
  • the user 400 uses the controller 140 to draw a virtual new line 406 on the floor surface, thereby arbitrarily modifying the boundary line of the original play area. Therefore, the play area editing unit 270, for example, causes the controller 140 to emit a virtual beam 408, and causes an AR image representing the object of the controller cursor 410 to be displayed on the floor surface where the beam reaches. As the user moves the controller 140 like a laser pointer, the play area editing unit 270 moves the controller cursor 410 and represents the movement trajectory as a line 406. This gives the user the sensation of drawing a line on the floor.
  • FIG. 11 illustrates the movement of the controller cursor and changes in the play area.
  • This figure shows an overhead view of the play area section 62 at each stage of the editing period.
  • the user moves the controller cursor 410 on the floor, and as a line indicating the movement trajectory, moves from inside the play area section 62 to the outside, and returns to the play area.
  • the play area editing section 270 adds the area surrounded by the drawn line to the play area section 62.
  • the user is drawing a new boundary line of the play area by moving the controller cursor 410 on the floor.
  • the play area editing unit 270 In response, the play area editing unit 270 generates new play area data including the added area, and updates the original data stored in the play area storage unit 256. Note that when reducing the play area, the play area editing section 270 accepts an operation to draw a line that divides the original play area section 62. In this case, the play area editing section 270 sets, for example, the side where the user is present among the divided play area sections 62 as a new play area.
  • the play area editing unit 270 performs the play area editing operation as shown in the figure, not only when the play area detection unit 266 automatically detects the play area, but also once the play area has been determined through the editing operation. We also accept changes in timing. This increases the degree of freedom in setting the play area.
  • the play area is infinitely expandable in a vast place with no surrounding obstacles, the following problems may arise. That is, when the image generation device 200 and the head-mounted display 100 are connected with a cable, a long cable is required, which hinders the user's movement. In some cases, there is a danger that the cables may wrap around your body or cause you to trip. Even when the image generation device 200 and the head mounted display 100 are connected wirelessly, the communication state may become unstable depending on the user's position.
  • an upper limit is set on the size of the play area.
  • the upper limit of the play area is, for example, a 5 x 5 m rectangle. If the user sets a play area that exceeds the upper limit through a play area editing operation, the play area editing unit 270 detects this and adjusts the size so that it falls within the upper limit by cutting out the edited play area. This saves you the trouble of starting over from the beginning.
  • FIG. 12 illustrates a method by which the play area editing unit 270 adjusts the size of the play area after editing by the user.
  • the figure shows an overhead view of the play area (or its objects) at each stage of the editing period.
  • (a) is the initial state, and both sides of the circumscribed rectangle 422 of the play area 420 are within the upper limit.
  • (b) shows a state in which the user is performing an editing operation, and a new boundary line 424 is drawn with respect to the original play area 420 by moving the controller cursor.
  • (c) shows a state in which the controller cursor has entered the original play area 420.
  • the play area editing unit 270 recognizes a new play area 426 that includes the area inside the drawn boundary line.
  • the play area editing unit 270 may recognize the timing at which the user starts and ends pressing the trigger button of the controller 140 as the start and end of drawing of the boundary line. That is, the play area editing unit 270 may enable drawing of the boundary line while the trigger button is pressed.
  • the play area editing unit 270 When the user finishes drawing in (c), the play area editing unit 270 virtually generates a circumscribed rectangle 428 for the new play area 426, and determines whether the size of the circumscribed rectangle 428 exceeds the upper limit. When the size of the circumscribed rectangle 428 exceeds the upper limit, that is, when at least one of the lengths of the sides exceeds the upper limit, the play area editing unit 270 sets a cutting line 430 to cut out the exceeding part, Cut out a new play area 426.
  • the cutting line 430 is a line perpendicular to the side (two opposing sides) of the circumscribed rectangle 428 that exceeds the upper limit.
  • the axis x parallel to the side of the circumscribed rectangle 428 that exceeds the upper limit will be referred to as an "adjustment axis.”
  • the adjustment axis is set in only one direction, but if both adjacent sides of the circumscribed rectangle 428 exceed the upper limit, the adjustment axis becomes two axes perpendicular to each other.
  • (d) shows the play area 432 after being cut out with the cutout line 430, and by appropriately setting the cutout line 430, the circumscribed rectangle 434 can be kept within the upper limit.
  • the cutting line 430 is set so that the length of the side in the adjustment axis direction of the circumscribed rectangle 434 is the upper limit xu, the maximum play area can be provided in the direction the user wants to expand.
  • the size of the play area may be confirmed using a circumscribed polygon, circle, ellipse, etc. in addition to a circumscribed rectangle.
  • the perforation line may be in any direction with respect to the adjustment axis, or may be a polygonal line or a curved line. However, according to the settings shown in the figure, the play area can be adjusted instantly with simple calculations.
  • FIG. 13 illustrates an example of an image that the play area editing unit 270 displays on the head-mounted display 100 during the play area editing period.
  • (a) is an example of an image immediately after the user draws the boundary line of a new play area using the controller 140, and shows an object 440 of the play area. The play area object 440 is actually superimposed on the image of the corresponding floor area in the camera image.
  • the play area editing unit 270 recognizes the movement trajectory as a new boundary line of the play area, and once fills the inside with objects of the play area, so that an object 440 as shown in the figure is displayed.
  • the play area editing unit 270 checks the size of the circumscribed rectangle, as shown in FIG. 12(c). If the upper limit is exceeded, the play area editing unit 270 cuts out the play area by setting a cut line perpendicular to the adjustment axis. In the figure, for the sake of explanation, the cutoff line 442 that has been set is shown along with the object 440 in the play area, but it does not actually need to be displayed.
  • the play area editing unit 270 represents the remaining play area after cutting out the outside of the cutting line 442 and its boundary surface as objects of a play area section 444 and a boundary section 446, as shown in (b).
  • the play area portion 444 and the boundary portion 446 are also actually shown superimposed on the camera image. The change in the image as shown allows the user to recognize that the boundary line he or she drew exceeds the upper limit size of the play area.
  • the play area editing unit 270 may more clearly indicate that the play area has been cut out.
  • the play area editing unit 270 may change the color of the portion 448 of the play area portion 444 that overlaps with the cutting line or the border portion 446 thereon from the others.
  • the play area editing unit 270 may display an animation showing how a part of the play area is cut out in the transition process from (a) to (b), or in the image of (b), The cut out portion may be left as an object with higher transparency than the play area section 444.
  • the play area editing unit 270 may cause the user to hear a predetermined warning sound via the display control unit 292 and the head-mounted display 100 at the timing when the play area is cut out. In any case, by these indications, the user can easily recognize that the originally drawn boundary line exceeded the upper limit and the size has been adjusted. Alternatively, the play area editing unit 270 may constantly monitor whether the play area size has exceeded the limit while the user is drawing the boundary line, and may notify the user when the limit exceeds the limit.
  • FIG. 14 is a diagram illustrating a mode in which the play area editing unit 270 monitors for an excess of the play area size while the user is drawing the boundary line of the play area. Assume that the user is using the controller 140 to draw a new boundary line 452 for the original play area 450. At this time, the play area editing unit 270 generates a circumscribed rectangle 454 for the original play area 450 and the boundary line 452 at a predetermined rate. In other words, if the boundary line 452 extends, the circumscribed rectangle 454 can also be updated accordingly.
  • the play area editing unit 270 notifies the user to that effect.
  • the play area editing section 270 may cause the user to hear a predetermined warning sound via the display control section 292 and the head mounted display 100.
  • the play area editing unit 270 may change the color of the boundary line of the portion exceeding the upper limit to be different from that of the other portions, or may vibrate the controller 140. These notifications allow the user to easily take measures such as changing the direction of the border line being drawn.
  • the area added by the user by drawing a boundary line was exclusively targeted for cutting.
  • FIG. 13 it can be shown that a part of the play area has been cut out in the direction in which the user is mainly looking, so that the user can intuitively grasp the cutout.
  • the size of the original play area is close to the upper limit, there may be no room for expansion of the play area in the direction the user wants to add.
  • the target to be cropped by the play area editing unit 270 need not be limited to the area added by the user.
  • FIG. 15 is a diagram for explaining a mode in which the play area editing unit 270 cuts out an area other than the area added by the user from the new play area.
  • 12A shows a state in which the user has drawn a boundary line for the original play area 420, and the play area editing unit 270 has generated a circumscribed rectangle 428 for the new play area 426. Note that the user is assumed to be at position 460 within the play area. In this example, the play area editing unit 270 sets the cutting line 464 so as to cut out the play area on the opposite side of the adjustment axis x to where the user added the area.
  • the play area editing unit 270 may determine the cutting line so that the distance between the user's position 460 and the boundary line of the play area is maintained at a predetermined value or more, as shown in (b). That is, the play area editing unit 270 sets the cutoff line at a position on the adjustment axis x where the distances x1 and x2 from the user's position 460 are equal to or greater than a predetermined value.
  • two cutting lines 466a and 466b are set on both sides of the play area with respect to the adjustment axis x.
  • the lower limits given to the intervals x1 and x2 may be different on the side where the user has added the area and on the opposite side.
  • the user can cut out the remaining part of the area. You can also cut it out on the side where you added it.
  • the order of priority may be reversed. By doing this, it is guaranteed that the user is within the play area regardless of which area is cut out preferentially with respect to the adjustment axis.
  • FIG. 16 is a diagram for explaining the policy for determining the cutting line when the user edits the play area from outside the play area. Similar to FIG. 12, the user draws a boundary line on the original play area 420, and the play area editing unit 270 generates a circumscribing rectangle 428 for the new play area 426. However, in this example, assume that the user is originally at position 470 outside play area 420. In this case, the play area editing unit 270 determines the cut line 472 so as to cut out the play area on the side far from the user's position 470 with respect to the adjustment axis x.
  • the play area editing unit 270 prevents the distance D from the user to the play area from changing due to cutting. By doing this, it is possible to prevent a situation in which the entire play area moves away from the user as the user tries to expand the range of the play area in a direction farther away from the user.
  • FIG. 17 is a diagram for explaining a mode in which the play area editing unit 270 determines a cutting line based on the shape of the play area and the existing real objects.
  • the user draws a boundary line on the original play area 420, and the play area editing unit 270 generates a circumscribed rectangle 428 for the new play area 426. It shows the condition.
  • the play area editing unit 270 determines the cutting lines 480a and 480b so as to give priority to cutting out parts smaller than a predetermined width in the new play area 426.
  • the play area editing unit 270 scans the boundaries of the circumscribed rectangle 428 in the vertical and horizontal directions, and detects locations where the distance between opposing boundaries (for example, distances d1 and d2) is smaller than a threshold value. Then, a cutting line 480b that excludes the part is determined with priority. This eliminates play areas that the user cannot pass through and are essentially meaningless.
  • the threshold value given to the distance between opposing boundary lines is about the width of a person's shoulders, for example, 30 to 40 cm.
  • the play area editing unit 270 determines the cutting lines 484a and 484b so as to give priority to cutting that part.
  • the play area editing unit 270 refers to the map stored in the map storage unit 258 and detects the presence of a real object 482 that is even partially inside the new play area 426. This makes it possible to reliably eliminate areas where there is a risk of collision and establish a safe play area.
  • the part that should be cut out with priority exists in the area added by the user, but if there is a similar part on the opposite side of the adjustment axis x, it is natural that it should be cut out. may be used as Furthermore, if cases (a) and (b) occur simultaneously, both may be targeted for cutting.
  • the cutting line may be determined in at least one of these cases, and if necessary, the cutting line may be further determined according to any of the policies shown in FIGS. 12, 15, and 16. In the illustrated example, it is assumed that the user is within the play area, and cutting lines 480a and 484a are provided on the opposite side of the adjustment axis to leave as much of the play area in the direction the user wants to expand as possible. .
  • FIG. 18 is a flowchart showing a processing procedure in which the play area editing unit 270 updates play area data in response to an editing operation by the user. This process corresponds to S20 and S22 in the flowchart shown in FIG. First, the play area editing unit 270 represents the play area detected by the play area detection unit 266 as an object as shown in FIG. 9, and displays it on the head-mounted display 100 by superimposing it on the camera image (S30).
  • the play area editing unit 270 detects this and draws an object indicating a new boundary line at the corresponding location (S32). For example, when the user changes the instruction direction of the controller 140 while holding down the trigger button, the play area editing unit 270 moves the object of the controller cursor and extends its movement trajectory in accordance with the change. When the trigger button is released after the controller cursor leaves the original play area and returns to the original play area, the play area editing unit 270 recognizes the movement trajectory at that point as a new boundary line.
  • the play area editing unit 270 determines whether the size of the new play area including the area added by the new boundary line exceeds the upper limit (S34). Specifically, the play area editing unit 270 generates a circumscribed rectangle for the new play area, and determines whether the length of its sides exceeds the upper limit. If the length of at least one of the sides exceeds the upper limit (Y in S34), the play area editing unit 270 determines the cut line of the play area.
  • the play area editing unit 270 checks whether there is an area that should be cut out preferentially based on the shape of the play area and the presence of real objects in the play area (S36 ). If such an area exists (Y in S36), the play area editing unit 270 sets a cutting line that excludes the area (S38). For example, the play area editing unit 270 sets a cut line at a position on the adjustment axis that is a predetermined interval away from a region where the width is smaller than a threshold value or a region where a real object exists.
  • the play area editing unit 270 may set a cutting line to exclude the corresponding area before confirming the size of the play area in S34.
  • the play area editing unit 270 sets the cutting line in a predetermined priority order (S40).
  • the priority order includes whether to give priority to cutting from an area newly added by the user as shown in FIG. 12, to give priority to cutting from an area on the opposite side as shown in FIG. If the user is outside the play area, there are options such as whether to give priority to cutting from an area far away from the user.
  • a constraint condition is preferably set such that the distance between the user and the cutting line on the adjustment axis is equal to or greater than a predetermined value, as shown in FIG. 15(b). Note that if the size of the new pre-alias is expected to fall within the upper limit by setting the cutting line that excludes the area to be cut out preferentially in S38, the process of S40 can be omitted.
  • the play area editing unit 270 cuts out the play area along the cutting line set in S38 and S40, and updates the data of the original play area (S42). Even if the size of the new play area does not exceed the upper limit in S34 (N in S34), the data is updated in the new play area (S42). Then, the play area editing unit 270 represents the newly determined play area as an object, and displays it on the head-mounted display 100 by superimposing it on the camera image, etc. (S44).
  • the play area editing unit 270 creates an image that clearly shows the cut point, as shown in FIG. 13(b). It may be displayed. Further, in S32, even when the user is drawing the boundary line, the user may be notified with an image or sound when the size exceeds the upper limit.
  • the image processing device automatically detects a play area in which a user wearing a head-mounted display can move around safely, and also accepts editing operations by the user.
  • the image processing device checks whether the size of the new play area thus generated is within a predetermined upper limit, and if it exceeds the upper limit, automatically sets an appropriate cutting line and cuts it out. This keeps the size of the play area within an appropriate value. As a result, it is possible to prevent a situation in which the user cannot fully grasp the size of the effective play area, fails in editing, and is forced to perform editing work many times.
  • the image processing device also cuts out the play area at a suitable position depending on the direction in which the user wants to add an area, the user's position, and the like. As a result, it is possible to determine a play area where problems caused by editing operations are unlikely to occur while understanding the user's intentions. Therefore, even if the user edits the play area relatively roughly and freely, there is a high possibility that it will ultimately be accepted as a proper play area, and the mental barrier to editing operations can be lowered.
  • the present invention can be used in various information processing devices such as game devices, head-mounted displays, and personal computers, and systems including any of them.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)
  • Stereoscopic And Panoramic Photography (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

画像生成装置のプレイエリア検出部は、ヘッドマウントディスプレイのステレオカメラが撮影する画像に基づきプレイエリア420を検出し、ユーザに確認させる。プレイエリア編集部は、プレイエリアの新たな境界線424を描く編集操作を受け付け、編集後のプレイエリア426を検出する。その外接矩形428のサイズが上限を超えていたら、プレイエリア編集部は、調整軸xに垂直な切り取り線430でプレイエリア426を切り取り、最終的なプレイエリア432を決定する。

Description

情報処理装置および情報処理方法
 本発明は、ヘッドマウントディスプレイに係るデータを処理する情報処理装置および情報処理方法に関する。
 ヘッドマウントディスプレイを装着したユーザが対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えば仮想3次元空間を表示対象とし、ユーザの視線方向に応じた画像がヘッドマウントディスプレイに表示されるようにすることで仮想現実(Virtual Reality:VR)を実現する電子コンテンツが知られている。ヘッドマウントディスプレイを利用することで、映像への没入感を高めたり、ゲーム等のアプリケーションの操作性を向上させたりすることもできる。また、ヘッドマウントディスプレイを装着したユーザが物理的に移動することで、映像として表示された空間内を仮想的に歩き回ることのできるウォークスルーシステムも開発されている。
 ヘッドマウントディスプレイを装着したユーザがアプリケーションのプレイ中に移動可能な範囲は、ユーザの部屋のサイズや、ユーザの部屋に設置された家具や荷物等の環境に応じて制限される必要がある。しかしながらそのようなユーザ個々の事情を考慮したうえ、安全性と娯楽性を両立できるようにプレイエリアを設定するのは難しい。
 本発明はこうした課題に鑑みてなされたものであり、その目的は、ヘッドマウントディスプレイを装着したユーザが移動可能なプレイエリアを、容易かつ適切に設定できる技術を提供することにある。
 上記課題を解決するために、本発明のある態様は情報処理装置に関する。この情報処理装置は、ヘッドマウントディスプレイを装着したユーザの周囲空間においてアプリケーションのプレイ中にユーザが移動可能なプレイエリアのデータを記憶する記憶部と、記憶部に記憶されたプレイエリアを示す画像をヘッドマウントディスプレイに表示させる表示制御部と、プレイエリアを編集するユーザの操作を受け付たうえ、当該プレイエリアのサイズの上限超過を検出し、一部を切り取ることでサイズを調整するプレイエリア編集部と、を備えることを特徴とする。
 本発明の別の態様は情報処理方法に関する。この情報処理方法は、ヘッドマウントディスプレイを装着したユーザの周囲空間においてアプリケーションのプレイ中にユーザが移動可能なプレイエリアのデータをメモリから読み出すステップと、プレイエリアを示す画像をヘッドマウントディスプレイに表示させるステップと、プレイエリアを編集するユーザの操作を受け付たうえ、当該プレイエリアのサイズの上限超過を検出し、一部を切り取ることでサイズを調整するステップと、を含むことを特徴とする。
 なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
 本発明によれば、ヘッドマウントディスプレイを装着したユーザが移動可能なプレイエリアを、容易かつ適切に設定できる。
本実施の形態におけるヘッドマウントディスプレイの外観例を示す図である。 本実施の形態における画像表示システムの構成例を示す図である。 本実施の形態において画像生成装置がヘッドマウントディスプレイに表示させる画像世界の例を説明するための図である。 本実施の形態における画像生成装置の内部回路構成を示す図である。 本実施の形態におけるヘッドマウントディスプレイの内部回路構成を示す図である。 本実施の形態における画像生成装置の機能ブロックを示すブロック図である。 本実施の形態においてプレイエリアを設定する際の画像生成装置の動作を示すフローチャートである。 本実施の形態のプレイエリア検出部によるプレイエリアの検出手法を説明するための図である。 図7のS20で表示されるプレイエリアの画像を示す図である。 本実施の形態においてユーザがプレイエリアを編集する様子を模式的に示す図である。 本実施の形態におけるコントローラカーソルの動きとプレイエリアの変化を例示する図である。 本実施の形態においてプレイエリア編集部が、ユーザによる編集後のプレイエリアのサイズを調整する手法を例示する図である。 本実施の形態のプレイエリアの編集期間において、プレイエリア編集部がヘッドマウントディスプレイに表示させる画像を例示する図である。 本実施の形態においてユーザがプレイエリアの境界線を描いている期間に、プレイエリア編集部がプレイエリアサイズの超過を監視する態様を説明するための図である。 本実施の形態においてプレイエリア編集部が、新たなプレイエリアのうちユーザが追加した領域以外の領域を切り取る態様を説明するための図である。 本実施の形態においてユーザがプレイエリア外からプレイエリアを編集する場合の、切り取り線の決定方針を説明するための図である。 本実施の形態においてプレイエリア編集部が、プレイエリアの形状や存在する実物体によって切り取り線を決定する態様を説明するための図である。 本実施の形態においてプレイエリア編集部が、ユーザによる編集操作に応じてプレイエリアのデータを更新する処理手順を示すフローチャートである。
 本実施の形態は、ユーザの頭部に装着されたヘッドマウントディスプレイにアプリケーションの画像を表示する画像表示システムに関する。図1は、ヘッドマウントディスプレイ100の外観例を示す。本実施の形態のヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。
 出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。本実施の形態のヘッドマウントディスプレイ100の表示パネルは、透過性がないものとする。すなわちヘッドマウントディスプレイ100は、光不透過型のヘッドマウントディスプレイである。
 筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する接眼レンズを備えてよい。ヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。また、ヘッドマウントディスプレイ100は、モーションセンサを内蔵し、ヘッドマウントディスプレイ100を装着したユーザの頭部の並進運動や回転運動、ひいては各時刻の位置や姿勢を検出する。
 また、ヘッドマウントディスプレイ100は、筐体108の前面にステレオカメラ110を備える。ステレオカメラ110は、ユーザの視線に対応する視野で周囲の実空間を動画撮影する。撮影した画像を即時に表示させれば、ユーザが向いた方向の実空間の様子がそのまま見える、いわゆるビデオシースルーを実現できる。さらに撮影画像に映っている実物体の像上に仮想オブジェクトを描画すれば拡張現実(Augmented Reality:AR)を実現できる。
 図2は、本実施の形態の画像表示システムの構成例を示す。画像表示システムは、ヘッドマウントディスプレイ100、画像生成装置200、コントローラ140を備える。ヘッドマウントディスプレイ100は、無線通信により画像生成装置200に接続される。画像生成装置200は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションのデータを画像生成装置200に提供してもよい。
 画像生成装置200は、ヘッドマウントディスプレイ100を装着したユーザの頭部の位置や姿勢に基づき視点の位置や視線の方向を特定し、それに応じた視野となるように表示画像を生成してヘッドマウントディスプレイ100に出力する情報処理装置である。例えば、画像生成装置200は、電子ゲームを進捗させつつゲームの舞台である仮想世界を表示画像として生成してもよいし、仮想世界か実世界かに関わらず観賞や情報提供のために動画像を表示させてもよい。また、ユーザの視点を中心に広い画角のパノラマ画像をヘッドマウントディスプレイ100に表示させることによって、表示世界への深い没入感をユーザに与えることができる。なお、画像生成装置200は、据置型ゲーム機であってもよく、PCであってもよい。
 コントローラ140は、ユーザの手に把持され、画像生成装置200における画像生成や、ヘッドマウントディスプレイ100における画像表示を制御するためのユーザの操作が入力されるコントローラ(例えばゲームコントローラ)である。コントローラ140は、無線通信により画像生成装置200に接続される。変形例として、ヘッドマウントディスプレイ100とコントローラ140の一方、または両方は、信号ケーブル等を介した有線通信により画像生成装置200に接続されてもよい。
 図3は、画像生成装置200がヘッドマウントディスプレイ100に表示させる画像世界の例を説明するための図である。この例では、ユーザ12が仮想空間である部屋にいる状態を作り出している。仮想空間を定義するワールド座標系には、図示するように、壁、床、窓、テーブル、テーブル上の物などのオブジェクトを配置している。画像生成装置200は、当該ワールド座標系に、ユーザ12の視点の位置や視線の方向に応じてビュースクリーン14を定義し、そこにオブジェクトの像を表すことで表示画像を描画する。
 画像生成装置200は、ユーザ12の視点の位置や視線の方向(以後、これらを包括的に「視点」と呼ぶ場合がある)を所定のレートでヘッドマウントディスプレイ100から取得し、これに応じてビュースクリーン14の位置や方向を変化させる。これにより、ユーザの視点に対応する視野で画像をヘッドマウントディスプレイ100に表示させることができる。また、画像生成装置200は、視差を有するステレオ画像を生成し、ヘッドマウントディスプレイ100の表示パネルの左右の領域にステレオ画像を表示させれば、仮想空間をユーザ12に立体視させることもできる。これにより、ユーザ12は、あたかも表示世界の部屋の中にいるような仮想現実を体験することができる。
 図4は、画像生成装置200の内部回路構成を示す。画像生成装置200は、CPU(Central Processing Unit)222、GPU(Graphics Processing Unit)224、メインメモリ226を含む。これらの各部は、バス230を介して相互に接続される。バス230にはさらに入出力インターフェース228が接続される。入出力インターフェース228には、通信部232、記憶部234、出力部236、入力部238、記録媒体駆動部240が接続される。
 通信部232は、USBやIEEE1394などの周辺機器インターフェースや、有線LANまたは無線LAN等のネットワークインターフェースを含む。記憶部234は、ハードディスクドライブや不揮発性メモリ等を含む。出力部236は、ヘッドマウントディスプレイ100へのデータを出力する。入力部238は、ヘッドマウントディスプレイ100からのデータ入力を受け付け、また、コントローラ140からのデータ入力を受け付ける。記録媒体駆動部240は、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する。
 CPU222は、記憶部234に記憶されているオペレーティングシステムを実行することにより画像生成装置200の全体を制御する。また、CPU222は、記憶部234またはリムーバブル記録媒体から読み出されてメインメモリ226にロードされた、あるいは通信部232を介してダウンロードされた各種プログラム(例えばVRゲームアプリケーション等)を実行する。GPU224は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU222からの描画命令にしたがって描画処理を行い、描画結果を出力部236に出力する。メインメモリ226は、RAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
 図5は、ヘッドマウントディスプレイ100の内部回路構成を示す。ヘッドマウントディスプレイ100は、CPU120、メインメモリ122、表示部124、音声出力部126を含む。これらの各部はバス128を介して相互に接続されている。バス128にはさらに入出力インターフェース130が接続されている。入出力インターフェース130には、無線通信のインターフェースを含む通信部132、モーションセンサ134、およびステレオカメラ110が接続される。
 CPU120は、バス128を介してヘッドマウントディスプレイ100の各部から取得した情報を処理するとともに、画像生成装置200から取得した表示画像や音声のデータを表示部124や音声出力部126に供給する。メインメモリ122は、CPU120における処理に必要なプログラムやデータを格納する。
 表示部124は、液晶パネルや有機ELパネルなどの表示パネルを含み、ヘッドマウントディスプレイ100を装着したユーザの眼前に画像を表示する。表示部124は、左右の目に対応する領域に一対のステレオ画像を表示することにより立体視を実現してもよい。表示部124はさらに、ヘッドマウントディスプレイ100装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する一対のレンズを含んでもよい。
 音声出力部126は、ヘッドマウントディスプレイ100の装着時にユーザの耳に対応する位置に設けたスピーカーやイヤホンで構成され、ユーザに音声を聞かせる。通信部132は、画像生成装置200との間でデータを送受するためのインターフェースであり、Bluetooth(登録商標)などの既知の無線通信技術により通信を実現する。モーションセンサ134はジャイロセンサおよび加速度センサを含み、ヘッドマウントディスプレイ100の角速度や加速度を取得する。
 ステレオカメラ110は、図1で示したとおり、ユーザの視点に対応する視野で周囲の実空間を左右の視点から撮影するビデオカメラの対である。ステレオカメラ110により撮像された画像であり、ユーザの周囲空間を映した画像を以下「カメラ画像」とも呼ぶ。カメラ画像は、ユーザの視線方向(典型的にはユーザの正面)に存在する物体が映る画像とも言える。モーションセンサ134による計測値や、ステレオカメラ110による撮影画像(カメラ画像)のデータは、必要に応じて、通信部132を介して画像生成装置200へ送信される。
 本実施の形態の画像表示システムでは、ヘッドマウントディスプレイ100を装着したユーザがアプリケーションのプレイ中に移動可能な実世界の範囲を規定したプレイエリアが設定される。プレイエリアは、ユーザの周囲空間(ユーザの周囲に広がる実世界の空間)のうち、ユーザが仮想現実の画像(以下「VR画像」とも呼ぶ。)を視聴中に動き回ることが許可されたエリアまたは範囲と言える。アプリケーションのプレイ中にユーザがプレイエリアを逸脱しようとする場合や逸脱した場合、画像表示システムは、注意を促す内容、または、プレイエリアへの復帰を促す内容の警告をユーザに提供する。
 上記のアプリケーションは、VR画像をヘッドマウントディスプレイ100に表示させるゲームアプリケーションであることとし、以下「VRゲーム」とも呼ぶ。例えば、VRゲームは、仮想世界のテニスコートを示すVR画像を表示させ、実世界でのユーザの移動(歩行等)に伴って、仮想世界のテニスコートにおけるキャラクタの位置を変化させるテニスゲームであってもよい。
 本実施の形態において画像生成装置200は、プレイエリアを自動検出する。この際、画像生成装置200は、ヘッドマウントディスプレイ100のステレオカメラ110が撮影した実空間における周囲の物の位置や形状を特定することで、ユーザがそれらの物に衝突することなく移動できる範囲を決定する。画像生成装置200はさらに、自動検出されたプレイエリアを編集するユーザの操作を受け付け、その操作に応じてプレイエリアの形状を変更する。これにより、ユーザが任意形状のプレイエリアを効率的に設定できる。
 図6は、画像生成装置の機能ブロックを示すブロック図である。上述したように、画像生成装置200は、VRゲームの進行やサーバとの通信等、一般的な情報処理を実行するが、図6では特に、プレイエリアの設定に関する機能ブロックを詳細に示している。なお、図6に示す画像生成装置200の機能のうち少なくとも一部は、ネットワークを介して画像生成装置200に接続されたサーバに実装されてもよいし、ヘッドマウントディスプレイ100に実装されてもよい。
 また、図6に示す複数の機能ブロックは、ハードウェア的には、図4に示したCPU222、GPU224、メインメモリ226、記憶部234等の構成で実現でき、ソフトウェア的には、複数の機能ブロックの機能を実装したコンピュータプログラムにより実現できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
 画像生成装置200は、データ処理部250とデータ記憶部252を備える。データ処理部250は、各種のデータ処理を実行する。データ処理部250は、図4に示した通信部232、出力部236、入力部238を介して、ヘッドマウントディスプレイ100およびコントローラ140とデータを送受信する。データ記憶部252は、データ処理部250により参照または更新されるデータを記憶する。
 データ記憶部252は、App記憶部254、プレイエリア記憶部256、マップ記憶部258を備える。App記憶部254は、VR画像を生成するアプリケーション(実施形態ではVRゲーム)のデータを記憶する。プレイエリア記憶部256は、プレイエリアに関するデータを記憶する。プレイエリアに関するデータは、プレイエリアの境界を構成する点群の位置を示すデータ(例えばワールド座標系における各点の座標値)を含む。
 マップ記憶部258は、ヘッドマウントディスプレイ100の位置(すなわちヘッドマウントディスプレイ100を装着したユーザの位置)を推定するためのマップデータを記憶する。本実施の形態のマップデータは、ユーザがVRゲームをプレイする部屋が映る画像(当該画像に映る特徴点)であり、位置関係(位置および方向)が判明している画像(当該画像に映る特徴点)の集合を含む。具体的には、マップデータは、ヘッドマウントディスプレイ100の位置、視線方向、およびキーフレームを対応付けた組を複数組含む。なお、マップデータは、いわゆる自己位置推定に必要な他の項目を含んでもよい。
 或る組のキーフレームは、同じ組の位置および視線方向で見える像の特徴を示すデータである。キーフレームは、ヘッドマウントディスプレイ100のステレオカメラ110により撮像されたカメラ画像をもとに生成された画像であり、かつ、所定個数以上の特徴点を含む画像である。キーフレームに含まれるべき特徴点の個数は24個以上であってもよい。特徴点は、公知のコーナー検出法により検出されたコーナーを含んでもよく、また、輝度の勾配に基づいて検出されてもよい。キーフレームは、カメラ画像から切り出された部分画像の集合とも言える。
 データ処理部250は、システム部260、App実行部290、表示制御部292を備える。これら複数の機能ブロックの機能は、コンピュータプログラムに実装されてもよい。画像生成装置200のCPU222とGPU224は、上記コンピュータプログラムを記憶部234や記録媒体からメインメモリ226に読み出して実行することにより上記複数の機能ブロックの機能を発揮してもよい。
 App実行部290は、ユーザにより選択されたアプリケーション(実施形態ではVRゲーム)のデータをApp記憶部254から読み出し、ユーザにより選択されたアプリケーションを実行する。表示制御部292は、システム部260およびApp実行部290により生成された様々な画像(例えばVR画像やAR画像)のデータをヘッドマウントディスプレイ100へ送信し、それらの画像をヘッドマウントディスプレイ100の表示部124(表示パネル)に表示させる。なお表示制御部292は、音声のデータをヘッドマウントディスプレイ100に送信し、ヘッドマウントディスプレイ100の音声出力部126から出力させてもよい。
 システム部260は、ヘッドマウントディスプレイ100に関するシステムの処理を実行する。システム部260は、ヘッドマウントディスプレイ100用の複数のアプリケーション(例えばVRゲーム)に対して共通のサービスを提供する。システム部260は、カメラ画像取得部262、プレイエリア設定部264、マップ生成部274、通知部278、位置推定部280、警告処理部282を含む。
 カメラ画像取得部262は、ヘッドマウントディスプレイ100から送信された、ヘッドマウントディスプレイ100のステレオカメラ110により撮像されたカメラ画像を取得する。プレイエリア設定部264は、プレイエリアの設定に係る各種処理を実行する。具体的にはプレイエリア設定部264は、カメラ画像取得部262により取得されたカメラ画像と、コントローラ140を介して入力されたユーザの操作とに基づいて、プレイエリアを設定する。プレイエリア設定部264は、プレイエリア検出部266、床面設定部268、プレイエリア編集部270を含む。
 プレイエリア検出部266は、カメラ画像取得部262により取得されたカメラ画像に基づいて、ヘッドマウントディスプレイ100を装着したユーザの周囲空間からプレイエリアを自動検出する。床面設定部268は、プレイエリア検出部266によりプレイエリアとして検出された床面の高さを編集するユーザの操作を受け付け、その操作に応じて床面の高さを変更する。
 プレイエリア編集部270は、プレイエリア検出部266により自動検出されたプレイエリアを編集するユーザの操作を受け付け、その操作に応じてプレイエリアの形状を変更する。例えば、プレイエリア編集部270は、プレイエリア検出部266により自動検出されたプレイエリアを、ユーザの操作に応じて縮小したり拡張したりする。
 マップ生成部274は、プレイエリア検出部266がプレイエリアを検出することと並行して、カメラ画像取得部262により取得されたカメラ画像に基づいて、ユーザの位置を推定するためのマップを生成する。マップ生成部274は、生成したマップデータをマップ記憶部258に格納する。マップ生成部274は、ユーザの周囲空間を複数の方向から映した複数枚のカメラ画像であって、予め定められた枚数以上のカメラ画像が入力された場合、マップの生成を終了する。
 通知部278は、App実行部290によるVRゲームの実行に必要な情報をApp実行部290へ通知する。位置推定部280は、マップ記憶部258に記憶されたマップデータと、カメラ画像取得部262により取得されたカメラ画像とに基づいて、実世界におけるユーザの位置を推定し、言い換えれば、プレイエリアにおけるユーザの位置を推定する。
 例えば、位置推定部280は、マップデータに含まれる複数のキーフレームとカメラ画像とを照合し、その照合結果と、各キーフレームに対応付けられたヘッドマウントディスプレイ100の位置および視線方向とに基づいて、ユーザの位置を推定してもよい。また、位置推定部280は、SLAM(Simultaneous Localization and Mapping)等、公知の自己位置推定技術を用いてユーザの位置を推定してもよい。警告処理部282は、プレイエリアの境界と、ユーザの位置との関係に応じて、ユーザに対する警告処理を実行する。
 次に、以上の構成によって実現される画像表示システムの動作を説明する。図7は、プレイエリアを設定する際の画像生成装置200の動作を示すフローチャートである。ユーザは、ヘッドマウントディスプレイ100のシステムの設定メニューの中で、プレイエリアの初期設定または再設定を選択可能である。プレイエリアの初期設定または再設定が選択された場合、画像生成装置200のプレイエリア設定部264は、表示制御部292を介して、周囲を見回すよう促す内容のメッセージをヘッドマウントディスプレイ100に表示させる。
 これに応じてユーザが、ヘッドマウントディスプレイ100を頭部に装着して周囲を見回しつつ移動すると、ヘッドマウントディスプレイ100は、複数のカメラ画像のデータを画像生成装置200へ逐次送信する。複数のカメラ画像のデータのそれぞれは、各カメラ画像生成時のセンサデータを含む。センサデータは、モーションセンサ134による計測値を含み、例えば、ヘッドマウントディスプレイ100の角速度や加速度を含む。画像生成装置200のカメラ画像取得部262は、ヘッドマウントディスプレイ100から送信されたカメラ画像のデータを取得する(S10)。
 画像生成装置200のプレイエリア検出部266は、S10で取得されたカメラ画像に基づいて、ユーザの周囲空間におけるプレイエリアを自動検出する(S12)。具体的には、プレイエリア検出部266は、カメラ画像と、そのカメラ画像に対応するセンサデータとに基づいて、公知の手法によりユーザの部屋の3次元形状を推定してもよい。プレイエリア検出部266は、推定した部屋の3次元形状をもとに、センサデータが示す重力方向に対して垂直な平面(典型的には床面)を検出し、検出した同じ高さの複数の平面を合成した結果をプレイエリアとして検出してもよい。プレイエリア検出部266は、プレイエリアの境界を構成する点群の座標値を含むプレイエリアデータをプレイエリア記憶部256に格納する。
 プレイエリア検出部266は、プレイエリア検出時、プレイエリアとしての床面の高さを検出する。床面の高さは、例えば、重力方向における床面とヘッドマウントディスプレイ100との距離であってもよい。プレイエリア検出部266は、床面の高さを示すデータをプレイエリア記憶部256に格納する。ヘッドマウントディスプレイ100の位置が原点の場合、床面の高さはマイナス1メートル等であってもよい。
 画像生成装置200のマップ生成部274は、S12の処理と並行して、S10で取得されたカメラ画像に基づいて、ユーザの位置を推定するためのマップを生成する(S14)。ユーザの位置を推定するのに十分なマップデータが得られたことを示す所定条件が満たされるまで、プレイエリア検出部266およびマップ生成部274は、新たなカメラ画像を用いてS12、S14の処理を繰り返す(S16のN)。十分なマップデータが得られたら、プレイエリア検出部266は、プレイエリアの検出処理を終了し、マップ生成部274は、マップの生成処理を終了する(S16のY)。
 次に、画像生成装置200の床面設定部268は、プレイエリア記憶部256に記憶された床面の高さを示すデータに基づいて、床面調整画面を生成する。床面調整画面は、カメラ画像取得部262により取得されたカメラ画像に床面を示すオブジェクト(例えば半透明の格子状のオブジェクト)を重畳したAR画像を含んでもよい。床面設定部268は、表示制御部292を介して、ヘッドマウントディスプレイ100の表示パネルに床面調整画面を表示させる。床面設定部268は、床面調整画面に入力された床面の高さを調整するユーザの操作を受け付け、ユーザの操作にしたがって床面の高さを変更する。床面設定部268は、変更後の床面の高さを示すデータをプレイエリア記憶部256に格納する(S18)。
 続いて画像生成装置200のプレイエリア編集部270は、プレイエリア検出部266により自動検出されたプレイエリアを示す画像を生成する。具体的には、プレイエリア編集部270は、プレイエリア記憶部256に格納されたプレイエリアデータに基づいて、プレイエリア編集画面を生成する。プレイエリア編集画面は、カメラ画像取得部262により取得されたカメラ画像の上にプレイエリアを示すオブジェクトを重畳したAR画像を含む。画像生成装置200の表示制御部292は、プレイエリア編集画面をヘッドマウントディスプレイ100の表示パネルに表示させる(S20)。
 プレイエリア編集部270は、プレイエリア編集画面に入力されたプレイエリアを編集するユーザの操作を受け付ける(S22)。具体的にはプレイエリア編集部270は、ユーザの操作に応じてプレイエリアの形状を変更し、すなわち、ユーザの操作に応じてプレイエリアを拡張または縮小する。プレイエリア編集部270は、形状変更後のプレイエリアのデータ(例えば境界を構成する点群の座標値)をプレイエリア記憶部256に格納することにより、プレイエリア記憶部256に記憶されたプレイエリアデータを更新する。
 図8は、プレイエリア検出部266によるプレイエリアの検出手法を説明するための図である。プレイエリア検出部266は基本的に、マップ生成部274が生成しているマップにおいて、床面に対し略垂直方向の面を検出することで、そこに物があることを特定する。図の例では、ヘッドマウントディスプレイ100を装着したユーザが周囲を見回すにつれ、その視線方向(例えば方向S、S’)で撮影された障害物(例えば障害物70a、70b)の特徴点の3次元位置座標が徐々に特定される。
 その結果、障害物の存在が判明した実空間の領域が広がっていき、それとともにプレイエリア検出部266は、検出された障害物の手前などにプレイエリアの境界72を設定していく。図7のS16において十分なマップデータが得られたことを判定するまでは、プレイエリア検出部266は、障害物の新規検出に応じてプレイエリアの境界72を適宜更新する。一周分の見回しが完了するなどして、十分なマップデータが得られたことを判定したら、プレイエリア検出部266はその時点でのプレイエリアを、暫定的なプレイエリアとして決定する。
 図9は、図7のS20で表示されるプレイエリアの画像を示す。プレイエリア画像60は、プレイエリア部62と境界部64を含む。プレイエリア部62は、プレイエリア(典型的には障害物のない床面)を示す画像であり、例えば半透明の格子状のオブジェクトを示す画像であってもよい。境界部64は、プレイエリアの境界面を示す画像であり、プレイエリアの境界においてプレイエリアに垂直に交わる面を表す画像である。境界部64も、例えば半透明の格子状のオブジェクトであってもよい。
 図10は、ユーザがプレイエリアを編集する様子を模式的に示している。プレイエリア編集部270は、図9で示したプレイエリア部62など、プレイエリアを示すオブジェクトをカメラ画像に重畳させたAR画像を、ヘッドマウントディスプレイ100に表示させる。すなわちユーザ400には、実物体(例えば実物体402)に囲まれた床面上に、プレイエリア検出部266が暫定的に決定したプレイエリアのオブジェクト404が見えている。
 ユーザ400はコントローラ140を用い、床面上に仮想的な新たな線406を描くことで、元のプレイエリアの境界線を任意に修正する。そのためプレイエリア編集部270は例えば、コントローラ140から仮想的なビーム408を出射させ、その到達先の床面に、コントローラカーソル410のオブジェクトを表したAR画像を表示させる。ユーザがレーザーポインタのようにコントローラ140を動かすのに合わせて、プレイエリア編集部270はコントローラカーソル410を移動させ、移動軌跡を線406として表す。これによりユーザには、床に線を描いている感覚が得られる。
 図11は、コントローラカーソルの動きとプレイエリアの変化を例示している。同図は編集期間の各段階におけるプレイエリア部62の俯瞰図を示している。(a)~(c)に示すように、ユーザは、床面上でコントローラカーソル410を移動させ、その移動軌跡を示す線として、例えばプレイエリア部62の内から外に出て、再びプレイエリア部62の内に入る線を描く。この場合、(d)に示すように、プレイエリア編集部270は、描かれた線により囲まれた領域をプレイエリア部62に追加する。この場合、ユーザは、コントローラカーソル410を床面上で移動させることにより、プレイエリアの新たな境界線を描いていることになる。
 これに応じてプレイエリア編集部270は、追加された領域を含む新たなプレイエリアのデータを生成し、プレイエリア記憶部256に記憶された元のデータを更新する。なおプレイエリアを縮小する場合、プレイエリア編集部270は、元のプレイエリア部62を分断するような線を描く操作を受け付ける。この場合、プレイエリア編集部270は、例えば分断されたプレイエリア部62のうち、ユーザが存在する側を新たなプレイエリアとする。
 プレイエリア編集部270は、図示するようなプレイエリアの編集操作を、プレイエリア検出部266がプレイエリアを自動検出した際のみならず、編集操作を経て一旦、確定させたプレイエリアを、後のタイミングで変更する際にも受け付ける。これにより、プレイエリアの設定の自由度を高められる。
 一方、周囲に障害物がない広大な場所において、プレイエリアを無限に拡張可能とすると、次のような問題が生じ得る。すなわち、画像生成装置200とヘッドマウントディスプレイ100をケーブルで接続した場合、長いケーブルが必要になりユーザの動きの妨げになる。場合によっては、ケーブルが身体に巻き付いたり躓きの原因になったりする危険がある。画像生成装置200とヘッドマウントディスプレイ100を無線接続した場合も、ユーザの位置によって通信状態が安定しなくなることが考えられる。
 またユーザの動きを追跡する計算量が膨大になったり追跡精度が悪くなったりし、表示の遅延やコンテンツ処理精度の劣化などが起こりやすくなる。そこで本実施の形態では、プレイエリアのサイズに上限を設ける。プレイエリアの上限は例えば5×5mの矩形とする。ユーザがプレイエリアの編集操作により上限を超えるプレイエリアを設定した場合、プレイエリア編集部270はそれを検出し、編集後のプレイエリアを切り取ることで上限に収まるようにサイズを調整する。これにより、編集操作を最初からやり直す手間が省けるようにする。
 図12は、プレイエリア編集部270が、ユーザによる編集後のプレイエリアのサイズを調整する手法を例示している。同図は編集期間の各段階におけるプレイエリア(あるいはそのオブジェクト)の俯瞰図を示している。このうち(a)は初期状態であり、プレイエリア420の外接矩形422は、両辺とも上限内にある。(b)は、ユーザが編集操作中の状態であり、元のプレイエリア420に対し、コントローラカーソルの移動により新たな境界線424が描かれている。
 (c)は、コントローラカーソルが、元のプレイエリア420の内に入った状態を示している。これによりプレイエリア編集部270は、描かれた境界線の内側の領域を含む新たなプレイエリア426を認識する。なおプレイエリア編集部270は、ユーザがコントローラ140のトリガーボタンの押下を開始および終了させたタイミングを、境界線の描画開始および描画終了として認識してもよい。すなわちプレイエリア編集部270は、トリガーボタンが押下されている状態において境界線の描画を有効としてもよい。
 (c)においてユーザが描画を終えると、プレイエリア編集部270は、新たなプレイエリア426に対し外接矩形428を仮想的に生成し、そのサイズが上限を超えているか否かを判定する。外接矩形428のサイズが上限を超えているとき、すなわち辺の長さの少なくとも一方が上限を超えているとき、プレイエリア編集部270は、超えている部分を切り取る切り取り線430を設定して、新たなプレイエリア426を切り取る。
 ここで切り取り線430は、外接矩形428のうち上限を超えている辺(対向する2辺)に垂直な線である。なお以後の説明では、外接矩形428のうち上限を超えている辺に平行な軸xを「調整軸」と呼ぶ。図では調整軸を1方向のみとしているが、外接矩形428のうち隣り合う辺がどちらも上限を超えている場合、調整軸は互いに垂直な2軸となる。(d)は、切り取り線430で切り取られた後のプレイエリア432を示しており、切り取り線430を適切に設定することにより、外接矩形434を上限に収められる。
 外接矩形434のうち調整軸方向の辺の長さが上限xuとなるように切り取り線430を設定すれば、ユーザが拡張させたい方向に最大限のプレイエリアを設けることができる。なおプレイエリアのサイズは、外接矩形のほか、外接する多角形や円、楕円などを用いて確認してもよい。また切り取り線は調整軸に対し任意の方向としてもよく、切り取り線を折れ線や曲線としてもよい。ただし図示するような設定によれば、容易な計算で即座にプレイエリアを調整できる。
 図13は、プレイエリアの編集期間において、プレイエリア編集部270がヘッドマウントディスプレイ100に表示させる画像を例示している。(a)は、ユーザがコントローラ140により新たなプレイエリアの境界線を描いた直後の画像の例であり、プレイエリアのオブジェクト440が表されている。プレイエリアのオブジェクト440は実際には、カメラ画像における、対応する床面領域の像に重畳される。
 例えばユーザは、ヘッドマウントディスプレイ100に表示されたカメラ画像とコントローラカーソルを見ながら、コントローラ140を用いて手前左側から奥側へ移動させたコントローラカーソルを、手前右側に移動させる。プレイエリア編集部270はその移動軌跡をプレイエリアの新たな境界線と認識し、一旦、その内側をプレイエリアのオブジェクトで埋めることにより、図示するようなオブジェクト440が表される。
 ユーザがコントローラ140のトリガーボタンを離すなど、描画を終了させたことを認識したら、プレイエリア編集部270は図12の(c)に示すように、外接矩形のサイズを確認する。上限を超えていたら、プレイエリア編集部270は、調整軸に垂直な切り取り線を設定してプレイエリアを切り取る。図では説明のため、設定された切り取り線442を、プレイエリアのオブジェクト440に合わせて示しているが、実際には表示しなくてよい。
 そしてプレイエリア編集部270は、(b)に示すように、切り取り線442の外側を切り取った残りのプレイエリアとその境界面を、プレイエリア部444、境界部446のオブジェクトとして表す。プレイエリア部444、境界部446も実際には、カメラ画像に重畳して表す。図示するような画像の変化により、ユーザは自分が描いた境界線がプレイエリアの上限サイズを超えていたことを認識できる。
 一方、プレイエリア編集部270は、プレイエリアを切り取ったことを、より明確に示してもよい。例えばプレイエリア編集部270は、プレイエリア部444のうち切り取り線と重なる部分448、あるいはその上の境界部446の色を他と異ならせてもよい。あるいはプレイエリア編集部270は、(a)から(b)への遷移過程において、プレイエリアの一部が切り取られていく様子を表すアニメーションを表示させてもよいし、(b)の画像において、切り取られた部分を、プレイエリア部444より透明度の高いオブジェクトとして残しておいてもよい。
 またプレイエリア編集部270はプレイエリアを切り取ったタイミングで、表示制御部292およびヘッドマウントディスプレイ100を介して、ユーザに所定の警告音を聴かせてもよい。いずれにしろこれらの明示により、ユーザは、当初描いた境界線が上限を超えていたため、サイズが調整されたことを容易に認識できる。あるいはプレイエリア編集部270は、ユーザが境界線を描いている段階で、プレイエリアサイズの超過を常時監視し、超過したタイミングでユーザに通知してもよい。
 図14は、ユーザがプレイエリアの境界線を描いている期間に、プレイエリア編集部270がプレイエリアサイズの超過を監視する態様を説明するための図である。ユーザはコントローラ140を用いて、元のプレイエリア450に対し新たな境界線452を描いているとする。このときプレイエリア編集部270は、元のプレイエリア450と境界線452に対し外接矩形454を所定のレートで生成する。つまり境界線452が延びれば、それに合わせて外接矩形454も更新され得る。
 そしてプレイエリア編集部270は、外接矩形454のサイズが上限を超えたとき、すなわち辺の長さの少なくとも一方が上限を超えたとき、ユーザにその旨を通知する。例えばプレイエリア編集部270は、表示制御部292およびヘッドマウントディスプレイ100を介して、ユーザに所定の警告音を聴かせてもよい。あるいはプレイエリア編集部270は、上限を超えている部分の境界線の色を他と異ならせてもよいし、コントローラ140を振動させてもよい。これらの通知によりユーザは、描画中の境界線の方向を変化させるなどの対応を容易にとることができる。
 図12の例では専ら、ユーザが境界線の描画により追加した領域を切り取り対象としていた。このようにすると図13で示したように、ユーザが主に見ている方向において、一部のプレイエリアが切り取られたことを表せるため、ユーザは直感的な把握が可能になる。一方、元のプレイエリアのサイズが上限に近い場合などは、ユーザが追加したい方向にプレイエリアの拡張の余地がないことが考えられる。この場合、ユーザが追加した領域のみを切り取り対象とすると、追加した領域が全て切り取られ、結局はプレイエリアが変化しない状況に陥ることもあり得る。そのような場合も考慮し、プレイエリア編集部270が切り取る対象は、ユーザが追加した領域に限定しなくてよい。
 図15は、プレイエリア編集部270が、新たなプレイエリアのうちユーザが追加した領域以外の領域を切り取る態様を説明するための図である。(a)は図12と同様、元のプレイエリア420に対しユーザが境界線を描き、プレイエリア編集部270が新たなプレイエリア426に対し外接矩形428を生成した状態を示している。なおユーザは、プレイエリア内の位置460にいるとする。この例ではプレイエリア編集部270は、調整軸xに対し、ユーザが領域を追加したのと逆側のプレイエリアを切り取るように切り取り線464を設定している。
 このようにすると、プレイエリアのサイズが上限に近くても、ユーザが追加したい方向にプレイエリアが移動することになり、ユーザの意図を反映させやすくなる。一方でこの場合は、切り取られる領域がユーザの視野から外れている可能性が高くなる。その結果、ユーザは、いつの間にかプレイエリアの端にいたり、プレイエリアからはみ出していたりする状況が発生し得る。
 そこでプレイエリア編集部270は、(b)に示すように、ユーザの位置460とプレイエリアの境界線との間隔が所定値以上を保つように切り取り線を決定してもよい。すなわちプレイエリア編集部270は、調整軸xにおいて、ユーザの位置460との間隔x1、x2が所定値以上となる位置に切り取り線を設定する。図の例では、調整軸xに対しプレイエリアの両側に、2つの切り取り線466a、466bを設定している。
 なお間隔x1、x2に与える下限は、ユーザが領域を追加した側と逆側で異なっていてもよい。また(a)に示すように、ユーザが領域を追加していない側を優先して切り取り、その切り取り線とユーザとの間隔x1が下限を下回る場合に、切り取るべき残りの分を、ユーザが領域を追加した側で切り取ってもよい。あるいはその優先順位を逆にしてもよい。このようにすることで、調整軸に対しどちらの領域を優先して切り取るかに関わらず、ユーザはプレイエリアの中にいることが保証される。
 図16は、ユーザがプレイエリア外からプレイエリアを編集する場合の、切り取り線の決定方針を説明するための図である。図12と同様、元のプレイエリア420に対し、ユーザが境界線を描き、プレイエリア編集部270が新たなプレイエリア426に対し外接矩形428を生成する。ただしこの例では、ユーザは元々、プレイエリア420の外の位置470にいるとする。この場合、プレイエリア編集部270は、調整軸xに対し、ユーザの位置470から遠い側のプレイエリアを切り取るように切り取り線472を決定する。
 すなわちプレイエリア編集部270は、切り取りによって、ユーザからプレイエリアまでの距離Dが変化しないようにする。このようにすることで、ユーザが、自分から遠い方向にプレイエリアの範囲を拡張しようとするほど、プレイエリア全体が自分から遠ざかっていくような状況が発生しないようにできる。
 図17は、プレイエリア編集部270が、プレイエリアの形状や存在する実物体によって切り取り線を決定する態様を説明するための図である。(a)、(b)はいずれも、図12と同様、元のプレイエリア420に対し、ユーザが境界線を描き、プレイエリア編集部270が新たなプレイエリア426に対し外接矩形428を生成した状態を示している。(a)においてプレイエリア編集部270は、新たなプレイエリア426において所定幅より小さい部分を優先して切り取るように切り取り線480a、480bを決定している。
 プレイエリア編集部270は例えば、外接矩形428の縦方向、横方向に境界線を走査し、対向する境界線の距離(例えば距離d1、d2)がしきい値より小さい箇所を検出する。そして当該箇所を除外するような切り取り線480bを優先して決定する。これにより、ユーザが通ることができず実質的に意味をなさないプレイエリアを除外する。この目的において対向する境界線の距離に与えるしきい値は、人の肩幅程度であり、例えば30~40cmなどとする。
 (b)においてはプレイエリア編集部270は、新たなプレイエリア426内に実物体482がある場合、その部分を優先して切り取るように切り取り線484a、484bを決定している。この場合、プレイエリア編集部270は、マップ記憶部258に格納されたマップを参照し、新たなプレイエリア426の内側に一部でも入っている実物体482の存在を検出する。これにより、衝突の危険性がある領域を確実に排除し、安全なプレイエリアを設定できる。
 なお(a)、(b)はいずれも、優先して切り出すべき部分が、ユーザが追加した領域に存在するが、調整軸xの逆側に同様の箇所がある場合は当然、それを切り取り対象としてよい。また(a)、(b)のケースが同時に発生する場合は、双方を切り取り対象としてよい。それらのケースの少なくともいずれかで切り取り線を決定し、必要に応じて、さらに図12、15、16に示した方針のいずれかで切り取り線を決定してもよい。図の例では、ユーザがプレイエリア内にいることを想定し、調整軸に対し逆側にも切り取り線480a、484aを設けることにより、ユーザが拡張したい方向のプレイエリアをできるだけ残すようにしている。
 図18は、プレイエリア編集部270が、ユーザによる編集操作に応じてプレイエリアのデータを更新する処理手順を示すフローチャートである。この処理は、図7で示したフローチャートのS20、S22に対応する。まずプレイエリア編集部270は、プレイエリア検出部266が検出したプレイエリアを、図9で示したようなオブジェクトとして表し、カメラ画像に重畳させるなどしてヘッドマウントディスプレイ100に表示させる(S30)。
 ユーザがコントローラ140を用い、床に線を描く動作をしたら、プレイエリア編集部270はそれを検知し、新規の境界線を示すオブジェクトを該当箇所に描画する(S32)。例えばユーザが、トリガーボタンを押下した状態でコントローラ140の指示方向を変化させると、プレイエリア編集部270はその変化に応じてコントローラカーソルのオブジェクトを移動させるとともに、その移動軌跡を延伸させていく。コントローラカーソルが元のプレイエリアから出て再び元のプレイエリアに戻ったあと、トリガーボタンが離されたら、プレイエリア編集部270は、その時点での移動軌跡を新たな境界線として認識する
 そしてプレイエリア編集部270は、新たな境界線により追加された領域を含む新たなプレイエリアのサイズが上限を超えるか否かを判定する(S34)。具体的にはプレイエリア編集部270は、新たなプレイエリアに対し外接矩形を生成し、その辺の長さが上限を超えるか否かを判定する。少なくともどちらかの辺の長さが上限を超える場合(S34のY)、プレイエリア編集部270は、プレイエリアの切り取り線を決定する。
 具体的にはプレイエリア編集部270は、図17で示したように、プレイエリアの形状やプレイエリア内の実物体の存在により、優先的に切り取るべき領域があるか否かを確認する(S36)。そのような領域が存在する場合(S36のY)、プレイエリア編集部270は、当該領域を除外するような切り取り線を設定する(S38)。例えばプレイエリア編集部270は、幅がしきい値より小さい箇所や実物体が存在する領域から、調整軸において所定間隔離れた位置に切り取り線を設定する。
 なおプレイエリア内に実物体がある場合、プレイエリア編集部270は、S34でプレイエリアのサイズを確認する前に、該当領域を除外する切り取り線を設定してもよい。S38で切り取り線を設定したあと、あるいは優先的に切り取るべき領域がなかった場合(S36のN)、プレイエリア編集部270は、あらかじめ定められた優先順に切り取り線を設定する(S40)。ここで優先順には、図12のようにユーザが新たに追加した領域から切り取ることを優先するか、図15の(a)のように逆側の領域から切り取ることを優先するか、図16のようにユーザがプレイエリアの外にいる場合に、ユーザから離れた領域から切り取ることを優先するか、といった選択肢が考えられる。
 ユーザがプレイエリアの中にいる場合、好適には、図15の(b)に示すように、調整軸における切り取り線とユーザの距離を所定値以上にする、という拘束条件を設ける。なおS38において優先して切り取るべき領域を除外する切り取り線を設定したことにより、新しいプレエイリアのサイズが上限以内に収まることが見込まれる場合は、S40の処理を省略できる。
 プレイエリア編集部270は、S38、S40で設定した切り取り線でプレイエリアを切り取り、元のプレイエリアのデータを更新する(S42)。S34において新たなプレイエリアのサイズが上限を超えなかった場合も(S34のN)、当該新たなプレイエリアでデータを更新する(S42)。そしてプレイエリア編集部270は、新たに決定したプレイエリアをオブジェクトとして表し、カメラ画像に重畳させるなどしてヘッドマウントディスプレイ100に表示させる(S44)。
 S38、S40において切り取り線を設定し、ユーザ操作により生成されたプレイエリアを切り取った場合、プレイエリア編集部270は、図13の(b)に示したように、切り取った箇所を明示する画像を表示させてもよい。またS32において、ユーザが境界線を描いている段階においても、サイズが上限を超えたときに画像や音でユーザに知らせてもよい。
 以上述べた本実施の形態によれば、画像処理装置は、ヘッドマウントディスプレイを装着したユーザが安全に動き回ることのできるプレイエリアを自動で検出したうえ、ユーザによる編集操作を受け付ける。画像処理装置は、そのようにして生成された新たなプレイエリアのサイズが、あらかじめ定められた上限以内か否かを確認し、上限を超えていた場合、自動で適切な切り取り線を設定し切り取ることでプレイエリアのサイズを適正値に収める。これにより、ユーザが有効なプレイエリアのサイズ感を把握しきれず編集を失敗し、何度も編集作業を強いられるような状況の発生を抑えられる。
 また画像処理装置は、ユーザが領域を追加したい方向やユーザの位置などに応じて、好適な位置でプレイエリアを切り取る。これにより、ユーザの意図を汲み取りつつ、編集操作による不具合が起こりにくいプレイエリアを決定できる。したがってユーザが比較的粗くかつ自由にプレイエリアを編集しても、最終的には適正なプレイエリアとして受け入れられる可能性が高くなり、編集操作への心的障壁を低くできる。
 以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 以上のように本発明は、ゲーム装置、ヘッドマウントディスプレイ、パーソナルコンピュータなど各種情報処理装置や、それらのいずれかを含むシステムなどに利用可能である。
 100 ヘッドマウントディスプレイ、 200 画像生成装置、 256 プレイエリア記憶部、 264 プレイエリア設定部、 266 プレイエリア検出部、 268 床面設定部、 270 プレイエリア編集部、 274 マップ生成部、 280 位置推定部、 282 警告処理部、 292 表示制御部。

Claims (11)

  1.  ヘッドマウントディスプレイを装着したユーザの周囲空間においてアプリケーションのプレイ中にユーザが移動可能なプレイエリアのデータを記憶する記憶部と、
     前記記憶部に記憶されたプレイエリアを示す画像を前記ヘッドマウントディスプレイに表示させる表示制御部と、
     前記プレイエリアを編集するユーザの操作を受け付けたうえ、当該プレイエリアのサイズの上限超過を検出し、一部を切り取ることでサイズを調整するプレイエリア編集部と、
     を備えることを特徴とする情報処理装置。
  2.  前記プレイエリア編集部は、編集後のプレイエリアに外接する矩形の辺の長さが上限を超えたとき、当該辺に垂直な切り取り線で前記編集後のプレイエリアを切り取ることを特徴とする請求項1に記載の情報処理装置。
  3.  前記プレイエリア編集部は、ユーザが編集後のプレイエリアの中にいるとき、前記上限を超えた辺に平行な調整軸において、ユーザからの距離が所定値以上の位置に前記切り取り線を設定することを特徴とする請求項2に記載の情報処理装置。
  4.  前記プレイエリア編集部は、前記調整軸の2箇所に前記切り取り線を設定することを特徴とする請求項3に記載の情報処理装置。
  5.  前記表示制御部は、切り取り後の前記プレイエリアを示す画像を、切り取った箇所を明示して前記ヘッドマウントディスプレイに表示させることを特徴とする請求項1から4のいずれかに記載の情報処理装置。
  6.  前記表示制御部は、前記プレイエリアの一部が切り取られていく様子を表すアニメーションを、前記ヘッドマウントディスプレイに表示させることを特徴とする請求項5に記載の情報処理装置。
  7.  前記表示制御部は、ユーザが前記プレイエリアを編集する際、前記ヘッドマウントディスプレイのカメラが撮影している実空間の画像に、ユーザによって移動可能なカーソルとその移動軌跡を表すオブジェクトを重畳して前記ヘッドマウントディスプレイに表示させ、
     前記プレイエリア編集部は、前記移動軌跡を前記プレイエリアの新たな境界線として受け付けるとともに、編集前のプレイエリアと前記境界線に外接する矩形の辺の長さが上限を超えたとき、ユーザにその旨を通知することを特徴とする請求項1に記載の情報処理装置。
  8.  前記プレイエリア編集部は、編集後のプレイエリアの形状、および当該プレイエリア内の実物体の存在、の少なくともいずれかに基づき、当該編集後のプレイエリアから優先して切り取る領域を決定することを特徴とする請求項1から4のいずれかに記載の情報処理装置。
  9.  前記プレイエリア編集部は、ユーザが編集後のプレイエリアの外にいるとき、当該編集後のプレイエリアのうち、前記上限を超えた辺に平行な調整軸において、ユーザから遠い側の領域を切り取ることを特徴とする請求項2に記載の情報処理装置。
  10.  ヘッドマウントディスプレイを装着したユーザの周囲空間においてアプリケーションのプレイ中にユーザが移動可能なプレイエリアのデータをメモリから読み出すステップと、
     前記プレイエリアを示す画像を前記ヘッドマウントディスプレイに表示させるステップと、
     前記プレイエリアを編集するユーザの操作を受け付けたうえ、当該プレイエリアのサイズの上限超過を検出し、一部を切り取ることでサイズを調整するステップと、
     を含むことを特徴とする情報処理方法。
  11.  ヘッドマウントディスプレイを装着したユーザの周囲空間においてアプリケーションのプレイ中にユーザが移動可能なプレイエリアのデータをメモリから読み出す機能と、
     前記プレイエリアを示す画像を前記ヘッドマウントディスプレイに表示させる機能と、
     前記プレイエリアを編集するユーザの操作を受け付けたうえ、当該プレイエリアのサイズの上限超過を検出し、一部を切り取ることでサイズを調整する機能と、
     をコンピュータに実現させることを特徴とするコンピュータプログラム。
PCT/JP2023/028693 2022-08-19 2023-08-07 情報処理装置および情報処理方法 WO2024038787A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-131085 2022-08-19
JP2022131085A JP2024027905A (ja) 2022-08-19 2022-08-19 情報処理装置および情報処理方法

Publications (1)

Publication Number Publication Date
WO2024038787A1 true WO2024038787A1 (ja) 2024-02-22

Family

ID=89941557

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/028693 WO2024038787A1 (ja) 2022-08-19 2023-08-07 情報処理装置および情報処理方法

Country Status (2)

Country Link
JP (1) JP2024027905A (ja)
WO (1) WO2024038787A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020536305A (ja) * 2017-09-29 2020-12-10 アップル インコーポレイテッドApple Inc. 物理的境界監視器
US20210233312A1 (en) * 2020-01-27 2021-07-29 Facebook Technologies, Llc Systems, methods, and media for displaying real-time visualization of physical environment in artificial reality

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020536305A (ja) * 2017-09-29 2020-12-10 アップル インコーポレイテッドApple Inc. 物理的境界監視器
US20210233312A1 (en) * 2020-01-27 2021-07-29 Facebook Technologies, Llc Systems, methods, and media for displaying real-time visualization of physical environment in artificial reality

Also Published As

Publication number Publication date
JP2024027905A (ja) 2024-03-01

Similar Documents

Publication Publication Date Title
JP7164630B2 (ja) 予測サッカード着地点に基づく動的グラフィックスレンダリング
TWI732194B (zh) 用於在hmd環境中利用傳至gpu之預測及後期更新的眼睛追蹤進行快速注視點渲染的方法及系統以及非暫時性電腦可讀媒體
US10671239B2 (en) Three dimensional digital content editing in virtual reality
US10373392B2 (en) Transitioning views of a virtual model
EP3241088B1 (en) Methods and systems for user interaction within virtual or augmented reality scene using head mounted display
EP3137982B1 (en) Transitions between body-locked and world-locked augmented reality
JP2022530012A (ja) パススルー画像処理によるヘッドマウントディスプレイ
JP6956104B2 (ja) 短待ち時間レンダリングのための広ベースラインステレオ
EP4273681A2 (en) Information processing device and warning presentation method
JP6332652B1 (ja) 表示制御装置、及びプログラム
WO2020218131A1 (ja) 画像生成装置および情報提示方法
US11195320B2 (en) Feed-forward collision avoidance for artificial reality environments
JP2024061769A (ja) 情報処理装置および警告提示方法
JP6530453B2 (ja) ゲームプログラム及びゲームシステム
JP7089113B2 (ja) 境界設定装置、境界設定方法及びプログラム
JP7351638B2 (ja) 画像生成装置、画像表示システム、および情報提示方法
WO2024038787A1 (ja) 情報処理装置および情報処理方法
JP6634654B2 (ja) 情報処理装置および警告提示方法
WO2022004422A1 (ja) 情報処理装置、情報処理方法、及び記録媒体
WO2023157471A1 (ja) 情報処理装置および情報処理方法
US20240078767A1 (en) Information processing apparatus and information processing method
WO2023140004A1 (ja) 情報処理装置および情報処理方法
WO2023002793A1 (ja) 情報処理装置、情報処理方法およびコンピュータプログラム
WO2023002792A1 (ja) 情報処理装置、情報処理方法およびコンピュータプログラム
WO2023002652A1 (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: 23854821

Country of ref document: EP

Kind code of ref document: A1