The present disclosure relates to an information processing apparatus, an information processing method, and an information processing program.
There has been provided a technology for pointing a target such as a position or a virtual object by a device such as a three-D (dimension) mouse or a controller or a user's body such as user's fingertip or eye (line of sight). For example, in a field of augmented reality (AR) or virtual reality (VR), an instruction on a virtual object in a three-dimensional space or a position where the virtual object is desired to be arranged is given by the device or the user's body.
Patent Literature 1: WO 2017/213070 A
According to the related art as described above, by displaying a stereoscopic object that is arranged along a predetermined direction within a user's field of view and indicates a distance in the predetermined direction, pointing or an object operation is performed by user's line of sight. In the related art, in order to indicate a position to be pointed, a predetermined direction is determined in advance, and a position is further determined on the predetermined direction. In this manner, the related art is a case where the position is adjusted in a predetermined linear shape, and it is difficult to cope with a case where it is desired to adjust the position on a circumference of a round table.
As described above, in a case where a stereoscopic object is displayed, there are many restrictions on an instruction of a target such as a position or a virtual object by the user, and it is difficult to perform an instruction by the user or display according to the instruction. Therefore, it is desired to enable flexible display according to a user's instruction.
Therefore, the present disclosure proposes an information processing apparatus, an information processing method, and an information processing program capable of enabling flexible display according to a user's instruction.
According to the present disclosure, an information processing apparatus includes a display control unit that causes a display device to display a mark for a virtual object at an instruction position that is a position determined based on a plurality of directions indicated by a user.
Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. Note that an information processing apparatus, an information processing method, and an information processing program according to the present application are not limited by the embodiments. In each of the following embodiments, the same parts are denoted by the same reference numerals, and redundant description will be omitted.
The present disclosure will be described according to the following order of items shown below.
1. Embodiments
1-1. Overview of information processing according to an embodiment of the present disclosure
1-2. Configuration of an information processing system according to an embodiment
1-3. Configuration of an information processing apparatus according to an embodiment
1-4. Procedure of information processing according to an embodiment
1-5. Intersection display
1-5-1. Procedure related to intersection display
1-5-2. Intersection display mode
1-5-3. Intersection display pattern
1-6. Master-subordinate relationship
1-6-1. Controller and line of sight
1-6-2. Finger pointing and line of sight
1-6-3. Intersection display example
1-7. Virtual object
1-7-1. Arrangement of a virtual object
1-7-2. Arrangement range of a virtual object
1-7-3. Arrangement position with an intersection
1-7-4. Movement of a virtual object
1-7-5. Procedure of moving a virtual object
1-7-6. Controller and line of sight
1-8. Line representation
1-9. Others
1-10. Other geometric targets (planes)
2. Other configuration examples
3. Effects according to the present disclosure
4. Hardware configuration
[1-1. Overview of Information Processing According to an Embodiment of the Present Disclosure]
The information processing system 1 (see
Note that the display device 10 may be any head mounted display such as a non-transmissive HMD or a transmissive HMD as long as processing to be described later can be realized. Furthermore, the display device 10 is not limited to a head mounted display, and may be any device as long as information processing to be described later can be realized, and may be various devices such as an aerial projection display. Details of the configuration of the display device 10 will be described later.
In addition,
In addition, the line emitted from the controller 20 is not limited to the virtual beam displayed by the display device 10, and may be a beam (laser light) actually radiated by the controller 20. When the controller 20 actually emits laser light (a line), the controller 20 emits the laser light along a predetermined optical axis. Furthermore, an element for causing the user to visually recognize the direction indicated by the user is not limited to a line, and may be a plane or the like. Hereinafter, a line, a plane, or the like used for causing the user to visually recognize the direction indicated by the user may be collectively referred to as a geometric target. In addition, the direction instruction by the user is not limited to the device such as the controller 20, and may be the user's body or the like, but the details of this point will be described above. Hereinafter, the device, the body of the user, and the like used by the user to indicate the direction may be collectively referred to as an instruction component. The instruction component may be any as long as it is used by the user to indicate a direction.
An image IM in
The user 50 changes a desired position and direction of a hand holding the controller 20 while confirming the position and direction of the line LN1 and the position and direction of the line LN2, thereby designating a position determined on the basis of the line LN1 and the line LN2 (hereinafter, also referred to as an “instruction position”). In the example of
In the example of
The information processing apparatus 100 acquires information (hereinafter also referred to as “controller information”) indicating the position and direction of the controller 20 according to the operation of the user 50, and causes the display device 10 to display the lines LN1 and LN2 on the basis of the acquired controller information. Furthermore, the information processing apparatus 100 determines whether to display the mark for the virtual object on the basis of the positional relationship between the two lines LN1 and LN2. The information processing apparatus 100 calculates a distance between the two lines LN1 and LN2. Furthermore, the information processing apparatus 100 calculates the instruction position determined on the basis of the two lines LN1 and LN2 by calculation.
A state ST1 illustrated in
Furthermore, the information processing apparatus 100 determines whether or not a distance D between the two lines LN1 and LN2 is less than a threshold D0. For example, the threshold D0 is a threshold used for determining whether to display an intersection of the two lines LN1 and LN2. The threshold D0 is a value of 0 or more. For example, the information processing apparatus 100 determines whether the distance D between the line LN1 of the first controller 20A and the line LN2 of the second controller 20B is less than the threshold D0. In a case where the distance D is less than the threshold D0, the information processing apparatus 100 determines to display the intersection. In the state ST1 illustrated in
The user 50 adjusts the first controller 20A and the second controller 20B to designate desired positions (Step S1). The user 50 adjusts the first controller 20A and the second controller 20B so that the two lines LN1 and LN2 get closer. A state ST2 illustrated in
Then, the information processing apparatus 100 determines whether the distance D between the line LN1 of the first controller 20A and the line LN2 of the second controller 20B is less than the threshold D0. In the state ST2 illustrated in
Then, the information processing apparatus 100 displays the intersection (Step S3). The information processing apparatus 100 causes the display device 10 to display the intersection. First, the information processing apparatus 100 calculates a position of the intersection by calculation. In the state ST3 illustrated in
Then, the user 50 who displays the intersection IS1 and completes the desired operation adjusts the first controller 20A and the second controller 20B to end the display of the intersection IS1 (Step S4). The user 50 adjusts the first controller 20A and the second controller 20B such that the two lines LN1 and LN2 are separated.
Furthermore, the information processing apparatus 100 determines whether or not the distance D between the two lines LN1 and LN2 is larger than a threshold D1. For example, the threshold D1 is a threshold used for determining whether to stop displaying the intersection of the two lines LN1 and LN2. The threshold D1 is a value larger than the threshold D0. In this manner, by setting a value larger than the threshold D0 for starting the display of the intersection as the threshold D1 for ending the display of the intersection, it is possible to suppress continuation of the display and non-display of the intersection due to an error, a hand shake of the user, or the like.
In the state ST4 illustrated in
As described above, the information processing apparatus 100 can easily indicate a desired position by indicating a position by the two lines. The information processing apparatus 100 can cause the display device 10 to display the mark MK1 at the intersection IS1 determined on the basis of the lines LN1 and LN2 corresponding to the two directions indicated by the user 50, thereby enabling flexible display according to the instruction of the user 50. Furthermore, the information processing apparatus 100 can change the display of the intersection according to the distance between the two lines, thereby enabling flexible display according to the user's instruction. The information processing system 1 enables the user 50 to freely designate a three-dimensional position in a three-dimensional space without restriction.
Since the position can be determined while dynamically changing the axis, the user can quickly specify the position anywhere in the three-dimensional space. In addition, the user can end the intersection display by bringing the two lines close to each other to create an intersection in a case where the user desires to designate a position, and by separating the lines or changing the directions of the lines in a case where the user desires to stop, so that the user's intention is intuitively reflected.
[1-2. Configuration of an Information Processing System According to an Embodiment]
An information processing system 1 illustrated in
The information processing system 1 is a system in which information processing related to augmented reality (AR), virtual reality (VR), or mixed reality (MR) is executed. For example, the information processing system 1 is a system for displaying or editing AR or VR content.
The information processing apparatus 100, the display device 10, and the controller 20 are communicably connected in a wired or wireless manner via a predetermined network (not illustrated).
The information processing apparatus 100 is an information processing apparatus that causes the display device 10 to display a mark for a virtual object at an instruction position that is a position determined on the basis of a plurality of directions indicated by a user. The information processing apparatus 100 controls display on the display device 10 using the controller information acquired from the controller 20. The information processing apparatus 100 controls display of the display device 10 by using information (display device information) regarding the position and attitude of the display device 10 acquired from the display device 10.
The display device 10 is a computer (information processing device) for displaying information. For example, the display device 10 is a head mounted display, and is used to display information to the user.
The display device 10 includes a position/attitude detection unit 11, an infrared light receiving unit 12, an acceleration sensor 13, a gyro sensor 14, and a display unit 15. The position/attitude detection unit 11 detects the position and attitude of the display device 10 on the basis of various sensor information acquired from the sensors included in the display device 10, such as the outer line light receiving unit 12, the acceleration sensor 13, and the gyro sensor 14. The position/attitude detection unit 11 controls the sensors included in the display device 10, such as the outer line light receiving unit 12, the acceleration sensor 13, and the gyro sensor 14, to detect various information regarding the position and attitude of the display device 10, such as the position, direction, and inclination of the display device 10. The attitude detection unit 11 outputs information (display device information) about the position and attitude of the display device 10 to a display control unit 134. For example, the display device 10 transmits various information regarding the position and attitude of the display device 10 to the information processing apparatus 100. For example, the position/attitude detection unit 11 may be realized by various processors such as a central processing unit (CPU), a graphics processing unit (GPU), and a field programmable gate array (FPGA).
The display unit 15 is a display that displays various information under the control of the display control unit 134. For example, the display device 10 acquires various information from the information processing apparatus 100, and displays the acquired information on the display unit 15. The display unit 15 displays a mark for a virtual object at an instruction position determined on the basis of a plurality of directions indicated by the user according to the control by the display control unit 134. The display unit 15 displays the content generated by the display control unit 134.
Note that, in a case where a user's line of sight is used to designate the direction, the display device 10 may include a line-of-sight detection unit that detects a line-of-sight position of the user. The line-of-sight detection unit detects a line of sight of the user by appropriately using various technologies related to line-of-sight detection. As a technique of the line-of-sight detection, for example, a method of detecting a line of sight on the basis of a position of a moving point (for example, a point corresponding to a moving part in the eye such as the iris or the pupil) of the eye with respect to a reference point (for example, a point corresponding to a non-moving part in the eye such as the inner corner of the eye or corneal reflex) of the eye may be used. Note that the detection of the line of sight is not limited to the above, and the line of sight of the user may be detected using any line-of-sight detection technique.
The controller 20, which is the first controller 20A or the second controller 20B, is a device used by a user to indicate a direction. The controller 20 is a controller used in the field of AR and VR. The controller 20 is used to execute a user's operation on the AR or VR space. The controller 20 is used to indicate a position of a space such as AR or VR displayed by the display device 10 or indicate a virtual object in the space.
The controller 20 includes a position/attitude detection unit 21, an infrared light receiving unit 22, an acceleration sensor 23, and a gyro sensor 24. The position/attitude detection unit 21 detects the position and attitude of the controller 20 on the basis of various sensor information acquired from the sensors included in the controller 20, such as the outer line light receiving unit 22, the acceleration sensor 23, and the gyro sensor 24. The position/attitude detection unit 21 controls the sensors included in the controller 20, such as the outer line light receiving unit 22, the acceleration sensor 23, and the gyro sensor 24, to detect various information regarding the position and attitude of the controller 20, such as the position, direction, and inclination of the controller 20. The attitude detection unit 11 outputs information (controller information) regarding the position and the attitude of the controller 20 to an intersection calculation unit 132. For example, the controller 20 transmits various information regarding the position and attitude of the controller 20 to the information processing apparatus 100. For example, the position/attitude detection unit 21 may be realized by various processors such as a CPU, a GPU, and an FPGA.
In addition, when the controller 20 emits an actual beam, the controller 20 has a configuration (such as a light output unit) that emits laser light.
[1-3. Configuration of an Information Processing Apparatus According to an Embodiment]
Next, a configuration of an information processing apparatus 100 that is an example of an information processing apparatus that executes information processing according to an embodiment will be described.
As illustrated in
The communication unit 110 is realized by, for example, an NIC, a communication circuit, or the like. Then, the communication unit 110 is connected to a predetermined network (not illustrated) in a wired or wireless manner, and transmits and receives information to and from other information processing devices such as the controller 20 and the display device 10.
The storage unit 120 is realized by, for example, a semiconductor memory element such as a random access memory (RAM) or a flash memory, or a storage device such as a hard disk or an optical disk. As illustrated in
The intersection-related threshold information storage unit 121 according to the embodiment stores various information on a threshold related to the intersection. For example, the intersection-related threshold information storage unit 121 stores various information on a threshold used for determining whether or not to display an intersection.
The “threshold ID” indicates identification information for identifying the threshold. The “application” indicates application of the threshold. The “threshold” indicates a specific value of the threshold identified by the corresponding threshold ID. Note that, in the example illustrated in
In the example of
In addition, the application of a threshold (third threshold) identified by threshold ID “TH13” is application “intersection maximum distance”, which indicates that the threshold is used for determining whether to display an intersection. For example, the threshold (third threshold) identified by the threshold ID “TH13” is a threshold used for determining whether the distance is within a range in which the mark indicating the intersection is displayed. The value of the threshold (third threshold) identified by the threshold ID “TH13” indicates a threshold Lmax.
Note that the intersection-related threshold information storage unit 121 is not limited to the above, and may store various information depending on the purpose.
Here, the threshold D0 and the threshold D1 may be appropriately set. The threshold D0 and the threshold D1 may be set by appropriately using various information as long as a magnitude relationship between the threshold D0 and the threshold D1 is satisfied. For example, the information processing apparatus 100 may set values of the threshold D0 or the threshold D1 according to a distance from the controller 20, the hand, or the like of an operator (for example, the user 50) to the intersection. For example, the information processing apparatus 100 may set the values of the threshold D0 and the threshold D1 such that the values of the threshold D0 and the threshold D1 are small when it is closer to the operator and the values of the threshold D0 and the threshold D1 are large when it is farther from the operator. For example, as the threshold D1, a value calculated by “distance to intersection point×tan (5 deg.)” may be used as a guide. For example, as disclosed in the following document, since the maximum angle of hand shaking is about 5 degrees, the value calculated as described above may be used.
In addition, for example, in a case where the threshold D0 is assumed to be 2 m, since the threshold D1 is about 17 cm, the threshold DO may be set to about 1/10 (about 2 cm) thereof. Note that the threshold D0 may be a small value because the two lines may intersect even instantaneously.
The object-related threshold information storage unit 122 according to the embodiment stores various information on a threshold related to an object. For example, the object-related threshold information storage unit 122 stores various information on a threshold used for determination of display of an object.
The “threshold ID” indicates identification information for identifying the threshold. The “application” indicates application of the threshold. The “threshold” indicates a specific value of the threshold identified by the corresponding threshold ID. Note that, in the example illustrated in
In the example of
In addition, the application of a threshold (fifth threshold) identified by threshold ID “TH22” is an “object arrangement maximum distance”, which indicates that the threshold is used for determination of the maximum distance for arranging the object. For example, the threshold (fifth threshold) identified by the threshold ID “TH22” is a threshold used for determining whether an arrangement position of the virtual object is within a range of the maximum distance. The value of the threshold (fifth threshold) identified by the threshold ID “TH22” indicates a threshold Rmax.
In addition, the application of a threshold (sixth threshold) identified by threshold ID “TH23” is application “object movement”, which indicates that the threshold is used for determination as to whether to move the object. For example, the threshold (sixth threshold) identified by the threshold ID “TH23” is a threshold used for determining whether to move the object in accordance with a change in the position of the intersection. The value of the threshold (sixth threshold) identified by the threshold ID “TH23” indicates a threshold Lmax.
Note that the object-related threshold information storage unit 122 is not limited to the above, and may store various information depending on the purpose.
The direction instruction information storage unit 123 according to the embodiment stores various information regarding the indication of a direction.
The “direction instruction ID” indicates identification information for identifying each direction. For example, the “direction instruction ID” indicates identification information for identifying each direction indicated by a user. The “instruction component” indicates information for identifying a component used by the user to indicate (give an instruction on) a direction. The “instruction component” stores information for identifying a device (apparatus) such as a controller used by the user to give an instruction on a direction or an element related to a user's body. For example, in a case where the instruction on a direction is given by a user's line of sight, a “line of sight” may be stored in the “instruction component”. Furthermore, for example, in a case where the instruction on a direction is given by a user's finger, a “finger” may be stored in the “instruction component”.
The “type” indicates a type (kind) of the instruction component. For example, the “type” indicates a type of a component used by the user to indicate (given an instruction on) a direction, such as a device (apparatus) such as a controller or an element related to the user's body. For example, when the instruction on a direction is given by the controller, a “controller”, a “device”, or the like is stored in the “type”. For example, in a case where the instruction on a direction is given by a user's line of sight, a “line of sight”, a “body”, and the like are stored in the “type”. Furthermore, for example, in a case where the instruction on a direction is given by a user's finger, a “finger”, a “body”, and the like are stored in the “type”.
The example of
Further, it is indicated that a direction (direction DG2) identified by the direction instruction ID “DG2” is the second controller 20B that is an instruction component identified by “20B”. The type of the second controller 20B indicating the direction DG2 indicates a controller.
Note that the direction instruction information storage unit 123 is not limited to the above, and may store various information depending on the purpose.
The intersection displaying information storage unit 124 according to the embodiment stores various information regarding intersection display. The intersection displaying information storage unit 124 stores various information used for the intersection display.
The “intersection display mode” indicates whether the intersection display mode is ON or OFF. The “intersection (instruction position)” indicates a position of an intersection. The “mark” indicates a mark displayed at a position corresponding to the instruction position.
In the “target information”, information indicating a geometric target corresponding to a direction is stored. The “target information” includes items such as a “distance”, a “target #1”, and a “target #2”. The “distance” indicates a distance (target distance) between the targets. The “target #1” and the “target #2” indicate geometric targets corresponding to directions. Note that the “target information” is not limited to the “target #1” and the “target #2”, and may include items such as a “target #3” according to the number of targets.
The “master-subordinate information” includes items such as a “master-subordinate relationship”, a “main instruction component”, and a “subordinate instruction component”. The “master-subordinate relationship” indicates the presence or absence of a master-subordinate relationship between components that indicate each direction.
The “main instruction component” indicates a main instruction component. For example, the “main instruction component” indicates that a direction (geometric target) indicated by the instruction component is main. In a case where the first controller 20A is the main instruction component in the example of
The “subordinate instruction component” indicates a subordinate instruction component. For example, the “subordinate instruction component” indicates that a direction (geometric target) indicated by the instruction component is subordinate. In a case where the second controller 20B is the main instruction component in the example of
The example of
In addition, it is indicated that the first target is the point PT1 of the line LN1, the second target is the point PT2 of the line LN2, and the distance between the targets is a distance D. It is indicated that there is no master-subordinate relationship, and the main instruction component and the subordinate instruction component are not set.
Note that the intersection displaying information storage unit 124 is not limited to the above, and may store various information depending on the purpose.
The object information storage unit 125 according to the embodiment stores various information regarding an object. For example, the object information storage unit 125 stores various information regarding a virtual object.
The “object ID” indicates identification information for identifying an object. The “object ID” indicates identification information for identifying a virtual object. Furthermore, the “object information” indicates object information corresponding to an object identified by the object ID. Note that, in the example illustrated in
In the example of
Furthermore, an object (virtual object VO41) identified by object ID “VO41” indicates that the object information is “OINF41”. The virtual object VO41 indicates that the gravity flag is “0”. That is, it is indicated that the virtual object VO41 is not affected by gravity in determining the arrangement position. In this case, for example, in a case where the virtual object VO41 is arranged in midair, it indicates that the virtual object remains at the position.
Note that the object information storage unit 125 is not limited to the above, and may store various information depending on the purpose.
Returning to
As illustrated in
The acquisition unit 131 acquires various information. The acquisition unit 131 acquires various information from an external information processing apparatus. The acquisition unit 131 acquires various information from the controller 20. The acquisition unit 131 acquires various information from other information processing device such as the display device 10.
The acquisition unit 131 acquires various information from the storage unit 120. The acquisition unit 131 acquires various information from the intersection-related threshold information storage unit 121, the object-related threshold information storage unit 122, the direction instruction information storage unit 123, the intersection displaying information storage unit 124, or the object information storage unit 125.
The acquisition unit 131 acquires various information calculated by the intersection calculation unit 132. The acquisition unit 131 acquires various information decided by the determination unit 133. The acquisition unit 131 acquires various information received by the display control unit 134.
In the example of
The intersection calculation unit 132 performs various types of calculation processing. The intersection calculation unit 132 performs calculation processing related to an intersection. The intersection calculation unit 132 calculates various information. The intersection calculation unit 132 calculates various information on the basis of information from an external information processing apparatus or information stored in the storage unit 120. The intersection calculation unit 132 calculates various information from the storage unit 120. The intersection calculation unit 132 calculates various information from the intersection-related threshold information storage unit 121, the object-related threshold information storage unit 122, the direction instruction information storage unit 123, the intersection displaying information storage unit 124, or the object information storage unit 125. The intersection calculation unit 132 specifies various information. The intersection calculation unit 132 stores a simulation result in the object-related threshold information storage unit 122. The intersection calculation unit 132 generates various information. The intersection calculation unit 132 generates various information on the basis of the calculated information.
In the example of
The determination unit 133 determines various information. The determination unit 133 decides various information. The determination unit 133 specifies various information. For example, the determination unit 133 determines various information on the basis of information from an external information processing apparatus or information stored in the storage unit 120. The determination unit 133 determines various information on the basis of information from other information processing devices such as the controller 20 and the display device 10. The determination unit 133 determines various information on the basis of information stored in the intersection-related threshold information storage unit 121, the object-related threshold information storage unit 122, the direction instruction information storage unit 123, the intersection displaying information storage unit 124, or the object information storage unit 125.
The determination unit 133 determines various information on the basis of the various information acquired by the acquisition unit 131. The determination unit 133 determines various information on the basis of the various information calculated by the intersection calculation unit 132. The determination unit 133 determines various information on the basis of the various information received by the display control unit 134. The determination unit 133 decides various information on the basis of the various information acquired by the acquisition unit 131. The determination unit 133 determines various information on the basis of the various information calculated by the intersection calculation unit 132. The determination unit 133 decides various information on the basis of the various information received by the display control unit 134.
The determination unit 133 extracts various information. The determination unit 133 selects various information. The determination unit 133 extracts various information on the basis of information from an external information processing apparatus or information stored in the storage unit 120. The determination unit 133 extracts various information from the storage unit 120. The determination unit 133 extracts various information from the intersection-related threshold information storage unit 121, the object-related threshold information storage unit 122, the direction instruction information storage unit 123, the intersection displaying information storage unit 124, or the object information storage unit 125.
The determination unit 133 extracts various information on the basis of the various information acquired by the acquisition unit 131. Furthermore, the determination unit 133 extracts various information on the basis of the various information decided by the determination unit 133. The determination unit 133 extracts various information on the basis of the various information received by the display control unit 134. The determination unit 133 changes various information on the basis of the decision. The various information is updated based on the information acquired by the acquisition unit 131.
The determination unit 133 determines whether to display a mark on the basis of a positional relationship between the two geometric targets. When a target distance, which is a distance between the two geometric targets, is less than a first threshold, the determination unit 133 determines to display the mark. When the mark is displayed, in a case where the target distance is equal to or less than a second threshold larger than the first threshold, the determination unit 133 determines to continue displaying the mark, and in a case where the target distance exceeds the second threshold, determines not to display the mark. The determination unit 133 determines whether to display a mark on the basis of a display distance that is a distance between an instruction component giving an instruction on one of the two directions and an instruction position. When the display distance exceeds the third threshold, the determination unit 133 determines not to display the mark.
In the example of
The determination unit 133 determines whether the distance D between the line LN1 of the first controller 20A and the line LN2 of the second controller 20B is less than the threshold D0. In the state ST2 illustrated in
The determination unit 133 determines whether the distance D between the two lines LN1 and LN2 is larger than the threshold D1. In the state ST4 illustrated in
The display control unit 134 controls display of various information. The display control unit 134 controls display of various information on the display device 10. The display control unit 134 controls display of various information on the display device 10 using various technologies related to display of a device that displays information. The display control unit 134 controls display of various information on the display device 10 using various technologies related to display on a head mounted display. The display control unit 134 controls display of various information on the display device 10 using various technologies related to virtual reality (VR) and augmented reality (AR). The display control unit 134 generates an image or the like including control information for controlling a display pattern. The display control unit 134 generates the image IM1 in
The display control unit 134 controls display of various information on the display device 10 by using information (instruction component information) indicating an attitude such as a position and a direction of the instruction component and information (display device information) regarding an attitude such as a position and a direction of the display device 10. The display control unit 134 controls display of various information on the display device 10 by using information (controller information) indicating an attitude such as a position and a direction of the controller 20 and information (display device information) regarding an attitude such as a position and a direction of the display device 10. The display control unit 134 controls the display of the line of the controller 20 using the controller information and the display device information. The display control unit 134 controls display of the virtual object on the display unit 15 of the display device 10 using the controller information and the display device information.
The display control unit 134 uses the controller information and the display device information to control drawing of the lines and virtual objects of the controller 20. The display control unit 134 may perform processing of generating a stereoscopic object (stereoscopic image) including a left-eye image and a right-eye image to be displayed on the display unit 15 of the display device 10 as a drawing. Then, the display control unit 134 displays the generated stereoscopic object on the display unit 15 of the display device 10. The display control unit 134 controls drawing of a mark on a portion corresponding to a position determined by a direction pointed by the instruction component. The display control unit 134 controls display of a line of the controller 20 on the display unit 15 of the display device 10 on the basis of the information of a line of sight of the user 50.
The display control unit 134 controls display on the basis of various information acquired from an external information processing apparatus. The display control unit 134 controls display on the basis of various information acquired from the controller 20. The display control unit 134 controls display on the basis of various information stored in the storage unit 120. The display control unit 134 controls display on the basis of various information stored in the intersection-related threshold information storage unit 121, the object-related threshold information storage unit 122, the direction instruction information storage unit 123, the intersection displaying information storage unit 124, or the object information storage unit 125.
The display control unit 134 receives various information on the basis of the various information acquired by the acquisition unit 131. The display control unit 134 receives various information on the basis of the various information calculated by the intersection calculation unit 132. The display control unit 134 receives various information on the basis of the various information decided by the determination unit 133.
The display control unit 134 causes the display device 10 to display a mark for a virtual object at an instruction position that is a position determined on the basis of a plurality of directions indicated by the user. The display control unit 134 causes the display device 10 to display the mark at an instruction position determined on the basis of a plurality of geometric targets corresponding to each of the plurality of directions. The display control unit 134 causes the display device 10 to display the mark at an instruction position determined on the basis of a positional relationship among the plurality of geometric targets.
The display control unit 134 causes the display device 10 to display the mark at an instruction position determined based on two geometric targets corresponding to each of the plurality of directions which are two directions. The display control unit 134 causes the display device 10 to display the mark at an instruction position determined on the basis of a first geometric target along a first direction and a second geometric target along a second direction among the plurality of directions which are two directions. When the determination unit 133 determines to display the mark, the display control unit 134 causes the display device 10 to display the mark.
The display control unit 134 causes the display device 10 to display the virtual object at an instruction position based on a relationship between the two geometric targets. The display control unit 134 causes the display device 10 to display the mark at an instruction position determined on the basis of two points determined from each of the two geometric targets. The display control unit 134 causes the display device 10 to display the mark at an instruction position determined on the basis of the two points at which a distance between the two geometric targets is the shortest. When the positions of the two points coincide with each other, the display control unit 134 causes the display device 10 to display the mark by using the positions of the two points as an instruction position. In a case where the positions of the two points are different, the display control unit 134 causes the display device 10 to display the mark by using a position on a line segment connecting the two points as an instruction position.
The display control unit 134 causes the display device 10 to display the virtual object at an arrangement position that is a position based on the instruction position. In a case where the instruction position is located between a first distance that is a distance from the instruction component giving an instruction on one of the plurality of directions to a first position and a second distance that is a distance from the instruction component to a second position farther than the first position, the display control unit 134 causes the display device 10 to display the virtual object with the instruction position as the arrangement position. When the instruction position is the first distance or less, the display control unit 134 causes the display device 10 to display the virtual object with the first position as the arrangement position. When the instruction position is the second distance or more, the display control unit 134 causes the display device 10 to display the virtual object with the second position as the arrangement position.
The display control unit 134 causes the display device 10 to display the mark at an instruction position determined on the basis of a plurality of lines corresponding to each of the plurality of directions. The display control unit 134 causes the display device 10 to display the mark at an instruction position determined based on a plurality of geometric targets including a plane corresponding to at least one direction among the plurality of directions. The display control unit 134 causes the display device 10 to display the mark at an instruction position determined on the basis of a plurality of directions including at least one direction on which an instruction is given by a controller held by the user. The display control unit 134 causes the display device 10 to display the mark at an instruction position determined on the basis of a plurality of directions including at least one direction on which an instruction is given by a body of the user. The display control unit 134 causes the display device 10 to display the mark at an instruction position determined on the basis of a plurality of directions including at least one direction on which an instruction is given by a line of sight of the user. The display control unit 134 causes the display device 10 to display the mark at an instruction position determined on the basis of a plurality of directions including at least one direction on which an instruction is given by a finger of the user.
In the example of
In the example of
The transmission unit 135 provides various information to an external information processing apparatus. The transmission unit 135 transmits various information to an external information processing apparatus. For example, the transmission unit 135 transmits various information to other information processing devices such as the controller 20 and the display device 10. The transmission unit 135 provides the information stored in the storage unit 120. The transmission unit 135 transmits the information stored in the storage unit 120.
The transmission unit 135 provides various information on the basis of information from other information processing devices such as the controller 20 and the display device 10. The transmission unit 135 provides various information on the basis of information stored in the storage unit 120. The transmission unit 135 provides various information on the basis of information stored in the intersection-related threshold information storage unit 121, the object-related threshold information storage unit 122, the direction instruction information storage unit 123, the intersection displaying information storage unit 124, or the object information storage unit 125.
The transmission unit 135 transmits various information on the basis of the various information acquired by the acquisition unit 131. The transmission unit 135 transmits various information on the basis of the various information calculated by the intersection calculation unit 132. The transmission unit 135 transmits various information on the basis of the various information decided by the determination unit 133.
The transmission unit 135 transmits to the display device 10 information for controlling the display device 10 by the display control unit 134. The transmission unit 135 transmits to the display device 10 control information generated by the display control unit 134 to control the display device 10.
[1-4. Procedure of Information Processing According to an Embodiment]
Next, a procedure of information processing according to the embodiment will be described with reference to
As illustrated in
In a case where the plurality of directions indicated by the user satisfy the predetermined condition (Step S101: Yes), the information processing apparatus 100 causes the display device to display a mark for a virtual object at a position determined on the basis of the plurality of directions (Step S102). For example, in a case where the two directions indicated by the user satisfy a predetermined condition, the information processing apparatus 100 causes the display device 10 to display a mark for a virtual object at a position determined on the basis of the two directions.
In a case where the plurality of directions indicated by the user do not satisfy the predetermined condition (Step S101: No), the information processing apparatus 100 ends the processing without causing the display device to display the mark.
[1-5. Intersection Display]
Next, the intersection display will be described in detail with reference to
[1-5-1. Procedure Related to Intersection Display]
First, a procedure related to intersection display will be described with reference to
The information processing system 1 acquires the positions and directions of the two controllers (Step S201). For example, the information processing apparatus 100 acquires information indicating the positions and directions of the first controller 20A and the second controller 20B.
The information processing system 1 displays a line from each controller (Step S202). For example, the information processing apparatus 100 controls display on the display device 10 such that lines are displayed from the first controller 20A and the second controller 20B.
The information processing system 1 determines whether the distance D between the two lines is less than the threshold D0 (Step S203). For example, the information processing apparatus 100 determines whether the distance D between the line LN1 of the first controller 20A and the line LN2 of the second controller 20B is less than the threshold D0.
In a case where the distance D between the two lines is not less than the threshold D0 (Step S203: No), the information processing system 1 determines whether the distance D between the two lines is larger than the threshold D1 (Step S204). For example, in a case where the distance D between the line LN1 of the first controller 20A and the line LN2 of the second controller 20B is equal to or larger than the threshold D0, the information processing apparatus 100 determines whether the distance D is larger than the threshold D1.
In a case where the distance D between the two lines is not larger than the threshold D1 (Step S204: No), the information processing system 1 executes the processing of Step S209. That is, in a case where the distance D between the two lines is equal to or less than the threshold D1, the information processing system 1 maintains ON when the intersection display mode is ON, maintains OFF when the intersection display mode is OFF, and executes the processing of Step S209. For example, in a case where the distance D between the line LN1 of the first controller 20A and the line LN2 of the second controller 20B is equal to or less than the threshold D1, the information processing apparatus 100 executes the processing of Step S209.
When the distance D between the two lines is larger than the threshold D1 (Step S204: Yes), the information processing system 1 turns off the intersection display mode (Step S205), and then executes the processing of Step S209. For example, in a case where the distance D between the two lines is larger than the threshold D1, the information processing apparatus 100 changes to OFF if the intersection display mode is ON, maintains OFF if the intersection display mode is OFF, and executes the processing of Step S209.
In a case where the distance D between the two lines is less than the threshold D0 (Step S203: Yes), the information processing system 1 determines whether the intersection is in front (Step S206). For example, in a case where the distance D between the two lines is less than the threshold D0, the information processing apparatus 100 determines whether the intersection IS1 is in front of the first controller 20A. For example, in a case where the distance D between the two lines is less than the threshold D0, the information processing apparatus 100 may determine whether the intersection IS1 is in front of the second controller 20B.
In a case where the intersection is not in front (Step S206: No), the information processing system 1 turns off the intersection display mode (Step S205), and then executes the processing of Step S209. For example, in a case where the intersection IS1 is not in front of the first controller 20A, the information processing apparatus 100 changes to OFF if the intersection display mode is ON, maintains OFF if the intersection display mode is OFF, and executes the processing of Step S209.
In a case where the intersection is in front (Step S206: Yes), the information processing system 1 determines whether the intersection is within Lmax (Step S207). For example, in a case where the intersection IS1 is in front of the first controller 20A, the information processing apparatus 100 determines whether a distance from the first controller 20A to the intersection IS1 is within the threshold Lmax.
If the intersection is not within Lmax (Step S207: No), the information processing system 1 turns off the intersection display mode (Step S205), and then executes the processing of Step S209. For example, in a case where the distance from the first controller 20A to the intersection IS1 is larger than the threshold Lmax, the information processing apparatus 100 changes to OFF if the intersection display mode is ON, maintains OFF if the intersection display mode is OFF, and executes the processing of Step S209.
When the intersection is within Lmax (Step S207: Yes), the information processing system 1 turns on the intersection display mode (Step S208). For example, in a case where the distance from the first controller 20A to the intersection IS1 is within the threshold Lmax, the information processing apparatus 100 turns on the intersection display mode.
In addition, the information processing system 1 determines whether the intersection display mode is ON (Step S209). For example, the information processing apparatus 100 determines whether the intersection display mode in the intersection displaying information storage unit 124 (see
When the intersection display mode is ON (Step S209: Yes), the information processing system 1 updates a display position of the intersection (Step S210). For example, in a case where the intersection display mode is ON, the information processing apparatus 100 displays the intersection in a case where the intersection is not displayed, and updates the display position of the intersection in a case where the intersection is being displayed.
When the intersection display mode is not ON (Step S209: No), the information processing system 1 deletes the display of the intersection (Step S211). For example, in a case where the intersection display mode is OFF, the information processing apparatus 100 maintains the intersection non-display in a case where the intersection is non-display, and deletes the display of the intersection in a case where the intersection is being displayed.
In addition, the information processing system 1 determines whether the controller is placed (Step S212). For example, the information processing apparatus 100 determines whether the user has placed the first controller 20A or the second controller 20B.
In a case where it is determined that the controller has been placed (Step S212: Yes), the information processing system 1 ends the processing. For example, in a case where it is determined that the user has placed the first controller 20A or the second controller 20B, the information processing apparatus 100 ends the processing.
In a case where it is not determined that the controller has been placed (Step S212: No), the information processing system 1 returns to Step S201 and repeats the processing. For example, in a case where it is determined that the user has not placed the first controller 20A or the second controller 20B, the information processing apparatus 100 returns to Step S201 and repeats the processing.
[1-5-2. Intersection Display Mode]
Next, the intersection display mode will be described with reference to
First, a case where the intersection display mode is ON will be described with reference to
Here, the information processing apparatus 100 turns on the intersection display mode in a case where a first condition that the distance D between the two lines is less than the threshold D0, a second condition that the intersection is in front of the controller 20, and a third condition that the distance from the controller 20 to the intersection is within the threshold Lmax are satisfied. In
For example, when the controller 20 emits laser light, a side from which the laser light is emitted corresponds to the front. In addition, which side of the controller 20 is set to the front may be appropriately set by the shape of the controller 20, the usage, or the like for the user. For example, when the user holds, a side facing a target when the user points to the target may be set as the front side of the controller 20. For example, a front side of the first controller 20A corresponds to a side that a front face FF1 in
For example, the information processing apparatus 100 may specify which direction is in front of the controller 20 by the controller information indicating the position and direction of the controller 20. Furthermore, the information processing apparatus 100 may be set such that the line extends only in front of the controller 20. For the expression of lines and the like, various techniques described in the following documents and the like may be used.
Next, a case where the intersection display mode is OFF according to the distance D between the two lines will be described with reference to
Next, a case where the intersection display mode is OFF according to the distance D between the two lines will be described with reference to
Therefore, the information processing apparatus 100 determines that the second condition that the intersection IS2 is in front of the controller 20 is not satisfied. In
As described above, the information processing apparatus 100 displays the lines indicating the directions of the controllers 20 from the positions of the two controllers 20 held by the user. In addition, the information processing apparatus 100 points a position desired to be designated by the two controllers and creates an intersection. The information processing apparatus 100 enters the intersection display mode when the two lines are closer than a certain distance (threshold D0) in front of the controllers 20. Furthermore, the information processing apparatus 100 displays an intersection at a midpoint of the nearest points of the lines. Furthermore, when the controllers are parallel to each other, the intersection becomes infinite, and thus the information processing apparatus 100 sets in advance the maximum distance (threshold Lmax) from the controller to the intersection position. In a case where the distance between the two lines exceeds the threshold D1 or comes closer than the threshold D0 behind the controllers 20 to form an intersection, the information processing apparatus 100 exits from the intersection display mode.
[1-5-3. Intersection Display Pattern]
Next, a pattern of intersection display will be described with reference to
First, a display pattern of an intersection by a point mark will be described with reference to
Next, a display pattern of the intersection by a ring mark will be described with reference to
Next, a display pattern of the intersection by setting portions within a predetermined range from the intersection (hereinafter, also referred to as “neighboring portions”) of the lines to a display pattern different from other portions will be described with reference to
[1-6. Master-Subordinate Relationship]
Note that there may be a master-subordinate relationship between the instruction components. As described above, the plurality of instruction components may include a main component (main instruction component) and a subordinate component (subordinate instruction component). This point will be described with reference to
[1-6-1. Controller and Line of Sight]
First, a procedure related to intersection display in a case where there is a master-subordinate relationship between a controller and an instruction component that is a line of sight will be described with reference to
Each of states ST21 to ST24 illustrated in
The state ST21 illustrated in
The user 50 adjusts the controller 20 to designate a desired position (Step S21). As a result, the user 50 attempts to point to a position desired to be designated by the line LN21 of the controller 20. The state ST22 illustrated in
Furthermore, the user 50 directs the eyes 51 (line of sight) toward the target TG (Step S22). As a result, the user 50 causes the eyes 51 (line of sight) to face the target TG. The state ST23 illustrated in
Then, the information processing apparatus 100 determines whether the distance D between the line LN21 of the controller 20 and the line LN22 of the eye 51 (line of sight) is less than the threshold D0. In the state ST2 illustrated in
In this manner, the information processing apparatus 100 enters the intersection display mode in a case where the distance D between the line LN21 of the controller 20 and the line LN22 of the eye 51 (line of sight) is within a certain distance (threshold D0). In addition, when (the line or the like of) the controller 20 becomes parallel, the intersection becomes infinite, and thus, the maximum distance (threshold Lmax) of the intersection position is set in advance. In addition, since the line of sight constantly moves slightly, the information processing apparatus 100 causes the display device 10 to display the intersection at the nearest point on the line LN21 of the controller 20. In addition, since focusing cannot be performed in a place where there is nothing due to a human visual adjustment mechanism, the information processing system 1 first displays a line of the controller 20 so that the user 50 can designate a position by a line of sight. As described above, even if the direction of the controller 20 becomes parallel to make the intersection, the user 50 can operate without losing sight of the intersection because the intersection does not go far.
Then, the user 50 adjusts the controller 20 and the eyes 51 (line of sight) (Step S24). The user 50 adjusts the controller 20 and the eyes 51 (line of sight) such that the two lines LN21 and LN22 are separated from the target TG.
Furthermore, the information processing apparatus 100 determines whether the distance D between the two lines LN21 and LN22 is larger than the threshold D1. In the state ST24 illustrated in
Note that the values of the threshold D0 and the threshold D1 may be changed according to a combination of types (controller, line of sight, etc.) of instruction components indicating directions.
[1-6-2. Pointing and Line of Sight]
As noted above, the instruction components may be of various types. For example, the instruction component may not include the controller 20. For example, a finger 52 (see
As described above, in a case where a hand (finger) is used to give an instruction on a direction, the information processing system 1 may detect a mode (position, direction, or the like) of finger pointing of the user by a predetermined sensor that detects a shape or the like of the hand of the user. For example, the information processing system 1 may detect a mode (position, direction, or the like) of finger pointing of the user by an image sensor.
First, the user 50 makes the hand have a shape pointing in a direction. As a result, a line is displayed from the hand (finger 52) of the user 50. Then, the user 50 points to a position desired to be designated by hand. The information processing system 1 enters the intersection display mode in a case where a distance between the line of the hand and a straight line of the line of sight is within the certain distance (threshold D0). In a case where the distance between the two lines of the hand and the line of sight exceeds the threshold D1 or the distance is closer than the threshold D0 behind the hand and an intersection is formed, the information processing system 1 exits from the intersection display mode. In addition, when the shape indicating the direction of the hand is stopped, the information processing system 1 ends the processing.
[1-6-3. Intersection Display Example]
Next, intersection display in a case where there is a master-subordinate relationship between instruction components will be described with reference to
In
[1-7. Virtual Object]
Here, arrangement of virtual objects will be described with reference to
[1-7-1. Arrangement of a Virtual Object]
First, a procedure related to arrangement of a virtual object will be described with reference to
Each of states ST31 to ST34 illustrated in
As illustrated in the state ST31 of
In the state ST32 illustrated in
The user 50 adjusts the first controller 20A to designate a desired position (Step S32). The user 50 points in a direction of a position desired to be designated by the first controller 20A. As illustrated in the state ST33 of
Note that the information processing apparatus 100 controls the display device 10 to change and display a display pattern of the virtual object while the position of the virtual object is moving. For example, when moving and arranging the virtual object, the information processing apparatus 100 may weaken the display of the moving virtual object. For example, the information processing apparatus 100 weakens the display of the moving virtual object by increasing the transmittance of the moving virtual object. As described above, when the virtual object is moved and arranged, by weakening the display of the virtual object being moved, the user can move the virtual object while confirming the arrangement and positional relationship with an object in the real world and a virtual object arranged around.
Furthermore, for example, when moving and arranging the virtual object, the information processing apparatus 100 may enhance the display of the virtual object being moved. As described above, by enhancing the display of the virtual object that is moving, the user can make the virtual object stand out (enhance visibility) in a similar virtual object or can easily arrange the virtual object in a depth direction.
Then, the user 50 adjusts the second controller 20B to designate a desired position (Step S33). The user 50 brings the second controller 20 (second controller 20B) close to a position (target TG) to be moved on the first controller 20 (first controller 20A) to create an intersection display mode. As illustrated in the state ST34 of
Then, the information processing apparatus 100 determines whether the distance D between the line LN1 of the first controller 20A and the line LN2 of the second controller 20B is less than the threshold D0. In the state ST32 illustrated in
Then, the information processing apparatus 100 causes the display device 10 to display the virtual object VO1 at the position of the intersection between the line LN1 and the line LN2. As a result, the virtual object VO1 moves to the position of the intersection of the line LN1 and the line LN2.
The user 50 who has arranged the virtual object VO1 at the position desired to be arranged releases the finger from the button 25 of the first controller 20A and arranges the virtual object VO1 at the designated position (Step S34). As a result, the information processing apparatus 100 determines that the grasping of the virtual object VO1 by the first controller 20A has been released. Note that, in a case where the virtual object VO1 is a virtual object following gravity, such as a plant or a chair, the information processing apparatus 100 arranges the virtual object on a desk or a floor. Furthermore, in a case where the virtual object VO1 is a virtual object that does not follow gravity, such as a ghost or a bird, the information processing apparatus 100 arranges the virtual object on a space. For example, the information processing apparatus 100 executes any of the above processes according to a gravity flag of the virtual object VO1.
Furthermore, when an intersection is created far away, a position of the virtual object rapidly changes. Therefore, the information processing apparatus 100 may create an intersection within a certain range from the controller 20, but details of this point will be described later. Furthermore, for a certain range, the distance may be changed between the front and the back of the virtual object. Furthermore, the information processing apparatus 100 may cause the display device 10 to display a line of the controller 20 grasping the virtual object (hereinafter also referred to as a “grasping line”) and a line of the controller 20 not grasping the virtual object (hereinafter also referred to as a “non-grasping line”) in different display patterns. For example, the information processing apparatus 100 may change the appearance such as the color and thickness of the grasping line and the non-grasping line to make it easy to understand which one the grasping line and the non-grasping line are grasping. For example, the information processing apparatus 100 may set the color of the grasping line to red and the color of the non-grasping line to black. For example, the information processing apparatus 100 may make the grasping line thicker than the non-grasping line.
Furthermore, as described above, various display patterns may be used during the movement of the virtual object. For example, the information processing apparatus 100 may display the virtual object as it is even while moving. The information processing apparatus 100 displays the virtual object as it is in a case where it is desired to arrange the virtual object while confirming the arrangement and positional relationship with an object in the real world or a virtual object arranged around.
Furthermore, for example, the information processing apparatus 100 may weaken the display of the virtual object being moved. For example, the information processing apparatus 100 displays only an outline of the virtual object or makes it translucent. The information processing apparatus 100 displays an outline of the virtual object or makes it translucent in a case where it is desired to perform trajectory and position adjustment during movement while confirming arrangement and positional relationship with an object in the real world and a virtual object arranged around. For example, the information processing apparatus 100 may turn off the display of the virtual object. In this case, the information processing apparatus 100 may display only the intersection. The information processing apparatus 100 puts emphasis on the trajectory and position adjustment during movement, and deletes the display of the virtual object in a case where it is desired to make the movement easily viewable.
Furthermore, for example, the information processing apparatus 100 may enhance the display of the virtual object being moved. The information processing apparatus 100 may enhance the hue or increase the luminance value. The information processing apparatus 100 may be combined with additional display such as an icon. In a case where similar objects are arranged, the information processing apparatus 100 highlights the selected virtual object for easy understanding. Furthermore, in a case where it is desired to arrange the virtual objects at the back of the place where the virtual objects are arranged, the information processing apparatus 100 makes it easy to arrange the virtual objects at the back of the virtual objects by suppressing the color tone or increasing the transmittance of other virtual objects.
[1-7-2. Arrangement Range of a Virtual Object]
Next, an arrangement range of a virtual object will be described with reference to
As described above, in a case where the intersection is located far from the controller 20, the position of the virtual object rapidly changes. Therefore, the information processing apparatus 100 generates an intersection in a case where the intersection is within a certain distance from the controller 20. Furthermore, even if the position of the virtual object is too near, that is, too close to the controller 20, it is difficult to see the virtual object. Therefore, in a case where the position of the intersection is not in the vicinity of the controller 20, the information processing apparatus 100 generates the intersection.
In the example of
As described above, when the virtual object is moved, it is possible to prevent the virtual object from flying far with the direction of the controller being parallel, and a situation in which it is difficult for the controller to grasp the virtual object due to an intersection at hand does not occur. By limiting the range in which the intersection is displayed to the range R41, the information processing apparatus 100 can suppress the virtual object from flying far even in a case where the lines of the instruction components such as the controller 20 are parallel, and can suppress the virtual object from being difficult to grasp due to the intersection at hand of the user 50.
For example, when the two lines are parallel or close to parallel, the pointed position (intersection) is infinity or close to infinity, which causes a problem that an unintended position is obtained or the pointed position is not noticed. In addition, in a case where the position is designated far away, the position is displaced by a small movement, and thus there is a problem that it is difficult to designate the position. As described above, the information processing apparatus 100 can solve the above problems by limiting the range in which the intersection is displayed to the range R41.
[1-7-3. Arrangement Position with an Intersection]
Next, a relationship between an arrangement position of a virtual object and an intersection will be described with reference to
The information processing apparatus 100 determines a display position of the virtual object according to the distance (also referred to as “distance R”) from the controller 20 to the intersection. In a case where the distance R is larger than the threshold Rmin and smaller than the threshold Rmax, the information processing apparatus 100 determines the position of the intersection (distance R) as the display position of the virtual object. As described above, in a case where the intersection (for example, the instruction position) is located between the first distance (threshold Rmin), which is the distance from the controller 20 to the first position, and the second distance (threshold Rmax), which is the distance from the controller 20 to the second position more distant than the first position, the information processing apparatus 100 arranges the virtual object at the position of the intersection (distance R).
In the example of
Furthermore, in the example of
As described above, in a case where the distance from the controller 20 to the intersection is equal to or less than the threshold Rmin, the information processing apparatus 100 sets the display position of the virtual object as the position of the threshold Rmin, and thus, it is possible to suppress that there is an intersection at hand of the user 50 and it is difficult to grasp the virtual object.
Furthermore, in the example of
As described above, in a case where the distance from the controller 20 to the intersection is equal to or greater than the threshold Rmax, the information processing apparatus 100 can suppress the virtual object from flying far by setting the display position of the virtual object as the position of the threshold Rmax.
[1-7-4. Movement of a Virtual Object]
Next, movement of a virtual object will be described with reference to
A virtual object VO50 in
Here, the information processing apparatus 100 determines whether to move the position of the virtual object VO5 according to the movement of the line LN50 of the first controller 20A using the threshold Dthreshold. The threshold Dthreshold is a ceremony status used for determining the movement of the object. The information processing apparatus 100 moves the position of the virtual object in a case where a moving distance (hereinafter referred to as “moving distance MD”) of the virtual object is equal to or more than the threshold Dthreshold. In the example of
For example, in a case where the moving distance MD of the virtual object VO5 is less than the threshold Dthreshold, the information processing apparatus 100 causes the display device 10 to return to the position before the movement (the position of the virtual object VO50 in
For example, in a case where the moving distance MD (corresponding to the symbol MD51 in
As described above, the information processing apparatus 100 can absorb minute hand shaking or displacement by executing the movement of the virtual object using a threshold such as the threshold Dthreshold.
Note that, in a case where the virtual object has the “gravity” flag, the information processing apparatus 100 controls the display device 10 such that the virtual object falls in the gravity direction from the position (position after the change) of the virtual object after movement. For example, in a case where the virtual object is arranged on a floor, a desk, or the like by gravity, such as a plant or a chair, the information processing apparatus 100 controls the display device 10 such that the virtual object falls in a gravity direction from the position of the virtual object.
Furthermore, in a case where there is no “gravity” flag in the virtual object, the information processing apparatus 100 controls the display device 10 such that the virtual object is arranged at the position (position after the change) of the virtual object after the movement. For example, in a case of a ghost, a bird, a butterfly, or the like that can freely move in the air, the information processing apparatus 100 controls the display device 10 such that the virtual object is arranged at the position of the virtual object.
[1-7-5. Procedure of Moving a Virtual Object]
Next, a procedure of moving a virtual object will be described with reference to
In the information processing system 1, the control unit 130 repeats the processing of Steps S302 to S304 by the number of controllers (Step S301). First, the information processing system 1 acquires the direction and position of the controller (Step S302). For example, the information processing apparatus 100 acquires information indicating the direction and position of the first controller 20A.
The information processing system 1 determines whether it holds an Object (Step S303). For example, the information processing apparatus 100 determines whether the first controller 20A holds a virtual object.
If the Object is not held (Step S303: No), the information processing system 1 performs the processing of Steps S302 to S304 for the next controller.
If the Object is held (Step S303: Yes), the information processing system 1 turns on the grasping flag (Step S304). Then, the information processing system 1 performs the processing of Steps S302 to S304 for the next controller. For example, in a case where the first controller 20A holds a virtual object, the information processing apparatus 100 turns on the grasping flag of the first controller 20A. For example, the information processing apparatus 100 stores the grasping flag “ON” in association with the first controller 20A in the direction instruction information storage unit 123 (see
After repeating the processing of Steps S302 to S304 by the number of controllers, the information processing system 1 repeats the processing of Steps S306 to S311 by the number of controllers (Step S305).
The information processing system 1 determines whether the grasping flag is ON (Step S306). For example, the information processing apparatus 100 determines whether the grasping flag of the first controller 20A is ON.
When the grasping flag is ON (Step S306: Yes), the information processing system 1 performs the processing of Steps S306 to S311 for the next controller. For example, in a case where the grasping flag of the first controller 20A is ON, the information processing apparatus 100 performs the processing of Steps S306 to S311 for the second controller 20B.
In a case where the grasping flag is not ON (Step S306: No), the information processing system 1 determines whether the line indicates the Object (Step S307). For example, in a case where the grasping flag of the first controller 20A is not ON, the information processing apparatus 100 determines whether the line LN1 of the first controller 20A indicates a virtual object.
In a case where the line does not point to the Object (Step S307: No), the information processing system 1 performs the processing of Steps S306 to S311 for the next controller.
In a case where the line indicates the Object (Step S307: Yes), the information processing system 1 determines whether the button is pressed (Step S308). For example, in a case where the line LN1 of the first controller 20A indicates a virtual object, the information processing apparatus 100 determines whether the button 25 of the first controller 20A is pressed.
When the button is not pressed (Step S308: No), the information processing system 1 performs the processing of Steps S306 to S311 for the next controller.
When the button is pressed (Step S308: Yes), the information processing system 1 assumes that the controller has an Object (Step S309). For example, in a case where the button 25 of the first controller 20A is pressed, the information processing apparatus 100 determines that the first controller 20A has the virtual object pointed by the line LN1.
Then, the information processing system 1 turns on the grasping flag (Step S310). For example, in a case where the first controller 20A holds a virtual object, the information processing apparatus 100 turns on the grasping flag of the first controller 20A. For example, the information processing apparatus 100 stores the grasping flag “ON” in association with the first controller 20A in the direction instruction information storage unit 123 (see
Then, the information processing system 1 sets a distance from the controller to the Object as R (Step S311). For example, the information processing apparatus 100 sets a distance from the first controller 20A to the virtual object as a distance R. Then, the information processing system 1 performs the processing of Steps S306 to S311 for the next controller. After repeating the processing of Steps S306 to S311 by the number of controllers, the information processing system 1 performs the processing of Step S401 illustrated in
As illustrated in
If there are not two controllers (Step S401: No), the information processing system 1 determines whether there is one controller (Step S402). In a case where the number of controllers is not one (Step S402: No), the information processing system 1 ends the processing. In a case where there is one controller (Step S402: Yes), the information processing system 1 performs the processing of Step S501 illustrated in
When the number of controllers is two (Step S401: Yes), the information processing system 1 determines whether the grasping flag is 0 (Step S403). For example, in a case where the number of controllers is two, the information processing apparatus 100 determines whether the number of controllers whose grasping flags are ON in the two controllers is “0 (zero)”.
When the grasping flag is 0 (Step S403: Yes), the information processing system 1 performs the intersection mode processing (Step S404). Note that the intersection mode processing corresponds to the processes of Steps S601 to S606 illustrated in
Then, the information processing system 1 determines whether the intersection display mode is ON (Step S405). For example, the information processing apparatus 100 determines whether the intersection display mode in the intersection displaying information storage unit 124 (see
When the intersection display mode is ON (Step S405: Yes), the information processing system 1 sets a midpoint of the nearest points of the two lines as the intersection (Step S406). For example, in a case where the intersection display mode is ON, the information processing apparatus 100 sets the midpoint between a point PT1 which is the nearest point of the line LN1 of the first controller 20A and a point PT2 which is the nearest point of the line LN2 of the second controller 20B as the intersection IS1. Then, the information processing system 1 performs the processing of Step S501 illustrated in
When the intersection display mode is not ON (Step S405: No), the information processing system 1 deletes the display of the intersection (Step S407). For example, in a case where the intersection display mode is OFF, the information processing apparatus 100 maintains the intersection non-display in a case where the intersection is non-display, and deletes the display of the intersection in a case where the intersection is being displayed. Then, the information processing system 1 performs the processing of Step S501 illustrated in
If the grasping flag is not 0 (Step S403: No), the information processing system 1 determines whether the grasping flag is 1 (Step S408). For example, in a case where the number of controllers is two, the information processing apparatus 100 determines whether the number of controllers whose grasping flags are ON in the two controllers is “1”.
In a case where the grasping flag is not 1 (Step S408: No), the information processing system 1 performs the processing of Step S501 illustrated in
When the grasping flag is 1 (Step S408: Yes), the information processing system 1 sets the grasping flag on as a main controller (Step S409). That is, the information processing system 1 sets the controller whose grasping flag is ON as the main controller. For example, the information processing apparatus 100 determines, as the main controller, the first controller 20A whose grasping flag is ON among the first controller 20A and the second controller 20B. In this case, the information processing apparatus 100 changes the master-subordinate relationship in the intersection displaying information storage unit 124 (see
Then, the information processing system 1 performs intersection mode processing (Step S410). The information processing system 1 determines whether the intersection display mode is ON (Step S411). For example, the information processing apparatus 100 determines whether the intersection display mode in the intersection displaying information storage unit 124 (see
When the intersection display mode is not ON (Step S411: No), the information processing system 1 deletes the display of the intersection (Step S412). For example, in a case where the intersection display mode is OFF, the information processing apparatus 100 maintains the intersection non-display in a case where the intersection is non-display, and deletes the display of the intersection in a case where the intersection is being displayed. Then, the information processing system 1 performs the processing of Step S501 illustrated in
When the intersection display mode is ON (Step S411: Yes), the information processing system 1 sets the closest point on the main controller as the intersection (Step S413). For example, in a case where the main controller is the first controller 20A, the information processing apparatus 100 sets the nearest point of the line LN1 of the first controller 20A as an intersection.
The information processing system 1 sets the distance between the main controller and the intersection as Rtemp (Step S414). For example, in a case where the main controller is the first controller 20A, the information processing apparatus 100 sets the distance from the first controller 20A to the virtual object as the distance Rtemp.
The information processing system 1 determines whether the distance Rtemp is greater than the threshold Rmin and less than the threshold Rmax (Step S415). For example, the information processing apparatus 100 determines whether the distance Rtemp is within a range between the threshold Rmin and the threshold Rmax.
In a case where the distance Rtemp is greater than the threshold Rmin and less than the threshold Rmax (Step S415: Yes), the information processing system 1 sets the distance R from the main controller to the Object as Rtemp (Step S416). For example, in a case where the main controller is the first controller 20A, the information processing apparatus 100 sets the distance R from the first controller 20A to the virtual object as the distance Rtemp. Then, the information processing system 1 performs the processing of Step S501 illustrated in
In a case where the distance Rtemp is greater than the threshold Rmin and not less than the threshold Rmax (Step S415: No), the information processing system 1 determines whether the distance Rtemp is equal to or greater than the threshold Rmax (Step S417). For example, in a case where the distance Rtemp is equal to or less than the threshold Rmin or equal to or more than the threshold Rmax, the information processing apparatus 100 determines whether the distance Rtemp is equal to or more than the threshold Rmax.
In a case where the distance Rtemp is not equal to or more than the threshold Rmax (Step S417: No), the information processing system 1 sets the distance R as the threshold Rmin (Step S418). For example, in a case where the distance Rtemp is equal to or less than the threshold Rmin, the information processing apparatus 100 sets the distance R from the first controller 20A to the virtual object to the threshold Rmin. Then, the information processing system 1 performs the processing of Step S501 illustrated in
In a case where the distance Rtemp is equal to or more than the threshold Rmax (Step S417: Yes), the information processing system 1 sets the distance R as the threshold Rmax (Step S419). For example, in a case where the distance Rtemp is equal to or greater than the threshold Rmax, the information processing apparatus 100 sets the distance R from the first controller 20A to the virtual object to the threshold Rmax. Then, the information processing system 1 performs the processing of Step S501 illustrated in
As illustrated in
The information processing system 1 determines whether there is a grasping flag (Step S503). For example, the information processing apparatus 100 determines whether the grasping flag of the first controller 20A is ON.
When there is no grasping flag (Step S503: No), the information processing system 1 performs the processing of Steps S502 to S505 for the next controller.
When there is the grasping flag (Step S503: Yes), the information processing system 1 determines whether the button is pressed (Step S504). For example, in a case where the line LN1 of the first controller 20A indicates a virtual object, the information processing apparatus 100 determines whether the button 25 of the first controller 20A is pressed.
When the button is pressed (Step S504: Yes), the information processing system 1 displays the Object at the position of R (Step S505). For example, in a case where the button 25 of the first controller 20A is pressed, the information processing apparatus 100 displays the virtual object at the position of the distance R. Then, the information processing system 1 performs the processing of Steps S502 to S505 for the next controller.
In a case where the button is not pressed (Step S504: No), the information processing system 1 determines whether the moving distance D of the Object is smaller than the threshold Dthreshold (Step S506).
In a case where the moving distance D of the Object is smaller than the threshold Dthreshold (Step S506: Yes), the information processing system 1 returns the Object to the original position (Step S507). For example, in a case where the moving distance D of the virtual object is smaller than the threshold Dthreshold, the information processing apparatus 100 displays the virtual object at the original position. Then, the information processing system 1 returns to the start. For example, the information processing system 1 returns to Step S301 and repeats the processing.
In a case where the moving distance D of the Object is not smaller than the threshold Dthreshold (Step S506: No), the information processing system 1 determines whether there is a gravity flag in the Object (Step S508). The information processing system 1 determines whether the gravity flag of the virtual object is given. For example, the information processing apparatus 100 determines whether the gravity flag corresponding to the virtual object in the object information storage unit 125 (see
In a case where there is a gravity flag in the Object (Step S508: Yes), the information processing system 1 drops the Object to the place (Step S509). For example, in a case where the gravity flag corresponding to the virtual object in the object information storage unit 125 (see
In a case where there is no gravity flag in the Object (Step S508: No), the information processing system 1 arranges the Object on the place (Step S510). For example, in a case where the gravity flag corresponding to the virtual object in the object information storage unit 125 (see
After repeating the processing of Steps S502 to S505 as many as the number of controllers, the information processing system 1 determines whether there is an intersection (Step S511).
In a case where there is no intersection (Step S511: No), the information processing system 1 returns to the start. For example, the information processing system 1 returns to Step S301 and repeats the processing.
If there is an intersection (Step S511: Yes), the information processing system 1 displays the intersection (Step S512). Then, the information processing system 1 returns to the start. For example, the information processing system 1 returns to Step S301 and repeats the processing.
Here, a procedure related to the intersection mode processing will be described with reference to
The information processing system 1 determines whether the distance D between the two lines is less than the threshold D0 (Step S601). For example, the information processing apparatus 100 determines whether the distance D between the line LN1 of the first controller 20A and the line LN2 of the second controller 20B is less than the threshold D0.
In a case where the distance D between the two lines is not less than the threshold D0 (Step S601: No), the information processing system 1 determines whether the distance D between the two lines is larger than the threshold D1 (Step S602). For example, in a case where the distance D between the line LN1 of the first controller 20A and the line LN2 of the second controller 20B is equal to or larger than the threshold D0, the information processing apparatus 100 determines whether the distance D is larger than the threshold D1.
In a case where the distance D between the two lines is not larger than the threshold D1 (Step S602: No), the information processing system 1 ends the intersection mode processing. That is, in a case where the distance D between the two lines is equal to or less than the threshold D1, the information processing system 1 maintains ON when the intersection display mode is ON, maintains OFF when the intersection display mode is OFF, and ends the intersection mode processing. For example, in a case where the distance D between the line LN1 of the first controller 20A and the line LN2 of the second controller 20B is equal to or less than the threshold D1, the information processing apparatus 100 ends the intersection mode processing.
When the distance D between the two lines is larger than the threshold D1 (Step S602: Yes), the information processing system 1 turns off the intersection display mode (Step S603), and then ends the intersection mode processing. For example, in a case where the distance D between the two lines is larger than the threshold D1, the information processing apparatus 100 changes to OFF if the intersection display mode is ON, maintains OFF if the intersection display mode is OFF, and ends the intersection mode processing.
In a case where the distance D between the two lines is less than the threshold D0 (Step S601: Yes), the information processing system 1 determines whether the intersection is in front (Step S604). For example, in a case where the distance D between the two lines is less than the threshold D0, the information processing apparatus 100 determines whether the intersection IS1 is in front of the first controller 20A. For example, in a case where the distance D between the two lines is less than the threshold D0, the information processing apparatus 100 may determine whether the intersection IS1 is in front of the second controller 20B.
In a case where the intersection is not in front (Step S604: No), the information processing system 1 turns off the intersection display mode (Step S603), and then ends the intersection mode processing. For example, in a case where the intersection IS1 is not in front of the first controller 20A, the information processing apparatus 100 changes to OFF if the intersection display mode is ON, maintains OFF if the intersection display mode is OFF, and ends the intersection mode processing.
In a case where the intersection is in front (Step S604: Yes), the information processing system 1 determines whether the intersection is within Lmax (Step S605). For example, in a case where the intersection IS1 is in front of the first controller 20A, the information processing apparatus 100 determines whether a distance from the first controller 20A to the intersection IS1 is within the threshold Lmax.
If the intersection is not within Lmax (Step S605: No), the information processing system 1 turns off the intersection display mode (Step S603), and then ends the intersection mode processing. For example, in a case where the distance from the first controller 20A to the intersection IS1 is larger than the threshold Lmax, the information processing apparatus 100 changes to OFF if the intersection display mode is ON, maintains OFF if the intersection display mode is OFF, and ends the intersection mode processing.
When the intersection is within Lmax (Step S605: Yes), the information processing system 1 turns on the intersection display mode (Step S606). For example, in a case where the distance from the first controller 20A to the intersection IS1 is within the threshold Lmax, the information processing apparatus 100 turns on the intersection display mode.
[1-7-6. Controller and Line of Sight]
Note that, in the processing for the virtual object described above, the instruction component is not limited to the controller, and other devices, the body (hand or eye) of the user, or the like may be used. For example, the controller 20 and a line of sight of the eyes 51 of the user 50 may be an instruction component. Hereinafter, processing of this point will be described. A case where a virtual object is selected with one line and the virtual object is arranged at an intersection with the line of sight will be described.
Note that the processing for the virtual object described above is similar to the processing for the virtual object described above except that the instruction component is changed from the controller 20 to the eye 51 (line of sight) of the user 50, and thus description thereof is appropriately omitted. Furthermore, in the following description, the information processing system 1 will be described as a main body of processing, but each processing may be performed by any device included in the information processing system 1 such as the information processing apparatus 100 or the display device 10 according to the device configuration of the information processing system 1.
The user 50 points to a virtual object to be selected by the controller 20. Then, the user 50 presses the button 25 of the controller 20 to select a virtual object. As a result, the information processing apparatus 100 determines that the controller 20 has grasped the virtual object.
Then, the user 50 points in the direction of a position desired to be designated by the controller 20. Note that the virtual object is arranged ahead of (the line of) the controller 20.
Then, the user 50 directs the line of sight to the position to be moved on (the line of) the controller 20, and creates the intersection display mode. When the two lines come closer than a certain distance (threshold D0) in front of the controller 20, the virtual object moves to the intersection. For example, when determining that the two lines are closer than a certain distance (threshold D0) in front of the controller 20, the information processing apparatus 100 causes the display device 10 to display a virtual object at the intersection.
When an intersection is created far away, the position of the virtual object rapidly changes, and thus the information processing apparatus 100 creates an intersection within a certain range from the controller 20. For the certain range, the distance may be changed between the front side and the back side of the virtual object. Since the line of sight always moves slightly, the information processing apparatus 100 displays an intersection at the nearest point on the line of the controller. In addition, since focusing cannot be performed in a place where there is nothing due to a human visual adjustment mechanism, the information processing apparatus 100 first displays a line of the controller 20 so that the user can specify a position by a line of sight.
Then, the user 50 adjusts the position of the intersection with two lines. In this case, the intersection moves on a line of controller 20. Furthermore, when the controllers become parallel, the information processing apparatus 100 sets the maximum distance (threshold Lmax) in advance since the distance becomes infinite.
In response to the adjustment of the position of the intersection by the user 50, the information processing apparatus 100 causes the display device 10 to display the virtual object at the position of the intersection. The user 50 having arranged the virtual object at the position desired to be arranged releases the finger from the button 25 of the controller 20 and arranges the virtual object at the designated position. As a result, the information processing apparatus 100 determines that the holding of the virtual object by the controller 20 has been released.
[1-8. Line Representation]
Note that the instruction component is not limited to the above, and may be various elements such as a palm, an arm, and a front of a face or a head. That is, examples of the object that emits a line include various objects capable of indicating a direction, such as a controller, a finger, a hand, a palm, an arm, a line of sight, and a front of a face or a head.
In addition, even when there is no functional difference between the two lines, the two lines may have a master-subordinate relationship. The information processing apparatus 100 may determine the master-subordinate relationship between the instruction components by appropriately using various information. Furthermore, the information processing apparatus 100 may change the color density, shape, and the like of each line in order to indicate the master-subordinate relationship.
The information processing apparatus 100 may determine an instruction component estimated to be preferentially used as a main instruction component (main instruction component). For example, the information processing apparatus 100 sets an instruction component corresponding to the user's right hand as a main instruction component. Furthermore, for example, the information processing apparatus 100 may have a thing (device) as the main instruction component. For example, in a case where the information processing apparatus 100 holds things (devices) only in one hand, the device may be used as the main instruction component.
The information processing apparatus 100 may determine the main instruction component according to a predetermined order. The information processing apparatus 100 may determine the main instruction component according to the order in which a beam state is set. For example, the information processing apparatus 100 may determine the instruction component that has been initially set in the beam state as the main instruction component.
The information processing apparatus 100 may determine the main instruction component according to the way of movement. For example, the information processing apparatus 100 may determine an instruction component that has been moved largely or moved previously as a main instruction component.
The representation of the lines may also be of various objects. For example, when the user becomes accustomed to the operation, the display of the line becomes unnecessary, and thus, only the intersection may be displayed. Furthermore, for example, the information processing apparatus 100 may express a line so that it is easy to create an intersection when two lines are separated. For example, the information processing apparatus 100 may increase the thickness of the line.
Furthermore, the information processing apparatus 100 may express the line such that the vicinity of the intersection bulges or bulges toward the nearest point. This point will be described with reference to
Each of
First, expression of lines in a case where there is no master-subordinate relationship will be described with reference to
Next, expression of lines in a case where there is a master-subordinate relationship will be described with reference to
Next, expression of lines in a case where there is a master-subordinate relationship will be described with reference to
Further, the direction may be expressed not only by a line but also by a plane or in a plane. The plane may be either master or subordinate. In addition, the direction of the plane may be a horizontal direction or a vertical direction. In addition, the direction of the plane may be a direction in which a controller or the like is moved.
In addition, the width of the plane may be set according to the distance from a controller, a hand, or the like of the operator to the intersection or the virtual object. For example, the width is set to about the threshold D1. In addition, a minimum width of about several centimeters may be determined in preparation for a case where the intersection is near.
In addition, in the expression of the plane or the in-plane, the line may have a neck bend like a straw in the plane between the operator and the object. In addition, a line may extend from the object toward the operator so that the object can be easily selected. Further, when the line is drawn from the controller or the finger of the operator, the line may be displayed with a slight gap.
The above-described points will be specifically described with reference to
First, the neck folding of the line will be described with reference to
In this manner, the information processing apparatus 100 can allow the user 50 to intuitively recognize that the line LN72 gives an instruction on the virtual object VO71 by expressing the line LN72 such that the line LN72 is attracted to the virtual object VO71.
Next, with reference to
[1-9. Others]
The present invention is not limited to the above, and various display patterns may be used. In the above-described example, the operation in a case where there is one user has been described. However, a plurality of users (a plurality of users) may wear the display device 10 such as the AR device, the VR device, or the MR device, which may be operated by a plurality of users while watching the same video. In this case, when one person is operating the virtual object, the other person can adjust the position.
Furthermore, with respect to the intersection, the information processing apparatus 100 may transmit the state by applying vibration, pressure, sound, or the like when entering the intersection mode or performing fine adjustment in the intersection mode. For example, the information processing apparatus 100 may transmit a state such as when an intersection is likely to be formed, when an intersection is formed, when an intersection is present, when a line is likely to be separated, or when a line is separated. For easy understanding of the position of the intersection, the information processing apparatus 100 may provide a virtual plane on a floor, a desk, a height of a waist, or the like and display a shadow obtained by projecting the intersection, or a line connecting the intersection and the shadow. This point will be described with reference to
Furthermore, the information processing apparatus 100 may perform various types of processing on the virtual object. The information processing apparatus 100 may provide a movable area, line, or the like of the virtual object so that the virtual object can move only within the range. In a case where the virtual object or the intersection is to be arranged at a place hidden by the object in the real space, the information processing apparatus 100 may not go deeper than the object or may pass through the object. The information processing apparatus 100 may display supplementary information such as a moving distance and an angle of the virtual object and a distance and an angle from the real object.
Furthermore, the information processing apparatus 100 may perform various processes for displaying the spatial coordinates. The information processing apparatus 100 may display spatial coordinates or a grid so that the intersection and the coordinate position of the virtual object can be easily understood. When displaying the space coordinates, the information processing apparatus 100 may display a coordinate system from the position of the operator, a coordinate system from a specific person, an object, or a position, a person other than the operator, a specific object such as a real object or a virtual object, an absolute coordinate system of a space such as a specific position, or the like.
[1-10. Other Geometric Targets (Planes)]
As described above, the geometric target is not limited to a line, and may be a plane. For example, the information processing apparatus 100 may display an intersection on the basis of a positional relationship of planes that are geometric targets. This point will be described with reference to
As illustrated in
As illustrated in
As illustrated in
As illustrated in
Further, a line connecting the origin 21B of the line LN82, which is the sub line, and the intersection IS81 is defined as a line LN83. Hereinafter, the line LN83 is also referred to as an operation line. The line LN83, which is the operation line, may be closer to the color of the line LN82, which is the sub line, as the line is farther away. For example, the information processing apparatus 100 may control the display device 10 such that the color of the line LN83 becomes closer to the color of the line LN82 as the sub line and is displayed as the line LN83 is separated from the line LN81.
Note that, among the geometric targets such as the lines LN81 to LN83 and the planes FC81 and FC82 described above, only the line LN81 as the main line and the line LN83 as the operation line may be visible to the user. That is, the information processing apparatus 100 may cause the display device 10 to display the line LN81 as the main line and the line LN83 as the operation line. In this case, the display device 10 displays only the line LN81 that is the main line and the line LN83 that is the operation line among the geometric targets such as the lines LN81 to LN83 and the planes FC81 and FC82.
Furthermore, the information processing apparatus 100 may use the appearance condition of the intersection to cause the intersection to appear (display) in a case where the appearance condition is satisfied. For example, the information processing apparatus 100 may cause an intersection to appear in a case where an angle AG81 that is an opening angle between the line LN82 that is the sub line and the line LN83 that is the operation line is equal to or less than a predetermined threshold. In a case where the angle AG81 of the angle formed by the line LN82 and the line LN83 is equal to or less than a predetermined threshold (for example, 10 degrees, 15 degrees, or the like), the information processing apparatus 100 may cause the intersection IS81 to appear. Furthermore, the information processing apparatus 100 may control the display such that the line is attracted in a case where the appearance condition of the intersection is satisfied. In a case where the appearance condition of the intersection is satisfied, the information processing apparatus 100 may control the display such that the line LN83, which is the operation line, is attracted. For example, in a case where the appearance condition of the intersection is satisfied, the information processing apparatus 100 may control the display of the line LN83 such that the line LN83, which is the operation line, bends at the vicinity of the virtual object and is attracted to the virtual object. Furthermore, the information processing apparatus 100 may forcibly attract the user during the grab. In a case where the information processing apparatus 100 has a virtual object, the information processing apparatus may control the display of the line LN83 such that the line LN83 bends in the vicinity of the virtual object and is attracted to the virtual object.
Note that the above-described system configuration is an example, and the information processing system may have any system configuration as long as the above-described processing can be realized. For example, although the case where the information processing apparatus 100 and the display device 10 are separate bodies has been described, the information processing apparatus 100 and the display device 10 may be integrated.
Among the processes described in the above embodiments, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically by a known method. In addition, the processing procedure, specific name, and information including various data and parameters illustrated in the document and the drawings can be arbitrarily changed unless otherwise specified. For example, the various information illustrated in each figure are not limited to the illustrated information.
In addition, each component of each device illustrated in the drawings is functionally conceptual, and is not necessarily physically configured as illustrated in the drawings. That is, a specific form of distribution and integration of each device is not limited to the illustrated form, and all or a part thereof can be functionally or physically distributed and integrated in an arbitrary unit according to various loads, usage conditions, and the like.
In addition, the above-described embodiments and modifications can be appropriately combined within a range not contradicting processing contents.
Furthermore, the effects described in the present specification are merely examples and are not limited, and other effects may be provided.
As described above, the information processing apparatus (the information processing apparatus 100 in the embodiment) according to the present disclosure includes the display control unit (the display control unit 134 in the embodiment). The display control unit causes the display device (the display device 10 in the embodiment) to display a mark for a virtual object at an instruction position that is a position determined on the basis of a plurality of directions indicated by the user.
As a result, the information processing apparatus according to the present disclosure can cause the display device to display the mark for the virtual object at the instruction position, which is the position determined on the basis of the plurality of directions indicated by the user, and thus, can enable flexible display according to the instruction of the user. Furthermore, according to the information processing apparatus, since the position is determined in a plurality of directions indicated by the user, an appropriate position according to an instruction of the user can be determined.
Furthermore, the display control unit causes the display device to display a mark at an instruction position determined on the basis of a plurality of geometric targets corresponding to each of a plurality of directions. As a result, the information processing apparatus can cause the display device to display the mark for the virtual object at the instruction position determined on the basis of the plurality of geometric targets such as the line and the plane corresponding to each direction, and thus, it is possible to enable flexible display according to the instruction of the user by the plurality of geometric targets such as the line and the plane.
In addition, the display control unit causes the display device to display a mark at an instruction position determined on the basis of a positional relationship among a plurality of geometric targets. As a result, the information processing apparatus can cause the display device to display the mark for the virtual object at the instruction position determined on the basis of the positional relationship among the plurality of geometric targets, and thus, it is possible to enable flexible display according to the user's instruction based on the positional relationship among the geometric targets.
In addition, the display control unit causes the display device to display a mark at an instruction position determined based on two geometric targets corresponding to each of a plurality of directions which are two directions. As a result, the information processing apparatus can cause the display device to display the mark for the virtual object at the instruction position determined on the basis of the two geometric targets corresponding to each of the plurality of directions that are the two directions. Therefore, flexible display according to the user's instruction in the two directions can be enabled.
In addition, the display control unit causes the display device to display the mark at an instruction position determined based on the first geometric target along the first direction and the second geometric target along the second direction among a plurality of directions which are two directions. As a result, the information processing apparatus can cause the display device to display the mark for the virtual object at the instruction position determined on the basis of the first direction and the second direction, so that flexible display according to the user's instruction in two directions can be enabled.
Furthermore, the information processing apparatus according to the present disclosure includes a determination unit (the determination unit 133 in the embodiment). The determination unit determines whether to display the mark based on the positional relationship between the two geometric targets. The display control unit causes the display device to display the mark when the determination unit determines to display the mark. As a result, the information processing apparatus can determine the display of the mark according to the determination result based on the positional relationship between the two geometric targets, and thus, can enable appropriate display according to the positional relationship between the two geometric targets.
In addition, the determination unit determines not to display the mark when a target distance, which is the distance between the two geometric targets, is the first threshold (the threshold D0 in the embodiment) or more. As a result, the information processing apparatus does not display the mark in a case where the distance between the two geometric targets is long, thereby enabling flexible display according to the user's instruction.
In addition, at the time of displaying the mark, the determination unit determines to continue displaying the mark in a case where the target distance is equal to or less than a second threshold (threshold D1 in the embodiment) larger than the first threshold, and determines not to display the mark in a case where the target distance exceeds the second threshold. As a result, in a case where the mark is displayed once, the information processing apparatus can continuously display the mark, can suppress the mark from being hidden or blinking due to a camera shake, an error, or the like of the user, and can enable flexible display according to an instruction of the user.
In addition, the determination unit determines whether to display the mark on the basis of a display distance that is a distance between an instruction component giving an instruction on one of two directions and an instruction position. As a result, the information processing apparatus can appropriately display or hide the mark according to the distance between the user and the instruction position, and can enable flexible display according to the instruction of the user.
When the display distance exceeds a third threshold (threshold Lmax in the embodiment), the determination unit determines not to display the mark. As a result, the information processing apparatus does not display the mark in a case where the instruction position is away from the user, thereby enabling flexible display according to the instruction of the user. For example, the information processing apparatus does not display the mark in a case where the geometric target such as the line becomes parallel or nearly parallel, and the instruction position (intersection) becomes far, for example, infinity, and the like, so that it is possible to suppress the display of the mark k at a position not intended by the user.
In addition, the display control unit causes the display device to display the virtual object at the instruction position based on the relationship between the two geometric targets. As a result, the information processing apparatus can cause the display device to display the virtual object at the instruction position based on the relationship between the two geometric targets, and thus can enable appropriate display of the virtual object according to the instruction of the user.
In addition, the display control unit causes the display device to display a mark at an instruction position determined on the basis of two points determined from each of the two geometric targets. As a result, the information processing apparatus can cause the display device to display the mark at the instruction position based on the two points of the two geometric targets, and thus can display the mark at an appropriate position according to the user's instruction.
In addition, the display control unit causes the display device to display a mark at an instruction position determined on the basis of two points at which a distance between two geometric targets is the closest. As a result, the information processing apparatus can cause the display device to display the mark at the instruction position based on the two points (nearest point) at which the distance between the two geometric targets is the closest, and thus can display the mark at an appropriate position according to the user's instruction.
Further, when the positions of the two points coincide with each other, the display control unit causes the display device to display the mark by using the positions of the two points as instruction positions. As a result, in a case where two geometric targets overlap, the information processing apparatus can cause the display device to display the mark at the position, and thus can display the mark at an appropriate position according to an instruction of the user.
Furthermore, in a case where the positions of the two points are different, the display control unit causes the display device to display a mark by using a position on a line segment connecting the two points as an instruction position. As a result, even in a case where the two geometric targets do not overlap, the information processing apparatus can cause the display device to display the mark at the position on the line segment connecting the two points, so that the mark can be displayed at an appropriate position according to the instruction of the user.
Furthermore, the display control unit causes the display device to display the virtual object at an arrangement position that is a position based on the instruction position. As a result, the information processing apparatus can cause the display device to display the virtual object at the arrangement position based on the instruction position, so that it is possible to appropriately display the virtual object according to the instruction of the user.
In addition, when the instruction position is located between a first distance (threshold Rmin in the embodiment), which is a distance from the instruction component giving an instruction on any of the plurality of directions to the first position, and a second distance (threshold Rmax in the embodiment), which is a distance from the instruction component to the second position farther than the first position, the display control unit causes the display device to display the virtual object with the instruction position as the arrangement position. As a result, in a case where the instruction position is located within the predetermined range, the information processing apparatus can cause the display device to display the virtual object at the position, and thus, can enable appropriate display of the virtual object according to the instruction of the user.
Furthermore, in a case where the instruction position is equal to or less than the first distance, the display control unit causes the display device to display the virtual object with the first position as the arrangement position. As a result, in a case where the instruction position is too close, the information processing apparatus can cause the display device to display the virtual object at a position separated to some extent, and thus, can enable appropriate display of the virtual object according to the instruction of the user.
Furthermore, in a case where the instruction position is the second distance or more, the display control unit causes the display device to display the virtual object with the second position as the arrangement position. As a result, in a case where the instruction position is too far, the information processing apparatus can cause the display device to display the virtual object at a position that is not too far away, and thus, can enable appropriate display of the virtual object according to the instruction of the user.
Furthermore, the display control unit causes the display device to display a mark at an instruction position determined on the basis of a plurality of lines corresponding to each of a plurality of directions. As a result, the information processing apparatus can cause the display device to display the mark for the virtual object at the instruction position determined on the basis of the plurality of lines corresponding to each direction, and thus, it is possible to enable flexible display according to the instruction of the user by the line.
In addition, the display control unit causes the display device to display a mark at an instruction position determined based on a plurality of geometric targets including a plane corresponding to at least one direction among a plurality of directions. As a result, the information processing apparatus can cause the display device to display the mark for the virtual object at the instruction position determined on the basis of the geometric target including the plane, and thus, it is possible to enable flexible display according to the instruction of the user by the geometric target including the plane.
Furthermore, the display control unit causes the display device to display the mark at an instruction position determined on the basis of a plurality of directions including at least one direction on which an instruction is given by the controller held by the user. As a result, the information processing apparatus can cause the display device to display the mark for the virtual object according to the instruction by the controller held by the user, and thus, it is possible to enable flexible display according to the instruction of the user.
Furthermore, the display control unit causes the display device to display a mark at an instruction position determined on the basis of a plurality of directions including at least one direction on which an instruction is given by the body of the user. As a result, the information processing apparatus can cause the display device to display the mark for the virtual object according to the instruction by the body of the user, and thus, it is possible to enable flexible display according to the instruction of the user.
Furthermore, the display control unit causes the display device to display a mark at an instruction position determined on the basis of a plurality of directions including at least one direction on which an instruction is given by the line of sight of the user. As a result, the information processing apparatus can cause the display device to display the mark for the virtual object according to the instruction by the line of sight of the user, and thus, can enable flexible display according to the instruction of the user.
Furthermore, the display control unit causes the display device to display a mark at an instruction position determined on the basis of a plurality of directions including at least one direction on which an instruction is given by the user's finger. As a result, the information processing apparatus can cause the display device to display the mark for the virtual object in accordance with the instruction by the user's finger, and thus, can enable flexible display in accordance with the instruction of the user.
The information device such as the information processing apparatus 100 according to each of the above-described embodiments and modifications is realized by, for example, the computer 1000 having a configuration as illustrated in
The CPU 1100 operates on the basis of a program stored in the ROM 1300 or the HDD 1400, and controls each unit. For example, the CPU 1100 develops a program stored in the ROM 1300 or the HDD 1400 in the RAM 1200, and executes processing corresponding to various programs.
The ROM 1300 stores a boot program such as a basic input output system (BIOS) executed by the CPU 1100 when the computer 1000 is activated, a program depending on hardware of the computer 1000, and the like.
The HDD 1400 is a computer-readable recording medium that non-transiently records a program executed by the CPU 1100, data used by the program, and the like. Specifically, the HDD 1400 is a recording medium that records an information processing program according to the present disclosure, which is an example of the program data 1450.
The communication interface 1500 is an interface for the computer 1000 to connect to an external network 1550 (for example, the Internet). For example, the CPU 1100 receives data from another device or transmits data generated by the CPU 1100 to another device via the communication interface 1500.
The input/output interface 1600 is an interface for connecting an input/output device 1650 and the computer 1000. For example, the CPU 1100 receives data from an input device such as a keyboard and a mouse via the input/output interface 1600. In addition, the CPU 1100 transmits data to an output device such as a display, a speaker, or a printer via the input/output interface 1600. Furthermore, the input/output interface 1600 may function as a media interface that reads a program or the like recorded in a predetermined recording medium (medium). The medium is, for example, an optical recording medium such as a digital versatile disc (DVD) or a phase change rewritable disk (PD), a magneto-optical recording medium such as a magneto-optical disk (MO), a tape medium, a magnetic recording medium, a semiconductor memory, or the like.
For example, in a case where the computer 1000 functions as the information processing apparatus 100 according to the embodiment, the CPU 1100 of the computer 1000 implements the functions of the control unit 130 and the like by executing the information processing program loaded on the RAM 1200. In addition, the HDD 1400 stores an information processing program according to the present disclosure and data in the storage unit 120. Note that the CPU 1100 reads the program data 1450 from the HDD 1400 and executes the program data, but as another example, these programs may be acquired from another device via the external network 1550.
Note that the present technology can also have the following configurations.
(1)
An information processing apparatus comprising a display control unit that causes a display device to display a mark for a virtual object at an instruction position that is a position determined based on a plurality of directions indicated by a user.
(2)
The information processing apparatus recited in (1), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on a plurality of geometric targets corresponding to each of the plurality of directions.
(3)
The information processing apparatus recited in (2), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on a positional relationship among the plurality of geometric targets.
(4)
The information processing apparatus recited in (2) or (3), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on two geometric targets corresponding to each of the plurality of directions which are two directions.
(5)
The information processing apparatus recited in (4), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on a first geometric target along a first direction and a second geometric target along a second direction among the plurality of directions which are two directions.
(6)
The information processing apparatus recited in (4) or (5), further comprising a determination unit that determines whether to display the mark based on a positional relationship between the two geometric targets,
wherein the display control unit causes the display device to display the mark when the determination unit determines to display the mark.
(7)
The information processing apparatus recited in (6), wherein
the determination unit determines to display the mark when a target distance, which is a distance between the two geometric targets, is less than a first threshold.
(8)
The information processing apparatus recited in (7), wherein
when the mark is displayed, in a case where the target distance is equal to or less than a second threshold larger than the first threshold, the determination unit determines to continue displaying the mark, and in a case where the target distance exceeds the second threshold, determines not to display the mark.
(9)
The information processing apparatus recited in any one of (6) to (8), wherein
the determination unit determines whether to display the mark based on a display distance that is a distance between an instruction component giving an instruction on one of the two directions and the instruction position.
(10)
The information processing apparatus recited in (9), wherein
the determination unit determines not to display the mark when the display distance exceeds a third threshold.
(11)
The information processing apparatus recited in any one of (4) to (10), wherein
the display control unit causes the display device to display the virtual object at the instruction position based on a relationship between the two geometric targets.
(12)
The information processing apparatus recited in any one of (4) to (11), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on two points determined from each of the two geometric targets.
(13)
The information processing apparatus recited in (12), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on the two points at which a distance between the two geometric targets is closest.
(14)
The information processing apparatus recited in (12) or (13), wherein
the display control unit causes the display device to display the mark with the positions of the two points as the instruction position when the positions of the two points coincide with each other.
(15)
The information processing apparatus recited in (12) or (13), wherein
the display control unit causes the display device to display the mark by using a position on a line segment connecting the two points as the instruction position when positions of the two points are different.
(16)
The information processing apparatus recited in any one of (1) to (15), wherein
the display control unit causes the display device to display the virtual object at an arrangement position that is a position based on the instruction position.
(17)
The information processing apparatus recited in (16), wherein
when the instruction position is located between a first distance that is a distance from an instruction component giving an instruction on one of the plurality of directions to a first position and a second distance that is a distance from the instruction component to a second position farther than the first position, the display control unit causes the display device to display the virtual object with the instruction position as the arrangement position.
(18)
The information processing apparatus recited in (17), wherein
the display control unit causes the display device to display the virtual object with the first position as the arrangement position in a case where the instruction position is the first distance or less.
(19)
The information processing apparatus recited in (17) or (18), wherein
the display control unit causes the display device to display the virtual object with the second position as the arrangement position in a case where the instruction position is the second distance or more.
(20)
The information processing apparatus recited in any one of (1) to (19), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on a plurality of lines corresponding to each of the plurality of directions.
(21)
The information processing apparatus recited in any one of (1) to (19), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on a plurality of geometric targets including a plane corresponding to at least one direction among the plurality of directions.
(22)
The information processing apparatus recited in (20), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on a line along a first direction and a plane along a second direction among two directions.
(23)
The information processing apparatus recited in any one of (1) to (22), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on the plurality of directions including at least one direction on which an instruction is given by a controller held by the user.
(24)
The information processing apparatus recited in any one of (1) to (23), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on the plurality of directions including at least one direction on which an instruction is given by a body of the user.
(25)
The information processing apparatus recited in (24), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on the plurality of directions including at least one direction on which an instruction is given by a line of sight of the user.
(26)
The information processing apparatus recited in (24), wherein
the display control unit causes the display device to display the mark at the instruction position determined based on the plurality of directions including at least one direction on which an instruction is given by a finger of the user.
(27)
An information processing method in which a computer executes processing of:
causing a display device to display a mark for a virtual object at an instruction position that is a position determined based on a plurality of directions indicated by a user.
(28)
An information processing program causing a computer to execute processing of:
causing a display device to display a mark for a virtual object at an instruction position that is a position determined based on a plurality of directions indicated by a user.
Number | Date | Country | Kind |
---|---|---|---|
2019-113717 | Jun 2019 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2020/022021 | 6/3/2020 | WO | 00 |