WO2020202747A1 - 情報処理装置、情報処理方法、及び記録媒体 - Google Patents

情報処理装置、情報処理方法、及び記録媒体 Download PDF

Info

Publication number
WO2020202747A1
WO2020202747A1 PCT/JP2020/002889 JP2020002889W WO2020202747A1 WO 2020202747 A1 WO2020202747 A1 WO 2020202747A1 JP 2020002889 W JP2020002889 W JP 2020002889W WO 2020202747 A1 WO2020202747 A1 WO 2020202747A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual object
information
application
priority
information processing
Prior art date
Application number
PCT/JP2020/002889
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 US17/442,005 priority Critical patent/US20220253196A1/en
Priority to JP2021511151A priority patent/JP7400810B2/ja
Priority to CN202080021928.1A priority patent/CN113597632A/zh
Priority to EP20782784.1A priority patent/EP3951724A4/en
Publication of WO2020202747A1 publication Critical patent/WO2020202747A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed 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/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
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Definitions

  • This disclosure relates to an information processing device, an information processing method, and a recording medium.
  • AR Augmented Reality
  • real objects objects in real space
  • real objects objects in real space
  • AR applications applications that present virtual objects to users
  • AR applications applications that present virtual objects to users
  • AR apps will be used on a daily basis and multiple AR apps will be executed at the same time.
  • it is desirable that the virtual objects of the plurality of AR applications are arranged without overlapping.
  • Patent Document 1 a technique for appropriately arranging virtual objects corresponding to real objects in each real space in a virtual shared space based on sensing results in a plurality of real spaces. Is described.
  • Patent Document 1 does not consider that a plurality of AR applications can operate at the same time.
  • inconsistencies may occur such that virtual objects arranged in the real space are displayed overlapping each other by different AR applications. In that case, the visibility of the virtual object is lowered, which may interfere with the daily use of the AR application.
  • this disclosure proposes a new and improved information processing device, an information processing method, and a recording medium capable of operating a plurality of AR applications in cooperation with each other.
  • the first environmental information representing the three-dimensional space in the real world is acquired, and the first virtual object of the first application is arranged in the three-dimensional space based on the first environmental information. Then, based on the arrangement of the first virtual object, the first environment information is updated as the second environment information including the information indicating the arrangement of the first virtual object, and the first application of the first application.
  • a processing device is provided.
  • the first virtual object representing the three-dimensional space in the real world is acquired, and the first virtual object of the first application is set to the three-dimensional space based on the first environmental information.
  • the first environmental information is updated as the second environmental information including the information indicating the arrangement of the first virtual object based on the arrangement of the first virtual object.
  • the second virtual object of the second application is arranged in the three-dimensional space in which the first virtual object is arranged based on the second environmental information.
  • Information processing methods executed by the processor are provided.
  • the computer acquires the first environmental information representing the three-dimensional space in the real world, and based on the first environmental information, the first virtual object of the first application is described. It is arranged in a three-dimensional space, and based on the arrangement of the first virtual object, the first environment information is updated as a second environment information including information indicating the arrangement of the first virtual object.
  • a control unit that arranges a second virtual object of the second application in the three-dimensional space in which the first virtual object is arranged based on the second environment information during execution of the first application.
  • a recording medium on which a program for functioning as, is recorded is provided.
  • the technique according to the embodiment of the present disclosure relates to an information processing device that operates a plurality of AR applications in cooperation with each other.
  • the information processing device according to the present embodiment is based on information indicating the environment of the real space (three-dimensional space) (hereinafter, also referred to as "environmental information") and priority when a plurality of AR applications are executed at the same time. , Place a virtual object.
  • Environmental information is input (shared) to each AR application according to the priority. Sharing of environmental information to the AR application is controlled by the information processing device.
  • Environmental information includes, for example, information indicating the shape of a real space.
  • the shape of the real space is, for example, the shape of a real object such as a person, an animal, a plant, a building, furniture, a road, or a car.
  • the environment information may include coordinate information indicating the position of the real object. Further, the environment information may include information indicating the shape of the virtual object arranged in the real space and coordinate information indicating the position where the virtual object is arranged.
  • the format of the information indicating the shape of the real space and the information indicating the shape of the virtual object arranged (displayed) in the real space can be any format such as a point cloud (point cloud) or a 3D mesh (polygon). possible.
  • the environmental information may include meta information.
  • the meta information referred to here is additional information such as attribute information related to data included in the environmental information. Examples of attribute information include file type, size, creator, creation date and time, and the like.
  • attribute information include file type, size, creator, creation date and time, and the like.
  • the attribute information may include information indicating that the data is a real object or the data is a virtual object. This makes it possible to distinguish between real objects and virtual objects.
  • the AR application refers to the shared environment information and determines the placement position of the virtual object.
  • the environment information is updated by adding information including the shape and placement position of the virtual object to be placed (hereinafter, also referred to as "placement information") to the environment information. ..
  • placement information information including the shape and placement position of the virtual object to be placed
  • update process information including the shape and placement position of the virtual object to be placed
  • the virtual object is placed in the space indicated by the environment information.
  • the process of arranging virtual objects is also referred to as “arrangement process” below.
  • the expression related to "update processing” and the expression related to "arrangement processing” can be used as expressions indicating the same meaning.
  • Environmental information is information that is updated in real time by the update process.
  • each AR application can determine the placement position of the virtual object based on the real-time environment information.
  • the information processing device After updating the environment information including the placement information of the virtual objects of all AR apps that are executed at the same time, the information processing device displays the image that depicts the virtual objects of all AR apps based on the updated environment information. Etc. to display. With such a configuration, the information processing device can prevent a plurality of virtual objects from being displayed in an overlapping manner when a plurality of AR applications are executed at the same time.
  • FIG. 1 is a diagram showing an outline of a virtual object placement process according to the embodiment of the present disclosure.
  • AR application 1 the AR application having the highest priority
  • AR application 2 The AR application having the second highest priority
  • AR app 3 The AR app with the third highest priority
  • the environmental information (first environmental information) acquired before the virtual object (first virtual object) of the AR application 1 is placed is referred to as "environmental information 0".
  • the environment information (second environment information) in which the environment information 0 is updated to include the arrangement information of the virtual object of the AR application 1 is referred to as "environment information 1”.
  • the environmental information in which the environmental information 1 is updated to include the arrangement information of the virtual object (second virtual object) of the AR application 2 is referred to as "environmental information 2".
  • the information processing apparatus When arranging the virtual objects, the information processing apparatus according to the present embodiment arranges each virtual object based on the priority of arranging the virtual object of the AR application 1 and the virtual object of the AR application 2. Since the priority of the virtual object of the AR application 1 is higher than the priority of the virtual object of the AR application 2, the information processing device arranges the virtual object of the AR application 1 in preference to the virtual object of the AR application 2.
  • the real space environment before a plurality of AR applications are executed at the same time is the state T11.
  • the real object 40 is arranged in the real space.
  • the information processing apparatus acquires the environment information 0 indicating the three-dimensional space of the real space in the state T11.
  • the acquired environment information 0 is shared with the AR application 1.
  • the AR application 1 refers to the shared environment information 0 and determines the placement position of the virtual object of the AR application 1 (S100). For example, the AR application 1 determines to arrange the virtual object 50 of the AR application 1 as in the state T12 shown in FIG. After the placement position is determined by the AR application 1, the information processing device adds the placement information of the virtual object of the AR application 1 to the environment information 0, and updates the environment information 1 indicating the real space environment in the state T12 (S102). ..
  • the AR application 2 refers to the shared environment information 1 and determines the placement position of the virtual object of the AR application 2 (S104). For example, the AR application 2 determines that the virtual object 60 and the virtual object 61 of the AR application 2 are arranged as in the state T13 shown in FIG. After the placement position is determined by the AR application 2, the information processing apparatus adds the placement information of the virtual object of the AR application 2 to the environment information 1 to add the environment information 1 to the environment information 2 indicating the real space environment in the state T13. Update to (S106).
  • the number of AR applications executed at the same time is not particularly limited, and any number of AR applications may be executed.
  • the information processing device repeats the same processing as when the AR application 2 is executed according to the number of AR applications executed at the same time.
  • AR application 3 is executed at the same time in addition to AR application 1 and AR application 2. At this time, the environmental information 2 is shared with the AR application 3.
  • the AR application 3 refers to the shared environment information 2 and determines the placement position of the virtual object of the AR application 3 (S108). For example, the AR application 3 determines to arrange the virtual object 70 of the AR application 3 as in the state T14 shown in FIG. After the placement position is determined by the AR application 3, the information processing device adds the placement information of the virtual object of the AR application 3 to the environment information 2 and updates the environment information 3 indicating the real space environment in the state T14 (S110). .. Here, it may be considered that there is no change in the data format of the environment information 3 before the update and the data format of the environment information 3 after the update.
  • the number of virtual objects to which the placement information is added to the environment information is not particularly limited, and the placement information of any number of virtual objects may be added.
  • FIG. 2 is a diagram showing a display example of a virtual object in a general display terminal.
  • FIG. 2 shows the display of virtual objects when the game application AR application 1 and the route guidance application AR application 2 are executed at the same time. Specifically, FIG. 2 shows a state in which the character 52, which is a virtual object of the game application, and the arrows 62 and 63, which are the virtual objects of the route guidance application, are displayed.
  • a game app can change the placement of virtual objects related to the game app, but cannot change the placement of virtual objects related to the route guidance app.
  • the route guidance application can change the arrangement of virtual objects related to the route guidance application, but cannot change the arrangement of virtual objects related to the game application. Therefore, it is common when the preset placement position of the virtual object of the route guidance application (hereinafter, also referred to as "initial placement position") overlaps with the already placed virtual object of the game application.
  • the display terminal displays the virtual objects of the route guidance application and the game application in an overlapping manner.
  • the initial position of the arrow 62 of the route guidance application is the position of the arrow 62 shown in FIG.
  • the position of the arrow 63 shown in FIG. 2 is the position where the arrow 63 overlaps with the character 52.
  • the route guidance application determines that the arrow 63 is arranged as it is at the position of the arrow 63 shown in FIG.
  • a general display terminal superimposes and displays each virtual object of a plurality of AR applications. Therefore, the visibility of the virtual object may decrease.
  • the embodiment of the present disclosure was conceived by paying attention to the above points, and proposes a technique capable of operating a plurality of AR applications in cooperation with each other.
  • the present embodiment will be described in detail in order.
  • FIG. 3 is a block diagram showing a configuration example of the information processing system 1000 according to the embodiment of the present disclosure.
  • the information processing system 1000 includes a display terminal 10, a cloud server 20, and a network 30.
  • the display terminal 10 is a terminal that displays a virtual object.
  • the display terminal 10 according to the present embodiment is realized by, for example, a head-mounted terminal (HMD: Head Mounted Display) or the like.
  • HMD Head Mounted Display
  • Examples of the HMD applicable to the display terminal 10 include a see-through type HMD, a video see-through type HMD, and a retinal projection type HMD.
  • the see-through type HMD uses, for example, a half mirror or a transparent light guide plate to hold a virtual image optical system composed of a transparent light guide portion or the like in front of the user's eyes, and displays an image inside the virtual image optical system. Therefore, the user wearing the see-through type HMD can see the outside scenery while viewing the image displayed inside the virtual image optical system.
  • the see-through HMD is, for example, based on AR technology, with respect to an optical image of a real object located in the real space according to the recognition result of at least one of the position and orientation of the see-through HMD. It is also possible to superimpose the image of the virtual object.
  • a specific example of the see-through type HMD is a so-called eyeglass-type wearable device in which a portion corresponding to a lens of eyeglasses is configured as a virtual image optical system.
  • the video see-through type HMD When the video see-through type HMD is worn on the user's head or face, it is worn so as to cover the user's eyes, and a display unit such as a display is held in front of the user's eyes. Further, the video see-through type HMD has an imaging unit for capturing the surrounding landscape, and displays an image of the landscape in front of the user captured by the imaging unit on the display unit. With such a configuration, it is difficult for the user wearing the video see-through type HMD to directly see the external scenery, but it is possible to confirm the external scenery from the image displayed on the display unit. Become.
  • the video see-through type HMD superimposes a virtual object on the image of the external landscape according to the recognition result of at least one of the position and the posture of the video see-through type HMD based on, for example, AR technology. You may let me.
  • a projection unit is held in front of the user's eyes, and the image is projected from the projection unit toward the user's eyes so that the image is superimposed on the external landscape. More specifically, in the retinal projection type HMD, an image is directly projected from the projection unit onto the retina of the user's eye, and the image is imaged on the retina. With such a configuration, even a user with myopia or hyperopia can view a clearer image. In addition, the user wearing the retinal projection type HMD can see the external landscape in the field of view while viewing the image projected from the projection unit.
  • the retinal projection type HMD is, for example, based on AR technology, an optical image of a real object located in the real space according to the recognition result of at least one of the position and orientation of the retinal projection type HMD. It is also possible to superimpose an image of a virtual object on the image.
  • an HMD called an immersive HMD can be mentioned.
  • the immersive HMD is worn so as to cover the user's eyes, and a display unit such as a display is held in front of the user's eyes. Therefore, it is difficult for the user wearing the immersive HMD to directly see the external scenery (that is, the scenery in the real world), and only the image displayed on the display unit comes into view.
  • the immersive HMD can give an immersive feeling to the user who is viewing the image. Therefore, the immersive HMD can be applied, for example, when presenting information mainly based on VR (Virtual Reality) technology.
  • VR Virtual Reality
  • the display terminal 10 is not limited to the above-mentioned HMD.
  • the display terminal 10 may be a terminal device such as a smartphone, a tablet terminal, a wearable terminal, or an agent device having a display unit.
  • the display terminal 10 is connected to the cloud server 20 via the network 30, and can send and receive information to and from the cloud server 20.
  • the information processing device is mounted on the display terminal 10 and performs a display process of displaying a virtual object on the display unit of the display terminal 10.
  • the mounting destination of the information processing device is not limited to the display terminal 10, and may be any device.
  • the information processing device may be mounted on the cloud server 20 and control the display process on the display terminal 10 via the network 30.
  • the cloud server 20 is a server device having a function of storing information related to display processing of the display terminal 10.
  • the cloud server 20 is an environment information server that stores environment information.
  • the cloud server 20 is connected to the display terminal 10 via the network 30, and can send and receive information to and from the display terminal 10.
  • the cloud server 20 can update the already stored environment information with the environment information received from the display terminal 10.
  • the network 30 has a function of connecting the display terminal 10 and the cloud server 20.
  • the network 30 may include a public network such as the Internet, a telephone line network, a satellite communication network, various LANs (Local Area Network) including Ethernet (registered trademark), and a WAN (Wide Area Network). Further, the network 30 may include a dedicated network such as IP-VPN (Internet Protocol-Virtual Private Network). Further, the network 30 may include a wireless communication network such as Wi-Fi (registered trademark) and Bluetooth (registered trademark).
  • the display terminal 10 includes a sensor unit 100, a control unit 110, a communication unit 120, a storage unit 130, and a display unit 140.
  • the sensor unit 100 has a function of sensing information used for processing in the control unit 110. After sensing, the sensor unit 100 outputs the sensing information acquired by the various sensors to the control unit 110.
  • the sensor unit 100 may include various sensor devices. As an example, as shown in FIG. 3, the sensor unit 100 may include an outward-facing camera 101, an acceleration sensor 103, a gyro sensor 105, an orientation sensor 107, and a GPS (Global Positioning System) sensor 109. The sensor unit 100 performs sensing using the above-mentioned sensor.
  • the sensor device included in the sensor unit 100 is not limited to the above example, and any other sensor device may be provided.
  • the outward-facing camera 101 is an imaging device that includes a lens system such as an RGB camera, a drive system, and an image sensor, and captures an image (still image or moving image).
  • a lens system such as an RGB camera, a drive system, and an image sensor
  • captures an image still image or moving image.
  • Such an imaging device is referred to as an outward-facing camera because the display terminal 10 is provided with an image capable of capturing the periphery of the display terminal 10.
  • the sensor unit 100 can acquire a captured image of the periphery of the display terminal 10.
  • the captured image of the periphery of the display terminal 10 acquired by the sensor unit 100 is also the captured image of the periphery of the user.
  • the outward-facing camera 101 can be an imaging device capable of sensing three-dimensional information in the real space where the display terminal 10 is located.
  • An example of the imaging device is a depth camera.
  • the depth camera can acquire three-dimensional information of substantially the entire real space by detecting the distance information to the object located in front of the depth camera.
  • the acceleration sensor 103 is a device that acquires acceleration.
  • the acceleration sensor 103 measures acceleration, which is the amount of change in velocity when the object moves.
  • the gyro sensor 105 is a device that acquires an angular velocity.
  • the gyro sensor 105 measures the angular velocity, which is the amount of change in the posture of the target.
  • the information acquired by the acceleration sensor 103 and the gyro sensor 105 is also referred to as "inertia information" below.
  • the sensor unit 100 can acquire the inertia information of the display terminal 10.
  • the inertia information acquired by the sensor unit 100 is also the user's inertia information.
  • the azimuth sensor 107 is a device that acquires information on azimuth.
  • the azimuth sensor 107 measures the magnitude and direction of the magnetic field at the target position.
  • the information acquired by the azimuth sensor 107 is also referred to as "azimuth information" below.
  • the sensor unit 100 can acquire the orientation information of the display terminal 10.
  • the azimuth information acquired by the sensor unit 100 is also the azimuth information of the user.
  • the GPS sensor 109 is a device that acquires position information.
  • the GPS sensor 109 measures information indicating the latitude, longitude, and altitude of a target by receiving a GPS signal from a GPS satellite.
  • the information acquired by the GPS sensor 109 is also referred to as "position information" below.
  • the sensor unit 100 can acquire the position information of the display terminal 10.
  • the position information acquired by the sensor unit 100 is also the user's position information.
  • Control unit 110 is an information processing device having a function of controlling the operation of the entire display terminal 10.
  • the control unit 110 includes a self-position estimation unit 111, an environment information acquisition unit 113, an environment information estimation unit 115, an arrangement processing unit 117, and a drawing unit 119, as shown in FIG.
  • the self-position estimation unit 111 has a function of estimating the self-position of the display terminal 10. For example, the self-position estimation unit 111 estimates the self-position of the display terminal 10 based on the sensing information input from the sensor unit 100. After the estimation, the self-position estimation unit 111 outputs the self-position information indicating the self-position of the estimated display terminal 10 to the environment information acquisition unit 113 and the environment information estimation unit 115.
  • the self-position estimation unit 111 can estimate the self-position of the display terminal 10 by various methods. For example, the self-position estimation unit 111 may estimate the self-position of the display terminal 10 based on the captured image acquired by the outward-facing camera 101 of the sensor unit 100. As an example, the self-position estimation unit 111 simultaneously estimates the self-position from the captured image and creates a map of the surrounding area by SLAM (Simultaneus Localization and Mapping).
  • SLAM Simultaneus Localization and Mapping
  • the self-position estimation unit 111 may estimate the self-position of the display terminal 10 based on the inertial information acquired by the acceleration sensor 103 and the gyro sensor 105 of the sensor unit 100. As an example, the self-position estimation unit 111 estimates the self-position of the display terminal 10 by integrating inertial information and calculating the relative movement amount by autonomous navigation (Dead Reckoning).
  • the self-position estimation unit 111 may estimate the self-position of the display terminal 10 based on the inertial information and the azimuth information acquired by the azimuth sensor 107 of the sensor unit 100. As an example, the self-position estimation unit 111 estimates the self-position of the display terminal 10 by acquiring the movement direction of the display terminal 10 from the orientation information and calculating the movement amount in the movement direction from the inertial information.
  • the self-position estimation unit 111 may estimate the self-position of the display terminal 10 based on the position information acquired by the GPS sensor 109 of the sensor unit 100. As an example, the self-position estimation unit 111 estimates the position indicated by the latitude, longitude and altitude included in the position information as the self-position of the display terminal 10.
  • the self-position estimation unit 111 may estimate the self-position of the display terminal 10 by combining the above-mentioned plurality of methods. By combining the above-mentioned plurality of methods, the self-position estimation unit 111 can improve the self-position estimation accuracy of the display terminal 10.
  • the environmental information acquisition unit 113 has a function of acquiring environmental information. For example, the environment information acquisition unit 113 acquires the environment information stored in the cloud server 20 via the communication unit 120 and the network 30. At this time, the environment information acquisition unit 113 transmits the self-position of the display terminal 10 input from the self-position estimation unit 111 to the cloud server 20, so that the environment information around the self-position of the display terminal 10 is transmitted to the cloud server 20. Receive from. After receiving the environmental information, the environmental information acquisition unit 113 outputs the received environmental information to the arrangement processing unit 117.
  • the environmental information estimation unit 115 has a function of estimating environmental information. For example, the environmental information estimation unit 115 estimates the environmental information around the display terminal 10 based on the sensing information acquired by the sensor unit 100. After estimating the environmental information, the environmental information estimation unit 115 outputs the estimated environmental information to the arrangement processing unit 117.
  • the environment information estimation unit 115 performs image recognition processing on the captured image acquired by the outward camera 101 of the sensor unit 100, and estimates the environment information around the display terminal 10 based on the recognition result. Further, the environmental information estimation unit 115 may estimate the environmental information around the display terminal 10 based on the three-dimensional information acquired by the outward-facing camera 101. With such a configuration, the information processing device can continue the display processing of the virtual object based on the estimated environment information even if the network connection is unstable and the environment information cannot be acquired from the cloud server 20. it can.
  • the environmental information estimation unit 115 may estimate the environmental information by combining the captured image acquired by the outward-facing camera 101 and the three-dimensional image. By estimating the environmental information by combining the captured image and the three-dimensional image, the environmental information estimation unit 115 can improve the estimation accuracy of the environmental information.
  • the environmental information estimation unit 115 can estimate the environmental information in real time by estimating the environmental information at the timing when the sensing information is acquired.
  • the placement processing unit 117 has a function of performing placement processing (update processing) of virtual objects. For example, the placement processing unit 117 arranges virtual objects based on the priority. Specifically, the placement processing unit 117 first determines the order in which the virtual objects are placed based on the priority. After determining the order, the arrangement processing unit 117 shares the environment information with the AR application according to the determined order, and causes the AR application to determine the arrangement position of the virtual object. After the placement position is determined by the AR application, the placement processing unit 117 receives the placement information from the AR application and updates the environment information by adding the received placement information to the environment information. The arrangement processing unit 117 may also perform processing related to setting the priority. Hereinafter, the processing performed by the arrangement processing unit 117 will be described in detail in order.
  • the priority according to the present embodiment may include two types of priorities, an AR application priority (first priority) and a virtual object priority (second priority).
  • the AR application priority is a priority set for the AR application.
  • the virtual object priority is a priority set for a virtual object without distinguishing between AR applications.
  • the placement processing unit 117 arranges virtual objects based on at least one of AR application priority and virtual object priority.
  • the arrangement processing unit 117 compares the AR application priority for each AR application, and preferentially arranges the virtual object of the AR application having a high AR application priority. For example, it is assumed that AR application 1, AR application 2, and AR application 3 are executed at the same time. At this time, the arrangement processing unit 117 arranges the virtual objects in the order of the virtual object of the AR application 1, the virtual object of the AR application 2, and the virtual object of the AR application 3. When one AR application has a plurality of virtual objects, a priority may be further set for each virtual object in the AR application.
  • the arrangement processing unit 117 compares the virtual object priority for each virtual object and arranges the virtual object having the higher virtual object priority with priority. For example, it is assumed that the AR application 1 has a virtual object 1 having the third highest priority and a virtual object 2 having the fifth highest priority. Further, it is assumed that the AR application 2 has the virtual object 3 having the highest priority and the virtual object 4 having the sixth highest priority. Further, it is assumed that the AR application 3 has a virtual object 5 having the fourth highest priority and a virtual object 6 having the second highest priority. At this time, the placement processing unit 117 arranges virtual objects in the order of virtual object 3, virtual object 6, virtual object 1, virtual object 5, virtual object 2, and virtual object 4.
  • the priority does not have to be set for objects that are not virtual objects placed in the real space by the logic of the AR application, such as display by the notification function of the OS (Operating System) mounted on the display terminal 10.
  • OS Operating System
  • the priority can be arbitrarily set in advance by the user, for example. At this time, if the same priority is set, it becomes difficult for the placement processing unit 117 to determine which virtual object should be placed with priority. Therefore, it is desirable that different priorities are set for the AR application priority of the plurality of AR applications and the virtual object priority of the plurality of virtual objects. When the same priority is set, the arrangement processing unit 117 may reset the priority.
  • the placement processing unit 117 sets the priority of the virtual object based on the method of specifying the coordinates indicating the placement position of the virtual object set by the AR application. Specifically, the arrangement processing unit 117 sets the priority of the virtual object whose coordinate designation method is absolute coordinates higher than the priority of the virtual object whose coordinate designation method is relative coordinates. Absolute coordinates are coordinates that indicate a specific position with respect to the origin in the absolute coordinate system. Therefore, the absolute coordinates indicate a fixed position. Therefore, it is desirable that the virtual object specified by the absolute coordinates is arranged at the specified coordinates.
  • the relative coordinates indicate the coordinates of a position separated by a predetermined distance from an arbitrary reference point.
  • the relative coordinates are, for example, coordinates indicating a specific position with the user's position as the origin in the relative coordinate system. Therefore, the relative coordinates indicate a position that can change when the user moves. Therefore, the virtual object specified in relative coordinates may be allowed to move from the specified coordinates.
  • the placement processing unit 117 may set the priority of the virtual object based on the degree of freedom of movement of the virtual object.
  • the freedom of movement of a virtual object indicates the number of dimensions of the space in which the virtual object can move. For example, if the virtual object can move in one-dimensional space, the degree of freedom of the virtual object is one.
  • a virtual object having one degree of freedom in absolute coordinates is, for example, a character of a game application that freely moves in one-dimensional space.
  • a virtual object having one degree of freedom in relative coordinates is, for example, a moving image playback screen in which the radius R and the angle ⁇ are fixed but the angle ⁇ can be changed in a spherical coordinate system with the user's head as the origin.
  • the degree of freedom of the virtual object is 2.
  • a virtual object having two degrees of freedom in absolute coordinates is, for example, a character of a game application that freely moves in a two-dimensional space.
  • a virtual object having two degrees of freedom in relative coordinates is, for example, a moving image playback screen in which the radius R is fixed but the angles ⁇ and ⁇ can be changed in a spherical coordinate system with the user's head as the origin.
  • the degree of freedom of the virtual object is three.
  • a virtual object having three degrees of freedom in absolute coordinates is, for example, a character of a game application that freely moves in a three-dimensional space.
  • a virtual object having a degree of freedom of 3 in relative coordinates is, for example, an advertisement in which all of the radius R, the angle ⁇ , and the angle ⁇ are optimally adjusted and arranged in a spherical coordinate system with the user's head as the origin.
  • a virtual object with zero degrees of freedom in absolute coordinates is, for example, a store sign displayed at a fixed position.
  • a virtual object having zero degree of freedom in relative coordinates is, for example, a menu that keeps the positional relationship with the user constant and always follows the user's hand.
  • the placement processing unit 117 sets the priority of the virtual object having a low degree of freedom of movement higher than the priority of the virtual object having a high degree of freedom of movement. For example, suppose that the user sets the same priority for a virtual object having 0 degrees of freedom and a virtual object having 3 degrees of freedom. In this case, the arrangement processing unit 117 resets the priority so that the priority of the virtual object having 0 degrees of freedom is higher than the priority of the virtual object having 3 degrees of freedom.
  • the arrangement processing unit 117 may set the priority based on the method of specifying the coordinates and the degree of freedom of movement. Further, when the priority is not set, the arrangement processing unit 117 may automatically set the priority to the lowest.
  • the priority may be changed by the arrangement processing unit 117 according to the input to the display terminal 10 by the user.
  • the priority may be changed according to the dynamic operation of the user.
  • the arrangement processing unit 117 replaces the priority of the AR application specified by the operation. For example, suppose a user performs an operation to replace an AR application running in the background with an AR application running in the foreground. At this time, the arrangement processing unit 117 replaces the priority of the AR application running in the background with the priority of the AR application running in the foreground.
  • the arrangement processing unit 117 performs the operation of calling the virtual object forward, the priority of the AR application called forward. May be changed to the highest.
  • the placement processing unit 117 performs the operation of pushing the virtual object backward, and the placement processing unit 117 gives the priority of the AR application driven backward. May be changed to the lowest.
  • the arrangement processing unit 117 may change the priority of the AR application to the highest priority.
  • the arrangement processing unit 117 shares the self-position and environment information of the display terminal 10 with the AR application in descending order of the set priority. For example, the arrangement processing unit 117 shares the self-position of the display terminal 10 estimated by the self-position estimation unit 111 with the AR application. With such a configuration, the AR application can acquire AR application data according to the self-position of the display terminal 10 from the AR application server.
  • the AR application data is data including information such as the shape of a virtual object and the initial placement position, for example. Further, the AR application data may include sound data related to the sound output during the execution of the AR application and haptic data related to the tactile sensation presented to the user.
  • the arrangement processing unit 117 shares the environment information input from the environment information acquisition unit 113 or the environment information estimation unit 115 with the AR application 1 as the environment information 0. ..
  • the arrangement processing unit 117 acquires environmental information from both the environmental information acquisition unit 113 and the environmental information estimation unit 115, and shares the environmental information obtained by merging the two acquired environmental information with the AR application 1 as the environmental information 0. You may.
  • the arrangement processing unit 117 shares the environment information after the arrangement process to the AR application other than the AR application 1.
  • the AR application can confirm the placement position of the virtual object of the other AR application without directly interacting with the other AR application.
  • the data format of the environmental information referred to by the AR application 1 and the data format of the environmental information referred to by the application other than the AR application 1 may be regarded as the same.
  • the placement position of the virtual object can be determined by the logic on the AR application side. For example, the AR application determines the placement position of the virtual object by referring to the environment information shared by the placement processing unit 117. After the determination, the AR application outputs the placement information including the placement position of the virtual object to the placement processing unit 117. Since the AR application can confirm the placement position of the virtual object of another AR application by referring to the environment information, the placement position of the virtual object is determined at a position that does not overlap with the virtual object of the other AR application. be able to.
  • the arrangement processing unit 117 arranges virtual objects in the space indicated by the environment information by adding the arrangement information input from the AR application to the environment information. For example, when arranging the virtual object of the AR application 1, the arrangement processing unit 117 arranges the virtual object of the AR application 1 by adding the arrangement information input from the AR application 1 to the environment information 0. By adding the arrangement information of the AR application 1, the environment information 0 is updated to the environment information 1.
  • the arrangement processing unit 117 determines whether or not the virtual object of the AR application 1 is arranged at the initial arrangement position of the virtual object of the AR application 2 based on the environment information 1.
  • the virtual object of AR application 2 is arranged according to the above. Whether or not a virtual object of another AR application is arranged at the initial arrangement position of the virtual object is determined by the logic on the AR application side.
  • the AR application 2 refers to the environment information 1 shared by the arrangement processing unit 117, and determines whether or not the virtual object of the AR application 1 is arranged at the initial arrangement position of the virtual object of the AR application 2. ..
  • the AR application 2 When the virtual object of AR application 1 is arranged at the initial arrangement position of the virtual object of AR application 2, the AR application 2 arranges the virtual object at a position other than the initial arrangement position that does not overlap with the virtual object of AR application 1. Then decide. On the other hand, when the virtual object of the AR application 1 is not arranged at the initial arrangement position of the virtual object of the AR application 2, the AR application 2 determines to arrange the virtual object at the initial arrangement position. After determining the placement position, the AR application 2 outputs the placement information to the placement processing unit 117.
  • the arrangement processing unit 117 arranges the virtual object of the AR application 2 by adding the arrangement information input from the AR application 2 to the environment information 1.
  • the environment information 1 is updated to the environment information 2. That is, although the AR application 2 cannot directly control the arrangement of the virtual object of the AR application 1, the virtual object of the AR application 2 is appropriately arranged by recognizing the virtual object of the AR application 1 as the environment information 1. can do.
  • the arrangement processing unit 117 can arrange virtual objects without overlapping a plurality of virtual objects.
  • the drawing unit 119 has a function of drawing a virtual object.
  • the drawing unit 119 draws a virtual object based on the environment information input from the arrangement processing unit 117.
  • the drawing unit 119 refers to the environment information and generates an image in which the virtual object arranged in the environment information is drawn so as to be superimposed on the real space. Then, the drawing unit 119 outputs the generated image to the display unit 140.
  • the communication unit 120 has a function of communicating with an external device. For example, in communication with an external device, the communication unit 120 outputs information received from the external device to the control unit 110. Specifically, the communication unit 120 receives the environment information from the cloud server 20 and outputs it to the control unit 110 in the communication with the cloud server 20 via the network 30.
  • the communication unit 120 transmits the information input from the control unit 110 to the external device, for example, in communication with the external device. Specifically, the communication unit 120 transmits the self-position information of the display terminal 10 input from the environment information acquisition unit 113 of the control unit 110 to the cloud server 20 when the environment information is acquired.
  • the storage unit 130 has a function of storing information related to processing in the display terminal 10.
  • the storage unit 130 can store environmental information.
  • the storage unit 130 can store the environmental information acquired by the environmental information acquisition unit 113, the environmental information estimated by the environmental information estimation unit 115, and the environmental information updated by the arrangement processing unit.
  • the information stored in the storage unit 130 is not limited to the above example.
  • the storage unit 130 may store the sensing information of the sensor unit 100.
  • the storage unit 130 may store programs such as various applications.
  • Display unit 140 has a function of outputting according to the input from the control unit 110.
  • the display unit 140 displays an image input from the control unit 110.
  • the display unit 140 displays an image in which a virtual object is superimposed on the real space, which is generated by the drawing unit 119 of the control unit 110.
  • Processing example The configuration example according to this embodiment has been described above. Subsequently, a processing example according to the present embodiment will be described. In the following, as an example, when AR application 1 and AR application 2 are executed at the same time, an example of processing (drawing processing) until an image in which virtual objects of each AR application are drawn is generated will be described.
  • FIG. 4 is a flowchart showing the flow of the main process in the drawing process of the virtual object according to the embodiment of the present disclosure. An example in which environmental information is acquired from the cloud server 20 will be described below.
  • the control unit 110 of the display terminal 10 estimates its own position based on the sensing information (S200).
  • the control unit 110 acquires the environment information from the cloud server 20 (S202).
  • the control unit 110 determines the arrangement order of the virtual objects based on the priority of the plurality of AR applications to be executed (S204).
  • the control unit 110 executes the placement process and places the virtual object (S206).
  • the control unit 110 generates an image in which the virtual object is drawn at the determined position (S208).
  • FIG. 5 is a flowchart showing a flow of arrangement processing according to the embodiment of the present disclosure.
  • N indicates the number of AR apps running at the same time.
  • n indicates the number of the AR application in which the virtual object placement process is performed.
  • M indicates the number of virtual objects of the AR application n.
  • m indicates the number of the virtual object in which the placement process is performed.
  • control unit 110 initializes n with 0 (S2061). Next, the control unit 110 confirms whether or not n is smaller than the number N of AR applications executed at the same time (S2062).
  • control unit 110 When n is smaller than the number of AR applications N (S2062 / YES), the control unit 110 initializes m to 0. Next, the control unit 110 confirms whether or not m is smaller than the number of virtual objects M of the AR application n (S2064).
  • the control unit 110 When m is smaller than the number of virtual objects M (S2064 / YES), the control unit 110 causes the AR application n to determine the placement position of the virtual object m of the AR application n. Next, the control unit 110 arranges the virtual object m in the environment information (S2066). After the arrangement, the control unit 110 increments m (S2067). After the increment, the control unit 110 again confirms whether m is smaller than the number of virtual objects M of the AR application n (S2064).
  • control unit 110 repeats the processes of S2064 to S2067 until m becomes larger than the number of virtual objects M.
  • control unit 110 increments n (S2068). After the increment, the control unit 110 again confirms whether or not n is smaller than the number N of AR applications executed at the same time (S2062).
  • control unit 110 repeats the processes of S2062 to S2068 until n becomes larger than the number of AR applications N.
  • control unit 110 ends the arrangement process.
  • FIG. 6 is a flowchart showing a flow of data according to the embodiment of the present disclosure.
  • the sensor unit 100 outputs the sensing information to the self-position estimation unit 111.
  • the environmental information estimation unit 115 estimates the environmental information
  • the sensor unit 100 also outputs the sensing information to the environmental information estimation unit 115.
  • the self-position estimation unit 111 estimates the self-position of the display terminal 10 based on the sensing information input from the sensor unit 100.
  • the environmental information acquisition unit 113 acquires the environmental information
  • the self-position estimation unit 111 outputs the estimated self-position to the environment information acquisition unit 113.
  • the environmental information estimation unit 115 estimates the environmental information
  • the self-position estimation unit 111 outputs the estimated self-position to the environmental information estimation unit 115.
  • the environment information acquisition unit 113 transmits the self-position input from the self-position estimation unit 111 to the environment information server 210.
  • the environment information server 210 that has received the self-position transmits the environment information 0 according to the self-position to the environment information acquisition unit 113.
  • the environment information acquisition unit 113 that has received the environment information 0 outputs the acquired environment information 0 and its own position to the arrangement processing unit 117.
  • the environmental information estimation unit 115 estimates the environmental information 0 based on the sensing information input from the sensor unit 100. After the estimation, the environment information estimation unit 115 outputs the estimated environment information 0 and the self-position input from the self-position estimation unit 111 to the arrangement processing unit 117.
  • the arrangement processing unit 117 outputs the environment information 0 and its own position input from the environment information acquisition unit 113 or the environment information estimation unit 115 to the AR application 1.
  • the AR application 1 in which the environment information 0 and the self-position are input transmits the input self-position to the AR application 1 server 221.
  • the AR application 1 server 221 Upon receiving the self-position, transmits the AR application 1 data including the shape of the virtual object and the initial placement position according to the input self-position to the AR application 1.
  • the AR application 1 that has received the AR application 1 data determines the placement position of the virtual object based on the environment information 0 and the AR application 1 data. After the determination, the AR application 1 outputs the arrangement information 1 including the arrangement position to the arrangement processing unit 117.
  • the arrangement processing unit 117 updates the environment information 0 to the environment information 1 by adding the arrangement information 1 input from the AR application 1 to the environment information 0. After the update, the placement processing unit 117 outputs the environment information 1 and the self-position to the AR application 2.
  • the AR application 2 in which the environment information 1 and the self-position are input transmits the input self-position to the AR application 2 server 222.
  • the AR application 2 server 222 Upon receiving the self-position, transmits the AR application 2 data including the shape of the virtual object and the initial placement position according to the input self-position to the AR application 2.
  • the AR application 2 that has received the AR application 2 data determines the placement position of the virtual object based on the environment information 1 and the AR application 2 data. After the determination, the AR application 2 outputs the arrangement information 2 including the arrangement position to the arrangement processing unit 117.
  • the arrangement processing unit 117 updates the environment information 1 to the environment information 2 by adding the arrangement information 2 input from the AR application 2 to the environment information 1. After the update, the arrangement processing unit 117 outputs the environment information 2 to the drawing unit 119.
  • the drawing unit 119 generates an image in which a virtual object is drawn based on the environment information 2 input from the arrangement processing unit 117. After the generation, the drawing unit 119 outputs the generated image to the display unit 140.
  • FIG. 7 is a diagram showing an outline of a virtual object placement process in a specific example according to the embodiment of the present disclosure.
  • the real space environment before the game application and the route guidance application are executed at the same time is the state T21.
  • the tree 42 exists as a real object in the real space.
  • the environment information acquisition unit 113 acquires the environment information 0 indicating the three-dimensional space of the real space in the state T21. After acquiring the environment information 0, the arrangement processing unit 117 shares the acquired environment information 0 with the game application.
  • the game application refers to the shared environment information 0 and determines the placement position of the character 52, which is a virtual object of the game application (S300). For example, the game application determines that the character 52 of the game application is arranged as in the state T22 shown in FIG. After the placement position is determined by the game application, the placement processing unit 117 adds the placement information of the character 52 of the game application to the environment information 0, and updates the environment information 1 indicating the real space environment in the state T22 (S302).
  • the route guidance application refers to the shared environment information 1 and determines the arrangement positions of the arrows 62 and 63, which are virtual objects of the route guidance application (S304). For example, the route guidance application determines that the arrows 62 and 63 of the route guidance application are arranged as in the state T23 shown in FIG. After the placement position is determined by the route guidance application, the placement processing unit 117 adds the placement information of the arrows 62 and 63 of the route guidance application to the environment information 1 to change the environment information 1 to the real space environment in the state T23.
  • the environment information 2 is updated (S306).
  • FIG. 8 is a diagram showing an example of arranging virtual objects in the specific example according to the embodiment of the present disclosure.
  • the character 52 which is a static virtual object of the game application and the arrow 62 which is a static virtual object of the route guidance application are shown.
  • a display example of the arrow 63 is shown.
  • the static virtual object referred to here is a virtual object that does not move from the initial placement position.
  • the arrangement processing unit 117 shares the environmental information including the arrangement position of the character 52 of the game application with the route guidance application at the time of the arrangement process related to the route guidance application.
  • the route guidance application refers to the environment information shared by the arrangement processing unit 117, and determines the positions of the arrows 62 and 63 at positions that do not overlap with the character 52.
  • the arrangement processing unit 117 adds the arrangement positions of the arrows 62 and 63 determined by the route guidance application to the environment information.
  • the drawing unit 119 causes the display terminal 10 according to the present embodiment to display the virtual object based on the updated environment information.
  • the route guidance application compares the placement position of the character 52 of the game application included in the environmental information with the initial placement positions of the arrows 62 and 63. For example, it is assumed that the arrangement position of the character 52 of the game application included in the environmental information is the position of the character 52 shown in FIG. 8, and the initial arrangement position of the arrow 62 is the position of the arrow 62 shown in FIG. The position of the arrow 62 shown in FIG. 8 is a position where the arrow 62 does not overlap with the character 52. Therefore, the route guidance application determines that the arrow 62 is arranged as it is at the position of the arrow 62 shown in FIG.
  • the route guidance application determines that the arrow 63 is arranged at a position where the arrow 63 and the character 52 do not overlap. For example, the route guidance application determines that the arrow 63 is arranged at the position of the arrow 63b shown in FIG.
  • FIG. 9 is a flowchart showing a flow of drawing processing in a specific example according to the embodiment of the present disclosure.
  • the self-position estimation unit 111 estimates the self-position based on the sensing information (S400).
  • the environment information acquisition unit 113 acquires the environment information from the cloud server 20 (S402).
  • the placement processing unit 117 determines the placement order of the virtual objects based on the priority of the plurality of AR applications to be executed (S404).
  • the placement processing unit 117 executes the placement processing of the virtual object and places the virtual object (S406).
  • the placement processing unit 117 determines the placement position of the character of the game application based on the environment information 0 (S4060). Next, the arrangement processing unit 117 adds the arrangement information of the character to the environment information 0, and updates the environment information 0 to the environment information 1 (S4062). Next, the arrangement processing unit 117 determines the arrangement position of the arrow of the route guidance application based on the environment information 1 (S4064). Next, the arrangement processing unit 117 adds the arrangement information of the arrow to the environment information 1 and updates the environment information 1 to the environment information 2 (S4066).
  • the drawing unit 119 After the placement process, the drawing unit 119 generates an image in which the virtual object is drawn at the placement position with reference to the environment information 2 (S408), and displays the image on the display unit 140.
  • placement information indicating the placement position of a virtual object is added to the environment information when the environment information is updated.
  • placement information including movement range information indicating the movement range of the virtual object may be added to the environment information.
  • the dynamic virtual object referred to here is a virtual object that moves from the initial placement position.
  • the virtual object of AR application 1 is a dynamic virtual object and can move in a three-dimensional space.
  • the AR application 1 shares the placement information including the movement range information indicating the movement range of the virtual object in the three-dimensional space with the information processing device.
  • the AR application 1 can reserve the range in which the virtual object moves by including the movement range information in the arrangement information.
  • the arrangement processing unit 117 arranges the virtual object of the AR application 2 outside the movement range of the virtual object of the AR application 1 based on the movement range information.
  • the information processing apparatus can arrange virtual objects without overlapping each virtual object in consideration of dynamic movement of virtual objects.
  • the environment information 0 acquired by the environment information acquisition unit 113 will be used.
  • FIG. 10 is a diagram showing an outline of a virtual object placement process in a modified example according to the embodiment of the present disclosure.
  • the state T31 the tree 42 exists as a real object in the real space.
  • the environment information acquisition unit 113 acquires the environment information 0 indicating the three-dimensional space of the real space in the state T31. After acquiring the environment information 0, the arrangement processing unit 117 shares the acquired environment information 0 with the game application.
  • the game application refers to the shared environment information 0 and determines the placement position of the character 52, which is a virtual object of the game application (S500). For example, the game application determines that the character 52 and the movement range 53 of the game application are arranged as in the state T32 shown in FIG. After the placement position is determined by the game application, the placement processing unit 117 adds the placement information of the character 52 of the game application and the movement range 53 to the environment information 0, and updates the environment information 1 indicating the real space environment in the state T32. (S502).
  • the route guidance application refers to the shared environment information 1 and determines the placement positions of the arrows 62 and 63, which are the virtual objects of the route guidance application (S504). For example, the route guidance application determines that the arrows 62 and 63 of the route guidance application are arranged as in the state T33 shown in FIG. After the placement position is determined by the route guidance application, the placement processing unit 117 adds the placement information of the arrows 62 and 63 of the route guidance application to the environment information 1, thereby changing the environment information 1 to the real space environment in the state T33. The environment information 2 is updated (S506).
  • the arrangement processing unit 117 may not arrange the movement range 53 in the environment information, but may only include the movement range information in the environment information so that the AR application 2 can refer to it.
  • the arrangement processing unit 117 arranges the movement range 53 as a virtual object that is not drawn.
  • FIG. 11 is a diagram showing an example of arranging virtual objects in the modified example according to the embodiment of the present disclosure.
  • FIG. 11 as an example, when the game application and the route guidance application are executed at the same time, the character 52 which is a dynamic virtual object of the game application and the arrow 62 which is a static virtual object of the route guidance application are shown. A display example of the arrow 63 is shown.
  • the arrangement processing unit 117 shares the environmental information including the arrangement position of the character 52 of the game application with the route guidance application at the time of the arrangement process related to the route guidance application.
  • the route guidance application refers to the environment information shared by the arrangement processing unit 117, and determines the arrangement positions of the arrows 62 and 63 at positions that do not overlap with the character 52 and the movement range 53. After the arrangement positions of the arrows 62 and 63 are determined by the route guidance application, the arrangement processing unit 117 adds the arrangement positions of the arrows 62 and 63 determined by the route guidance application to the environment information. Then, the drawing unit 119 causes the display terminal 10 according to the present embodiment to display the virtual object based on the updated environment information.
  • the route guidance application compares the placement position and movement range 53 of the character 52 of the game application included in the environmental information with the initial placement positions of the arrows 62 and 63. For example, it is assumed that the arrangement position of the character 52 of the game application included in the environmental information is the position of the character 52 shown in FIG. 8, and the initial arrangement position of the arrow 62 is the position of the arrow 62 shown in FIG. The position of the arrow 62 shown in FIG. 11 is a position where the arrow 62 does not overlap with the character 52. Therefore, the route guidance application determines that the arrow 62 is arranged as it is at the position of the arrow 62 shown in FIG.
  • the initial arrangement position of the arrow 63 is the position of the arrow 63a shown in FIG.
  • the position of the arrow 63a shown in FIG. 11 is the position where the arrow 63 overlaps with the character 52. Therefore, the route guidance application determines that the arrow 63 is arranged at a position where the arrow 63 and the character 52 do not overlap. For example, the route guidance application determines that the arrow 63 is arranged at the position of the arrow 63b shown in FIG. However, the position of the arrow 63b shown in FIG. 11 is the position where the arrow 63 overlaps the moving range 53 of the character 52.
  • the route guidance application determines that the arrow 63 is arranged at a position where the arrow 63 and the movement range 53 do not overlap. For example, the route guidance application determines that the arrow 63 is arranged at the position of the arrow 63c shown in FIG.
  • FIG. 12 is a flowchart showing the flow of drawing processing in the modified example according to the embodiment of the present disclosure.
  • the self-position estimation unit 111 estimates the self-position based on the sensing information (S600).
  • the environment information acquisition unit 113 acquires the environment information from the cloud server 20 (S602).
  • the placement processing unit 117 determines the placement order of the virtual objects based on the priority of the plurality of AR applications to be executed (S604).
  • the placement processing unit 117 executes the placement processing of the virtual object and places the virtual object (S606).
  • the placement processing unit 117 shares the environment information 0 with the game application, and causes the game application to determine the placement position of the character (S6060) and reserve the movement range of the character (S6062).
  • the arrangement processing unit 117 adds the arrangement information including the character arrangement position and the movement range information to the environment information 0, and updates the environment information 0 to the environment information 1 (S6064).
  • the arrangement processing unit 117 shares the environmental information 1 with the route guidance application, and causes the route guidance application to determine the arrangement position of the arrow (S6066).
  • the arrangement processing unit 117 adds the arrangement information including the arrangement position of the arrow to the environment information 1, and updates the environment information 1 to the environment information 2 (S6068).
  • the drawing unit 119 After the placement process, the drawing unit 119 generates an image in which the virtual object is drawn at the placement position with reference to the environment information 2 (S608), and displays the image on the display unit 140.
  • the location of the arrow becomes constant regardless of the movement of the character, so that the information processing device can improve the visibility of each virtual object.
  • the arrangement processing unit 117 may change the priority after a predetermined time has elapsed after deciding to change the priority.
  • the predetermined time include a time until a series of processes of the AR application are completed, a time until the virtual object is cut off from the screen, a time until the operation of the dynamic virtual object is completed, and the like. Further, the predetermined time may be an arbitrary time preset by the user.
  • the arrangement processing unit 117 switches the priorities of the AR application 1 and the AR application 2 after the virtual object of the AR application 1 is stationary. Then, the placement processing unit 117 performs the placement processing of the virtual object based on the changed priority.
  • the arrangement processing unit 117 sets the layout of the virtual object of the AR application whose priority is changed as the AR application whose priority is not changed until a predetermined time elapses after the determination of the priority change is made. May be calculated independently and kept displayed. Further, the arrangement processing unit 117 may display the virtual object of the AR application whose priority is to be changed in a wire frame.
  • the information processing apparatus can prevent the virtual object of the AR application whose priority is changed from being hindered from displaying the virtual object of the AR application whose priority is not changed.
  • FIG. 13 is a block diagram showing a hardware configuration example of the information processing device according to the present embodiment.
  • the information processing device 900 shown in FIG. 13 can realize, for example, the display terminal 10 shown in FIG.
  • the information processing by the display terminal 10 according to the present embodiment is realized by the cooperation between the software and the hardware described below.
  • the information processing device 900 includes a CPU (Central Processing Unit) 901, a ROM (Read Only Memory) 902, and a RAM (Random Access Memory) 903.
  • the information processing device 900 includes a host bus 904, a bridge 905, an external bus 906, an interface 907, an input device 908, an output device 909, a storage device 910, a drive 911, a connection port 912, and a communication device 913.
  • the hardware configuration shown here is an example, and some of the components may be omitted. In addition, the hardware configuration may further include components other than the components shown here.
  • the CPU 901 functions as, for example, an arithmetic processing device or a control device, and controls all or a part of the operation of each component based on various programs recorded in the ROM 902, the RAM 903, or the storage device 910.
  • the ROM 902 is a means for storing a program read into the CPU 901, data used for calculation, and the like.
  • a program read into the CPU 901 and various parameters that change as appropriate when the program is executed are temporarily or permanently stored.
  • These are connected to each other by a host bus 904 composed of a CPU bus or the like.
  • the CPU 901, ROM 902, and RAM 903 can realize the function of the control unit 110 described with reference to FIG. 3, for example, in collaboration with software.
  • the CPU 901, ROM 902, and RAM 903 are connected to each other via, for example, a host bus 904 capable of high-speed data transmission.
  • the host bus 904 is connected to the external bus 906, which has a relatively low data transmission speed, via, for example, the bridge 905.
  • the external bus 906 is connected to various components via the interface 907.
  • the input device 908 is realized by a device such as a mouse, a keyboard, a touch panel, a button, a microphone, a switch, and a lever, in which information is input by a user. Further, the input device 908 may be, for example, a remote control device using infrared rays or other radio waves, or an externally connected device such as a mobile phone or PDA that supports the operation of the information processing device 900. .. Further, the input device 908 may include, for example, an input control circuit that generates an input signal based on the information input by the user using the above input means and outputs the input signal to the CPU 901. By operating the input device 908, the user of the information processing device 900 can input various data to the information processing device 900 and instruct the processing operation.
  • the input device 908 may be formed by a device that detects information about the user.
  • the input device 908 includes an image sensor (for example, a camera), a depth sensor (for example, a stereo camera), an acceleration sensor, a gyro sensor, a geomagnetic sensor, an optical sensor, a sound sensor, and a distance measuring sensor (for example, ToF (Time of Flight). ) Sensors), may include various sensors such as force sensors.
  • the input device 908 provides information on the state of the information processing device 900 itself such as the posture and moving speed of the information processing device 900, and information on the surrounding environment of the information processing device 900 such as brightness and noise around the information processing device 900. May be obtained.
  • the input device 908 receives a GNSS signal (for example, a GPS signal from a GPS (Global Positioning System) satellite) from a GNSS (Global Navigation Satellite System) satellite and receives position information including the latitude, longitude and altitude of the device. It may include a GPS module to be measured. Further, regarding the position information, the input device 908 may detect the position by transmission / reception with Wi-Fi (registered trademark), a mobile phone / PHS / smartphone, or short-range communication. The input device 908 can realize, for example, the function of the sensor unit 100 described with reference to FIG.
  • a GNSS signal for example, a GPS signal from a GPS (Global Positioning System) satellite
  • GNSS Global Navigation Satellite System
  • the output device 909 is formed by a device capable of visually or audibly notifying the user of the acquired information.
  • Such devices include display devices such as CRT display devices, liquid crystal display devices, plasma display devices, EL display devices, laser projectors, LED projectors and lamps, audio output devices such as speakers and headphones, and printer devices. ..
  • the output device 909 outputs, for example, the results obtained by various processes performed by the information processing device 900.
  • the display device visually displays the results obtained by various processes performed by the information processing device 900 in various formats such as texts, images, tables, and graphs.
  • the audio output device converts an audio signal composed of reproduced audio data, acoustic data, etc. into an analog signal and outputs it audibly.
  • the output device 909 can realize, for example, the function of the display unit 140 described with reference to FIG.
  • the storage device 910 is a data storage device formed as an example of the storage unit of the information processing device 900.
  • the storage device 910 is realized by, for example, a magnetic storage device such as an HDD, a semiconductor storage device, an optical storage device, an optical magnetic storage device, or the like.
  • the storage device 910 may include a storage medium, a recording device that records data on the storage medium, a reading device that reads data from the storage medium, a deletion device that deletes the data recorded on the storage medium, and the like.
  • the storage device 910 stores programs executed by the CPU 901, various data, various data acquired from the outside, and the like.
  • the storage device 910 can realize, for example, the function of the storage unit 130 described with reference to FIG.
  • the drive 911 is a reader / writer for a storage medium, and is built in or externally attached to the information processing device 900.
  • the drive 911 reads the information recorded in the removable storage medium such as the mounted magnetic disk, optical disk, magneto-optical disk, or semiconductor memory, and outputs the information to the RAM 903.
  • the drive 911 can also write information to the removable storage medium.
  • connection port 912 is a port for connecting an external connection device such as a USB (Universal Serial Bus) port, an IEEE1394 port, a SCSI (Small Computer System Interface), an RS-232C port, or an optical audio terminal. ..
  • the communication device 913 is, for example, a communication interface formed by a communication device or the like for connecting to the network 920.
  • the communication device 913 is, for example, a communication card for a wired or wireless LAN (Local Area Network), LTE (Long Term Evolution), Bluetooth (registered trademark), WUSB (Wireless USB), or the like.
  • the communication device 913 may be a router for optical communication, a router for ADSL (Asymmetric Digital Subscriber Line), a modem for various communications, or the like.
  • the communication device 913 can transmit and receive signals and the like to and from the Internet and other communication devices in accordance with a predetermined protocol such as TCP / IP.
  • the communication device 913 can realize, for example, the function of the communication unit 120 described with reference to FIG.
  • the network 920 is a wired or wireless transmission path for information transmitted from a device connected to the network 920.
  • the network 920 may include a public network such as the Internet, a telephone line network, a satellite communication network, various LANs (Local Area Network) including Ethernet (registered trademark), and a WAN (Wide Area Network).
  • the network 920 may include a dedicated line network such as IP-VPN (Internet Protocol-Virtual Private Network).
  • IP-VPN Internet Protocol-Virtual Private Network
  • the above is an example of a hardware configuration capable of realizing the functions of the information processing device 900 according to the present embodiment.
  • Each of the above-mentioned components may be realized by using general-purpose members, or may be realized by hardware specialized for the function of each component. Therefore, it is possible to appropriately change the hardware configuration to be used according to the technical level at each time when the present embodiment is implemented.
  • the information processing apparatus first acquires environment information 0 representing a three-dimensional space in the real world, and based on the environment information 0, creates 3 virtual objects of AR application 1. Place in dimensional space. Next, the information processing device updates the environment information 0 as the environment information 1 including the arrangement information of the virtual object of the AR application 1 based on the arrangement of the virtual object of the AR application 1. Then, while the AR application 1 is being executed, the information processing device arranges the virtual object of the AR application 2 in the three-dimensional space in which the virtual object of the AR application 1 is arranged based on the environment information 1.
  • the AR application 1 (AR application 2) recognizes the virtual object of the AR application 2 (the virtual object of the AR application 1) as the environmental information referred to by the AR application 1.
  • the information processing apparatus can arrange the virtual objects of each AR application by referring to the arrangement information included in the environment information so that the virtual objects of the AR applications do not overlap.
  • each device described in the present specification may be realized as a single device, or a part or all of the devices may be realized as separate devices.
  • at least one of the sensor unit 100 and the control unit 110 included in the display terminal 10 shown in FIG. 3 may be realized as a single device.
  • the sensor unit 100 may be realized as an independent device such as a sensor device, and may be connected to the display terminal 10 via a network or the like.
  • the control unit 110 is realized as an independent device such as a server device, and may be connected to the display terminal 10 via a network or the like.
  • each device described in the present specification may be realized by using software, hardware, or a combination of software and hardware.
  • the programs constituting the software are stored in advance in, for example, a recording medium (non-temporary medium: non-transitory media) provided inside or outside each device. Then, each program is read into RAM at the time of execution by a computer, and is executed by a processor such as a CPU.
  • the following configurations also belong to the technical scope of the present disclosure.
  • (1) The first environmental information representing the three-dimensional space in the real world is acquired, and the first virtual object of the first application is arranged in the three-dimensional space based on the first environmental information. Based on the arrangement of the first virtual object, the first environment information is updated as the second environment information including the information indicating the arrangement of the first virtual object.
  • Department Information processing device equipped with.
  • (2) The control unit arranges the first virtual object and the second virtual object based on the priority of arrangement of the first virtual object and the second virtual object, according to the above (1).
  • Information processing device is arranged.
  • the information processing apparatus wherein the priority of the first virtual object is higher than the priority of the second virtual object.
  • the control unit determines whether or not the first virtual object is arranged at the initial arrangement position of the second virtual object based on the second environmental information.
  • the information processing apparatus according to (2) or (3) above, wherein the second virtual object is arranged according to the above.
  • the information processing device according to (4), wherein the control unit arranges the second virtual object at a position other than the initial arrangement position.
  • the priority includes a first priority which is a priority set for the application.
  • the control unit compares the first priority for each application, and preferentially arranges the virtual object of the application having the higher first priority, any of the above (2) to (5).
  • the information processing device according to item 1.
  • the priority includes a second priority which is a priority set for the virtual object without distinguishing by the application.
  • the control unit compares the second priority of each virtual object, and preferentially arranges the virtual object having the higher second priority, any one of (2) to (6).
  • (8) The item according to any one of (2) to (7) above, wherein the control unit sets the priority of the virtual object based on the method of designating the coordinates indicating the arrangement position of the virtual object set by the application. Information processing device.
  • the control unit sets the priority of the virtual object whose coordinate designation method is absolute coordinates higher than the priority of the virtual object whose coordinate designation method is relative coordinates (8). ).
  • the information processing device (10) The information processing device according to any one of (2) to (9), wherein the control unit sets the priority of the virtual object based on the degree of freedom of movement of the virtual object. (11) The information processing according to (10), wherein the control unit sets the priority of the virtual object having a low degree of freedom of movement higher than the priority of the virtual object having a high degree of freedom of movement. apparatus.
  • the information processing apparatus When the first virtual object moves in the three-dimensional space, The information processing apparatus according to any one of (2) to (11), wherein the second environmental information includes movement range information indicating a movement range of the first virtual object in the three-dimensional space. (13) The information processing device according to (12), wherein the control unit arranges the second virtual object outside the movement range of the first virtual object based on the movement range information. (14) The information processing device according to any one of (2) to (13), wherein the control unit changes the priority according to an input to the information processing device by a user. (15) The information processing device according to (14), wherein the control unit changes the priority after a predetermined time has elapsed after determining the change of the priority.
  • the second environmental information includes information indicating the shape of the first virtual object arranged in the three-dimensional space and coordinate information indicating the arranged position, according to the above (1) to (15).
  • the information processing apparatus according to any one item.
  • the information processing device further includes a sensor unit.
  • the control unit estimates the first environmental information based on the sensing information obtained by the sensor unit sensing the periphery of the information processing device, according to any one of (1) to (17).
  • the information processing apparatus according to any one of (1) to (17), wherein the data format of the first environmental information and the data format of the second environmental information are the same.
  • the first environmental information representing the three-dimensional space in the real world is acquired, and the first virtual object of the first application is arranged in the three-dimensional space based on the first environmental information.
  • the first environment information is updated as the second environment information including the information indicating the arrangement of the first virtual object.
  • the second virtual object of the second application is arranged in the three-dimensional space in which the first virtual object is arranged based on the second environment information.
  • Information processing methods performed by the processor including. (21) Computer, The first environmental information representing the three-dimensional space in the real world is acquired, and the first virtual object of the first application is arranged in the three-dimensional space based on the first environmental information. Based on the arrangement of the first virtual object, the first environment information is updated as the second environment information including the information indicating the arrangement of the first virtual object. Control to arrange the second virtual object of the second application in the three-dimensional space in which the first virtual object is arranged based on the second environment information during the execution of the first application. Department, A recording medium on which a program for functioning as is recorded.
  • Display terminal 20 Cloud server 30 Network 100 Sensor unit 101 Outward camera 103 Acceleration sensor 105 Gyro sensor 107 Orientation sensor 109 GPS sensor 110 Control unit 111 Self-position estimation unit 113 Environmental information acquisition unit 115 Environmental information estimation unit 117 Arrangement processing unit 119 Drawing unit 120 Communication unit 130 Storage unit 140 Display unit 1000 Information processing system

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Architecture (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、を備える、情報処理装置。

Description

情報処理装置、情報処理方法、及び記録媒体
 本開示は、情報処理装置、情報処理方法、及び記録媒体に関する。
 近年、実空間内に付加的な情報を重畳してユーザに提示する、拡張現実(AR:Augmented Reality)と称される技術(以下、「AR技術」とも称される)が注目されている。AR技術を利用することで、実空間内の物体(以下、「実オブジェクト」とも称される)に対して、テキスト、アイコン、またはアニメーション等の様々な態様の仮想的なコンテンツ(以下、「仮想オブジェクト」とも称される)を重畳させてユーザに提示することが可能となる。
 また、近年、AR技術の発展に伴い、ユーザに対して仮想オブジェクトを提示するアプリケーション(以下、「ARアプリ」とも称される)の普及が進んでいる。AR技術の今後のさらなる発展に伴い、ARアプリが日常的に使用され、複数のARアプリが同時に実行されることが考えられる。この時、複数のARアプリの各々の仮想オブジェクトが重ならずに配置されることが望ましい。
 上述の技術に関連し、例えば、下記特許文献1には、複数の実空間のセンシング結果に基づき、各々の実空間の実オブジェクトに対応する仮想オブジェクトを、仮想の共有空間に適切に配置する技術が記載されている。
国際公開第2018/092384号
 しかしながら、上記特許文献1に記載の技術では、複数のARアプリが同時に動作し得ることについては考慮されていない。複数のARアプリが同時に動作した場合、それぞれ異なるARアプリにより実空間に配置された仮想オブジェクト同士が重なって表示される等の、不整合が生じ得る。その場合、仮想オブジェクトの視認性が低下し、ARアプリの日常的な使用に支障をきたす恐れがある。
 そこで、本開示では、複数のARアプリを連携して動作させることが可能な、新規かつ改良された情報処理装置、情報処理方法、及び記録媒体を提案する。
 本開示によれば、実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、を備える、情報処理装置が提供される。
 また、本開示によれば、実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置すること、を含む、プロセッサにより実行される情報処理方法が提供される。
 また、本開示によれば、コンピュータを、実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、として機能させるためのプログラムが記録された記録媒体が提供される。
本開示の実施形態に係る仮想オブジェクトの配置処理の概要を示す図である。 一般的な表示端末における仮想オブジェクトの表示例を示す図である。 本開示の実施形態に係る情報処理システムの構成例を示すブロック図である。 同実施形態に係る仮想オブジェクトの描画処理におけるメイン処理の流れを示すフローチャートである。 同実施形態に係る配置処理の流れを示すフローチャートである。 同実施形態に係るデータの流れを示すフローチャートである。 同実施形態に係る具体例における仮想オブジェクトの配置処理の概要を示す図である。 同実施形態に係る具体例における仮想オブジェクトの配置例を示す図である。 同実施形態に係る具体例における描画処理の流れを示すフローチャートである。 同実施形態に係る変形例における仮想オブジェクトの配置処理の概要を示す図である。 同実施形態に係る変形例における仮想オブジェクトの配置例を示す図である。 同実施形態に係る変形例における描画処理の流れを示すフローチャートである。 本開示の実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 なお、説明は以下の順序で行うものとする。
 1.概要
 2.構成例
 3.処理例
 4.具体例
 5.変形例
 6.ハードウェア構成
 7.まとめ
<<1.概要>>
 本開示の実施形態に係る技術は、複数のARアプリを連携して動作させる情報処理装置に関する。本実施形態に係る情報処理装置は、複数のARアプリが同時に実行される時、実空間(3次元空間)の環境を示す情報(以下、「環境情報」とも称される)と優先度に基づき、仮想オブジェクトを配置する。環境情報は、優先度に従い、各々のARアプリへ入力(共有)される。ARアプリへの環境情報の共有は、情報処理装置により制御される。
 環境情報は、例えば、実空間の形状を示す情報を含む。実空間の形状は、例えば、人、動物、植物、建物、家具、道、車などの実オブジェクトの形状である。環境情報は、実オブジェクトの位置を示す座標情報を含んでもよい。また、環境情報は、実空間に配置された仮想オブジェクトの形状を示す情報、及び仮想オブジェクトが配置された位置を示す座標情報を含み得る。なお、実空間の形状を示す情報及び実空間に配置(表示)された仮想オブジェクトの形状を示す情報の形式は、例えば、ポイントクラウド(点群)や3Dメッシュ(ポリゴン)など、任意の形式であり得る。
 なお、環境情報には、メタ情報が含まれてもよい。ここでいうメタ情報は、環境情報に含まれるデータに関する属性情報等の付加的な情報である。属性情報の一例として、例えば、ファイルの種類、サイズ、作成者、作成日時等が挙げられる。環境情報に含まれるデータが実オブジェクトや仮想オブジェクトである場合、属性情報には、データが実オブジェクトであること、またはデータが仮想オブジェクトであることを示す情報が含まれてもよい。これにより、実オブジェクトと仮想オブジェクトの区別が可能となる。
 ARアプリは、共有される環境情報を参照して、仮想オブジェクトの配置位置を決定する。仮想オブジェクトの配置位置の決定後、配置される仮想オブジェクトの形状や配置位置を含む情報(以下、「配置情報」とも称される)が環境情報へ追加されることで、環境情報が更新される。環境情報が更新される処理は、以下では、「更新処理」とも称される。また、環境情報に配置情報が追加されることで、環境情報が示す空間に仮想オブジェクトが配置される。仮想オブジェクトが配置される処理は、以下では、「配置処理」とも称される。なお、以下では、「更新処理」に関する表現と、「配置処理」に関する表現は、同等の意味を示す表現として用いられ得る。
 環境情報は、更新処理にてリアルタイムに更新される情報である。かかる構成により、各ARアプリは、リアルタイムな環境情報に基づき、仮想オブジェクトの配置位置を決定することができる。
 同時に実行されるすべてのARアプリの仮想オブジェクトの配置情報を含めて環境情報を更新後、情報処理装置は、更新後の環境情報に基づき、すべてのARアプリの仮想オブジェクトを描画した画像を表示装置等に表示させる。かかる構成により、情報処理装置は、複数のARアプリが同時に実行される際に、複数の仮想オブジェクトが重なって表示されることを防止することができる。
 (処理の概要)
 ここで、図1を参照しながら、仮想オブジェクトの配置処理の概要について説明する。図1は、本開示の実施形態に係る仮想オブジェクトの配置処理の概要を示す図である。
 以下、最も優先度が高いARアプリ(第1のアプリケーション)は、「ARアプリ1」と称される。2番目に優先度が高いARアプリ(第2のアプリケーション)は、「ARアプリ2」と称される。3番目に優先度が高いARアプリは、「ARアプリ3」と称される。
 また、以下、ARアプリ1の仮想オブジェクト(第1の仮想オブジェクト)が配置される前に取得される環境情報(第1の環境情報)は、「環境情報0」と称される。環境情報0が、ARアプリ1の仮想オブジェクトの配置情報を含むように更新された環境情報(第2の環境情報)は、「環境情報1」と称される。環境情報1が、ARアプリ2の仮想オブジェクト(第2の仮想オブジェクト)の配置情報を含むように更新された環境情報は、「環境情報2」と称される。
 本実施形態に係る情報処理装置は、仮想オブジェクトを配置する際に、ARアプリ1の仮想オブジェクト及びARアプリ2の仮想オブジェクトの配置の優先度に基づき、各々の仮想オブジェクトを配置する。ARアプリ1の仮想オブジェクトの優先度がARアプリ2の仮想オブジェクトの優先度よりも高いため、情報処理装置は、ARアプリ1の仮想オブジェクトをARアプリ2の仮想オブジェクトよりも優先して配置する。
 複数のARアプリが同時に実行される前の実空間の環境が、状態T11であるとする。状態T11では、実空間に実オブジェクト40が配置されている。状態T11において、複数のARアプリが同時に実行されると、情報処理装置は、状態T11における実空間の3次元空間を示す環境情報0を取得する。取得された環境情報0は、ARアプリ1に共有される。
 ARアプリ1は、共有された環境情報0を参照して、ARアプリ1の仮想オブジェクトの配置位置を決定する(S100)。例えば、ARアプリ1は、図1に示す状態T12のように、ARアプリ1の仮想オブジェクト50を配置すると決定する。ARアプリ1による配置位置の決定後、情報処理装置は、環境情報0にARアプリ1の仮想オブジェクトの配置情報を追加し、状態T12における実空間の環境を示す環境情報1に更新する(S102)。
 次いで、環境情報1は、ARアプリ2に共有される。ARアプリ2は、共有された環境情報1を参照して、ARアプリ2の仮想オブジェクトの配置位置を決定する(S104)。例えば、ARアプリ2は、図1に示す状態T13のように、ARアプリ2の仮想オブジェクト60と仮想オブジェクト61を配置すると決定する。ARアプリ2による配置位置の決定後、情報処理装置は、環境情報1にARアプリ2の仮想オブジェクトの配置情報を追加することで、環境情報1を状態T13における実空間の環境を示す環境情報2に更新する(S106)。
 なお、同時に実行されるARアプリの数は、特に限定されず、任意の数のARアプリが実行されてよい。情報処理装置は、同時に実行されるARアプリの数に応じた、ARアプリ2が実行された時と同様の処理を繰り返す。
 具体的に、ARアプリ1とARアプリ2に加え、ARアプリ3も同時に実行されたとする。この時、環境情報2は、ARアプリ3に共有される。
 ARアプリ3は、共有された環境情報2を参照して、ARアプリ3の仮想オブジェクトの配置位置を決定する(S108)。例えば、ARアプリ3は、図1に示す状態T14のように、ARアプリ3の仮想オブジェクト70を配置すると決定する。ARアプリ3による配置位置の決定後、情報処理装置は、環境情報2にARアプリ3の仮想オブジェクトの配置情報を追加し、状態T14における実空間の環境を示す環境情報3に更新する(S110)。ここで、更新前の環境情報3のデータ形式、更新後の環境情報3のデータ形式には変化が無いものと見做されてよい。
 なお、環境情報に配置情報が追加される仮想オブジェクトの数は、特に限定されず、任意の数の仮想オブジェクトの配置情報が追加されてよい。
 (課題の整理)
 ここで、図2を参照しながら、課題の整理を行う。図2は、一般的な表示端末における仮想オブジェクトの表示例を示す図である。図2では、ゲームアプリであるARアプリ1と、道案内アプリであるARアプリ2が同時に実行された時の仮想オブジェクトの表示が示されている。具体的に、図2には、ゲームアプリの仮想オブジェクトであるキャラクタ52と、道案内アプリの仮想オブジェクトである矢印62と矢印63が表示された状態が示されている。
 一般的な表示端末における仮想オブジェクトの表示処理では、ARアプリにて仮想空間の状態を示す情報をリアルタイムに更新することは考慮されていない。これは、各ARアプリが互いに連携することを考慮されずにプログラムされているためである。したがって、互いに異なるARアプリの間の、仮想オブジェクトの配置処理を含む表示処理のルールは、基本的に全く異なる。
 上記の通り、アプリ間の相互連携がないと、例えば、ゲームアプリは、ゲームアプリに関連する仮想オブジェクトの配置を変更できるが、道案内アプリに関連する仮想オブジェクトの配置を変更できない。一方、道案内アプリは、道案内アプリに関連する仮想オブジェクトの配置を変更できるが、ゲームアプリに関連する仮想オブジェクトの配置を変更することはできない。したがって、道案内アプリの仮想オブジェクトのあらかじめ設定された配置位置(以下、「初期配置位置」とも称される)が、ゲームアプリの既に配置されている仮想オブジェクトと重なる位置である場合、一般的な表示端末は、道案内アプリとゲームアプリの仮想オブジェクトを重ねて表示してしまう。
 例えば、道案内アプリの矢印62の初期配置位置が図2に示す矢印62の位置であったとする。図2に示す矢印63の位置は、矢印63がキャラクタ52と重なる位置である。しかしながら、道案内アプリは、リアルタイムに更新された仮想空間の状態を示す情報を参照することができないため、矢印63とキャラクタ52が重なることを認識することができない。そのため、道案内アプリは、図2に示す矢印63の位置に、矢印63をそのまま配置すると決定する。これにより、一般的な表示端末は、複数のARアプリの各々の仮想オブジェクトを重ねて表示してしまう。よって、仮想オブジェクトの視認性が低下する恐れがある。
 本開示の実施形態では、上記の点に着目して発想されたものであり、複数のARアプリを連携して動作させることが可能な技術を提案する。以下、本実施形態について順次詳細に説明する。
<<2.構成例>>
 まず、本開示の実施形態に係る情報処理システムの構成例について説明する。図3は、本開示の実施形態に係る情報処理システム1000の構成例を示すブロック図である。
 <2-1.システム構成>
 図3に示すように、本実施形態に係る情報処理システム1000は、表示端末10、クラウドサーバ20、及びネットワーク30を備える。
 (1)表示端末10
 表示端末10は、仮想オブジェクトを表示する端末である。本実施形態に係る表示端末10は、例えば、頭部装着型の端末(HMD:Head Mounted Display)等により実現される。表示端末10に適用可能なHMDの一例としては、例えば、シースルー型HMD、ビデオシースルー型HMD、及び網膜投射型HMDが挙げられる。
 シースルー型HMDは、例えば、ハーフミラーや透明な導光板を用いて、透明な導光部等からなる虚像光学系をユーザの眼前に保持し、当該虚像光学系の内側に画像を表示させる。そのため、シースルー型HMDを装着したユーザは、虚像光学系の内側に表示された画像を視聴している間も、外部の風景を視野に入れることが可能となる。このような構成により、シースルー型HMDは、例えば、AR技術に基づき、当該シースルー型HMDの位置及び姿勢のうち少なくともいずれかの認識結果に応じて、実空間に位置する実オブジェクトの光学像に対して仮想オブジェクトの画像を重畳させることも可能となる。なお、シースルー型HMDの具体的な一例として、メガネのレンズに相当する部分を虚像光学系として構成した、所謂メガネ型のウェアラブルデバイスが挙げられる。
 ビデオシースルー型HMDは、ユーザの頭部または顔部に装着された場合に、ユーザの眼を覆うように装着され、ユーザの眼前にディスプレイ等の表示部が保持される。また、ビデオシースルー型HMDは、周囲の風景を撮像するための撮像部を有し、当該撮像部により撮像されたユーザの前方の風景の画像を表示部に表示させる。このような構成により、ビデオシースルー型HMDを装着したユーザは、外部の風景を直接視野に入れることは困難ではあるが、表示部に表示された画像により、外部の風景を確認することが可能となる。また、このときビデオシースルー型HMDは、例えば、AR技術に基づき、当該ビデオシースルー型HMDの位置及び姿勢のうち少なくともいずれかの認識結果に応じて、外部の風景の画像に対して仮想オブジェクトを重畳させてもよい。
 網膜投射型HMDは、ユーザの眼前に投影部が保持されており、当該投影部からユーザの眼に向けて、外部の風景に対して画像が重畳するように当該画像が投影される。より具体的には、網膜投射型HMDでは、ユーザの眼の網膜に対して、投影部から画像が直接投射され、当該画像が網膜上で結像する。このような構成により、近視や遠視のユーザの場合においても、より鮮明な画像を視聴することが可能となる。また、網膜投射型HMDを装着したユーザは、投影部から投影される画像を視聴している間も、外部の風景を視野に入れることが可能となる。このような構成により、網膜投射型HMDは、例えば、AR技術に基づき、当該網膜投射型HMDの位置や姿勢のうち少なくともいずれかの認識結果に応じて、実空間に位置する実オブジェクトの光学像に対して仮想オブジェクトの画像を重畳させることも可能となる。
 また、上記に説明した例以外にも、没入型HMDと呼ばれるHMDが挙げられる。没入型HMDは、ビデオシースルー型HMDと同様に、ユーザの眼を覆うように装着され、ユーザの眼前にディスプレイ等の表示部が保持される。そのため、没入型HMDを装着したユーザは、外部の風景(即ち、現実世界の風景)を直接視野に入れることが困難であり、表示部に表示された画像のみが視界に入ることとなる。このような構成により、没入型HMDは、画像を視聴しているユーザに対して没入感を与えることが可能となる。そのため、没入型HMDは、例えば、主にVR(Virtual Reality)技術に基づき情報を提示する場合に適用され得る。
 なお、表示端末10は、上述のHMDに限定されない。例えば、表示端末10は、表示部を備えるスマートフォン、タブレット端末、ウェアラブル端末、又はエージェントデバイス等の端末装置であってもよい。
 表示端末10は、ネットワーク30を介してクラウドサーバ20と接続されており、クラウドサーバ20と情報の送受信を行える。
 表示端末10では、本実施形態に係る情報処理装置により表示処理が行われる。例えば、情報処理装置は、表示端末10に搭載され、表示端末10の表示部に仮想オブジェクトを表示する表示処理を行う。以下では、情報処理装置が表示端末10に搭載されている例について説明するが、情報処理装置の搭載先は表示端末10に限定されず、任意の装置であってよい。例えば、情報処理装置は、クラウドサーバ20に搭載され、ネットワーク30を介して表示端末10における表示処理を制御してもよい。
 (2)クラウドサーバ20
 クラウドサーバ20は、表示端末10の表示処理に関する情報を記憶する機能を有するサーバ装置である。例えば、クラウドサーバ20は、環境情報を記憶する環境情報サーバである。
 クラウドサーバ20は、ネットワーク30を介して表示端末10と接続されており、表示端末10と情報の送受信を行える。クラウドサーバ20は、既に記憶している環境情報を、表示端末10から受信する環境情報で更新し得る。
 (3)ネットワーク30
 ネットワーク30は、表示端末10及びクラウドサーバ20を接続する機能を有する。ネットワーク30は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク30は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。また、ネットワーク30は、Wi-Fi(登録商標)、Bluetooth(登録商標)など無線通信網を含んでもよい。
 <2-2.機能構成>
 続いて、本開示の実施形態に係る表示端末10の機能構成について説明する。図3に示すように、本実施形態に係る表示端末10は、センサ部100、制御部110、通信部120、記憶部130、及び表示部140を備える。
 (1)センサ部100
 センサ部100は、制御部110における処理に用いられる情報をセンシングする機能を有する。センシング後、センサ部100は、各種センサがセンシングにより取得したセンシング情報を制御部110へ出力する。
 センサ部100は、多様なセンサ装置を備え得る。一例として、センサ部100は、図3に示すように、外向きカメラ101、加速度センサ103、ジャイロセンサ105、方位センサ107、及びGPS(Global Positioning System)センサ109を備え得る。センサ部100は、上述のセンサを用いてセンシングを行う。なお、センサ部100が備えるセンサ装置は上述の例に限定されず、他の任意のセンサ装置を備えてもよい。
 外向きカメラ101は、RGBカメラ等のレンズ系、駆動系、及び撮像素子を有し、画像(静止画像又は動画像)を撮像する撮像装置である。かかる撮像装置は、表示端末10の周辺を撮像可能に表示端末10に備えられることから、外向きカメラと称される。かかる構成により、センサ部100は、表示端末10の周辺の撮像画像を取得することができる。なお、ユーザが表示端末10を装着または携帯している場合、センサ部100が取得する表示端末10の周辺の撮像画像は、即ちユーザの周辺の撮像画像でもある。
 また、外向きカメラ101は、表示端末10が位置する実空間内の3次元情報のセンシングが可能な撮像装置であり得る。当該撮像装置の一例として、デプスカメラが挙げられる。デプスカメラは、デプスカメラの前方に位置するオブジェクトまでの距離情報を検出することにより、実空間の略全体の3次元情報を取得し得る。
 加速度センサ103は、加速度を取得する装置である。例えば、加速度センサ103は、対象が移動した際の速度の変化量である加速度を計測する。ジャイロセンサ105は、角速度を取得する装置である。例えば、ジャイロセンサ105は、対象の姿勢の変化量である角速度を計測する。加速度センサ103及びジャイロセンサ105により取得される情報は、以下では、「慣性情報」とも称される。かかる構成により、センサ部100は、表示端末10の慣性情報を取得することができる。なお、ユーザが表示端末10を装着または携帯している場合、センサ部100が取得する慣性情報は、即ちユーザの慣性情報でもある。
 方位センサ107は、方位に関する情報を取得する装置である。例えば、方位センサ107は、対象の位置における磁場の大きさや向きを測定する。方位センサ107により取得される情報は、以下では、「方位情報」とも称される。かかる構成により、センサ部100は、表示端末10の方位情報を取得することができる。なお、ユーザが表示端末10を装着または携帯している場合、センサ部100が取得する方位情報は、即ちユーザの方位情報でもある。
 GPSセンサ109は、位置情報を取得する装置である。例えば、GPSセンサ109は、GPS衛星からのGPS信号を受信することで、対象の緯度、経度及び高度を示す情報を測定する。GPSセンサ109により取得される情報は、以下では、「位置情報」とも称される。かかる構成により、センサ部100は、表示端末10の位置情報を取得することができる。なお、ユーザが表示端末10を装着または携帯している場合、センサ部100が取得する位置情報は、即ちユーザの位置情報でもある。
 (2)制御部110
 制御部110は、表示端末10全体の動作を制御する機能を有する情報処理装置である。当該機能を実現するために、制御部110は、図3に示すように、自己位置推定部111、環境情報取得部113、環境情報推定部115、配置処理部117、及び描画部119を有する。
 (2-1.自己位置推定部111)
 自己位置推定部111は、表示端末10の自己位置を推定する機能を有する。例えば、自己位置推定部111は、センサ部100から入力されるセンシング情報に基づき、表示端末10の自己位置を推定する。推定後、自己位置推定部111は、推定した表示端末10の自己位置を示す自己位置情報を、環境情報取得部113及び環境情報推定部115へ出力する。
 自己位置推定部111による表示端末10の自己位置の推定は、多様な手法により行われ得る。例えば、自己位置推定部111は、センサ部100の外向きカメラ101が取得した撮像画像に基づき、表示端末10の自己位置の推定を行ってもよい。一例として、自己位置推定部111は、SLAM(Simultaneous Localization and Mapping)により、撮像画像から自己位置の推定と周辺の地図の作成を同時に行う。
 また、自己位置推定部111は、センサ部100の加速度センサ103及びジャイロセンサ105が取得した慣性情報に基づき、表示端末10の自己位置の推定を行ってもよい。一例として、自己位置推定部111は、自律航法(Dead Reckoning)により、慣性情報を積算して相対移動量を算出することで、表示端末10の自己位置を推定する。
 また、自己位置推定部111は、慣性情報とセンサ部100の方位センサ107が取得した方位情報に基づき、表示端末10の自己位置の推定を行ってもよい。一例として、自己位置推定部111は、方位情報から表示端末10の移動方向を取得し、当該移動方向への移動量を慣性情報から算出することで、表示端末10の自己位置を推定する。
 また、自己位置推定部111は、センサ部100のGPSセンサ109が取得した位置情報に基づき、表示端末10の自己位置の推定を行ってもよい。一例として、自己位置推定部111は、位置情報に含まれる緯度、経度及び高度により示される位置を表示端末10の自己位置として推定する。
 なお、自己位置推定部111は、上述の複数の手法を組み合わせて表示端末10の自己位置を推定してもよい。上述の複数の手法を組み合わせることで、自己位置推定部111は、表示端末10の自己位置の推定精度を向上することができる。
 (2-2.環境情報取得部113)
 環境情報取得部113は、環境情報を取得する機能を有する。例えば、環境情報取得部113は、クラウドサーバ20に記憶されている環境情報を、通信部120及びネットワーク30を介して取得する。この時、環境情報取得部113は、自己位置推定部111から入力された表示端末10の自己位置をクラウドサーバ20へ送信することで、表示端末10の自己位置の周辺の環境情報をクラウドサーバ20から受信する。環境情報の受信後、環境情報取得部113は、受信した環境情報を配置処理部117へ出力する。
 (2-3.環境情報推定部115)
 環境情報推定部115は、環境情報を推定する機能を有する。例えば、環境情報推定部115は、センサ部100が取得したセンシング情報に基づき、表示端末10の周辺の環境情報を推定する。環境情報の推定後、環境情報推定部115は、推定した環境情報を配置処理部117へ出力する。
 例えば、環境情報推定部115は、センサ部100の外向きカメラ101が取得する撮像画像に対して画像認識処理を行い、認識結果に基づき、表示端末10の周辺の環境情報を推定する。また、環境情報推定部115は、外向きカメラ101が取得する3次元情報に基づき、表示端末10の周辺の環境情報を推定してもよい。かかる構成により、情報処理装置は、例えば、ネットワークの接続が不安定でクラウドサーバ20から環境情報が取得できない状態であっても、推定した環境情報に基づき、仮想オブジェクトの表示処理を継続することができる。
 また、環境情報推定部115は、外向きカメラ101が取得した撮像画像と3次元画像とを組み合わせて環境情報の推定を行ってもよい。撮像画像と3次元画像とを組み合わせて環境情報の推定を行うことにより、環境情報推定部115は、環境情報の推定精度を向上することができる。
 なお、環境情報推定部115は、センシング情報が取得されたタイミングで環境情報の推定を行うことで、リアルタイムな環境情報を推定することができる。
 (2-4.配置処理部117)
 配置処理部117は、仮想オブジェクトの配置処理(更新処理)を行う機能を有する。例えば、配置処理部117は、優先度に基づき、仮想オブジェクトの配置を行う。具体的に、配置処理部117は、まず、優先度に基づき、仮想オブジェクトを配置する順番を決定する。順番の決定後、配置処理部117は、決定した順番に従って環境情報をARアプリと共有し、ARアプリに仮想オブジェクトの配置位置を決定させる。ARアプリによる配置位置の決定後、配置処理部117は、ARアプリから配置情報を受信し、受信した配置情報を環境情報に追加することで、環境情報を更新する。なお、配置処理部117は、優先度の設定に関する処理も行い得る。以下、配置処理部117が行う処理について、順次詳細に説明する。
 (2-4-1.優先度の種類)
 本実施形態に係る優先度は、ARアプリ優先度(第1の優先度)と仮想オブジェクト優先度(第2の優先度)の2種類の優先度を含み得る。ARアプリ優先度は、ARアプリに対して設定される優先度である。仮想オブジェクト優先度は、ARアプリの区別をせずに仮想オブジェクトに対して設定される優先度である。配置処理部117は、ARアプリ優先度または仮想オブジェクト優先度の少なくとも一方に基づき、仮想オブジェクトを配置する。
 ARアプリ優先度に基づき仮想オブジェクトを配置する場合、配置処理部117は、ARアプリごとのARアプリ優先度を比較し、ARアプリ優先度が高いARアプリの仮想オブジェクトを優先的に配置する。例えば、ARアプリ1、ARアプリ2、ARアプリ3が同時に実行されるとする。この時、配置処理部117は、ARアプリ1の仮想オブジェクト、ARアプリ2の仮想オブジェクト、ARアプリ3の仮想オブジェクトの順に、仮想オブジェクトを配置する。なお、1つのARアプリが複数の仮想オブジェクトを有する場合、ARアプリ内で仮想オブジェクトごとにさらに優先度が設定されてもよい。
 仮想オブジェクト優先度に基づき仮想オブジェクトを配置する場合、配置処理部117は、仮想オブジェクトごとの仮想オブジェクト優先度を比較し、仮想オブジェクト優先度が高い仮想オブジェクトを優先的に配置する。例えば、ARアプリ1は、3番目に優先度の高い仮想オブジェクト1と、5番目に優先度の高い仮想オブジェクト2を有しているとする。また、ARアプリ2は、最も優先度の高い仮想オブジェクト3と、6番目に優先度の高い仮想オブジェクト4を有しているとする。また、ARアプリ3は、4番目に優先度の高い仮想オブジェクト5と、2番目に優先度の高い仮想オブジェクト6を有しているとする。この時、配置処理部117は、仮想オブジェクト3、仮想オブジェクト6、仮想オブジェクト1、仮想オブジェクト5、仮想オブジェクト2、仮想オブジェクト4の順に、仮想オブジェクトを配置する。
 なお、表示端末10に搭載されたOS(Operating System)の通知機能による表示等、ARアプリのロジックにより実空間に配置される仮想オブジェクトではないものには、優先度は設定されなくてよい。
 (2-4-2.優先度の設定)
 優先度は、例えば、ユーザによってあらかじめ任意に設定され得る。この時、同一の優先度が設定された場合、配置処理部117は、どの仮想オブジェクトを優先して配置すればよいかの判定が困難となる。そのため、複数のARアプリのARアプリ優先度、及び複数の仮想オブジェクトの仮想オブジェクト優先度には、異なる優先度が設定されることが望ましい。同一の優先度が設定された場合、配置処理部117は、優先度を再設定してもよい。
 例えば、配置処理部117は、ARアプリにより設定された仮想オブジェクトの配置位置を示す座標の指定方法に基づき、仮想オブジェクトの優先度を設定する。具体的に、配置処理部117は、座標の指定方法が絶対座標である仮想オブジェクトの優先度を、座標の指定方法が相対座標である仮想オブジェクトの優先度よりも高く設定する。絶対座標は、絶対座標系における原点を基準とした特定の位置を示す座標である。そのため、絶対座標は、固定された位置を示す。よって、絶対座標で指定された仮想オブジェクトは、指定された座標に配置されることが望ましい。
 一方、相対座標は、任意の基準点から所定の距離だけ離れた位置の座標を示す。相対座標は、例えば、相対座標系におけるユーザの位置を原点とした特定の位置を示す座標である。そのため、相対座標は、ユーザが移動した場合、変化し得る位置を示す。よって、相対座標で指定された仮想オブジェクトは、指定された座標から移動することが許容され得る。
 また、配置処理部117は、仮想オブジェクトの移動の自由度に基づき、仮想オブジェクトの優先度を設定してもよい。仮想オブジェクトの移動の自由度は、仮想オブジェクトが移動可能な空間の次元数を示す。例えば、仮想オブジェクトが1次元空間を移動可能な場合、仮想オブジェクトの自由度は1である。絶対座標における自由度1の仮想オブジェクトは、例えば、1次元空間を自由に移動するゲームアプリのキャラクタである。相対座標における自由度1の仮想オブジェクトは、例えば、ユーザの頭を原点とした球座標系にて、半径Rと角度θは固定されているが角度φは変更可能な動画再生画面である。
 また、仮想オブジェクトが2次元空間を移動可能な場合、仮想オブジェクトの自由度は2である。絶対座標における自由度2の仮想オブジェクトは、例えば、2次元空間を自由に移動するゲームアプリのキャラクタである。相対座標における自由度2の仮想オブジェクトは、例えば、ユーザの頭を原点とした球座標系にて、半径Rは固定されているが角度θと角度φは変更可能な動画再生画面である。
 また、仮想オブジェクトが3次元空間を移動可能な場合、仮想オブジェクトの自由度は3である。絶対座標における自由度3の仮想オブジェクトは、例えば、3次元空間を自由に移動するゲームアプリのキャラクタである。相対座標における自由度3の仮想オブジェクトは、例えば、ユーザの頭を原点とした球座標系にて、半径R、角度θ、及び角度φの全てが最適に調整されて配置される広告である。
 また、仮想オブジェクトが移動せずに静止している場合、仮想オブジェクトの自由度は0である。絶対座標における自由度0の仮想オブジェクトは、例えば、固定された位置に表示される店舗の看板である。相対座標における自由度0の仮想オブジェクトは、例えば、ユーザとの位置関係を一定に保ち、常にユーザの手に追従するメニューである。
 配置処理部117は、移動の自由度が低い仮想オブジェクトの優先度を、移動の自由度が高い仮想オブジェクトの優先度よりも高く設定する。例えば、ユーザが、自由度0の仮想オブジェクトと自由度3の仮想オブジェクトの優先度を同一に設定したとする。この場合、配置処理部117は、自由度0の仮想オブジェクトの優先度が自由度3の仮想オブジェクトの優先度よりも高くなるように、優先度を再設定する。
 なお、優先度が設定されていない場合、配置処理部117は、座標の指定方法と移動の自由度に基づき、優先度を設定してもよい。また、優先度が設定されていない場合、配置処理部117は、優先度を自動的に最も低く設定してもよい。
 -優先度の変更
 また、優先度は、ユーザによる表示端末10への入力に応じて、配置処理部117により変更されてもよい。例えば、優先度は、ユーザの動的な操作に応じて変更されてもよい。一例として、ARアプリの優先度の入れ替えを示す操作がユーザにより入力された場合、配置処理部117は、当該動作により指定されたARアプリの優先度を入れ替える。例えば、ユーザが、バックグランドで実行されているARアプリをフォアグラウンドで実行されているARアプリと入れ替える操作を行ったとする。この時、配置処理部117は、バックグランドで実行されているARアプリの優先度とフォアグラウンドで実行されているARアプリの優先度とを入れ替える。
 また、ユーザが優先度を変更したいARアプリの仮想オブジェクトに視線を向け、ジェスチャにより当該仮想オブジェクトを前方に呼ぶ動作を行った場合、配置処理部117は、前方に呼ばれたARアプリの優先度を最も高く変更してもよい。一方、ユーザが優先度を変更したいARアプリの仮想オブジェクトに視線を向け、ジェスチャにより当該仮想オブジェクトを後方に追いやる動作を行った場合、配置処理部117は、後方に追いやられたARアプリの優先度を最も低く変更してもよい。
 また、ユーザが特定のARアプリに特有の操作を入力した場合、配置処理部117は、当該ARアプリの優先度を最も高く変更してもよい。
 (2-4-3.仮想オブジェクトの配置)
 -自己位置と環境情報の共有
 配置処理部117は、設定した優先度が高い順に、ARアプリに表示端末10の自己位置と環境情報を共有する。例えば、配置処理部117は、自己位置推定部111が推定した表示端末10の自己位置をARアプリに共有する。かかる構成により、ARアプリは、表示端末10の自己位置に応じたARアプリデータをARアプリサーバから取得することができる。ARアプリデータは、例えば、仮想オブジェクトの形状や初期配置位置等の情報を含むデータである。また、ARアプリデータには、ARアプリの実行中に出力される音声に関するサウンドデータや、ユーザに提示される触覚に関するハプティックデータが含まれてもよい。
 また、例えば、ARアプリ1に環境情報を共有する場合、配置処理部117は、環境情報取得部113または環境情報推定部115から入力される環境情報を、環境情報0としてARアプリ1に共有する。なお、配置処理部117は、環境情報取得部113及び環境情報推定部115の両方から環境情報を取得し、取得した2つの環境情報をマージした環境情報を、環境情報0としてARアプリ1に共有してもよい。また、ARアプリ1以外のARアプリに環境情報を共有する場合、配置処理部117は、配置処理後の環境情報をARアプリ1以外のARアプリに共有する。かかる構成により、ARアプリは、他のARアプリと直接やりとりをすることなく、他のARアプリの仮想オブジェクトの配置位置を確認することができる。ARアプリ1が参照する環境情報のデータ形式と、ARアプリ1以外のアプリが参照する環境情報のデータ形式は、同一であると見做されてよい。
 -配置位置の決定
 仮想オブジェクトの配置位置は、ARアプリ側のロジックにより決定され得る。例えば、ARアプリは、配置処理部117から共有される環境情報を参照して、仮想オブジェクトの配置位置を決定する。決定後、ARアプリは、仮想オブジェクトの配置位置を含む配置情報を配置処理部117へ出力する。ARアプリは、環境情報を参照することで他のARアプリの仮想オブジェクトの配置位置を確認することができるため、他のARアプリの仮想オブジェクトと重ならない位置に、仮想オブジェクトの配置位置を決定することができる。
 -仮想オブジェクトの配置
 配置処理部117は、ARアプリから入力される配置情報を環境情報に追加することで、環境情報が示す空間に仮想オブジェクトを配置する。例えば、配置処理部117は、ARアプリ1の仮想オブジェクトを配置する際に、ARアプリ1から入力される配置情報を環境情報0に追加することで、ARアプリ1の仮想オブジェクトを配置する。ARアプリ1の配置情報が追加されることで、環境情報0は、環境情報1に更新される。
 また、配置処理部117は、ARアプリ2の仮想オブジェクトを配置する際に、環境情報1に基づき、ARアプリ2の仮想オブジェクトの初期配置位置にARアプリ1の仮想オブジェクトが配置されているか否かに応じて、ARアプリ2の仮想オブジェクトを配置する。なお、仮想オブジェクトの初期配置位置に、他のARアプリの仮想オブジェクトが配置されているか否かは、ARアプリ側のロジックにより判定される。例えば、ARアプリ2は、配置処理部117から共有される環境情報1を参照して、ARアプリ2の仮想オブジェクトの初期配置位置にARアプリ1の仮想オブジェクトが配置されている否かを判定する。
 ARアプリ2の仮想オブジェクトの初期配置位置にARアプリ1の仮想オブジェクトが配置されている場合、ARアプリ2は、初期配置位置以外のARアプリ1の仮想オブジェクトと重ならない位置に、仮想オブジェクトを配置すると決定する。一方、ARアプリ2の仮想オブジェクトの初期配置位置にARアプリ1の仮想オブジェクトが配置されていない場合、ARアプリ2は、初期配置位置に仮想オブジェクトを配置すると決定する。配置位置の決定後、ARアプリ2は、配置情報を配置処理部117へ出力する。
 そして、配置処理部117は、ARアプリ2から入力される配置情報を環境情報1に追加することで、ARアプリ2の仮想オブジェクトを配置する。ARアプリ2の配置情報が追加されることで、環境情報1は、環境情報2に更新される。すなわち、ARアプリ2は、ARアプリ1の仮想オブジェクトの配置を直接制御することはできないものの、ARアプリ1の仮想オブジェクトを環境情報1として認識することで、ARアプリ2の仮想オブジェクトを適切に配置することができる。かかる構成により、配置処理部117は、複数の仮想オブジェクトが重なることなく、仮想オブジェクトを配置することができる。
 (2-5.描画部119)
 描画部119は、仮想オブジェクトを描画する機能を有する。例えば、描画部119は、配置処理部117から入力される環境情報に基づき、仮想オブジェクトを描画する。具体的に、描画部119は、環境情報を参照して、環境情報に配置された仮想オブジェクトを、実空間に重畳するように描画した画像を生成する。そして、描画部119は、生成した画像を表示部140へ出力する。
 (3)通信部120
 通信部120は、外部装置と通信を行う機能を有する。通信部120は、例えば、外部装置との通信において、外部装置から受信する情報を制御部110へ出力する。具体的に、通信部120は、ネットワーク30を介したクラウドサーバ20との通信において、クラウドサーバ20から環境情報を受信し、制御部110へ出力する。
 通信部120は、例えば、外部装置との通信において、制御部110から入力される情報を外部装置へ送信する。具体的に、通信部120は、環境情報の取得時に、制御部110の環境情報取得部113から入力される表示端末10の自己位置情報をクラウドサーバ20へ送信する。
 (4)記憶部130
 記憶部130は、表示端末10における処理に関する情報を記憶する機能を有する。例えば、記憶部130は、環境情報を記憶し得る。一例として、記憶部130は、環境情報取得部113が取得した環境情報、環境情報推定部115が推定した環境情報、及び配置処理部が更新した環境情報を記憶し得る。
 なお、記憶部130が記憶する情報は、上述の例に限定されない。例えば、記憶部130は、センサ部100のセンシング情報を記憶してもよい。また、記憶部130は、各種アプリケーション等のプログラムを記憶してもよい。
 (5)表示部140
 表示部140は、制御部110からの入力に応じた出力を行う機能を有する。例えば、表示部140は、制御部110から入力される画像を表示する。一例として、表示部140は、制御部110の描画部119が生成した、実空間に対して仮想オブジェクトが重畳された画像を表示する。
<<3.処理例>>
 以上、本実施形態に係る構成例について説明した。続いて、本実施形態に係る処理例について説明する。以下では、一例として、ARアプリ1とARアプリ2が同時に実行される際に、各々のARアプリの仮想オブジェクトが描画された画像が生成されるまでの処理(描画処理)例の説明を行う。
 (1)メイン処理
 まず、図4を参照しながら、描画処理のメイン処理について説明する。図4は、本開示の実施形態に係る仮想オブジェクトの描画処理におけるメイン処理の流れを示すフローチャートである。以下では、環境情報がクラウドサーバ20から取得される例について説明する。
 まず、表示端末10の制御部110は、センシング情報に基づき、自己位置を推定する(S200)。次いで、制御部110は、クラウドサーバ20から環境情報を取得する(S202)。次いで、制御部110は、実行される複数のARアプリの優先度に基づき、仮想オブジェクトの配置順を決定する(S204)。次いで、制御部110は、配置処理を実行し、仮想オブジェクトを配置する(S206)。そして、制御部110は、決定した位置に仮想オブジェクトを描画した画像を生成する(S208)。
 (2)配置処理
 続いて、図5を参照しながら、配置処理の詳細について説明する。図5は、本開示の実施形態に係る配置処理の流れを示すフローチャートである。以下では、Nは、同時に実行されるARアプリの数を示している。nは、仮想オブジェクトの配置処理が行われているARアプリの番号を示している。Mは、ARアプリnの仮想オブジェクトの数を示している。mは、配置処理が行われている仮想オブジェクトの番号を示している。
 まず、制御部110は、nを0で初期化する(S2061)。次いで、制御部110は、nが同時に実行されるARアプリ数Nよりも小さいか否かを確認する(S2062)。
 nがARアプリ数Nよりも小さい場合(S2062/YES)、制御部110は、mを0で初期化する。次いで、制御部110は、mがARアプリnの仮想オブジェクト数Mよりも小さいか否かを確認する(S2064)。
 mが、仮想オブジェクト数Mよりも小さい場合(S2064/YES)、制御部110は、ARアプリnの仮想オブジェクトmの配置位置をARアプリnに決定させる。次いで、制御部110は、環境情報に仮想オブジェクトmを配置する(S2066)。配置後、制御部110は、mをインクリメントする(S2067)。インクリメント後、制御部110は、再度、mがARアプリnの仮想オブジェクト数Mよりも小さいか否かを確認する(S2064)。
 mが、仮想オブジェクト数Mよりも小さい場合(S2064/YES)、制御部110は、mが仮想オブジェクト数Mより大きくなるまで、S2064からS2067の処理を繰り返す。
 mが、仮想オブジェクト数Mよりも大きい場合(S2064/NO)、制御部110は、nをインクリメントする(S2068)。インクリメント後、制御部110は、再度、nが同時に実行されるARアプリ数Nよりも小さいか否かを確認する(S2062)。
 nがARアプリ数Nよりも小さい場合(S2062/YES)、制御部110は、nがARアプリ数Nより大きくなるまで、S2062からS2068の処理を繰り返す。
 nがARアプリ数Nよりも大きい場合(S2062/NO)、制御部110は、配置処理を終了する。
 (3)データフロー
 続いて、図6を参照しながら、仮想オブジェクトの描画処理におけるデータの流れについて説明する。図6は、本開示の実施形態に係るデータの流れを示すフローチャートである。
 まず、センサ部100は、センシング情報を自己位置推定部111へ出力する。環境情報推定部115が環境情報を推定する場合、センサ部100は、センシング情報を環境情報推定部115へも出力する。
 自己位置推定部111は、センサ部100から入力されたセンシング情報に基づき、表示端末10の自己位置を推定する。環境情報取得部113が環境情報を取得する場合、自己位置推定部111は、推定した自己位置を環境情報取得部113へ出力する。環境情報推定部115が環境情報を推定する場合、自己位置推定部111は、推定した自己位置を環境情報推定部115へ出力する。
 環境情報取得部113は、自己位置推定部111から入力された自己位置を環境情報サーバ210へ送信する。自己位置を受信した環境情報サーバ210は、自己位置に応じた環境情報0を環境情報取得部113へ送信する。環境情報0を受信した環境情報取得部113は、取得した環境情報0と自己位置を配置処理部117へ出力する。
 環境情報推定部115は、センサ部100から入力されたセンシング情報に基づき、環境情報0を推定する。推定後、環境情報推定部115は、推定した環境情報0と自己位置推定部111から入力された自己位置を配置処理部117へ出力する。
 配置処理部117は、環境情報取得部113または環境情報推定部115から入力された環境情報0と自己位置をARアプリ1へ出力する。環境情報0と自己位置を入力されたARアプリ1は、入力された自己位置をARアプリ1サーバ221へ送信する。自己位置を受信したARアプリ1サーバ221は、入力された自己位置に応じた仮想オブジェクトの形状や初期配置位置等を含むARアプリ1データをARアプリ1へ送信する。ARアプリ1データを受信したARアプリ1は、環境情報0とARアプリ1データに基づき、仮想オブジェクトの配置位置を決定する。決定後、ARアプリ1は、配置位置を含む配置情報1を配置処理部117へ出力する。
 配置処理部117は、ARアプリ1から入力された配置情報1を環境情報0に追加することで、環境情報0を環境情報1へ更新する。更新後、配置処理部117は、環境情報1と自己位置をARアプリ2へ出力する。環境情報1と自己位置を入力されたARアプリ2は、入力された自己位置をARアプリ2サーバ222へ送信する。自己位置を受信したARアプリ2サーバ222は、入力された自己位置に応じた仮想オブジェクトの形状や初期配置位置等を含むARアプリ2データをARアプリ2へ送信する。ARアプリ2データを受信したARアプリ2は、環境情報1とARアプリ2データに基づき、仮想オブジェクトの配置位置を決定する。決定後、ARアプリ2は、配置位置を含む配置情報2を配置処理部117へ出力する。
 配置処理部117は、ARアプリ2から入力された配置情報2を環境情報1に追加することで、環境情報1を環境情報2へ更新する。更新後、配置処理部117は、環境情報2を描画部119へ出力する。
 描画部119は、配置処理部117から入力された環境情報2に基づき、仮想オブジェクトを描画した画像を生成する。生成後、描画部119は、生成した画像を表示部140へ出力する。
<<4.具体例>>
 以上、本実施形態に係る処理例について説明した。続いて、本実施形態に係る具体例について説明する。以下では、一例として、ゲームアプリ(ARアプリ1)と道案内アプリ(ARアプリ2)が同時に実行される例の説明を行う。なお、ARアプリの種類は、ゲームアプリと道案内アプリに限定されず、任意の種類のARアプリであってよい。例えば、ARアプリは、看板やポスター等を表示する広告アプリであってもよい。また、以下では、環境情報取得部113が取得した環境情報0が用いられることとする。
 <4-1.配置処理の概要>
 まず、図7を参照しながら、本実施形態の具体例における配置処理の概要について説明する。図7は、本開示の実施形態に係る具体例における仮想オブジェクトの配置処理の概要を示す図である。
 ゲームアプリと道案内アプリが同時に実行される前の実空間の環境が、状態T21であるとする。状態T21では、実空間に実オブジェクトとして木42が存在する。状態T21において、ゲームアプリと道案内アプリが同時に実行されると、環境情報取得部113は、状態T21における実空間の3次元空間を示す環境情報0を取得する。環境情報0の取得後、配置処理部117は、取得した環境情報0をゲームアプリに共有する。
 ゲームアプリは、共有された環境情報0を参照して、ゲームアプリの仮想オブジェクトであるキャラクタ52の配置位置を決定する(S300)。例えば、ゲームアプリは、図7に示す状態T22のように、ゲームアプリのキャラクタ52を配置すると決定する。ゲームアプリによる配置位置の決定後、配置処理部117は、環境情報0にゲームアプリのキャラクタ52の配置情報を追加し、状態T22における実空間の環境を示す環境情報1に更新する(S302)。
 次いで、環境情報1は、道案内アプリに共有される。道案内アプリは、共有された環境情報1を参照して、道案内アプリの仮想オブジェクトである矢印62と矢印63の配置位置を決定する(S304)。例えば、道案内アプリは、図7に示す状態T23のように、道案内アプリの矢印62と矢印63を配置すると決定する。道案内アプリによる配置位置の決定後、配置処理部117は、環境情報1に道案内アプリの矢印62と矢印63の配置情報を追加することで、環境情報1を状態T23における実空間の環境を示す環境情報2に更新する(S306)。
 <4-2.仮想オブジェクトの配置例>
 次に、図8を参照しながら、本実施形態の具体例における仮想オブジェクトの配置例について説明する。図8は、本開示の実施形態に係る具体例における仮想オブジェクトの配置例を示す図である。
 図8には、一例として、ゲームアプリと道案内アプリが同時に実行された際の、ゲームアプリの静的な仮想オブジェクトであるキャラクタ52と、道案内アプリの静的な仮想オブジェクトである矢印62と矢印63の表示例が示されている。ここでいう静的な仮想オブジェクトは、初期配置位置から移動しない仮想オブジェクトである。
 図8に示す例において、配置処理部117は、道案内アプリに関する配置処理時、ゲームアプリのキャラクタ52の配置位置を含む環境情報を道案内アプリに共有する。道案内アプリは、配置処理部117から共有された環境情報を参照して、キャラクタ52と重ならない位置に矢印62と矢印63の位置を決定する。道案内アプリによる矢印62と矢印63の配置位置の決定後、配置処理部117は、道案内アプリが決定した矢印62と矢印63の配置位置を環境情報に追加する。そして、描画部119は、更新した環境情報に基づき、本実施形態に係る表示端末10に仮想オブジェクトを表示させる。
 道案内アプリは、矢印62と矢印63の配置位置の決定時、環境情報に含まれるゲームアプリのキャラクタ52の配置位置と、矢印62と矢印63の初期配置位置を比較する。例えば、環境情報に含まれるゲームアプリのキャラクタ52の配置位置が図8に示すキャラクタ52の位置であり、矢印62の初期配置位置が図8に示す矢印62の位置であったとする。図8に示す矢印62の位置は、矢印62がキャラクタ52と重ならない位置である。よって、道案内アプリは、図8に示す矢印62の位置に、矢印62をそのまま配置すると決定する。
 また、矢印63の初期配置位置が図8に示す矢印63aの位置であったとする。図8に示す矢印63aの位置は、矢印63がキャラクタ52と重なる位置である。よって、道案内アプリは、矢印63とキャラクタ52が重ならない位置に矢印63を配置すると決定する。例えば、道案内アプリは、図8に示す矢印63bの位置に、矢印63を配置すると決定する。
 <4-3.処理例>
 次に、図9を参照しながら、本実施形態の具体例における描画処理の流れについて説明する。図9は、本開示の実施形態に係る具体例における描画処理の流れを示すフローチャートである。
 まず、自己位置推定部111は、センシング情報に基づき、自己位置を推定する(S400)。次いで、環境情報取得部113は、クラウドサーバ20から環境情報を取得する(S402)。次いで、配置処理部117は、実行される複数のARアプリの優先度に基づき、仮想オブジェクトの配置順を決定する(S404)。次いで、配置処理部117は、仮想オブジェクトの配置処理を実行し、仮想オブジェクトを配置する(S406)。
 配置処理では、まず、配置処理部117は、環境情報0に基づき、ゲームアプリのキャラクタの配置位置を決定する(S4060)。次いで、配置処理部117は、環境情報0にキャラクタの配置情報を追加し、環境情報0を環境情報1に更新する(S4062)。次いで、配置処理部117は、環境情報1に基づき、道案内アプリの矢印の配置位置を決定する(S4064)。次いで、配置処理部117は、環境情報1に矢印の配置情報を追加し、環境情報1を環境情報2に更新する(S4066)。
 配置処理後、描画部119は、環境情報2を参照して、配置位置に仮想オブジェクトを描画した画像を生成し(S408)、表示部140に表示させる。
<<5.変形例>>
 以下では、本開示の実施形態の変形例を説明する。なお、以下に説明する変形例は、単独で本開示の実施形態に適用されてもよいし、組み合わせで本開示の実施形態に適用されてもよい。また、変形例は、本開示の実施形態で説明した構成に代えて適用されてもよいし、本開示の実施形態で説明した構成に対して追加的に適用されてもよい。
 (1)第1の変形例
 上述の実施形態では、環境情報の更新時に、環境情報に仮想オブジェクトの配置位置を示す配置情報が追加される例について説明した。仮想オブジェクトが動的な仮想オブジェクトである場合、環境情報には、仮想オブジェクトの移動範囲を示す移動範囲情報も含めた配置情報が追加されてもよい。ここでいう動的な仮想オブジェクトは、初期配置位置から移動する仮想オブジェクトである。
 例えば、ARアプリ1の仮想オブジェクトが動的な仮想オブジェクトであり、3次元空間内を移動し得るとする。この場合、ARアプリ1は、仮想オブジェクトの配置位置の決定後、3次元空間における仮想オブジェクトの移動範囲を示す移動範囲情報を含めた配置情報を、情報処理装置に共有する。ARアプリ1は、配置情報に移動範囲情報を含めることで、仮想オブジェクトが移動する範囲の予約を行うことができる。共有された配置情報に移動範囲情報が含まれる場合、配置処理部117は、移動範囲情報に基づき、ARアプリ1の仮想オブジェクトの移動範囲の外にARアプリ2の仮想オブジェクトを配置する。かかる構成により、情報処理装置は、動的な仮想オブジェクトの移動を考慮した上で、各々の仮想オブジェクトが重なることなく、仮想オブジェクトを配置することができる。以下、かかる構成について順次詳細に説明する。なお、以下では、環境情報取得部113が取得した環境情報0が用いられることとする。
 (1-1.配置処理の概要)
 まず、図10を参照しながら、本実施形態の変形例における配置処理の概要について説明する。図10は、本開示の実施形態に係る変形例における仮想オブジェクトの配置処理の概要を示す図である。
 ゲームアプリと道案内アプリが同時に実行される前の実空間の環境が、状態T31であるとする。状態T31では、実空間に実オブジェクトとして木42が存在する。状態T31において、ゲームアプリと道案内アプリが同時に実行されると、環境情報取得部113は、状態T31における実空間の3次元空間を示す環境情報0を取得する。環境情報0の取得後、配置処理部117は、取得した環境情報0をゲームアプリに共有する。
 ゲームアプリは、共有された環境情報0を参照して、ゲームアプリの仮想オブジェクトであるキャラクタ52の配置位置を決定する(S500)。例えば、ゲームアプリは、図10に示す状態T32のように、ゲームアプリのキャラクタ52及び移動範囲53を配置すると決定する。ゲームアプリによる配置位置の決定後、配置処理部117は、環境情報0にゲームアプリのキャラクタ52と移動範囲53の配置情報を追加し、状態T32における実空間の環境を示す環境情報1に更新する(S502)。
 次いで、環境情報1は、道案内アプリに共有される。道案内アプリは、共有された環境情報1を参照して、道案内アプリの仮想オブジェクトである矢印62と矢印63の配置位置を決定する(S504)。例えば、道案内アプリは、図10に示す状態T33のように、道案内アプリの矢印62と矢印63を配置すると決定する。道案内アプリによる配置位置の決定後、配置処理部117は、環境情報1に道案内アプリの矢印62と矢印63の配置情報を追加することで、環境情報1を状態T33における実空間の環境を示す環境情報2に更新する(S506)。
 なお、配置処理部117は、移動範囲53を環境情報に配置せず、ARアプリ2が参照できるように移動範囲情報を環境情報に含めるだけでもよい。また、移動範囲53を仮想オブジェクトとして環境情報に配置する場合、配置処理部117は、描画されない仮想オブジェクトとして移動範囲53を配置する。
 (1-2.仮想オブジェクトの配置例)
 次に、図11を参照しながら、本実施形態の変形例における仮想オブジェクトの配置例について説明する。図11は、本開示の実施形態に係る変形例における仮想オブジェクトの配置例を示す図である。
 図11には、一例として、ゲームアプリと道案内アプリが同時に実行された際の、ゲームアプリの動的な仮想オブジェクトであるキャラクタ52と、道案内アプリの静的な仮想オブジェクトである矢印62と矢印63の表示例が示されている。
 図11に示す例において、配置処理部117は、道案内アプリに関する配置処理時、ゲームアプリのキャラクタ52の配置位置を含む環境情報を道案内アプリに共有する。道案内アプリは、配置処理部117から共有された環境情報を参照して、キャラクタ52及び移動範囲53と重ならない位置に矢印62と矢印63の配置位置を決定する。道案内アプリによる矢印62と矢印63の配置位置の決定後、配置処理部117は、道案内アプリが決定した矢印62と矢印63の配置位置を環境情報に追加する。そして、描画部119は、更新した環境情報に基づき、本実施形態に係る表示端末10に仮想オブジェクトを表示させる。
 道案内アプリは、矢印62と矢印63の配置位置の決定時、環境情報に含まれるゲームアプリのキャラクタ52の配置位置及び移動範囲53と、矢印62と矢印63の初期配置位置を比較する。例えば、環境情報に含まれるゲームアプリのキャラクタ52の配置位置が図8に示すキャラクタ52の位置であり、矢印62の初期配置位置が図11に示す矢印62の位置であったとする。図11に示す矢印62の位置は、矢印62がキャラクタ52と重ならない位置である。よって、道案内アプリは、図11に示す矢印62の位置に、矢印62をそのまま配置すると決定する。
 また、矢印63の初期配置位置が図11に示す矢印63aの位置であったとする。図11に示す矢印63aの位置は、矢印63がキャラクタ52と重なる位置である。よって、道案内アプリは、矢印63とキャラクタ52が重ならない位置に矢印63を配置すると決定する。例えば、道案内アプリは、図11に示す矢印63bの位置に、矢印63を配置すると決定する。しかしながら、図11に示す矢印63bの位置は、矢印63がキャラクタ52の移動範囲53と重なる位置である。よって、道案内アプリは、矢印63と移動範囲53が重ならない位置に矢印63を配置すると決定する。例えば、道案内アプリは、図11に示す矢印63cの位置に、矢印63を配置すると決定する。
 (1-3.処理例)
 次に、図12を参照しながら、本実施形態の変形例における描画処理の流れについて説明する。図12は、本開示の実施形態に係る変形例における描画処理の流れを示すフローチャートである。
 まず、自己位置推定部111は、センシング情報に基づき、自己位置を推定する(S600)。次いで、環境情報取得部113は、クラウドサーバ20から環境情報を取得する(S602)。次いで、配置処理部117は、実行される複数のARアプリの優先度に基づき、仮想オブジェクトの配置順を決定する(S604)。次いで、配置処理部117は、仮想オブジェクトの配置処理を実行し、仮想オブジェクトを配置する(S606)。
 配置処理では、まず、配置処理部117は、環境情報0をゲームアプリに共有し、ゲームアプリにキャラクタの配置位置の決定(S6060)、及びキャラクタの移動範囲の予約(S6062)を行わせる。次いで、配置処理部117は、キャラクタの配置位置及び移動範囲情報を含む配置情報を環境情報0に追加し、環境情報0を環境情報1に更新する(S6064)。次いで、配置処理部117は、環境情報1を道案内アプリに共有し、道案内アプリに矢印の配置位置を決定させる(S6066)。次いで、配置処理部117は、矢印の配置位置を含む配置情報を環境情報1に追加し、環境情報1を環境情報2に更新する(S6068)。
 配置処理後、描画部119は、環境情報2を参照して、配置位置に仮想オブジェクトを描画した画像を生成し(S608)、表示部140に表示させる。かかる構成により、矢印の場所がキャラクタの移動によらず一定になるため、情報処理装置は、各々の仮想オブジェクトの視認性を良くすることがきる。
 (2)第2の変形例
 上述の実施形態では、ユーザ操作に応じて優先度が変更される例について説明した。ユーザ操作の入力後すぐに優先度を変更すると、優先度が低くなるARアプリの仮想オブジェクトの挙動に影響が生じ、ユーザに違和感を与える恐れがある。例えば、優先度が低くなるARアプリの仮想オブジェクトの位置が急に移動したり、当該仮想オブジェクトが急に消えたりし、ユーザに違和感を与え得る。
 そこで、配置処理部117は、優先度の変更を決定してから所定の時間が経過後に優先度を変更してもよい。所定の時間は、例えば、ARアプリの一連の処理が終了するまでの時間、仮想オブジェクトが画面から見切れるまでの時間、動的な仮想オブジェクトの動作が終了するまでの時間等が挙げられる。また、所定の時間は、ユーザによりあらかじめ設定される任意の時間であってもよい。
 優先度変更の一例として、例えば、ARアプリ1の仮想オブジェクトが移動している最中に、ユーザにより、ARアプリ1とARアプリ2の優先度を入れ替えることを示す操作が入力されたとする。この時、配置処理部117は、ARアプリ1の仮想オブジェクトが静止してから、ARアプリ1とARアプリ2の優先度を入れ替える。そして、配置処理部117は、変更後の優先度に基づき、仮想オブジェクトの配置処理を行う。
 かかる構成により、変更後の優先度が低くなったARアプリの仮想オブジェクトの挙動に与える影響を抑えることができ、ユーザに与える違和感も低減することができる。
 また、配置処理部117は、優先度の変更を決定してから所定の時間が経過するまで、優先度の変更対象であるARアプリの仮想オブジェクトのレイアウトを、優先度の変更対象でないARアプリとは独立して計算し、表示を保ってもよい。さらに、配置処理部117は、優先度の変更対象のARアプリの仮想オブジェクトを、ワイヤフレームで表示してもよい。
 かかる構成により、情報処理装置は、優先度の変更対象であるARアプリの仮想オブジェクトにより、優先度の変更対象でないARアプリの仮想オブジェクトの表示が妨げられることを防止することができる。
<<6.ハードウェア構成例>>
 最後に、図13を参照しながら、本実施形態に係る情報処理装置のハードウェア構成例について説明する。図13は、本実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。なお、図13に示す情報処理装置900は、例えば、図3に示した表示端末10を実現し得る。本実施形態に係る表示端末10による情報処理は、ソフトウェアと、以下に説明するハードウェアとの協働により実現される。
 図13に示すように、情報処理装置900は、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、及びRAM(Random Access Memory)903を備える。また、情報処理装置900は、ホストバス904、ブリッジ905、外部バス906、インタフェース907、入力装置908、出力装置909、ストレージ装置910、ドライブ911、接続ポート912、及び通信装置913を備える。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ハードウェア構成は、ここで示される構成要素以外の構成要素をさらに含んでもよい。
 CPU901は、例えば、演算処理装置又は制御装置として機能し、ROM902、RAM903、又はストレージ装置910に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM902は、CPU901に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM903には、例えば、CPU901に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。これらはCPUバスなどから構成されるホストバス904により相互に接続されている。CPU901、ROM902、及びRAM903は、例えば、ソフトウェアとの協働により、図3を参照して説明した制御部110の機能を実現し得る。
 CPU901、ROM902、及びRAM903は、例えば、高速なデータ伝送が可能なホストバス904を介して相互に接続される。一方、ホストバス904は、例えば、ブリッジ905を介して比較的データ伝送速度が低速な外部バス906に接続される。また、外部バス906は、インタフェース907を介して種々の構成要素と接続される。
 入力装置908は、例えば、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチ及びレバー等、ユーザによって情報が入力される装置によって実現される。また、入力装置908は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置900の操作に対応した携帯電話やPDA等の外部接続機器であってもよい。さらに、入力装置908は、例えば、上記の入力手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などを含んでいてもよい。情報処理装置900のユーザは、この入力装置908を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
 他にも、入力装置908は、ユーザに関する情報を検知する装置により形成され得る。例えば、入力装置908は、画像センサ(例えば、カメラ)、深度センサ(例えば、ステレオカメラ)、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサ、測距センサ(例えば、ToF(Time of Flight)センサ)、力センサ等の各種のセンサを含み得る。また、入力装置908は、情報処理装置900の姿勢、移動速度等、情報処理装置900自身の状態に関する情報や、情報処理装置900の周辺の明るさや騒音等、情報処理装置900の周辺環境に関する情報を取得してもよい。また、入力装置908は、GNSS(Global Navigation Satellite System)衛星からのGNSS信号(例えば、GPS(Global Positioning System)衛星からのGPS信号)を受信して装置の緯度、経度及び高度を含む位置情報を測定するGNSSモジュールを含んでもよい。また、位置情報に関しては、入力装置908は、Wi-Fi(登録商標)、携帯電話・PHS・スマートフォン等との送受信、または近距離通信等により位置を検知するものであってもよい。入力装置908は、例えば、図3を参照して説明したセンサ部100の機能を実現し得る。
 出力装置909は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で形成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置、レーザープロジェクタ、LEDプロジェクタ及びランプ等の表示装置や、スピーカ及びヘッドフォン等の音声出力装置や、プリンタ装置等がある。出力装置909は、例えば、情報処理装置900が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置900が行った各種処理により得られた結果を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。出力装置909は、例えば、図3を参照して説明した表示部140の機能を実現し得る。
 ストレージ装置910は、情報処理装置900の記憶部の一例として形成されたデータ格納用の装置である。ストレージ装置910は、例えば、HDD等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により実現される。ストレージ装置910は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置910は、CPU901が実行するプログラムや各種データ及び外部から取得した各種のデータ等を格納する。ストレージ装置910は、例えば、図3を参照して説明した記憶部130の機能を実現し得る。
 ドライブ911は、記憶媒体用リーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ911は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体に記録されている情報を読み出して、RAM903に出力する。また、ドライブ911は、リムーバブル記憶媒体に情報を書き込むこともできる。
 接続ポート912は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS-232Cポート、又は光オーディオ端子等のような外部接続機器を接続するためのポートである。
 通信装置913は、例えば、ネットワーク920に接続するための通信デバイス等で形成された通信インタフェースである。通信装置913は、例えば、有線若しくは無線LAN(Local Area Network)、LTE(Long Term Evolution)、Bluetooth(登録商標)又はWUSB(Wireless USB)用の通信カード等である。また、通信装置913は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ又は各種通信用のモデム等であってもよい。この通信装置913は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。通信装置913は、例えば、図3を参照して説明した通信部120の機能を実現し得る。
 なお、ネットワーク920は、ネットワーク920に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワーク920は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク920は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。ネットワーク920は、例えば、図3を参照して説明したネットワーク30の機能を実現し得る。
 以上、本実施形態に係る情報処理装置900の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて実現されていてもよいし、各構成要素の機能に特化したハードウェアにより実現されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
<<7.まとめ>>
 以上説明したように、本開示の実施形態に係る情報処理装置は、まず、実世界の3次元空間を表す環境情報0を取得し、環境情報0に基づいて、ARアプリ1の仮想オブジェクトを3次元空間に配置する。次いで、情報処理装置は、ARアプリ1の仮想オブジェクトの配置に基づいて、環境情報0を、ARアプリ1の仮想オブジェクトの配置情報を含む環境情報1として更新する。そして、情報処理装置は、ARアプリ1の実行中に、ARアプリ2の仮想オブジェクトを、環境情報1に基づいて、ARアプリ1の仮想オブジェクトが配置された3次元空間に配置する。換言すれば、ARアプリ1(ARアプリ2)は、ARアプリ2の仮想オブジェクト(ARアプリ1の仮想オブジェクト)を、ARアプリ1が参照する環境情報として認識する。かかる構成により、情報処理装置は、環境情報に含まれる配置情報を参照して、各々のARアプリの仮想オブジェクトが重ならないように、各々のARアプリの仮想オブジェクトを配置することができる。
 よって、複数のARアプリを連携して動作させることが可能な、新規かつ改良された情報処理装置、情報処理方法、及び記録媒体を提供することが可能である。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 例えば、本明細書において説明した各装置は、単独の装置として実現されてもよく、一部または全部が別々の装置として実現されても良い。例えば、図3に示した表示端末10が備えるセンサ部100と制御部110の少なくともいずれか一方が、単独の装置として実現されてもよい。例えば、センサ部100は、センサ装置等の独立した装置として実現され、ネットワーク等を介して表示端末10と接続されてもよい。また、制御部110は、サーバ装置等の独立した装置として実現され、ネットワーク等を介して表示端末10と接続されてもよい。
 また、本明細書において説明した各装置による一連の処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記録媒体(非一時的な媒体:non-transitory media)に予め格納される。そして、各プログラムは、例えば、コンピュータによる実行時にRAMに読み込まれ、CPUなどのプロセッサにより実行される。
 また、本明細書においてフローチャートを用いて説明した処理は、必ずしも図示された順序で実行されなくてもよい。いくつかの処理ステップは、並列的に実行されてもよい。また、追加的な処理ステップが採用されてもよく、一部の処理ステップが省略されてもよい。
 また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
 なお、以下のような構成も本開示の技術的範囲に属する。
(1)
 実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
 前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
 前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、
を備える、情報処理装置。
(2)
 前記制御部は、前記第1の仮想オブジェクト及び前記第2の仮想オブジェクトの配置の優先度に基づき、前記第1の仮想オブジェクト及び前記第2の仮想オブジェクトを配置する、前記(1)に記載の情報処理装置。
(3)
 前記第1の仮想オブジェクトの前記優先度は、前記第2の仮想オブジェクトの前記優先度よりも高い、前記(2)に記載の情報処理装置。
(4)
 前記制御部は、前記第2の仮想オブジェクトを配置する際に、前記第2の環境情報に基づき、前記第2の仮想オブジェクトの初期配置位置に前記第1の仮想オブジェクトが配置されているか否かに応じて、前記第2の仮想オブジェクトを配置する、前記(2)または(3)に記載の情報処理装置。
(5)
 前記第2の仮想オブジェクトの初期配置位置に前記第1の仮想オブジェクトが配置されており、かつ前記第1の仮想オブジェクトの前記優先度が前記第2の仮想オブジェクトの前記優先度よりも高い場合、
 前記制御部は、前記第2の仮想オブジェクトを前記初期配置位置以外の位置に配置する、前記(4)に記載の情報処理装置。
(6)
 前記優先度は、アプリケーションに対して設定される優先度である第1の優先度を含み、
 前記制御部は、前記アプリケーションごとの前記第1の優先度を比較し、前記第1の優先度が高い前記アプリケーションの仮想オブジェクトを優先的に配置する、前記(2)~(5)のいずれか1項に記載の情報処理装置。
(7)
 前記優先度は、アプリケーションによる区別をせずに仮想オブジェクトに対して設定される優先度である第2の優先度を含み、
 前記制御部は、前記仮想オブジェクトごとの前記第2の優先度を比較し、前記第2の優先度が高い前記仮想オブジェクトを優先的に配置する、前記(2)~(6)のいずれか1項に記載の情報処理装置。
(8)
 前記制御部は、アプリケーションにより設定された仮想オブジェクトの配置位置を示す座標の指定方法に基づき、前記仮想オブジェクトの優先度を設定する、前記(2)~(7)のいずれか1項に記載の情報処理装置。
(9)
 前記制御部は、前記座標の指定方法が絶対座標である前記仮想オブジェクトの前記優先度を、前記座標の指定方法が相対座標である前記仮想オブジェクトの前記優先度よりも高く設定する、前記(8)に記載の情報処理装置。
(10)
 前記制御部は、仮想オブジェクトの移動の自由度に基づき、前記仮想オブジェクトの前記優先度を設定する、前記(2)~(9)のいずれか1項に記載の情報処理装置。
(11)
 前記制御部は、前記移動の自由度が低い前記仮想オブジェクトの前記優先度を、前記移動の自由度が高い前記仮想オブジェクトの前記優先度よりも高く設定する、前記(10)に記載の情報処理装置。
(12)
 前記第1の仮想オブジェクトが前記3次元空間内を移動する場合、
 前記第2の環境情報は、前記3次元空間における前記第1の仮想オブジェクトの移動範囲を示す移動範囲情報を含む、前記(2)~(11)のいずれか1項に記載の情報処理装置。
(13)
 前記制御部は、前記移動範囲情報に基づき、前記第1の仮想オブジェクトの移動範囲の外に前記第2の仮想オブジェクトを配置する、前記(12)に記載の情報処理装置。
(14)
 前記制御部は、ユーザによる前記情報処理装置への入力に応じて、前記優先度を変更する、前記(2)~(13)のいずれか1項に記載の情報処理装置。
(15)
 前記制御部は、前記優先度の変更を決定してから所定の時間が経過後、前記優先度を変更する、前記(14)に記載の情報処理装置。
(16)
 前記第2の環境情報は、前記3次元空間に配置された前記第1の仮想オブジェクトの形状を示す情報と、配置された位置を示す座標情報とを含む、前記(1)~(15)のいずれか1項に記載の情報処理装置。
(17)
 前記第1の環境情報及び前記第2の環境情報は、前記3次元空間の形状を示す情報を含む、前記(1)~(16)のいずれか1項に記載の情報処理装置。
(18)
 前記情報処理装置は、センサ部をさらに備え、
 前記制御部は、前記センサ部が前記情報処理装置の周辺をセンシングして得られるセンシング情報に基づき、前記第1の環境情報を推定する、前記(1)~(17)のいずれか1項に記載の情報処理装置。
(19)
 前記第1のアプリケーションは、前記第1の仮想オブジェクトの配置を変更できるようプログラムされている一方で、前記第2の仮想オブジェクトの配置を変更できるようプログラムされておらず、
 前記第2のアプリケーションは、前記第2の仮想オブジェクトの配置を変更できるようプログラムされている一方で、前記第1の仮想オブジェクトの配置を変更できるようプログラムされておらず、
 前記第1の環境情報のデータ形式と、前記第2の環境情報のデータ形式は同一である、前記(1)~(17)のいずれか1項に記載の情報処理装置。
(20)
 実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
 前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
 前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置すること、
を含む、プロセッサにより実行される情報処理方法。
(21)
 コンピュータを、
 実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
 前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
 前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、
として機能させるためのプログラムが記録された記録媒体。
 10 表示端末
 20 クラウドサーバ
 30 ネットワーク
 100 センサ部
 101 外向きカメラ
 103 加速度センサ
 105 ジャイロセンサ
 107 方位センサ
 109 GPSセンサ
 110 制御部
 111 自己位置推定部
 113 環境情報取得部
 115 環境情報推定部
 117 配置処理部
 119 描画部
 120 通信部
 130 記憶部
 140 表示部
 1000 情報処理システム

Claims (21)

  1.  実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
     前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
     前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、
    を備える、情報処理装置。
  2.  前記制御部は、前記第1の仮想オブジェクト及び前記第2の仮想オブジェクトの配置の優先度に基づき、前記第1の仮想オブジェクト及び前記第2の仮想オブジェクトを配置する、請求項1に記載の情報処理装置。
  3.  前記第1の仮想オブジェクトの前記優先度は、前記第2の仮想オブジェクトの前記優先度よりも高い、請求項2に記載の情報処理装置。
  4.  前記制御部は、前記第2の仮想オブジェクトを配置する際に、前記第2の環境情報に基づき、前記第2の仮想オブジェクトの初期配置位置に前記第1の仮想オブジェクトが配置されているか否かに応じて、前記第2の仮想オブジェクトを配置する、請求項2に記載の情報処理装置。
  5.  前記第2の仮想オブジェクトの初期配置位置に前記第1の仮想オブジェクトが配置されており、かつ前記第1の仮想オブジェクトの前記優先度が前記第2の仮想オブジェクトの前記優先度よりも高い場合、
     前記制御部は、前記第2の仮想オブジェクトを前記初期配置位置以外の位置に配置する、請求項4に記載の情報処理装置。
  6.  前記優先度は、アプリケーションに対して設定される優先度である第1の優先度を含み、
     前記制御部は、前記アプリケーションごとの前記第1の優先度を比較し、前記第1の優先度が高い前記アプリケーションの仮想オブジェクトを優先的に配置する、請求項2に記載の情報処理装置。
  7.  前記優先度は、アプリケーションによる区別をせずに仮想オブジェクトに対して設定される優先度である第2の優先度を含み、
     前記制御部は、前記仮想オブジェクトごとの前記第2の優先度を比較し、前記第2の優先度が高い前記仮想オブジェクトを優先的に配置する、請求項2に記載の情報処理装置。
  8.  前記制御部は、アプリケーションにより設定された仮想オブジェクトの配置位置を示す座標の指定方法に基づき、前記仮想オブジェクトの優先度を設定する、請求項2に記載の情報処理装置。
  9.  前記制御部は、前記座標の指定方法が絶対座標である前記仮想オブジェクトの前記優先度を、前記座標の指定方法が相対座標である前記仮想オブジェクトの前記優先度よりも高く設定する、請求項8に記載の情報処理装置。
  10.  前記制御部は、仮想オブジェクトの移動の自由度に基づき、前記仮想オブジェクトの前記優先度を設定する、請求項2に記載の情報処理装置。
  11.  前記制御部は、前記移動の自由度が低い前記仮想オブジェクトの前記優先度を、前記移動の自由度が高い前記仮想オブジェクトの前記優先度よりも高く設定する、請求項10に記載の情報処理装置。
  12.  前記第1の仮想オブジェクトが前記3次元空間内を移動する場合、
     前記第2の環境情報は、前記3次元空間における前記第1の仮想オブジェクトの移動範囲を示す移動範囲情報を含む、請求項2に記載の情報処理装置。
  13.  前記制御部は、前記移動範囲情報に基づき、前記第1の仮想オブジェクトの移動範囲の外に前記第2の仮想オブジェクトを配置する、請求項12に記載の情報処理装置。
  14.  前記制御部は、ユーザによる前記情報処理装置への入力に応じて、前記優先度を変更する、請求項2に記載の情報処理装置。
  15.  前記制御部は、前記優先度の変更を決定してから所定の時間が経過後、前記優先度を変更する、請求項14に記載の情報処理装置。
  16.  前記第2の環境情報は、前記3次元空間に配置された前記第1の仮想オブジェクトの形状を示す情報と、配置された位置を示す座標情報とを含む、請求項1に記載の情報処理装置。
  17.  前記第1の環境情報及び前記第2の環境情報は、前記3次元空間の形状を示す情報を含む、請求項1に記載の情報処理装置。
  18.  前記情報処理装置は、センサ部をさらに備え、
     前記制御部は、前記センサ部が前記情報処理装置の周辺をセンシングして得られるセンシング情報に基づき、前記第1の環境情報を推定する、請求項1に記載の情報処理装置。
  19.  前記第1のアプリケーションは、前記第1の仮想オブジェクトの配置を変更できるようプログラムされている一方で、前記第2の仮想オブジェクトの配置を変更できるようプログラムされておらず、
     前記第2のアプリケーションは、前記第2の仮想オブジェクトの配置を変更できるようプログラムされている一方で、前記第1の仮想オブジェクトの配置を変更できるようプログラムされておらず、
     前記第1の環境情報のデータ形式と、前記第2の環境情報のデータ形式は同一である、請求項1に記載の情報処理装置。
  20.  実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
     前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
     前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置すること、
    を含む、プロセッサにより実行される情報処理方法。
  21.  コンピュータを、
     実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
     前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
     前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、
    として機能させるためのプログラムが記録された記録媒体。
PCT/JP2020/002889 2019-03-29 2020-01-28 情報処理装置、情報処理方法、及び記録媒体 WO2020202747A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US17/442,005 US20220253196A1 (en) 2019-03-29 2020-01-28 Information processing apparatus, information processing method, and recording medium
JP2021511151A JP7400810B2 (ja) 2019-03-29 2020-01-28 情報処理装置、情報処理方法、及び記録媒体
CN202080021928.1A CN113597632A (zh) 2019-03-29 2020-01-28 信息处理装置、信息处理方法和记录介质
EP20782784.1A EP3951724A4 (en) 2019-03-29 2020-01-28 INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD AND RECORDING MEDIUM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-067255 2019-03-29
JP2019067255 2019-03-29

Publications (1)

Publication Number Publication Date
WO2020202747A1 true WO2020202747A1 (ja) 2020-10-08

Family

ID=72668025

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/002889 WO2020202747A1 (ja) 2019-03-29 2020-01-28 情報処理装置、情報処理方法、及び記録媒体

Country Status (5)

Country Link
US (1) US20220253196A1 (ja)
EP (1) EP3951724A4 (ja)
JP (1) JP7400810B2 (ja)
CN (1) CN113597632A (ja)
WO (1) WO2020202747A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015025442A1 (ja) * 2013-08-20 2015-02-26 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP2017522682A (ja) * 2014-07-24 2017-08-10 央数文化(上海)股▲ふん▼有限公司YoungZone Culture(Shanghai) Co.,Ltd. 拡張現実技術に基づく手持ち式閲覧デバイス及びその方法
WO2018092384A1 (ja) 2016-11-21 2018-05-24 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP2020042802A (ja) * 2018-09-11 2020-03-19 アップル インコーポレイテッドApple Inc. 3次元コンテンツ内の場所に基づく仮想要素モダリティ

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2006123513A1 (ja) * 2005-05-19 2008-12-25 株式会社Access 情報表示装置および情報表示方法
US9454849B2 (en) * 2011-11-03 2016-09-27 Microsoft Technology Licensing, Llc Augmented reality playspaces with adaptive game rules
WO2017066801A1 (en) * 2015-10-16 2017-04-20 Bent Image Lab, Llc Augmented reality platform
US10338392B2 (en) * 2016-06-13 2019-07-02 Microsoft Technology Licensing, Llc Identification of augmented reality image display position
US10698561B2 (en) * 2017-06-12 2020-06-30 Google Llc Intelligent command batching in an augmented and/or virtual reality environment
US10565761B2 (en) * 2017-12-07 2020-02-18 Wayfair Llc Augmented reality z-stack prioritization
US11145096B2 (en) * 2018-03-07 2021-10-12 Samsung Electronics Co., Ltd. System and method for augmented reality interaction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015025442A1 (ja) * 2013-08-20 2015-02-26 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP2017522682A (ja) * 2014-07-24 2017-08-10 央数文化(上海)股▲ふん▼有限公司YoungZone Culture(Shanghai) Co.,Ltd. 拡張現実技術に基づく手持ち式閲覧デバイス及びその方法
WO2018092384A1 (ja) 2016-11-21 2018-05-24 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP2020042802A (ja) * 2018-09-11 2020-03-19 アップル インコーポレイテッドApple Inc. 3次元コンテンツ内の場所に基づく仮想要素モダリティ

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
EP3951724A1 (en) 2022-02-09
EP3951724A4 (en) 2022-07-06
US20220253196A1 (en) 2022-08-11
JP7400810B2 (ja) 2023-12-19
CN113597632A (zh) 2021-11-02
JPWO2020202747A1 (ja) 2020-10-08

Similar Documents

Publication Publication Date Title
JP6780642B2 (ja) 情報処理装置、情報処理方法及びプログラム
US9971403B1 (en) Intentional user experience
CA2913650C (en) Virtual object orientation and visualization
US20180240220A1 (en) Information processing apparatus, information processing method, and program
JPWO2018179644A1 (ja) 情報処理装置、情報処理方法及び記録媒体
US11361497B2 (en) Information processing device and information processing method
EP3847530B1 (en) Display device sharing and interactivity in simulated reality (sr)
US11417051B2 (en) Information processing apparatus and information processing method to ensure visibility of shielded virtual objects
KR20210037584A (ko) 위치 인식 시각적 마커
WO2020209199A1 (ja) 情報処理装置、情報処理方法、及び記録媒体
US11699412B2 (en) Application programming interface for setting the prominence of user interface elements
US20230148185A1 (en) Information processing apparatus, information processing method, and recording medium
CN113359973A (zh) 环境应用程序模型
US20210318790A1 (en) Snapping range for augmented reality
WO2020202747A1 (ja) 情報処理装置、情報処理方法、及び記録媒体
CN116583841A (zh) 使用超声信号触发协作增强现实环境
KR20230070308A (ko) 웨어러블 장치를 이용한 제어가능한 장치의 위치 식별

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: 20782784

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021511151

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020782784

Country of ref document: EP

Effective date: 20211029