WO2021192956A1 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
WO2021192956A1
WO2021192956A1 PCT/JP2021/008944 JP2021008944W WO2021192956A1 WO 2021192956 A1 WO2021192956 A1 WO 2021192956A1 JP 2021008944 W JP2021008944 W JP 2021008944W WO 2021192956 A1 WO2021192956 A1 WO 2021192956A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual object
information processing
line
intersection
distance
Prior art date
Application number
PCT/JP2021/008944
Other languages
English (en)
French (fr)
Inventor
美和 市川
邦仁 澤井
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Priority to CN202180022357.8A priority Critical patent/CN115315677A/zh
Priority to US17/906,720 priority patent/US20230154128A1/en
Publication of WO2021192956A1 publication Critical patent/WO2021192956A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Definitions

  • This disclosure relates to an information processing device, an information processing method, and an information processing program.
  • an information processing device that is arranged along a predetermined direction in the user's field of view, controls a display device to display a stereoscopic object indicating a distance in the predetermined direction, and realizes pointing and object operation from the user's line of sight.
  • a stereoscopic object indicating a distance can be displayed, and a virtual object can be placed while visually recognizing the position where the virtual object is to be placed.
  • the arrangement position is greatly deviated if the viewing angle with respect to the position to be arranged changes even a little.
  • the information processing device of one form according to the present disclosure includes an acquisition unit, a setting unit, a determination unit, and a control unit.
  • the acquisition unit acquires an operation angle which is an angle formed by a first direction on a predetermined space pointed by the user and a second direction on the predetermined space pointed by the user.
  • the setting unit sets the operation angle acquired at the time of detecting the instruction to start moving the virtual object on the line extending in the first direction as the reference angle.
  • the determination unit determines whether or not the operation angle acquired by the acquisition unit is equal to or greater than the reference angle in response to the change in the second direction.
  • the control unit transfers the virtual object to the first while maintaining a distance between the intersection of the first direction and the second direction and the virtual object.
  • the display device is controlled so as to move in the depth direction on the line of direction to display.
  • a stereoscopic object indicating a distance can be displayed, and a virtual object can be placed while visually recognizing the position where the virtual object is to be placed.
  • the arrangement position is greatly deviated if the viewing angle with respect to the position to be arranged changes even a little.
  • the applicant proposes an information processing device that controls a display device so as to display a mark for a virtual object at an instruction position that is a position determined based on a plurality of directions pointed by the user. As a result, flexible display according to the user's instruction is possible.
  • FIG. 1 is a diagram showing an example of information processing according to the embodiment of the present disclosure.
  • the information processing according to the embodiment of the present disclosure is realized by the information processing device 30 shown in FIG.
  • the information processing system 1 shown in FIG. 1 includes a display device 10, a first controller 20A (20), a second controller 20B (20), and an information processing device 30 that controls the display of the display device 10. .
  • the display device 10 is, for example, a head-mounted display (HMD: Head Mounted Display) that is mounted on the head of the user X on the real space RS.
  • the display device 10 displays the image IM corresponding to the display control of the information processing device 30 on the display unit 15 located in front of the user X's eyes.
  • HMD Head Mounted Display
  • the display device 10 may be a head-mounted display such as a non-transparent HMD or a transmissive HMD as long as the processing described later can be realized. Further, the display device 10 is not limited to the head-mounted display, and may be any device as long as information processing described later can be realized, and may be various devices such as an aerial projection display, for example. .. Details of the configuration of the display device 10 will be described later.
  • FIG. 1 shows a case where the user X holds the first controller 20A in the right hand and the second controller 20B in the left hand.
  • the controller 20 is a device used by the user X to point in a direction.
  • the user X points to a desired direction by arranging the hand holding the controller 20 at a desired position or direction.
  • the controller 20 indicates the position of a space such as AR (Augmented Reality), VR (Virtual Reality), MR (Mixed Reality) displayed by the display device 10, or an object in the space (also referred to as a "virtual object"). It is used to point.
  • FIG. 1 shows a case where a line is used as an element (object) for the user X to visually recognize the direction pointed by the user X.
  • the line along the direction pointed by the user X causes the user X to visually recognize the direction pointed by the user X.
  • the line extending from the controller 20 shows a case where it is a virtual beam displayed by the display device 10.
  • the display device 10 displays a line extending from the controller 20 along an axis passing through a predetermined position of the controller 20 (for example, the origin 21A1 or the origin 21B1 in FIG. 8).
  • the line extending 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 emitted by the controller 20.
  • the controller 20 actually emits a laser beam (line)
  • the controller 20 irradiates the laser beam along a predetermined optical axis.
  • the element for causing the user X to visually recognize the direction pointed by the user X is not limited to a line, but may be a surface or the like. In the following, lines, surfaces, and the like used to make the user X visually recognize the direction indicated by the user X may be collectively referred to as a geometric object.
  • the direction instruction by the user X is not limited to the device such as the controller 20, but may be the body of the user X or the like, and the device used by the user to indicate the direction, the body of the user X, or the like is collectively instructed. It may be described as a component.
  • the instruction component may be any as long as it is used by the user X to point in the direction.
  • the image IM in FIG. 1 is an image displayed in front of the user X by the display of the display device 10 worn by the user X.
  • a line LN1 corresponding to the direction pointed to by the first controller 20A and a line LN2 corresponding to the direction pointed to by the second controller 20B are displayed.
  • the user X changes the desired position and direction of the hand holding the controller 20 while checking the position and direction of the line LN1 and the position and direction of the line LN2, so that the position determined based on the line LN1 and the line LN2 ( Hereinafter, it is also referred to as "instruction position").
  • the user X adjusts the orientation and the position of the controller 20 so that the vicinity of the central portion of the image IM1 (near the central portion in front of his / her eyes) is the designated position.
  • adjusting the orientation and position of the controller 20 may be simply described as "adjustment of the controller 20".
  • the information processing device 30 controls the display device 10 so that the user X displays the mark MK1 indicating the virtual object ⁇ at the designated position determined based on the two directions indicated by the controller 20.
  • the information processing apparatus 30 displays the mark MK1 based on the positional relationship between the two lines LN1 and LN2.
  • the information processing apparatus 30 can easily instruct a desired position by instructing the position with two lines.
  • the information processing device 30 responds to the instruction of the user X by controlling the display device 10 so as to display the mark MK1 at the intersection P determined based on the lines LN1 and LN2 corresponding to each of the two directions indicated by the user X. Enables flexible display. Further, the information processing apparatus 30 switches the display of the intersection P according to the distance between the two lines, so that the display can be flexibly displayed according to the instruction of the user X.
  • the information processing system 1 enables the user X to freely specify a three-dimensional position in a three-dimensional space without any restrictions.
  • the user X can quickly specify the position anywhere in the three-dimensional space. Further, when the user X wants to specify the position, the two lines can be brought close to each other to create an intersection P, and when he / she wants to stop, the intersection display can be ended by separating the lines or changing the direction of the lines. The intention is intuitively reflected.
  • the user X uses two controllers 20 to arrange a virtual object ⁇ on a predetermined space with a line pointing from each controller 20 on a predetermined space, intersects the two lines to form an intersection P, and creates an intersection P thereof.
  • the virtual object ⁇ is placed at the position of the intersection P. That is, using two lines, any three-dimensional position in a predetermined space can be specified.
  • the two main lines are used.
  • the amount of change in the distance of the intersection P with respect to the change in the operation angle with the operation line can be controlled.
  • FIG. 2 is a diagram showing an example of a usage pattern of the information processing system 1.
  • the amount of change in the distance of the intersection P with respect to the operation angle when pointing the distant virtual object ⁇ is relatively large as compared with the vicinity.
  • a technical issue is to control the moving distance of the virtual object ⁇ based on the operating angle according to the distance from the operating position of the user X. That is, even if the operation angle is the same, the amount of movement of the position of the virtual object ⁇ becomes larger in the distance than in the vicinity, so that it becomes difficult to finely adjust the position of the virtual object ⁇ in the distance.
  • two controllers 20 are used to finely adjust the position of the distant intersection P and the position of the virtual object ⁇ in the predetermined space, for example, planting at a distance of 50 m.
  • an information processing device 30 that can finely adjust the position of (virtual object ⁇ ) so as to move 10 cm forward.
  • the information processing device 30 has an acquisition unit, a setting unit, a determination unit, and a control unit.
  • the acquisition unit acquires an operation angle which is an angle formed by a first direction on a predetermined space pointed by the user and a second direction on the predetermined space pointed by the user.
  • the setting unit sets the operation angle acquired at the time of detecting the instruction to start moving the virtual object on the line extending in the first direction as the reference angle.
  • the determination unit determines whether or not the operation angle acquired by the acquisition unit is equal to or greater than the reference angle in response to the change in the second direction.
  • the control unit sets the virtual object in the depth direction on the line in the first direction while maintaining the distance between the intersection of the first direction and the second direction and the virtual object.
  • the display device 10 is controlled so as to move to and display.
  • the information processing device 30 determines whether or not the operation angle acquired in response to the change in the second direction is equal to or greater than the reference angle, and based on the determination result, the intersection point where the first direction and the second direction intersect.
  • the display device 10 is controlled so that the virtual object is moved and displayed in the depth direction on the line in the first direction while maintaining the distance between the virtual object and the virtual object.
  • the virtual object is displayed so as to be movable in the depth direction on the line in the first direction while maintaining the distance between the intersection and the virtual object, so that the fine adjustment of the distant virtual object becomes easy.
  • FIG. 3 is a diagram showing an example of the information processing system 1.
  • the information processing system 1 shown in FIG. 3 includes a display device 10, a first controller 20A (20), a second controller 20B (20), and an information processing device 30.
  • two controllers 20 of the first controller 20A and the second controller 20B are shown as an example of the direction instruction component, but the information processing system 1 has more than three direction instructions. Components may be included.
  • the information processing system 1 is, for example, a system that executes information processing related to AR (augmented reality), VR (virtual reality), and MR (mixed reality).
  • AR augmented reality
  • VR virtual reality
  • MR mixed reality
  • the information processing system 1 is a system for displaying and editing AR and VR contents.
  • the information processing device 30, the display device 10, and the controller 20 are connected to each other via a predetermined network (not shown) so as to be communicable by wire or wirelessly.
  • the information processing system 1 shown in FIG. 3 may include a plurality of display devices 10 and a plurality of information processing devices 30.
  • the information processing device 30 controls the display device 10 so as to display the mark of the virtual object ⁇ at an instructed position which is a position determined based on a plurality of directions indicated by the user.
  • the information processing device 30 controls the display of the display device 10 by using the controller information acquired from the controller 20.
  • the information processing device 30 controls the display of the display device 10 by using the information regarding the position and posture of the display device 10 acquired from the display device 10.
  • the display device 10 includes a position / attitude detection unit 11, a 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 orientation of the display device 10 based on various sensor information acquired from sensors included in the display device 10 such as the light receiving unit 12, the acceleration sensor 13, and the gyro sensor 14.
  • the position / posture detection unit 11 detects various information regarding the position, orientation, inclination, and posture of the display device 10 based on the sensor information.
  • the position / posture detection unit 11 transmits information regarding the position and posture of the display device 10 to the information processing device 30.
  • the position / orientation detection unit 11 may be realized by various processors such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and an FPGA (Field Programmable Gate Array).
  • the display unit 15 is a display that displays various information according to the control of the information processing device 30.
  • the display device 10 acquires various information from the information processing device 30, and displays the acquired information on the display unit 15.
  • the display unit 15 displays the mark of the virtual object ⁇ at the designated position determined based on the plurality of directions indicated by the user X in response to the control by the information processing device 30.
  • the display unit 15 displays the content generated by the information processing device 30.
  • the display device 10 may include a line-of-sight detection unit that detects the line-of-sight position of the user X.
  • the line-of-sight detection unit detects the line-of-sight of the user X by appropriately using various techniques related to the line-of-sight detection.
  • a technique for detecting the line of sight for example, a moving part of the eye (for example, a moving part of the eye such as an iris or a pupil) with respect to a reference point of the eye (for example, a point corresponding to a non-moving part of the eye such as the inner corner of the eye or the corneal reflex).
  • a method of detecting the line of sight based on the position of the point corresponding to) may be used.
  • the line-of-sight detection is not limited to the above, and the line-of-sight of the user X may be detected by using an arbitrary line-of-sight detection technique.
  • the first controller 20A includes a first position / attitude detection unit 21A, a first light receiving unit 22A, a first acceleration sensor 23A, and a first gyro sensor 24A.
  • the first position / attitude detection unit 21A detects the position and orientation of the first controller 20A based on sensor information such as the first light receiving unit 22A, the first acceleration sensor 23A, and the first gyro sensor 24A. do.
  • the first position / attitude detection unit 21A determines the position, orientation, tilt, etc. of the first controller 20A based on sensor information such as the first light receiving unit 22A, the first acceleration sensor 23A, and the first gyro sensor 24A. Detects controller information related to posture.
  • the first position / attitude detection unit 21A transmits the controller information to the information processing device 30.
  • the first position / orientation detection unit 21A may be realized by various processors such as a CPU, GPU, and FPGA.
  • the first controller 20A irradiates an actual beam
  • the first controller 20A has a configuration (light output unit or the like) for irradiating a laser beam.
  • the second controller 20B has a second position / attitude detection unit 21B, a second light receiving unit 22B, a second acceleration sensor 23B, and a second gyro sensor 24B.
  • the second position / attitude detection unit 21B detects the position and orientation of the second controller 20B based on sensor information such as the second light receiving unit 22B, the second acceleration sensor 23B, and the second gyro sensor 24B. do.
  • the second position / attitude detection unit 21B determines the position, orientation, tilt, etc. of the second controller 20B based on sensor information such as the second light receiving unit 22B, the second acceleration sensor 23B, and the second gyro sensor 24B. Detects controller information related to posture.
  • the second position / attitude detection unit 21B transmits the controller information to the information processing device 30.
  • the second position / orientation detection unit 21B may be realized by various processors such as a CPU, GPU, and FPGA.
  • the second controller 20B irradiates an actual beam
  • the second controller 20B has a configuration (light output unit or the like) for irradiating a laser beam.
  • FIG. 4 is a diagram showing an example of the functional configuration of the information processing device 30.
  • the information processing device 30 shown in FIG. 4 has a communication unit 40, a storage unit 50, and a control unit 60.
  • the information processing device 30 may include an input unit such as a keyboard and a mouse, and a display unit for displaying various information, which accepts various operations from the administrator of the information processing device 30 and the like.
  • the communication unit 40 is realized by, for example, a NIC or a communication circuit. Then, the communication unit 40 is connected to a predetermined network (not shown) by wire or wirelessly, and transmits / receives information to / from other information processing devices such as the controller 20 and the display device 10.
  • the storage unit 50 is realized by, for example, a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory (Flash Memory), or a storage device such as a hard disk or an optical disk.
  • the storage unit 50 includes a direction information storage unit 51, an object information storage unit 52, and an intersection information storage unit 53.
  • the direction information storage unit 51 stores various information related to the direction instruction.
  • FIG. 5 is a diagram showing an example of the direction information storage unit 51.
  • the direction information storage unit 51 shown in FIG. 5 manages the instruction component 51B, the type 51C, the gripping flag 51D, and the like in association with each direction ID 51A.
  • the direction information storage unit 51 is not limited to the above, and various information may be managed according to the purpose, and can be changed as appropriate.
  • the direction ID 51A is, for example, information that identifies each direction pointed to by the user X.
  • the instruction component 51B is information for identifying, for example, a component used by the user X to indicate a direction, for example, a device such as a controller 20 or an element related to the body of the user X. For example, when the direction is indicated by the line of sight of the user X, the “line of sight” may be stored in the instruction component 51B. Further, for example, when the direction is indicated by the finger of the user X, the "finger" may be stored in the instruction component 51B.
  • Type 51C is information indicating the type of the instruction component 51B.
  • type 51C is information indicating the type of a component used by the user to point in a direction, for example, a device such as a controller 20 or an element related to the body of user X.
  • the type 51C stores a "controller", a "device”, and the like.
  • the type 51C stores "line of sight", "body”, and the like.
  • the type 51C stores a "finger", a "body”, and the like.
  • the direction (direction DG1) identified by the direction ID “DG1” indicates that it is the first controller 20A which is an instruction component identified by “20A”.
  • the type of the first controller 20A indicating the direction DG1 indicates that it is a controller.
  • direction DG2 indicates that it is the second controller 20B which is an instruction component identified by "20B".
  • the type of the second controller 20B indicating the direction DG2 indicates that it is a controller.
  • the object information storage unit 52 stores various information related to the virtual object ⁇ .
  • FIG. 6 is a diagram showing an example of the object information storage unit 52.
  • the object information storage unit 52 shown in FIG. 6 manages the object information 52B, the flag 52C, and the like in association with each object ID 52A.
  • the flag 52C includes a gravity flag 52D, a gripping flag 52E, and the like.
  • the object information storage unit 52 is not limited to the above, and may manage various information depending on the purpose.
  • the object ID 52A is information that identifies the virtual object ⁇ .
  • the object information 52B is information corresponding to the virtual object ⁇ identified by the object ID 52A.
  • the object information 52B illustrates an abstract code such as “OINF1”, but various information related to the size and shape of the virtual object ⁇ may be stored.
  • the flag 52C is flag information corresponding to the virtual object ⁇ identified by the object ID 52A.
  • the gravity flag 52D is information for identifying whether or not the gravity flag is given to the virtual object ⁇ identified by the object ID 52A.
  • the gripping flag 52E is information for identifying whether or not the gripping flag is given to the virtual object ⁇ identified by the object ID 52A.
  • the virtual object VO1 identified by the object ID "VO1" indicates that the object information is "OINF1".
  • the virtual object VO1 indicates that the gravity flag is "1". That is, it is shown that the virtual object VO1 is affected by gravity in determining the arrangement position. In this case, for example, when the virtual object VO1 is placed in the air, it is shown that the virtual object VO1 is placed at a position where it falls in the direction of gravity from that position.
  • the virtual object VO41 identified by the 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 shown that the virtual object VO41 is not affected by gravity in determining the arrangement position. In this case, for example, the virtual object VO41 indicates that it stays in that position when placed in the air.
  • the intersection information storage unit 53 stores various information related to the intersection.
  • FIG. 7 is a diagram showing an example of the intersection information storage unit 53.
  • the intersection information storage unit 53 shown in FIG. 7 manages the master-slave information 53B in association with each intersection ID 53A.
  • the intersection ID 53A is information for identifying the intersection.
  • the master-slave information 53B manages the master-slave relationship 53C, the master instruction component 53D, and the slave instruction component 53E in association with each other.
  • the intersection information storage unit 53 is not limited to the above, and may store various information depending on the purpose.
  • the master-slave relationship 53C is information indicating the presence or absence of a master-slave relationship between the instruction components that indicate each direction.
  • the main instruction component 53D is information indicating that the direction (geometric object) indicated by the instruction component is the main.
  • the subordinate component 53E is information indicating that the direction (geometric object) indicated by the subordinate component is subordinate.
  • the second controller 20B is a subordinate instruction component
  • "20B" is stored in the subordinate instruction component 53E.
  • control unit 60 for example, a program stored inside the information processing apparatus 30 by a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like (for example, an information processing program such as a program according to the present disclosure) is a RAM or the like. Is realized by executing as a work area. Further, the control unit 60 is realized by, for example, an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA.
  • ASIC Application Specific Integrated Circuit
  • the control unit 60 includes an acquisition unit 61, a detection unit 62, a setting unit 63, a distance determination unit 64, a determination unit 65, and a display control unit 66, and includes information processing functions and operations described below. To realize or execute.
  • the internal configuration of the control unit 60 is not limited to the configuration shown in FIG. 4, and may be another configuration as long as it is a configuration for performing information processing described later. Further, the connection relationship of each processing unit included in the control unit 60 is not limited to the connection relationship shown in FIG. 4, and may be another connection relationship.
  • the acquisition unit 61 acquires an operation angle which is an angle formed by the main line LN1 in the first direction extending in the depth direction and the operation line LN3 in the second direction of the horizontal plane with respect to the first direction.
  • the detection unit 62 detects a movement instruction indicating the start of movement of the virtual object ⁇ .
  • the setting unit 63 detects the movement instruction, the intersection of the main line LN1 and the operation line LN3 is P0, the reference angle which is the angle formed by the main line LN1 and the operation line LN3 is ⁇ 0, and the main controller 20 and the operation line P0. The distance between them is set as D0 (see FIG. 12).
  • the acquisition unit 61 acquires the operation angle ⁇ at the intersection of the main line LN1 and the operation line LN3 according to the change in the second direction by the sub controller 20. At this time, the intersection of the main line LN1 and the operation line LN3 after the change is P, the operation angle which is the angle formed by the main line LN1 and the operation line LN3 is ⁇ , and the distance between the main controller 20 and the intersection P is D0. ..
  • the distance determination unit 64 acquires the operation angle ⁇ according to the change in the second direction by the acquisition unit 61, is the distance D1 between the virtual object ⁇ on the main line LN1 and the intersection less than the threshold value Dth? Whether or not it is determined (see FIG. 12).
  • the display control unit 66 causes the display unit 15 to display the virtual object ⁇ on the main line LN1 so as to be attracted to the intersection P. At this time, the distance D1 between the virtual object ⁇ and the intersection P is “0”.
  • the determination unit 65 determines whether or not the operation angle ⁇ acquired in response to the change in the operation line LN3 is equal to or greater than the reference angle ⁇ 0. ..
  • the display control unit 66 moves the virtual object ⁇ toward the front side in the depth direction and causes the display unit 15 to display the virtual object ⁇ .
  • between the main controller 20 and the virtual object ⁇ , but since D1 0, the display control unit 66 corresponds to the change in the operation line LN3
  • the display control unit 66 moves the virtual object ⁇ to the back side in the depth direction and displays it on the display unit 15.
  • between the main controller 20 and the virtual object ⁇ , but since D1 0, the display control unit 66 corresponds to the change in the operation line LN3
  • the display control unit 66 holds the distance D1 between the virtual object ⁇ and the intersection P when the distance D1 between the virtual object ⁇ and the intersection P is not less than the threshold Dth, that is, when the distance D1 is equal to or more than the threshold Dth. It is displayed on the display unit 15 in the state. At this time, the distance D1 between the virtual object ⁇ and the intersection P is “D1> 0”.
  • the determination unit 65 determines whether or not the operation angle ⁇ acquired in response to the change in the operation line LN3 is equal to or greater than the reference angle ⁇ 0 while maintaining the distance D1.
  • the display control unit 66 moves the virtual object ⁇ and the intersection P toward the front side in the depth direction on the main line LN1 while maintaining the distance D1 and displays them on the display unit 15. ..
  • the display control unit 66 sets the virtual object ⁇ and the intersection P in the depth direction on the main line LN1 while maintaining the distance D1. Move to the side and display on the display unit 15.
  • the display control unit 66 arranges the virtual object ⁇ on the back side on the main line LN1 having the coordinates obtained by the origin PC0 + e (unit vector) ⁇ d of the main line, and causes the display unit 15 to display the virtual object ⁇ .
  • the display control unit 66 controls the display device 10 so that the user X displays the mark MK1 of the virtual object ⁇ at the designated position determined based on the two directions indicated by the controller 20.
  • the display control unit 66 controls the display device 10 so as to display the lines LN1 and LN2 based on the controller information acquired by the acquisition unit 61.
  • the display control unit 66 controls the display device 10 so as to display the lines LN1 and LN2 based on the controller information acquired by the acquisition unit 61.
  • the display control unit 66 controls the display device 10 so as to display the intersection P.
  • the display control unit 66 controls the display device 10 so that the mark MK1 as shown in FIG. 1 is displayed at the intersection P as the intersection P.
  • the pointing line has a master-slave relationship.
  • the master-slave relationship of the pointing line may be determined by any of the priority, the order, and the first win of the operation.
  • the trigger of the controller 20 displaying the main / slave line is called a main / sub trigger.
  • the virtual object ⁇ is displayed in a star shape.
  • the information processing device 30 includes an intersection generation process, a virtual object ⁇ gripping process, a virtual object ⁇ movement process, and a virtual object ⁇ release process.
  • intersection generation process is a process of creating an intersection P where the main line LN1 and the operation line LN3 intersect.
  • the generation process includes an origin setting process, a reference surface setting process, an operation surface setting process, and an intersection point setting process.
  • FIG. 8 is a diagram showing an example of the origin setting process.
  • FIG. 8 shows a case where the user X has the first controller 20A, which is the main instruction component, in the right hand, which is the dominant hand, and the second controller 20B, which is the follow-in instruction component, in the left hand.
  • the second controller 20B possessed by the user X in the left hand may be the main instruction component
  • the first controller 20A possessed by the right hand may be the slave instruction component.
  • the origin setting process is performed, for example, on the predetermined space using the origin 20A1 of the main line LN1 in the first direction pointing on the predetermined space using the first controller 20A and the second controller 20B.
  • This is a process of setting the origin 20B1 of the secondary line LN2 in the second direction indicating the above.
  • the position of the first controller 20A pointing in the first direction is the origin 20A1 of the main line LN1
  • the position of the second controller 20B pointing in the second direction is the origin 20B1 of the sub line LN2.
  • the main line LN1 extends from the first controller 20A along the axis passing through the origin 20A1 of the first controller 20A. Further, the sub line LN2 extends from the second controller 20B along the axis passing through the origin 20B1 of the second controller 20B.
  • the information processing apparatus 30 calculates the main line LN1 based on the position and orientation of the first controller 20A, and calculates the sub line LN2 based on the position and orientation of the second controller 20B.
  • the information processing device 30 calculates the main line LN1 based on the axis and the origin 20A1 of the first controller 20A, and calculates the sub line LN2 based on the axis and the origin 20B1 of the second controller 20B.
  • FIG. 9 is a diagram showing an example of the reference plane setting process.
  • the reference plane setting process is a process of setting a reference plane.
  • the plane composed of the origin 20B1 of the main line LN1 and the sub line LN2 is defined as the reference plane FC1.
  • the reference plane FC1 is a plane including the main line LN1 and the origin 20B1 of the sub line LN2.
  • the main line LN1 passes through the reference plane FC1 and the origin 20B1 is located in the reference plane FC1.
  • the reference plane FC1 is determined by the main line LN1 and the origin 20B1 of the sub line LN2.
  • the information processing apparatus 30 calculates the reference plane FC1 based on the position of the main line LN1 and the position of the origin 20B1.
  • the information processing device 30 calculates the surface including the main line LN1 and the origin 20B1 of the sub line LN2 as the reference surface FC1.
  • the reason for setting the reference plane FC1 is, for example, when the ground or the floor is fixed to the reference plane FC1 when operating the two controllers 20 in a direction perpendicular to the floor (directly above or directly below). This is because the intersection P is created from the angle in the horizontal direction with the floor, so that the intersection P cannot be created at the position assumed by the user X. Therefore, a plane composed of the origin 20B1 of the main line LN1 and the sub line LN2 is set as the reference plane FC1.
  • FIG. 10 is a diagram showing an example of the operation surface setting process.
  • the operation surface setting process is a process of setting the operation surface FC2.
  • the plane on which the reference plane FC1 is perpendicular to the origin 20B1 of the sub line LN2 is defined as the operation plane FC2.
  • the operation surface FC2 is a surface that passes through the origin 20B1 and is orthogonal to the reference surface FC1. Further, the sub line LN2 moves on the operation surface FC2.
  • the sub line LN2 rides on the operation surface FC2. In other words, the sub line LN2 passes through the operation surface FC2. That is, the operation surface FC2 is a surface including the origin 20B1 of the sub line LN2 and orthogonal to the reference surface FC1.
  • the operation surface FC2 is determined by the reference surface FC1 and the origin 20B1 of the sub line LN2.
  • the information processing apparatus 30 calculates the operation surface FC2 based on the position of the reference surface FC1, the position of the sub line LN2, and the position of the origin 20B1.
  • the information processing device 30 calculates a surface orthogonal to the reference surface FC1 and including the sub line LN2 and the origin 20B1 as the operation surface FC2.
  • a plane in which the reference plane FC1 is perpendicular to the origin 20B1 of the sub line LN2 is defined as a plane in which the sub line LN2 moves on the plane and is perpendicular to the reference plane FC1 including the sub line LN2. ..
  • FIG. 11 is a diagram showing an example of the intersection setting process.
  • the intersection setting process is a process of setting the intersection of the main line LN1 and the operation surface FC2 at the intersection P.
  • the point where the main line LN1 and the operation surface FC2 intersect is defined as the intersection P.
  • the information processing device 30 calculates the intersection point P based on the position of the main line LN1 and the position of the operation surface FC2. For example, the information processing device 30 calculates the point where the main line LN1 and the operation surface FC2 intersect as the intersection point P.
  • the line connecting the origin 20B1 of the sub line LN2 and the intersection P is defined as the operating line LN3, and the angle formed by the operating line LN3 and the main line LN1 is defined as the operating angle ⁇ .
  • FIG. 12 is a diagram showing an example of the relationship between the main line LN1 and the operation line LN3.
  • the main line LN1 shown in FIG. 12 is a line in the first direction pointed to by the main controller 20.
  • the operation line LN3 is a line in the second direction pointed to by the sub controller 20.
  • the distance between the main controller 20 on the main line LN1 and the virtual object ⁇ is d
  • the distance between the main controller 20 on the main line LN1 and the intersection P is D0
  • the distance between the intersection P0 on the main line LN1 and the virtual object ⁇ is Let D1 be the distance.
  • ⁇ 0 be the angle formed by the main line LN1 and the operation line LN3.
  • intersection of the main line LN1 and the operation line LN3 at the time of reference is P0, and the angle ⁇ 0 formed by the main line LN1 and the operation line LN3 is the reference angle. Further, the intersection of the main line LN1 and the operation line LN3 when the operation line LN3 changes according to the operation of the sub controller 20 is P, and the angle ⁇ formed by the main line LN1 and the operation line LN3 is the operation angle.
  • the virtual object gripping process is a process of gripping the virtual object ⁇ on the main line LN1.
  • FIG. 13 is a diagram showing an example of the gripping process (without intersections) of the virtual object ⁇ .
  • the main trigger is, for example, an operation unit of the first controller 20A of the main line LN1. Also, if the main trigger is not pressed, it remains a line.
  • the sub-trigger is, for example, an operation unit of the second controller 20B of the operation line LN3.
  • FIG. 14 is a diagram showing an example of the gripping process (with intersections) of the virtual object ⁇ .
  • the gripping process shown in FIG. 14 for example, when the intersection P formed by the main line LN1 and the operation line LN3 is on the main line LN1, when the main trigger is pressed, the intersection P on the main line LN1 and the virtual object ⁇ are at a constant distance. In the case of, the virtual object ⁇ is attracted to the intersection P. On the other hand, when the intersection P on the main line LN1 and the virtual object ⁇ are separated by more than a certain distance, the virtual object ⁇ is not attracted. Also, if the main trigger is not pressed, it remains a line.
  • the movement process of the virtual object ⁇ is a process of moving the virtual object ⁇ arranged on the main line LN1 in the depth direction in response to the operation of the second controller 20B.
  • the main trigger pressed With the main trigger pressed, the virtual object ⁇ is placed ahead of the main line LN1, and the operation line LN3 is moved on the main line LN1 in response to the operation of the second controller 20B to move the intersection point P. It will be changed.
  • the sub-trigger is pressed, it is determined whether or not the distance D1 between the intersection P and the virtual object ⁇ at that time is less than the threshold value Dth.
  • FIG. 15 is a diagram showing an example of the movement process of the virtual object ⁇ (distance D1 is less than the threshold value Dth).
  • the distance D1 between the intersection P and the virtual object ⁇ is less than the threshold value Dth, that is, when the operation target is in the vicinity
  • the virtual object ⁇ on the main line LN1 is attracted to the intersection P as shown in FIG. 15, and the distance D1 Is "0".
  • the operation line LN3 moves on the main line LN1 according to the operation of the second controller 20B, and the intersection P moves according to the operation line LN3 after the movement. Therefore, the intersection P moves on the main line LN1 according to the movement of the intersection P.
  • the virtual object ⁇ moves.
  • FIG. 16 is a diagram showing an example of the movement process of the virtual object ⁇ (distance D1 is equal to or greater than the threshold value Dth).
  • the distance D1 between the intersection P and the virtual object ⁇ is “D1”. > 0 ”.
  • the operation line LN3 moves on the main line LN1 according to the operation of the second controller 20B
  • the intersection P moves according to the operation line LN3 after the movement
  • the virtual object ⁇ and the intersection P intersect with the virtual object ⁇ .
  • the virtual object ⁇ and the intersection P move on the main line LN1 while maintaining the distance from P.
  • the distance D1 between the intersection P and the virtual object ⁇ at the time when the sub-trigger is pressed is maintained. Since you can operate a distant operation target at hand, you can make adjustments while checking the distance you want to make fine adjustments.
  • the control unit 60 designates one controller 20 among the plurality of controllers 20 (step S11), and acquires the direction and position of the designated controller 20 (step S12).
  • the control unit 60 determines whether or not the designated controller 20 holds the virtual object ⁇ in the predetermined space (step S13). When the control unit 60 holds the virtual object ⁇ in the predetermined space (step S13: Yes), the holding flag of the designated controller 20 is set to “1” (step S14), and there is an undesignated controller 20. Whether or not it is determined (step S15).
  • the control unit 60 stores "1" in the grip flag corresponding to the direction ID that identifies the line LN of the designated controller 20 stored in the direction information storage unit 51.
  • step S15 When there is an undesignated controller 20 (step S15: Yes), the control unit 60 proceeds to step S11 in order to specify the controller 20. Further, when the designated controller 20 does not hold the virtual object ⁇ (step S13: No), the control unit 60 proceeds to step S15 in order to determine whether or not there is an undesignated controller 20.
  • step S15 When there is an undesignated controller 20 (step S15: Yes), the control unit 60 redesignates one of the plurality of designated controllers 20 (step S16). The control unit 60 determines whether or not the grip flag of the redesignation controller 20 is “1” (step S17). The control unit 60 refers to the grip flag corresponding to the direction ID that identifies the line LN of the redesignated controller 20 stored in the direction information storage unit 51, and determines whether or not the grip flag is “1”. do. When the grip flag of the redesignation controller 20 is "1" (step S17: Yes), the control unit 60 determines whether or not the trigger of the redesignation controller 20 is being pressed (step S23).
  • step S23: Yes When the trigger of the redesignated controller 20 is being pressed (step S23: Yes), the control unit 60 determines whether or not there is a controller 20 that has not yet been redesignated among the plurality of designated controllers 20 (step S23: Yes). Step S18). When there is no controller 20 that has not been redesignated yet (step S18: No), the control unit 60 shifts to M1 shown in FIG. Further, when the trigger of the redesignation controller 20 is not being pressed (step S23: No), the control unit 60 releases the virtual object ⁇ from the redesignation controller 20 (step S24), and sets the grip flag of the redesignation controller 20 to “0”. (Step S25), and the process proceeds to step S18.
  • step S18 If there is a controller 20 that has not yet been redesignated (step S18: Yes), the control unit 60 proceeds to step S16 in order to redesignate the controller 20.
  • step S17 When the grip flag of the redesignation controller 20 is not "1" (step S17: No), the control unit 60 determines whether or not the line in the direction pointed to by the redesignation controller 20 points to the virtual object ⁇ in the predetermined space. (Step S19). When the control unit 60 points to the virtual object ⁇ (step S19: Yes), the control unit 60 determines whether or not the trigger of the redesignation controller 20 pointing to the virtual object ⁇ in the predetermined space is being pressed (step). S20). The control unit 60 determines, for example, whether or not the trigger of the first controller 20A is pressed while the first controller 20A points to the virtual object ⁇ .
  • step S20 When the trigger of the redesignation controller 20 is being pressed (step S20: Yes), the control unit 60 grabs the virtual object ⁇ (step S21) and sets the grip flag of the redesignation controller 20 to “1”. The setting (step S22) is performed, and the process proceeds to step S18 in order to determine whether or not there is a controller 20 that has not yet been redesignated.
  • step S19: No If the control unit 60 does not point to the virtual object ⁇ (step S19: No), or if the trigger of the redesignated controller 20 is not pressed (step S20: No), is there a controller 20 that has not been redesignated yet? In order to determine whether or not, the process proceeds to step S18.
  • the control unit 60 determines whether or not there are two controllers 20 (step S31). When the number of controllers 20 is not two (step S31: No), the control unit 60 determines whether or not there is one controller 20 (step S32). When the number of controllers 20 is one (step S32: Yes), the control unit 60 shifts to M2 shown in FIG. Further, when the number of controllers 20 is not one (step S32: No), the control unit 60 ends the processing operation shown in FIG.
  • step S31: Yes the control unit 60 determines whether or not the gripping flag of the controller 20 is "0" for both of them (step S33).
  • step S33: Yes the control unit 60 shifts to M2 shown in FIG.
  • the control unit 60 determines whether or not the gripping flag of the controller 20 is "1" for both of them (step S34).
  • the control unit 60 determines that the gripping flag of both controllers 20 is not “1” (step S34: No), that is, the gripping flag of either controller 20 is “1", and the gripping flag "1".
  • Controller 20 is set to the main controller 20 (step S35).
  • the control unit 60 changes the master-slave relationship 53C stored in the intersection information storage unit 53 to "Yes”, stores “20A” in the main instruction component 53D, and stores "20B” in the slave instruction component 53E.
  • the control unit 60 sets the distance D1 between the intersection P on the main line LN1 of the main controller 20 and the virtual object ⁇ to “-1” (step S36), and shifts to M2 shown in FIG.
  • step S34: Yes When both of the control units 60 have the grip flag of the controller 20 set to "1" (step S34: Yes), the two controller lines, that is, the intersections on the main line LN1 where the main line LN1 and the operation line LN3 intersect. It is determined whether or not there is (step S37). When there is an intersection on the main line LN1 (step S37: Yes), the control unit 60 determines whether or not the distance D1 between the intersection and the virtual object ⁇ is “0” or more (step S38).
  • step S38: Yes the distance determination unit 64 in the control unit 60 determines whether or not the distance D1 is equal to or less than the threshold value Dth. (Step S39). When the distance D1 is equal to or less than the threshold value Dth (step S39: Yes), the control unit 60 sets the distance “0” to D1 by adsorbing the intersection to the position of the virtual object ⁇ (step S40).
  • the setting unit 63 in the control unit 60 sets the intersection coordinates of the main line LN1 and the operation line LN3 to P0 (step S41), and sets the angle formed by the main line LN1 and the operation line LN3 to ⁇ 0 as a reference angle (step). S42), the distance between the main controller 20 and the intersection is set to D0 (step S43), and the process proceeds to M2 shown in FIG.
  • step S39: No the setting unit 63 in the control unit 60 sets the distance between the intersection and the virtual object ⁇ to D1 (step S44), and sets the distance between the main line LN1 and the main line LN1.
  • the process proceeds to step S41 in order to set the coordinates of the intersection with the operation line LN3 to P0.
  • step S38: No when the distance D1 between the intersection and the virtual object ⁇ is not “0” or more (step S38: No), the control unit 60 shifts to M3 shown in FIG.
  • the control unit 60 sets the intersection coordinates of the main line LN1 and the operation line LN3 to P (step S51), and sets the angle formed by the main line LN1 and the operation line LN3 after movement to ⁇ as the operation angle. (Step S52).
  • the determination unit 65 in the control unit 60 determines whether or not the operation angle ⁇ is equal to or less than the reference angle ⁇ 0 (step S53).
  • step S53 Yes
  • the display control unit 66 in the control unit 60 sets the distance d between the main controller 20 and the virtual object ⁇ (D0 + D1) +
  • the distance D1 is not equal to or less than the threshold value Dth, since D1 is the measured value, the distance between the intersection and the virtual object ⁇ is maintained, and the operation line LN3 is changed.
  • the distance to the virtual object ⁇ on the main line LN1 becomes longer depending on the amount of movement of. That is, the distant virtual object ⁇ moves to the back side on the main line LN1.
  • step S53 No
  • the display control unit 66 in the control unit 60 sets the distance d between the main controller 20 and the virtual object ⁇ (D0 + D1)-
  • D1 the distance from the main controller 20 on the main line LN1 to the virtual object ⁇ is the amount of movement of
  • the distance D1 is not equal to or less than the threshold value Dth, since D1 is the measured value, the distance between the intersection and the virtual object ⁇ is maintained, and the operation line LN3 is changed.
  • the distance to the virtual object ⁇ on the main line LN1 is shortened by the amount of movement of. That is, the distant virtual object ⁇ moves to the front side on the main line LN1.
  • control unit 60 displays the virtual object ⁇ at the position of PC0 + unit vector e ⁇ d by using the distance d between the main controller 20 and the virtual object ⁇ calculated in step S54 or step S55 (step S56). ), Transition to M2 shown in FIG. As a result, the virtual object ⁇ is displayed at the position where the distance obtained by multiplying the origin coordinate PC0 of the main controller 20 by the unit vector e and the distance d is added.
  • the release process of the virtual object ⁇ is a process of arranging the position of the virtual object ⁇ adjusted on the main line LN1. While holding down the main trigger, the position of the virtual object ⁇ is adjusted on the main line LN1 according to the change operation of the operation line LN3. Further, when the main trigger is released, the virtual object ⁇ at the current position on the main line LN1 is placed. If the sub-trigger is released while the main trigger is held down, the virtual object ⁇ is fixed at the position of the virtual object ⁇ at the time when the sub-trigger is released. If the main trigger is released while the sub-trigger is pressed, the virtual object ⁇ is fixed at the current position of the virtual object ⁇ at the time when the main trigger is released.
  • the control unit 60 determines whether or not the operating angle ⁇ acquired in response to the change in the operating line LN3 is equal to or greater than the reference angle ⁇ 0 while maintaining the distance D1.
  • the control unit 60 moves the virtual object ⁇ and the intersection P toward the front side in the depth direction on the main line LN1 while maintaining the distance D1 and displays them on the display unit 15.
  • the control unit 60 displays the virtual object ⁇ on the main line LN1 of the coordinates (coordinates on the front side) obtained by the origin PC0 + e (unit vector) ⁇ d of the main line LN1.
  • the control unit 60 moves the virtual object ⁇ and the intersection P to the depth side in the depth direction on the main line LN1 while maintaining the distance D1 and displays them on the display unit 15.
  • the control unit 60 displays the virtual object ⁇ on the main line LN1 of the coordinates (coordinates on the back side) obtained by the origin PC0 + e (unit vector) ⁇ d of the main line LN1.
  • the virtual object ⁇ can be moved by the movement distance while the trigger is pressed. Further, the virtual object ⁇ can be moved far or near depending on the moving direction of the virtual object ⁇ .
  • each trigger of the two controllers 20 can be used to make fine adjustments so that the distant intersection and the position of the virtual object ⁇ can be operated at hand. Moreover, the position of the distant virtual object ⁇ can be adjusted by a series of movements without changing or placing the controller 20.
  • the environment is recognized, and the targets that can be operated are limited or determined in advance.
  • the expression or state may be set to be attracted / grasped when the line approaches / touches the virtual object ⁇ so that the user can easily understand the operation target.
  • the camera image near the operation target part is displayed on the monitor screen (separate window) near the operation part at hand. ) May be presented together.
  • the operator may virtually move closer to the operation target and operate the virtual object ⁇ .
  • Other gripping processes for virtual objects For example, the process of generating an intersection and the process of grasping a virtual object ⁇ are executed according to, for example, a trigger press, a specific gesture (eg, holding hands, sticking out, etc.), or a context (when the application enters selection mode). May be good. Further, the process of creating the intersection and the termination of the virtual object may be executed, for example, with a timeout.
  • feedback indicating a sense of distance by sound, vibration, or the like may be inserted at specific distances in units of 10 cm.
  • the distance from the user position to the virtual object ⁇ may be read aloud.
  • FIG. 20 is a diagram showing an example of the moving position of the virtual object ⁇ when the operation line LN3 is moved forward.
  • the operation line LN3 is moved forward as shown in FIG. 20
  • the virtual object ⁇ on the main line LN1 is moved forward (back side).
  • the operation line LN3 is moved backward
  • the virtual object ⁇ on the main line LN1 is moved backward (front side).
  • FIG. 21 is a diagram showing an example of the moving position of the virtual object ⁇ when the operation line LN3 is moved to the left.
  • the virtual object ⁇ on the main line LN1 is moved forward (back side).
  • the virtual object ⁇ on the main line LN1 is moved backward (front side).
  • the control unit 60 of the present embodiment moves the virtual object ⁇ and the intersection P toward the front side in the depth direction on the main line LN1 while maintaining the distance D1.
  • the case of displaying in is illustrated.
  • the control unit 60 moves the virtual object ⁇ and the intersection P to the back side in the depth direction on the main line LN1 while maintaining the distance D1 and displays them on the display unit 15.
  • control unit 60 moves the virtual object ⁇ and the intersection P toward the front side in the depth direction on the main line LN1 while maintaining the distance D1 and displays them on the display unit 15. It may be made to be changed, and it can be changed as appropriate.
  • first controller 20A and the second controller 20B have been exemplified as the instruction components, another device, the user's body (hands, eyes), or the like may be used instead of the device such as the controller 20.
  • the line of sight of the eyes of the controller 20 and the user X may be an instruction component.
  • the instruction component is not limited to the above, and may be various elements such as the palm, arms, face, and front of the head. That is, the line drawing includes various things that can indicate a direction such as a controller, a finger, a hand, a palm, an arm, a line of sight, and the front of a face or a head.
  • the information processing device 30 controls the display unit 15 so that when the position of the virtual object ⁇ is moving, the display mode of the virtual object ⁇ is changed and displayed. For example, when the information processing device 30 moves and arranges the virtual object ⁇ , the display of the moving virtual object ⁇ may be weakened. For example, the information processing device 30 weakens the display of the moving virtual object ⁇ by increasing the transparency of the moving virtual object ⁇ . In this way, when moving and arranging the virtual object ⁇ , by weakening the display of the moving virtual object ⁇ , the user X can arrange and position the object in the real world and the virtual object ⁇ arranged around it. You can move the virtual object ⁇ while checking the relationship.
  • the display of the moving virtual object ⁇ may be strengthened.
  • the user X can easily make it stand out (improve visibility) in the same virtual object ⁇ and place it in the back. can do.
  • various display modes may be used while the virtual object ⁇ is moving.
  • the information processing device 30 may display the virtual object ⁇ as it is even while moving.
  • the information processing device 30 displays the virtual object ⁇ as it is when it is desired to arrange the object ⁇ in the real world while checking the arrangement and the positional relationship with the virtual object ⁇ arranged around the object.
  • the information processing device 30 may weaken the display of the moving virtual object ⁇ .
  • the information processing device 30 displays only the outline of the virtual object ⁇ or makes it semi-transparent.
  • the information processing device 30 displays the outline of the virtual object ⁇ when it wants to adjust the locus and position during movement while checking the arrangement and positional relationship with the objects in the real world and the virtual objects ⁇ arranged around them. Or make it translucent.
  • the information processing device 30 may turn off the display of the virtual object ⁇ . In this case, the information processing device 30 may display only the intersections.
  • the information processing device 30 attaches importance to the locus and position adjustment during movement, and turns off the display of the virtual object ⁇ when it is desired to make it easier to see.
  • the information processing device 30 may enhance the display of the moving virtual object ⁇ .
  • the information processing device 30 may enhance the color and increase the brightness value.
  • the information processing device 30 may be combined with an additional display such as an icon.
  • the information processing device 30 highlights the selected virtual object ⁇ for easy understanding.
  • the information processing device 30 wants to be placed in the back of the place where the virtual objects ⁇ are lined up, the information processing device 30 can be easily placed in the back of the virtual object by suppressing the color of other virtual objects and increasing the transparency. ..
  • the information processing device 30 may determine the master-slave relationship between the instruction components by appropriately using various information. Further, the information processing apparatus 30 may change the color depth and shape of each line in order to show the master-slave relationship.
  • the information processing device 30 may determine that the instruction component that is presumed to be preferentially used is the main instruction component (main instruction component). For example, the information processing device 30 has an instruction component corresponding to the user's right hand as a main instruction component. Further, for example, in the information processing device 30, the person who has the object (device) may be the main instruction component. For example, when the information processing device 30 holds an object (device) in only one hand, that device may be used as a main instruction component.
  • the information processing device 30 may determine the main instruction component in a predetermined order.
  • the information processing device 30 may determine the main instruction component according to the order in which the beam state is set. For example, the information processing apparatus 30 may determine that the instruction component that is initially in the beam state is the main instruction component.
  • the information processing device 30 may determine the main instruction component according to how it is moved. For example, the information processing apparatus 30 may determine that the instruction component that has been moved significantly or has been moved first is the main instruction component.
  • the representation of the line may be various objects. For example, as you become accustomed to the operation, you do not need to display the lines, so you may display only the intersections. Further, for example, the information processing apparatus 30 may represent a line so that an intersection can be easily formed when the two lines are separated from each other. For example, the information processing device 30 may increase the thickness of the line.
  • various display modes may be used.
  • the operation when there is one user has been described, but a plurality of users (plurality of people) wear display devices 10 such as AR devices, VR devices, and MR devices and watch the same image. It may be operated by a person. In this case, while one person is operating the virtual object ⁇ , the other person can also adjust the position.
  • the geometric object is not limited to a surface (operation surface), but may be a line.
  • the case where the operation line LN3 and the main line LN1 are crossed to create an intersection is illustrated, but instead of the operation line, the sub line LN2 and the main line LN1 may be crossed to create an intersection, which is appropriately changed. It is possible.
  • the information processing device 30 of the present embodiment may be realized by a dedicated computer system or a general-purpose computer system.
  • FIG. 22 is a hardware configuration diagram showing an example of a computer 100 that realizes the functions of an information processing device such as the information processing device 30.
  • the computer 100 includes a CPU 110, a RAM 120, a ROM (Read Only Memory) 130, an HDD (Hard Disk Drive) 140, a communication interface 150, and an input / output interface 160. Each part of the computer 100 is connected by a bus 170.
  • the CPU 110 operates based on the program stored in the ROM 130 or the HDD 140, and controls each part. For example, the CPU 110 expands the program stored in the ROM 130 or the HDD 140 into the RAM 120, and executes processing corresponding to various programs.
  • the ROM 130 stores a boot program such as a BIOS (Basic Input Output System) executed by the CPU 110 when the computer 100 is started, a program that depends on the hardware of the computer 100, and the like.
  • BIOS Basic Input Output System
  • the HDD 140 is a computer-readable recording medium that non-temporarily records a program executed by the CPU 110 and data or the like used by the program.
  • the HDD 140 is a recording medium for recording an information processing program according to the present disclosure, which is an example of program data 145.
  • the communication interface 150 is an interface for the computer 100 to connect to the external network 155 (for example, the Internet).
  • the CPU 110 receives data from another device or transmits data generated by the CPU 110 to another device via the communication interface 150.
  • the input / output interface 160 is an interface for connecting the input / output device 165 and the computer 100.
  • the CPU 110 receives data from an input device such as a keyboard or mouse via the input / output interface 160. Further, the CPU 110 transmits data to an output device such as a display, a speaker, or a printer via the input / output interface 160. Further, the input / output interface 160 may function as a media interface for reading a program or the like recorded on a predetermined recording medium (media).
  • the media is, for example, an optical recording medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk), a magneto-optical recording medium such as MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.
  • an optical recording medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk)
  • a magneto-optical recording medium such as MO (Magneto-Optical disk)
  • tape medium such as DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk)
  • MO Magneto-optical disk
  • the CPU 110 of the computer 100 realizes the functions of the control unit 60 and the like by executing the information processing program loaded on the RAM 120.
  • the information processing program according to the present disclosure and the data in the storage unit 50 are stored in the HDD 140.
  • the CPU 110 reads the program data 145 from the HDD 140 and executes the program, but as another example, these programs may be acquired from another device via the external network 155.
  • a program for executing the above operation (for example, moving processing of virtual object ⁇ ) is stored and distributed in a computer-readable recording medium such as an optical disk, a semiconductor memory, a magnetic tape, or a flexible disk.
  • the information processing apparatus 30 is configured by installing the program on a computer and executing the above-mentioned processing.
  • the above program may be stored in a storage device provided in another information processing device on a network such as the Internet so that it can be downloaded to a computer or the like.
  • the above-mentioned functions may be realized by collaboration between the OS (Operating System) and the application software.
  • the part other than the OS may be stored in a medium and distributed, or the part other than the OS may be stored in the server device so that it can be downloaded to a computer or the like.
  • each component of each device shown in the figure is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of the device is functionally or physically dispersed / physically distributed in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
  • the present embodiment includes a device or any configuration constituting the system, for example, a processor as a system LSI (Large Scale Integration) or the like, a module using a plurality of processors, a unit using a plurality of modules, or a unit. It can also be implemented as a set or the like (that is, a part of the configuration of the device) to which other functions are added.
  • a processor as a system LSI (Large Scale Integration) or the like, a module using a plurality of processors, a unit using a plurality of modules, or a unit. It can also be implemented as a set or the like (that is, a part of the configuration of the device) to which other functions are added.
  • LSI Large Scale Integration
  • the system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a device in which a plurality of modules are housed in one housing are both systems. ..
  • At least one function for example, acquisition unit 61, detection unit 62, setting unit 63, distance determination unit 64, determination unit 65, and display control unit 66
  • a network for example, acquisition unit 61, detection unit 62, setting unit 63, distance determination unit 64, determination unit 65, and display control unit 66. It is possible to take a cloud computing configuration in which the devices share and jointly process.
  • the information processing apparatus has an angle formed by a first direction on a predetermined space pointed to by a user and a second direction on the predetermined space pointed to by the user.
  • An acquisition unit that acquires an operation angle, and a setting unit that sets the operation angle acquired when an instruction to start moving a virtual object on a line extending in the first direction is detected as a reference angle.
  • the determination unit determines whether or not the operation angle acquired by the acquisition unit is equal to or greater than the reference angle in response to the change in the second direction, and the determination result of the determination unit, the first direction.
  • the display device is controlled so that the virtual object is moved and displayed in the depth direction on the line of the first direction while maintaining the distance between the intersection of the second direction and the virtual object and the virtual object. It has a control unit and a control unit. As a result, the position of the distant virtual object ⁇ can be finely adjusted at a hand position that is easy to operate while maintaining the distance between the virtual object ⁇ and the intersection.
  • the present technology can also have the following configurations.
  • An acquisition unit that acquires an operation angle that is an angle formed by a first direction on a predetermined space pointed by the user and a second direction on the predetermined space pointed by the user.
  • a setting unit that sets the operation angle acquired at the time when the instruction to start moving the virtual object on the line extending in the first direction is detected as a reference angle, and a setting unit.
  • a determination unit that determines whether or not the operation angle acquired by the acquisition unit is equal to or greater than the reference angle in response to the change in the second direction. Based on the determination result of the determination unit, the virtual object is placed on the line of the first direction while maintaining the distance between the intersection of the first direction and the second direction and the virtual object.
  • An information processing device having a control unit that controls a display device so as to move and display in the depth direction.
  • the control unit When the operation angle is equal to or greater than the reference angle in the determination unit, the virtual object is placed on the front side in the depth direction on the line in the first direction while maintaining the distance between the intersection and the virtual object.
  • the information processing device according to (1) above which controls the display device so as to move to and display.
  • the control unit When the operation angle is not equal to or greater than the reference angle in the determination unit, the virtual object is moved to the depth direction on the line in the first direction while maintaining the distance between the intersection and the virtual object.
  • the information processing device according to (1) or (2) above, which controls the display device so as to move to the side and display.
  • the control unit When the operation angle is equal to or greater than the reference angle in the determination unit, the virtual object is moved to the back side in the depth direction on the line in the first direction while maintaining the distance between the intersection and the virtual object.
  • the information processing device according to (1) above which controls the display device so as to move to and display.
  • the control unit When the operation angle is not equal to or greater than the reference angle in the determination unit, the virtual object is placed in front of the depth direction on the line in the first direction while maintaining the distance between the intersection and the virtual object.
  • the information processing device according to (1) or (2) above which controls the display device so as to move to the side and display.
  • (6) It has a first distance determination unit that determines whether or not the distance between the virtual object and the intersection is equal to or greater than a threshold value.
  • the determination unit When the distance between the virtual object and the intersection is equal to or greater than the threshold value, it is determined whether or not the operation angle is equal to or greater than the reference angle according to the change in the second direction (1) to The information processing device according to any one of (5).
  • the control unit The information processing device according to (6) above, wherein when the distance between the virtual object and the intersection is less than the threshold value, the display device is controlled so that the intersection is attracted to the position of the virtual object.
  • the second direction is The third direction and the first direction on the operation surface perpendicular to the reference plane determined by the origin of the third direction on the predetermined space and the first direction pointed to by the user.
  • the information processing apparatus according to any one of (1) to (7) above, which is the direction on the operation line through which the intersection of the two intersects and the origin of the third direction passes.
  • the control unit Based on the determination result of the determination unit, the virtual object to be operated is subjected to the first operation while maintaining the distance between the intersection point where the first direction and the second direction intersect and the virtual object.
  • the information according to (1) above which controls the display device so as to move and display in the depth direction on the direction line, and controls the display device so as to display an image in the vicinity of the operation target in a separate window.
  • the operation angle which is the angle formed by the first direction on the predetermined space pointed to by the user and the second direction on the predetermined space pointed by the user, is acquired.
  • the operation angle acquired at the time when the instruction to start moving the virtual object on the line extending in the first direction is detected is set as the reference angle, and the reference angle is set. It is determined whether or not the operation angle acquired in response to the change in the second direction is equal to or greater than the reference angle. Based on the determination result, the virtual object is moved in the depth direction on the line of the first direction while maintaining the distance between the intersection of the first direction and the second direction and the virtual object.
  • An information processing method that executes a process that controls a display device so that it is displayed.
  • the operation angle which is the angle formed by the first direction on the predetermined space pointed to by the user and the second direction on the predetermined space pointed by the user, is acquired.
  • the operation angle acquired at the time when the instruction to start moving the virtual object on the line extending in the first direction is detected is set as the reference angle, and the reference angle is set. It is determined whether or not the operation angle acquired in response to the change in the second direction is equal to or greater than the reference angle. Based on the determination result, the virtual object is moved in the depth direction on the line of the first direction while maintaining the distance between the intersection point where the first direction and the second direction intersect and the virtual object.
  • An information processing program that causes a computer to execute a process that controls a display device so that it is displayed.
  • Information processing system 10 Display device 15 Display unit 20 Controller 20A First controller 20B Second controller 30 Information processing device 60 Control unit 61 Acquisition unit 62 Detection unit 63 Setting unit 64 Distance judgment unit 65 Judgment unit 66 Display control unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Architecture (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

情報処理装置は、取得部と、設定部と、判定部と、制御部とを有する。取得部は、利用者が指し示す所定空間上の第1の方向と、当該利用者が指し示す前記所定空間上の第2の方向との成す角である操作角度を取得する。設定部は、第1の方向に延在する線上の仮想オブジェクトの移動開始の指示を検出した時点で取得した操作角度を基準角度に設定する。判定部は、第2の方向の変化に応じて取得した操作角度が基準角度以上であるか否かを判定する。制御部は、判定部の判定結果に基づき、第1の方向と第2の方向とが交わる交点と仮想オブジェクトとの間の距離を維持したまま、仮想オブジェクトを第1の方向の線上の奥行き方向に移動して表示するように表示部を制御する。その結果、操作しやすい手元位置で遠方の仮想オブジェクトの位置を微調整できる。

Description

情報処理装置、情報処理方法及び情報処理プログラム
 本開示は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
 例えば、3次元空間内で仮想オブジェクトを操作するためのデバイスでは、人間の視覚調整の仕組み上、視線によるポインティングやオブジェクト操作において、視線の定位に関する改善が望まれている。
 そこで、ユーザの視野内に所定の方向に沿って配置され、所定の方向に関する距離を示す立体視オブジェクトを表示するよう表示装置を制御し、ユーザ視線によるポインティングやオブジェクト操作を実現する情報処理装置が知られている。その結果、視線の定位に関する改善を実現している。
特開平11-331992号公報 特開2002-44797号公報
 従来の情報処理装置では、距離を示す立体視オブジェクトを表示し、仮想オブジェクトを配置したい位置を視認しながら仮想オブジェクトを配置できる。しかしながら、従来の情報処理装置では、仮想オブジェクトを配置する位置が遠方の場合、配置したい位置に対して見る角度が少しでも変化すると、配置位置が大きくずれてしまう。
 そこで、本開示では、所定空間上の遠くにある仮想オブジェクトの位置を微調整できる情報処理装置等を提案する。
 上記の課題を解決するために、本開示に係る一形態の情報処理装置は、取得部と、設定部と、判定部と、制御部とを有する。取得部は、利用者が指し示す所定空間上の第1の方向と、当該利用者が指し示す前記所定空間上の第2の方向との成す角である操作角度を取得する。設定部は、前記第1の方向に延在する線上の仮想オブジェクトの移動開始の指示を検出した時点で取得した前記操作角度を基準角度に設定する。判定部は、前記第2の方向の変化に応じて前記取得部にて取得した前記操作角度が前記基準角度以上であるか否かを判定する。制御部は、前記判定部の判定結果に基づき、前記第1の方向と前記第2の方向とが交わる交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向に移動して表示するように表示装置を制御する。
本開示の実施形態に係る情報処理システムの一例を示す図である。 情報処理システムの使用形態の一例を示す図である。 情報処理システムの一例を示す図である。 情報処理装置の機能構成の一例を示す図である。 方向情報記憶部の一例を示す図である。 オブジェクト情報記憶部の一例を示す図である。 交点情報記憶部の一例を示す図である。 原点設定処理の一例を示す図である。 基準面設定処理の一例を示す図である。 操作面設定処理の一例を示す図である。 交点設定処理の一例を示す図である。 主線と操作線との関係の一例を示す図である。 仮想オブジェクトの把持処理(交点なし)の一例を示す図である。 仮想オブジェクトの把持処理(交点あり)の一例を示す図である。 仮想オブジェクトの移動処理(距離D1が閾値未満)の一例を示す図である。 仮想オブジェクトの移動処理(距離D1が閾値以上)の一例を示す図である。 移動処理に関わる情報処理装置の処理動作の一例を示すフローチャートである。 移動処理に関わる情報処理装置の処理動作の一例を示すフローチャートである。 移動処理に関わる情報処理装置の処理動作の一例を示すフローチャートである。 操作線の前方移動時の仮想オブジェクトの移動位置の一例を示す図である。 操作線の左方移動時の仮想オブジェクトの移動位置の一例を示す図である。 情報処理装置の一例を示す図である。
 以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
 また、以下に示す項目順序に従って本開示を説明する。
  1.はじめに
   1-1.情報処理システムの概要
  2.実施形態の情報処理システムの構成
   2-1.表示装置の構成
   2-2.コントローラの構成
   2-3.情報処理装置の構成
   2-4.制御部の機能構成
  3.情報処理システムの動作
   3-1.交点の生成処理
   3-2.仮想オブジェクトの把持処理
   3-3.仮想オブジェクトの移動処理
   3-4.仮想オブジェクトのリリース処理
  4.実施形態の効果
  5.変形例
   5-1.仮想オブジェクトの他のリリース処理
   5-2.仮想オブジェクトの他の把持処理
   5-3.仮想オブジェクトの他の移動処理
   5-4.他の指示構成要素
   5-5.仮想オブジェクトの他の表示形態
   5-6.他の主従関係
   5-7.線の他の表示形態
   5-8.他の幾何学的対象
  6.ハードウェア構成
  7.むすび
<<1.はじめに>>
<1-1.情報処理システムの概要>
 従来の情報処理装置では、距離を示す立体視オブジェクトを表示し、仮想オブジェクトを配置したい位置を視認しながら仮想オブジェクトを配置できる。しかしながら、従来の情報処理装置では、仮想オブジェクトを配置する位置が遠方の場合、配置したい位置に対して見る角度が少しでも変化すると、配置位置が大きくずれてしまう。
 従って、従来の情報処理装置では、立体視オブジェクトを表示する場合、ユーザによる位置や仮想オブジェクト等の対象の指示に制約が多く、ユーザによる指示や指示に応じた表示を行うことが難しい。そのため、ユーザの指示に応じた柔軟な表示を可能にすることが望まれている。
 そこで、本出願人は、ユーザが指し示した複数の方向に基づき定まる位置である指示位置に、仮想オブジェクト用のマークを表示するように表示装置を制御する情報処理装置を提案している。その結果、ユーザの指示に応じた柔軟な表示を可能にしている。
 図1は、本開示の実施形態に係る情報処理の一例を示す図である。本開示の実施形態に係る情報処理は、図3に示す情報処理装置30によって実現される。図1に示す情報処理システム1は、表示装置10と、第1のコントローラ20A(20)と、第2のコントローラ20B(20)と、表示装置10の表示を制御する情報処理装置30とを有する。表示装置10は、実空間RS上でユーザXの頭部に装着される、例えば、ヘッドマウントディスプレイ(HMD:Head Mounted Display)である。表示装置10は、情報処理装置30の表示制御に応じた像IMをユーザXの眼前に位置する表示部15に表示する。
 尚、表示装置10は、後述する処理が実現可能であれば、非透過型のHMDや透過型のHMD等のようなヘッドマウントディスプレイであってもよい。また、表示装置10は、ヘッドマウントディスプレイに限らず、後述する情報処理が実現可能であれば、どのような装置であってもよく、例えば、空中投影ディスプレイ等の種々の装置であってもよい。表示装置10の構成の詳細については後述する。
 また、図1では、ユーザXが右手に第1のコントローラ20Aを所持し、左手に第2のコントローラ20Bを所持する場合を示す。以下では、第1のコントローラ20Aや第2のコントローラ20Bを区別しない場合、コントローラ20と記載する場合がある。コントローラ20は、ユーザXが方向を指し示すために用いるデバイスである。ユーザXは、コントローラ20を所持する手を所望の位置や向きに配置することにより、所望の方向を指し示す。例えば、コントローラ20は、表示装置10により表示されるAR(Augmented Reality)、VR(Virtual Reality)やMR(Mixed Reality)等の空間の位置を指示したり、空間内のオブジェクト(「仮想オブジェクト」ともいう)をポインティングしたりするために用いられる。
 図1では、ユーザXが指し示した方向をユーザXに視覚的に認識させるための要素(対象)として線を用いる場合を示す。例えば、ユーザXが指し示した方向に沿う線により、ユーザXが指し示した方向をユーザXに視覚的に認識させる。図1では、ユーザXがコントローラ20により指し示した方向に延びる線を表示装置10に表示させることで、ユーザXがコントローラ20により指し示した方向をユーザXに視覚的に認識させる。図1では、コントローラ20から延びる線は、表示装置10により表示される仮想的なビームである場合を示す。例えば、表示装置10は、コントローラ20からコントローラ20の所定の位置(例えば、図8中の原点21A1や原点21B1等)を通る軸に沿って延びる線を表示する。
 尚、コントローラ20から延びる線は、表示装置10により表示される仮想的なビームに限らず、コントローラ20が実際に発するビーム(レーザー光)であってもよい。コントローラ20が実際にレーザー光(線)を発する場合、コントローラ20は、所定の光軸に沿ってレーザー光を照射する。また、ユーザXが指し示した方向をユーザXに視覚的に認識させるための要素は、線に限らず、面等であってもよい。以下では、ユーザXが示した方向をユーザXに視覚的に認識させるために用いられる線や面等を総称して幾何学的対象と記載する場合がある。また、ユーザXによる方向の指示は、コントローラ20等のデバイスに限らず、ユーザXの身体等であってもよく、ユーザが方向を指し示すために用いるデバイスやユーザXの身体等を総称して指示構成要素と記載する場合がある。指示構成要素は、ユーザXが方向を指し示すために用いるものであればどのようなものであってもよい。
 図1中の像IMは、ユーザXが装着した表示装置10のディスプレイによりユーザXの眼前に表示される像である。図1中の像IMには、第1のコントローラ20Aが指し示す方向に対応する線LN1や第2のコントローラ20Bが指し示す方向に対応する線LN2が表示される。
 ユーザXは、線LN1の位置及び向きや線LN2の位置及び向きを確認しながら、コントローラ20を所持する手を所望の位置や向きを変えることにより、線LN1と線LN2とに基づき定まる位置(以下「指示位置」ともいう)を指定する。図1の例では、ユーザXは、像IM1の中央部付近(自身の眼前の中央部付近)が指示位置となるように、コントローラ20の向きや位置を調整する。以下、コントローラ20の向きや位置を調整することを、単に「コントローラ20の調整」と記載する場合がある。
 図1の例では、情報処理装置30は、ユーザXがコントローラ20により示した2つの方向に基づき定まる指示位置に、仮想オブジェクトαを示すマークMK1を表示するように表示装置10を制御する。ここで、情報処理装置30は、2つの線LN1、LN2の位置関係に基づいて、マークMK1を表示する。
 上述したように、情報処理装置30は、2本の線により位置を指示することにより、容易に所望の位置を指示することができる。情報処理装置30は、ユーザXが示した2方向の各々に対応する線LN1、LN2に基づき定まる交点PにマークMK1を表示するように表示装置10を制御することにより、ユーザXの指示に応じた柔軟な表示を可能にする。また、情報処理装置30は、2本の線の間の距離に応じて交点Pの表示を切替えることにより、ユーザXの指示に応じた柔軟な表示が可能になる。情報処理システム1により、ユーザXは、3次元空間上で、制約なく自由に3次元位置を指定することが可能となる。
 動的に軸を変化させながら位置を決めることができるので、ユーザXは、3次元空間のどこでも素早く位置を指定できる。また、ユーザXは、位置を指定したい場合には2本の線を近づけて交点Pを作り、やめたい場合には線を離すか線の向きを変えることで交点表示を終了できるので、ユーザXの意図が直感的に反映される。
 ユーザXは、例えば、2本のコントローラ20を用いて各コントローラ20から所定空間上に指し示す線で所定空間上に仮想オブジェクトαを配置し、2本の線を交差して交点Pを作り、その交点Pの位置に仮想オブジェクトαを配置している。つまり、2本の線を使えば、所定空間上でのあらゆる3次元位置を指定できる。
 情報処理装置30では、ユーザXの手の動きに連動してポインティングを行う2本のコントローラ20を用いて、ユーザXのコントローラ20の操作位置の近傍をポインティングする場合には、2本の主線と操作線との操作角度の変化に対する交点Pの距離変化量が制御可能である。
 今回の発明では、例えば、コンテンツクリエータ等のユーザXが所定空間上の遠くにある仮想オブジェクトαの3次元位置を微調整するシーンを想定する。図2は、情報処理システム1の使用形態の一例を示す図である。
 図2に示すように、遠方の仮想オブジェクトαをポインティングする際の操作角度に対する交点Pの距離変化量は近傍に比べて相対的に大きくなる。ユーザXの操作位置からの距離に応じて操作角度に基づく仮想オブジェクトαの移動距離の制御が技術課題となる。つまり、同じ操作角度であっても、近傍より遠方の方が仮想オブジェクトαの位置の移動量が大きくなってしまうために、遠方の仮想オブジェクトαの位置の微調整が困難となる。
 しかも、遠方の位置を指定しようとした場合には、少しの手の動きやブレの影響で位置が大きく変化してしまうため、遠方の交点の位置や遠方の仮想オブジェクトαの位置を微調整しようとした場合に、位置の調整が困難となる。
 そこで、今回の発明では、図2に示すように、2本のコントローラ20を用いて所定空間上の遠方の交点Pの位置や仮想オブジェクトαの位置を微調整、例えば、50m先にある植栽(仮想オブジェクトα)の位置を10cm手前に移動するように微調整できる情報処理装置30が求められている。
 そこで、情報処理装置30は、取得部と、設定部と、判定部と、制御部とを有する。取得部は、利用者が指し示す所定空間上の第1の方向と、当該利用者が指し示す所定空間上の第2の方向との成す角である操作角度を取得する。設定部は、第1の方向に延在する線上の仮想オブジェクトの移動開始の指示を検出した時点で取得した操作角度を基準角度に設定する。判定部は、第2の方向の変化に応じて取得部にて取得した操作角度が基準角度以上であるか否かを判定する。制御部は、判定部の判定結果に基づき、第1の方向と第2の方向とが交わる交点と仮想オブジェクトとの間の距離を維持したまま、仮想オブジェクトを第1の方向の線上の奥行き方向に移動して表示するように表示装置10を制御する。
 情報処理装置30では、第2の方向の変化に応じて取得した操作角度が基準角度以上であるか否かを判定し、判定結果に基づき、第1の方向と第2の方向とが交わる交点と仮想オブジェクトとの間の距離を維持したまま、仮想オブジェクトを第1の方向の線上の奥行き方向に移動して表示するように表示装置10を制御する。その結果、交点と仮想オブジェクトとの間の距離を維持したまま、仮想オブジェクトを第1の方向の線上の奥行き方向に移動可能に表示するため、遠方の仮想オブジェクトの微調整が容易となる。
<<2.実施形態の情報処理システムの構成>>
 図3は、情報処理システム1の一例を示す図である。図3に示す情報処理システム1は、表示装置10と、第1のコントローラ20A(20)と、第2のコントローラ20B(20)と、情報処理装置30とを有する。尚、図3では、第1のコントローラ20A及び第2のコントローラ20Bの2個のコントローラ20を方向指示構成要素の一例として図示するが、情報処理システム1には、3個より多い数の方向指示構成要素が含まれてもよい。
 情報処理システム1は、例えば、AR(拡張現実)、VR(仮想現実)やMR(複合現実)に関する情報処理が実行されるシステムである。例えば、情報処理システム1は、ARやVRのコンテンツを表示したり、編集したりするためのシステムである。
 情報処理装置30と、表示装置10と、コントローラ20とは、所定のネットワーク(図示省略)を介して、有線又は無線により通信可能に接続される。尚、図3に示す情報処理システム1には、複数の表示装置10や、複数の情報処理装置30が含まれてもよい。
 情報処理装置30は、ユーザが指し示す複数の方向に基づき定まる位置である指示位置に、仮想オブジェクトαのマークを表示するように表示装置10を制御する。情報処理装置30は、コントローラ20から取得したコントローラ情報を用いて表示装置10の表示を制御する。情報処理装置30は、表示装置10から取得した表示装置10の位置や姿勢に関する情報を用いて表示装置10の表示を制御する。
<2-1.表示装置の構成>
 表示装置10は、位置・姿勢検出部11と、受光部12と、加速度センサ13と、ジャイロセンサ14と、表示部15とを有する。位置・姿勢検出部11は、受光部12や加速度センサ13やジャイロセンサ14等の表示装置10が備えるセンサから取得した各種センサ情報に基づき、表示装置10の位置や姿勢を検出する。位置・姿勢検出部11は、センサ情報に基づき、表示装置10の位置、向き、傾き、姿勢に関する各種情報を検知する。位置・姿勢検出部11は、表示装置10の位置や姿勢に関する情報を情報処理装置30に送信する。例えば、位置・姿勢検出部11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)等の種々のプロセッサにより実現されてもよい。
 表示部15は、情報処理装置30の制御に応じて各種情報を表示するディスプレイである。例えば、表示装置10は、情報処理装置30から各種情報を取得し、取得した情報を表示部15に表示する。表示部15は、情報処理装置30による制御に応じて、ユーザXが示した複数の方向に基づき定まる指示位置に、仮想オブジェクトαのマークを表示する。表示部15は、情報処理装置30により生成されたコンテンツを表示する。
 尚、ユーザXの視線が方向の指定に用いられる場合、表示装置10は、ユーザXの視線位置を検出する視線検出部を備えても良い。視線検出部は、視線検出に関する種々の技術を適宜用いて、ユーザXの視線を検出する。視線検出の技術としては、例えば、目の基準点(例えば、目頭や角膜反射等の目における動かない部分に対応する点)に対する、目の動点(例えば、虹彩や瞳孔等の目における動く部分に対応する点)の位置に基づいて、視線を検出する方法が用いられてもよい。なお、視線の検出は、上記に限らず任意の視線検出技術を用いて、ユーザXの視線を検出してもよい。
<2-2.コントローラの構成>
 第1のコントローラ20Aは、第1の位置・姿勢検出部21Aと、第1の受光部22Aと、第1の加速度センサ23Aと、第1のジャイロセンサ24Aとを有する。第1の位置・姿勢検出部21Aは、第1の受光部22A、第1の加速度センサ23Aや第1のジャイロセンサ24A等のセンサ情報に基づいて、第1のコントローラ20Aの位置や姿勢を検出する。第1の位置・姿勢検出部21Aは、第1の受光部22A、第1の加速度センサ23Aや第1のジャイロセンサ24A等のセンサ情報に基づき、第1のコントローラ20Aの位置、向き、傾きや姿勢に関するコントローラ情報を検知する。第1の位置・姿勢検出部21Aは、コントローラ情報を情報処理装置30に送信する。例えば、第1の位置・姿勢検出部21Aは、例えば、CPUやGPUやFPGA等、種々のプロセッサにより実現されてもよい。尚、第1のコントローラ20Aが実際のビームを照射する場合、第1のコントローラ20Aは、レーザー光を照射する構成(光出力部等)を有する。
 第2のコントローラ20Bは、第2の位置・姿勢検出部21Bと、第2の受光部22Bと、第2の加速度センサ23Bと、第2のジャイロセンサ24Bとを有する。第2の位置・姿勢検出部21Bは、第2の受光部22B、第2の加速度センサ23Bや第2のジャイロセンサ24B等のセンサ情報に基づいて、第2のコントローラ20Bの位置や姿勢を検出する。第2の位置・姿勢検出部21Bは、第2の受光部22B、第2の加速度センサ23Bや第2のジャイロセンサ24B等のセンサ情報に基づき、第2のコントローラ20Bの位置、向き、傾きや姿勢に関するコントローラ情報を検知する。第2の位置・姿勢検出部21Bは、コントローラ情報を情報処理装置30に送信する。例えば、第2の位置・姿勢検出部21Bは、例えば、CPUやGPUやFPGA等、種々のプロセッサにより実現されてもよい。尚、第2のコントローラ20Bが実際のビームを照射する場合、第2のコントローラ20Bは、レーザー光を照射する構成(光出力部等)を有する。
<2-3.情報処理装置の構成>
 情報処理装置30は、CPU31で各種処理を実行する。図4は、情報処理装置30の機能構成の一例を示す図である。図4に示す情報処理装置30は、通信部40と、記憶部50と、制御部60とを有する。尚、情報処理装置30は、情報処理装置30の管理者等から各種操作を受け付ける、例えば、キーボードやマウス等の入力部や、各種情報を表示するための表示部を備えてもよい。
 通信部40は、例えば、NICや通信回路等によって実現される。そして、通信部40は、所定のネットワーク(図示省略)と有線または無線で接続され、コントローラ20や表示装置10等の他の情報処理装置との間で情報の送受信を行う。
 記憶部50は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部50は、方向情報記憶部51と、オブジェクト情報記憶部52と、交点情報記憶部53とを有する。
 方向情報記憶部51は、方向の指示に関する各種情報を記憶する。図5は、方向情報記憶部51の一例を示す図である。図5に示す方向情報記憶部51には、方向ID51A毎に、指示構成要素51B、種別51C及び把持フラグ51D等を対応付けて管理する。尚、方向情報記憶部51は、上記に限らず、目的に応じて種々の情報を管理しても良く、適宜変更可能である。
 方向ID51Aは、例えば、ユーザXにより指し示された各方向を識別する情報である。指示構成要素51Bは、例えば、ユーザXが方向を指し示すために用いた構成要素、例えば、コントローラ20等のデバイスやユーザXの身体に関する要素を識別する情報である。例えば、ユーザXの視線により方向が指示される場合、指示構成要素51Bには、「視線」が格納されてもよい。また、例えば、ユーザXの指により方向が指示される場合、指示構成要素51Bには、「指」が格納されてもよい。
 種別51Cは、指示構成要素51Bのタイプを示す情報である。例えば、種別51Cは、ユーザが方向を指し示すために用いた構成要素、例えば、コントローラ20等のデバイスやユーザXの身体に関する要素のタイプを示す情報である。例えば、コントローラ20により方向が指示される場合、種別51Cには、「コントローラ」や「デバイス」等が格納される。例えば、ユーザの視線により方向が指示される場合、種別51Cには、「視線」や「身体」等が格納される。また、例えば、ユーザXの指により方向が指示される場合、種別51Cには、「指」や「身体」等が格納される。
 図5の例では、方向ID「DG1」により識別される方向(方向DG1)は、「20A」により識別される指示構成要素である第1のコントローラ20Aであることを示す。方向DG1を示す第1のコントローラ20Aの種別はコントローラであることを示す。
 また、方向ID「DG2」により識別される方向(方向DG2)は、「20B」により識別される指示構成要素である第2のコントローラ20Bであることを示す。方向DG2を示す第2のコントローラ20Bの種別はコントローラであることを示す。
 オブジェクト情報記憶部52は、仮想オブジェクトαに関する各種情報を記憶する。図6は、オブジェクト情報記憶部52の一例を示す図である。図6に示すオブジェクト情報記憶部52には、オブジェクトID52A毎に、オブジェクト情報52B及びフラグ52C等を対応付けて管理する。フラグ52Cには、重力フラグ52Dや把持フラグ52E等が含まれる。尚、オブジェクト情報記憶部52は、上記に限らず、目的に応じて種々の情報を管理しても良い。
 オブジェクトID52Aは、仮想オブジェクトαを識別する情報である。また、オブジェクト情報52Bは、オブジェクトID52Aにより識別される仮想オブジェクトαに対応する情報である。尚、図6に示す例では、オブジェクト情報52Bは、「OINF1」等の抽象的な符号を図示するが、仮想オブジェクトαのサイズや形状等に関連する各種情報が格納されても良い。フラグ52Cには、オブジェクトID52Aにより識別される仮想オブジェクトαに対応するフラグ情報である。重力フラグ52Dは、オブジェクトID52Aにより識別される仮想オブジェクトαに重力フラグが付与されているか否かを識別する情報である。把持フラグ52Eは、オブジェクトID52Aにより識別される仮想オブジェクトαに把持フラグが付与されているか否かを識別する情報である。
 図6の例では、オブジェクトID「VO1」により識別される仮想オブジェクトVO1は、オブジェクト情報が「OINF1」であることを示す。仮想オブジェクトVO1は、重力フラグが「1」であることを示す。すなわち、仮想オブジェクトVO1は、配置位置の決定に重力の影響を受けることを示す。この場合、例えば、仮想オブジェクトVO1は、中空に配置された場合、その位置から重力方向に落下した位置に配置されることを示す。
 また、オブジェクトID「VO41」により識別される仮想オブジェクトVO41は、オブジェクト情報が「OINF41」であることを示す。仮想オブジェクトVO41は、重力フラグが「0」であることを示す。すなわち、仮想オブジェクトVO41は、配置位置の決定に重力の影響を受けないことを示す。この場合、例えば、仮想オブジェクトVO41は、中空に配置された場合、その位置に留まることを示す。
 交点情報記憶部53は、交点に関する各種情報を記憶する。図7は、交点情報記憶部53の一例を示す図である。図7に示す交点情報記憶部53には、交点ID53A毎に主従情報53Bを対応付けて管理する。交点ID53Aは、交点を識別する情報である。主従情報53Bは、主従関係53Cと、主指示構成要素53Dと、従指示構成要素53Eとを対応付けて管理する。尚、交点情報記憶部53は、上記に限らず、目的に応じて種々の情報を記憶してもよい。主従関係53Cは、各方向を指示する指示構成要素間の主従関係の有無を示す情報である。
 主指示構成要素53Dは、その指示構成要素が示す方向(幾何学的対象)が主となることを示す情報である。図1の例で第1のコントローラ20Aが主たる指示構成要素である場合、主指示構成要素53Dには、「20A」が記憶される。従指示構成要素53Eは、その指示構成要素が示す方向(幾何学的対象)が従となることを示す情報である。図1の例で第2のコントローラ20Bが従たる指示構成要素である場合、従指示構成要素53Eは、「20B」が記憶される。
 制御部60は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置30内部に記憶されたプログラム(例えば、本開示に係るプログラム等の情報処理プログラム)がRAM等を作業領域として実行されることにより実現される。また、制御部60は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA等の集積回路により実現される。
<2-4.制御部の機能構成>
 制御部60は、取得部61と、検出部62と、設定部63と、距離判定部64と、判定部65と、表示制御部66とを有し、以下に説明する情報処理の機能や作用を実現または実行する。尚、制御部60の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部60が有する各処理部の接続関係は、図4に示した接続関係に限られず、他の接続関係であってもよい。
 取得部61は、奥行き方向に延在する第1の方向の主線LN1と、第1の方向に対して水平面の第2の方向の操作線LN3との成す角である操作角度を取得する。検出部62は、仮想オブジェクトαの移動開始を示す移動指示を検出する。設定部63は、移動指示を検出した時点における、主線LN1と操作線LN3との交点はP0、主線LN1と操作線LN3との成す角である基準角度をθ0、主コントローラ20と交点P0との間の距離をD0として設定する(図12参照)。
 取得部61は、副コントローラ20による第2の方向の変化に応じて主線LN1と操作線LN3との交点の操作角度θを取得する。この際、変化後の主線LN1と操作線LN3との交点をP、主線LN1と操作線LN3との成す角である操作角度をθ、主コントローラ20と交点Pとの間の距離をD0とする。
 距離判定部64は、取得部61にて第2の方向の変化に応じて操作角度θを取得した場合、主線LN1上の仮想オブジェクトαと交点との間の距離D1が閾値Dth未満であるか否かを判定する(図12参照)。
 表示制御部66は、仮想オブジェクトαと交点Pとの間の距離D1が閾値Dth未満の場合、主線LN1上の仮想オブジェクトαを交点Pに吸着するように表示部15に表示させる。この際、仮想オブジェクトαと交点Pとの間の距離D1は“0”となる。
 判定部65は、仮想オブジェクトαと交点Pとの間の距離D1が閾値Dth未満の場合、操作線LN3の変更に応じて取得した操作角度θが基準角度θ0以上であるか否かを判定する。
 表示制御部66は、操作角度θが基準角度θ0以上の場合、仮想オブジェクトαを奥行き方向において手前側に移動して表示部15に表示させる。表示制御部66は、主コントローラ20と仮想オブジェクトαとの間の距離d=(D0+D1)-|P-P0|で求めるが、D1=0のため、操作線LN3の変化に対応した|P-P0|の移動量に応じて仮想オブジェクトαが手前側になるように距離dが変動する(図12参照)。
 表示制御部66は、操作角度θが基準角度θ0以上でない、すなわち操作角度θが基準角度θ0未満の場合、仮想オブジェクトαを奥行き方向において奥側に移動して表示部15に表示させる。表示制御部66は、主コントローラ20と仮想オブジェクトαとの間の距離d=(D0+D1)+|P-P0|で求めるが、D1=0のため、操作線LN3の変化に対応した|P-P0|の移動量に応じて仮想オブジェクトαが奥側になるように距離dが変動する。
 表示制御部66は、仮想オブジェクトαと交点Pとの間の距離D1が閾値Dth未満でない、すなわち、距離D1が閾値Dth以上の場合、仮想オブジェクトαと交点Pとの間の距離D1を保持した状態で表示部15に表示させる。この際、仮想オブジェクトαと交点Pとの間の距離D1は“D1>0”となる。
 判定部65は、距離D1を保持したまま、操作線LN3の変更に応じて取得した操作角度θが基準角度θ0以上であるか否かを判定する。
 表示制御部66は、操作角度θが基準角度θ0以上の場合、距離D1を保持したまま、仮想オブジェクトα及び交点Pを主線LN1上の奥行き方向において手前側に移動して表示部15に表示させる。表示制御部66は、第1のコントローラ20Aと仮想オブジェクトαとの間の距離d=(D0+D1)-|P-P0|で求めるが、D1>0のため、操作線LN3の変化に対応した|P-P0|の移動量に応じて仮想オブジェクトが手前側になるように距離dが変動する。更に、表示制御部66は、主線の原点PC0+e(単位ベクトル)×dで求める座標の主線LN1上に仮想オブジェクトαを手前側に配置して表示部15に表示させる。
 表示制御部66は、操作角度θが基準角度θ0以上でない、すなわち操作角度θが基準角度θ0未満の場合、距離D1を保持したまま、仮想オブジェクトα及び交点Pを主線LN1上の奥行き方向において奥側に移動して表示部15に表示させる。表示制御部66は、第1のコントローラ20Aと仮想オブジェクトαとの間の距離d=(D0+D1)+|P-P0|で求めるが、D1>0のため、操作線LN3の変化に対応した|P-P0|の移動量に応じて仮想オブジェクトαが奥側になるように距離dが変動する。更に、表示制御部66は、主線の原点PC0+e(単位ベクトル)×dで求める座標の主線LN1上に仮想オブジェクトαを奥側に配置して表示部15に表示させる。
 図1の例では、表示制御部66は、ユーザXがコントローラ20により示した2つの方向に基づき定まる指示位置に、仮想オブジェクトαのマークMK1を表示するように表示装置10を制御する。表示制御部66は、取得部61により取得されたコントローラ情報に基づいて、線LN1、LN2を表示するように、表示装置10を制御する。
 表示制御部66は、取得部61により取得されたコントローラ情報に基づいて、線LN1、LN2を表示するように、表示装置10を制御する。表示制御部66は、交点Pを表示するように表示装置10を制御する。表示制御部66は、交点Pに図1に示すようなマークMK1を交点Pとして表示するように表示装置10を制御する。
<<3.情報処理システムの動作>>
 次に、情報処理装置30の動作について説明する。前提条件としては、2本のコントローラ20を使用し、各コントローラ20が指し示す線を用いて交点Pを生成する。指し示す線には、主従関係がある。指し示す線の主従関係には、優先順位・順番・操作の先勝の何れかで決定しても良い。主/従線を表示しているコントローラ20のトリガーを主/副トリガーと呼ぶ。中空空間(何もない空間上)に仮想オブジェクトαがある。仮想オブジェクトαを星型で表示している。
 情報処理装置30では、交点の生成処理と、仮想オブジェクトαの把持処理と、仮想オブジェクトαの移動処理と、仮想オブジェクトαのリリース処理とがある。
<3-1.交点の生成処理>
 交点の生成処理は、主線LN1と操作線LN3とが交わる交点Pを作成する処理である。生成処理は、原点設定処理と、基準面設定処理と、操作面設定処理と、交点設定処理とを有する。
 図8は、原点設定処理の一例を示す図である。図8では、ユーザXが利き手である右手に主指示構成要素である第1のコントローラ20Aを所持し、左手に従指示構成要素である第2のコントローラ20Bを所持する場合を示す。尚、ユーザXが左手に所持する第2のコントローラ20Bが主指示構成要素であり、右手に所持する第1のコントローラ20Aが従指示構成要素であってもよい。
 原点設定処理は、図8に示すように、例えば、第1のコントローラ20Aを用いて所定空間上を指し示す第1の方向の主線LN1の原点20A1と、第2のコントローラ20Bを用いて所定空間上を指し示す第2の方向の副線LN2の原点20B1とを設定する処理である。第1の方向を指し示す第1のコントローラ20Aの位置を主線LN1の原点20A1、第2の方向を指し示す第2のコントローラ20Bの位置を副線LN2の原点20B1とする。
 第1のコントローラ20Aから第1のコントローラ20Aの原点20A1を通る軸に沿って主線LN1が伸びる。また、第2のコントローラ20Bから第2のコントローラ20Bの原点20B1を通る軸に沿って副線LN2が伸びる。例えば、情報処理装置30は、第1のコントローラ20Aの位置や向きに基づいて主線LN1を算出し、第2のコントローラ20Bの位置や向きに基づいて副線LN2を算出する。情報処理装置30は、第1のコントローラ20Aの軸や原点20A1に基づいて主線LN1を算出し、第2のコントローラ20Bの軸や原点20B1に基づいて副線LN2を算出する。
 図9は、基準面設定処理の一例を示す図である。基準面設定処理は、図9に示すように、基準面を設定する処理である。主線LN1と、副線LN2の原点20B1から構成される平面を基準面FC1とする。基準面FC1は、主線LN1と、副線LN2の原点20B1とを含む面である。言い換えると、主線LN1は、基準面FC1内を通り、原点20B1は、基準面FC1内に位置する。このように、基準面FC1は、主線LN1と、副線LN2の原点20B1とにより定まる。例えば、情報処理装置30は、主線LN1の位置や原点20B1の位置に基づいて基準面FC1を算出する。情報処理装置30は、主線LN1と、副線LN2の原点20B1とを含む面を基準面FC1として算出する。
 尚、基準面FC1を設定する理由としては、例えば、床と垂直方向(真上や真下など)に2本のコントローラ20を向けて操作する際に地面や床を基準面FC1に固定した場合に、床と水平方向の角度から交点Pを作成することになるため、ユーザXが想定している位置に交点Pを作成することができなくなるためである。そこで、主線LN1と副線LN2の原点20B1から構成される平面を基準面FC1に設定する。
 図10は、操作面設定処理の一例を示す図である。操作面設定処理は、図10に示すように、操作面FC2を設定する処理である。基準面FC1が副線LN2の原点20B1を中心に垂直となる平面を操作面FC2とする。操作面FC2は、原点20B1を通り、基準面FC1に直交する面である。また、副線LN2は、操作面FC2上を移動する。操作面FC2は、副線LN2が乗る。言い換えると、副線LN2は、操作面FC2を通る。すなわち、操作面FC2は、副線LN2の原点20B1を含み、基準面FC1に直交する面である。操作面FC2は、基準面FC1と、副線LN2の原点20B1とにより定まる。例えば、情報処理装置30は、基準面FC1の位置や副線LN2の位置や原点20B1の位置に基づいて操作面FC2を算出する。情報処理装置30は、基準面FC1に直交し、副線LN2や原点20B1を含む面を操作面FC2として算出する。基準面FC1が副線LN2の原点20B1を中心に垂直となる平面とし、その平面上を副線LN2が移動し、副線LN2を含む基準面FC1に垂直となる面を操作面FC2図とする。
 図11は、交点設定処理の一例を示す図である。交点設定処理は、図11に示すように、主線LN1と操作面FC2とが交わる点を交点Pに設定する処理である。主線LN1と、操作面FC2とが交わる点を交点Pとする。情報処理装置30は、主線LN1の位置や操作面FC2の位置に基づいて交点Pを算出する。例えば、情報処理装置30は、主線LN1と操作面FC2とが交わる点を交点Pとして算出する。尚、副線LN2の原点20B1と交点Pとを結んだ線を操作線LN3とし、操作線LN3と主線LN1との成す角を操作角度θとする。
 図12は、主線LN1と操作線LN3との関係の一例を示す図である。図12に示す主線LN1は、主コントローラ20が指し示す第1の方向の線である。操作線LN3は、副コントローラ20が指し示す第2の方向の線である。主線LN1上の主コントローラ20と仮想オブジェクトαとの間の距離をd、主線LN1上の主コントローラ20と交点Pとの間の距離をD0、主線LN1上の交点P0と仮想オブジェクトαとの間の距離をD1とする。主線LN1と操作線LN3との成す角をθ0とする。基準時の主線LN1と操作線LN3との交点をP0、主線LN1と操作線LN3との成す角θ0を基準角度とする。更に、副コントローラ20の操作に応じて操作線LN3の変化した場合の主線LN1と操作線LN3との交点をP、主線LN1と操作線LN3との成す角θを操作角度とする。
<3-2.仮想オブジェクトの把持処理>
 仮想オブジェクトの把持処理は、主線LN1上で仮想オブジェクトαを把持する処理である。図13は、仮想オブジェクトαの把持処理(交点なし)の一例を示す図である。図13に示す把持処理は、例えば、交点がない場合、主線LN1を仮想オブジェクトαに当てて主トリガーが押下されると、主線LN1上の先に仮想オブジェクトαを配置することになる。尚、主トリガーは、例えば、主線LN1の第1のコントローラ20Aの操作部である。また、主トリガーが押されない場合は、線のままである。また、仮想オブジェクトαが無い場所に向けて主トリガーが押下された場合でも、線のままである。また、副トリガーのみが押下された場合も、何も起きない。尚、副トリガーは、例えば、操作線LN3の第2のコントローラ20Bの操作部である。
 これに対して、図14は、仮想オブジェクトαの把持処理(交点あり)の一例を示す図である。図14に示す把持処理は、例えば、主線LN1と操作線LN3とで成す交点Pが主線LN1上にある場合、主トリガーが押下されると、主線LN1上の交点Pと仮想オブジェクトαが一定距離内の場合に交点Pに仮想オブジェクトαが吸着されることになる。これに対して、主線LN1上の交点Pと仮想オブジェクトαが一定距離を超えて離れている場合には仮想オブジェクトαが吸着されない。また、主トリガーが押下されない場合は、線のままである。また、副トリガーのみが押下された場合でも、何も起きない。主・副トリガーの同時に押下された場合、主線LN1上の交点Pに仮想オブジェクトαが吸着されることになる。また、副トリガーが押下された状態で、主トリガーが押下された場合でも、主・副トリガーの同時押しと同じ挙動である。
<3-3.仮想オブジェクトの移動処理>
 仮想オブジェクトαの移動処理は、図15に示すように、第2のコントローラ20Bの操作に応じて、主線LN1上に配置された仮想オブジェクトαを奥行き方向に移動する処理である。主トリガーが押下された状態で、主線LN1の先に仮想オブジェクトαが配置されている状態であって、第2のコントローラ20Bの操作に応じて主線LN1上で操作線LN3を動かして交点Pを変更することになる。副トリガーが押下されると、その時点の交点Pと仮想オブジェクトαとの間の距離D1が閾値Dth未満であるか否かを判定する。
 図15は、仮想オブジェクトαの移動処理(距離D1が閾値Dth未満)の一例を示す図である。交点Pと仮想オブジェクトαとの間の距離D1が閾値Dth未満の場合、すなわち、操作対象が近傍の場合、図15に示すように主線LN1上の仮想オブジェクトαを交点Pに吸着し、距離D1が“0”となる。そして、第2のコントローラ20Bの操作に応じて操作線LN3が主線LN1上を移動し、移動後の操作線LN3に応じて交点Pが移動するため、交点Pの移動に応じて主線LN1上を仮想オブジェクトαが移動する。
 図16は、仮想オブジェクトαの移動処理(距離D1が閾値Dth以上)の一例を示す図である。交点Pと仮想オブジェクトαとの間の距離D1が閾値Dth以上の場合、すなわち、操作対象が遠方の場合、図16に示すように、仮想オブジェクトαと交点Pとの間の距離D1が“D1>0”となる。そして、第2のコントローラ20Bの操作に応じて操作線LN3が主線LN1上を移動し、移動後の操作線LN3に応じて交点Pが移動し、仮想オブジェクトα及び交点Pが仮想オブジェクトαと交点Pとの間の距離を維持したまま、主線LN1上を仮想オブジェクトα及び交点Pが移動する。尚、副トリガーが押下された時点の交点Pと仮想オブジェクトαとの間の距離D1が保持されることになる。遠方の操作対象を手元で操作できるので、微調整したい距離を確認しながら調整できる。
 図17乃至図19は、移動処理に関わる情報処理装置30の処理動作の一例を示すフローチャートである。制御部60は、複数のコントローラ20の内、一つのコントローラ20を指定し(ステップS11)、指定コントローラ20の向き・位置を取得する(ステップS12)。制御部60は、指定コントローラ20で所定空間上の仮想オブジェクトαを把持しているか否かを判定する(ステップS13)。制御部60は、所定空間上の仮想オブジェクトαを把持している場合(ステップS13:Yes)、指定コントローラ20の把持フラグを“1”に設定し(ステップS14)、未指定のコントローラ20があるか否かを判定する(ステップS15)。尚、制御部60は、方向情報記憶部51に記憶中の指定コントローラ20の線LNを識別する方向IDに対応する把持フラグに“1”を記憶する。
 制御部60は、未指定のコントローラ20がある場合(ステップS15:Yes)、コントローラ20を指定すべく、ステップS11に移行する。また、制御部60は、指定コントローラ20が仮想オブジェクトαを把持していない場合(ステップS13:No)、未指定のコントローラ20があるか否かを判定すべく、ステップS15に移行する。
 制御部60は、未指定のコントローラ20がある場合(ステップS15:Yes)、複数の指定済みのコントローラ20の内、一つのコントローラ20を再指定する(ステップS16)。制御部60は、再指定コントローラ20の把持フラグが“1”であるか否かを判定する(ステップS17)。尚、制御部60は、方向情報記憶部51に記憶中の再指定コントローラ20の線LNを識別する方向IDに対応する把持フラグを参照し、把持フラグが“1”であるか否かを判定する。制御部60は、再指定コントローラ20の把持フラグが“1”である場合(ステップS17:Yes)、再指定コントローラ20のトリガーが押下中であるか否かを判定する(ステップS23)。制御部60は、再指定コントローラ20のトリガーが押下中の場合(ステップS23:Yes)、複数の指定済みのコントローラ20の内、未だ再指定されていないコントローラ20があるか否かを判定する(ステップS18)。制御部60は、未だ再指定されていないコントローラ20がない場合(ステップS18:No)、図18に示すM1に移行する。また、制御部60は、再指定コントローラ20のトリガーが押下中でない場合(ステップS23:No)、再指定コントローラ20から仮想オブジェクトαを離し(ステップS24)、再指定コントローラ20の把持フラグを“0”に設定し(ステップS25)、ステップS18に移行する。
 制御部60は、未だ再指定されていないコントローラ20がある場合(ステップS18:Yes)、コントローラ20を再指定すべく、ステップS16に移行する。
 制御部60は、再指定コントローラ20の把持フラグが“1”でない場合(ステップS17:No)、再指定コントローラ20で指し示す方向の線が所定空間上で仮想オブジェクトαを指しているか否かを判定する(ステップS19)。制御部60は、仮想オブジェクトαを指している場合(ステップS19:Yes)、所定空間上で仮想オブジェクトαを指している再指定コントローラ20のトリガーが押下中であるか否かを判定する(ステップS20)。尚、制御部60は、例えば、第1のコントローラ20Aが仮想オブジェクトαを指し示した状態で第1のコントローラ20Aのトリガーが押下されている状態であるか否かを判定する。
 制御部60は、再指定コントローラ20のトリガーが押下中の場合(ステップS20:Yes)、再指定コントローラ20が仮想オブジェクトαを掴み(ステップS21)、再指定コントローラ20の把持フラグを“1”に設定し(ステップS22)、未だ再指定されていないコントローラ20があるか否かを判定すべく、ステップS18に移行する。
 制御部60は、仮想オブジェクトαを指していない場合(ステップS19:No)、又は、再指定コントローラ20のトリガー押下中でない場合(ステップS20:No)、未だ再指定されていないコントローラ20があるか否かを判定すべく、ステップS18に移行する。
 図18に示すM1において制御部60は、コントローラ20が2本であるか否かを判定する(ステップS31)。制御部60は、コントローラ20が2本でない場合(ステップS31:No)、コントローラ20が1本であるか否かを判定する(ステップS32)。制御部60は、コントローラ20が1本の場合(ステップS32:Yes)、図17に示すM2に移行する。また、制御部60は、コントローラ20が1本でない場合(ステップS32:No)、図18に示す処理動作を終了する。
 制御部60は、コントローラ20が2本の場合(ステップS31:Yes)、2本ともコントローラ20の把持フラグが“0”であるか否かを判定する(ステップS33)。制御部60は、2本ともコントローラ20の把持フラグが“0”の場合(ステップS33:Yes)、図17に示すM2に移行する。
 制御部60は、2本ともコントローラ20の把持フラグが“0”でない場合、2本ともコントローラ20の把持フラグが“1”であるか否かを判定する(ステップS34)。制御部60は、2本ともコントローラ20の把持フラグが“1”でない場合(ステップS34:No)、すなわち、どちらか一方のコントローラ20の把持フラグが“1”と判断し、把持フラグ“1”のコントローラ20を主コントローラ20に設定する(ステップS35)。尚、制御部60は、交点情報記憶部53に記憶中の主従関係53Cを「有」に変更し、主指示構成要素53Dに「20A」を記憶し、従指示構成要素53Eに「20B」を記憶する。制御部60は、主コントローラ20の主線LN1上の交点Pと仮想オブジェクトαとの間の距離D1を“-1”に設定し(ステップS36)、図17に示すM2に移行する。
 制御部60は、2本ともコントローラ20の把持フラグが“1”の場合(ステップS34:Yes)、2本のコントローラ20の線、すなわち、主線LN1と操作線LN3とが交わる主線LN1上の交点があるか否かを判定する(ステップS37)。制御部60は、主線LN1上の交点がある場合(ステップS37:Yes)、交点と仮想オブジェクトαとの間の距離D1が“0”以上であるか否かを判定する(ステップS38)。
 制御部60内の距離判定部64は、交点と仮想オブジェクトαとの間の距離D1が“0”以上の場合(ステップS38:Yes)、距離D1が閾値Dth以下であるか否かを判定する(ステップS39)。制御部60は、距離D1が閾値Dth以下である場合(ステップS39:Yes)、交点が仮想オブジェクトαの位置に吸着することで距離“0”をD1に設定する(ステップS40)。
 制御部60内の設定部63は、主線LN1と操作線LN3との交点座標をP0に設定し(ステップS41)、主線LN1と操作線LN3との成す角を基準角としてθ0に設定し(ステップS42)、主コントローラ20と交点との間の距離をD0に設定し(ステップS43)、図17に示すM2に移行する。
 また、制御部60内の設定部63は、距離D1が閾値Dth以下でない場合(ステップS39:No)、交点と仮想オブジェクトαとの間の距離をD1に設定し(ステップS44)、主線LN1と操作線LN3との交点座標をP0に設定すべく、ステップS41に移行する。
 また、制御部60は、交点と仮想オブジェクトαとの間の距離D1が“0”以上でない場合(ステップS38:No)、図19に示すM3に移行する。
 図19に示すM3において制御部60は、主線LN1と操作線LN3と交点座標をPに設定し(ステップS51)、移動後の主線LN1と操作線LN3との成す角を操作角度としてθに設定する(ステップS52)。制御部60内の判定部65は、操作角度θが基準角度θ0以下であるか否かを判定する(ステップS53)。
 制御部60内の表示制御部66は、操作角度θが基準角度θ0以下の場合(ステップS53:Yes)、主コントローラ20と仮想オブジェクトαとの間の距離dを(D0+D1)+|P-P0|で算出する(ステップS54)。尚、距離D1が閾値Dth以下の場合、D1=0であるため、操作線LN3の変化に応じた|P-P0|の移動量で主線LN1上の主コントローラ20から仮想オブジェクトαまでの距離が長くなる。つまり、近傍にある仮想オブジェクトαが主線LN1上の奥側に移動することになる。これに対して、距離D1が閾値Dth以下でない場合、D1が実測値であるため、交点と仮想オブジェクトαとの間の距離を維持したまま、操作線LN3の変化に応じた|P-P0|の移動量で主線LN1上の仮想オブジェクトαまでの距離が長くなる。つまり、遠方にある仮想オブジェクトαが主線LN1上の奥側に移動することになる。
 更に、制御部60内の表示制御部66は、操作角度θが基準角度θ0以下でない場合(ステップS53:No)、主コントローラ20と仮想オブジェクトαとの間の距離dを(D0+D1)-|P-P0|で算出する(ステップS55)。尚、距離D1が閾値Dth以下の場合、D1=0であるため、操作線LN3の変化に応じた|P-P0|の移動量で主線LN1上の主コントローラ20から仮想オブジェクトαまでの距離が短くなる。つまり、近傍にある仮想オブジェクトαが主線LN1上の手前側に移動することになる。これに対して、距離D1が閾値Dth以下でない場合、D1が実測値であるため、交点と仮想オブジェクトαとの間の距離を維持したまま、操作線LN3の変化に応じた|P-P0|の移動量で主線LN1上の仮想オブジェクトαまでの距離が短くなる。つまり、遠方にある仮想オブジェクトαが主線LN1上の手前側に移動することになる。
 そして、制御部60は、ステップS54又はステップS55で算出した主コントローラ20と仮想オブジェクトαとの間の距離dを用いて、PC0+単位ベクトルe×dの位置に仮想オブジェクトαを表示し(ステップS56)、図17に示すM2に移行する。その結果、主コントローラ20の原点座標PC0から単位ベクトルeと距離dとで乗算した距離を加算した位置に仮想オブジェクトαを表示する。
<3-4.仮想オブジェクトのリリース処理>
 仮想オブジェクトαのリリース処理は、主線LN1上で調整された仮想オブジェクトαの位置を配置する処理である。主トリガーを押下したまま、操作線LN3の変更操作に応じて仮想オブジェクトαの位置を主線LN1上で調整する。更に、主トリガーを離すと、主線LN1上の現在位置の仮想オブジェクトαを配置する。また、主トリガーを押下したまま、副トリガーを離すと、副トリガーを離した時点の仮想オブジェクトαの位置に仮想オブジェクトαを固定する。また、副トリガーが押下されたまま、主トリガーを離すと、主トリガーを離した時点の仮想オブジェクトαの現在位置に仮想オブジェクトαを固定する。
<<4.実施形態の効果>>
 制御部60は、距離D1が閾値Dth以上の場合、距離D1を保持したまま、操作線LN3の変更に応じて取得した操作角度θが基準角度θ0以上であるか否かを判定する。制御部60は、操作角度θが基準角度θ0以上の場合、距離D1を保持したまま、仮想オブジェクトα及び交点Pを主線LN1上の奥行き方向において手前側に移動して表示部15に表示させる。この際、制御部60は、主線LN1の原点PC0+e(単位ベクトル)×dで求める座標(手前側の座標)の主線LN1上に仮想オブジェクトαを表示させる。その結果、仮想オブジェクトαと交点との間の距離を保持したまま、操作しやすい手元位置で遠方の仮想オブジェクトαの位置を手前側に微調整できる。
 制御部60は、操作角度θが基準角度θ0未満の場合、距離D1を保持したまま、仮想オブジェクトα及び交点Pを主線LN1上の奥行き方向において奥行き側に移動して表示部15に表示させる。この際、制御部60は、主線LN1の原点PC0+e(単位ベクトル)×dで求める座標(奥側の座標)の主線LN1上に仮想オブジェクトαを表示させる。その結果、仮想オブジェクトαと交点との間の距離を確保したまま、操作しやすい手元位置で遠方の仮想オブジェクトαの位置を奥側に微調整できる。
 仮想オブジェクトαを掴んで離すメタファーを活用して、トリガーが押されている間の移動距離分だけ仮想オブジェクトαを移動できる。更に、仮想オブジェクトαの移動方向によって、仮想オブジェクトαを遠くにも近くにも移動できる。
 しかも、2本のコントローラ20の各トリガーを使用して、遠方の交点や仮想オブジェクトαの位置を手元で操作するように微調整できる。しかも、コントローラ20を持ち替えたり置いたりすることなく、一連の動きで、遠方の仮想オブジェクトαの位置を調整できる。
<<5.変形例>>
 また、環境認識をして、事前に操作できる対象を限定しておく、あるいは確定しておく。操作対象が限定されている場合には、ユーザが操作対象を理解しやすいように、線が仮想オブジェクトαに近づく/触れると、吸着する/把持する表現や状態になるようにしても良い。遠くの仮想オブジェクトαを操作する場合には、操作対象の仮想オブジェクトα付近の状況や位置関係等が理解しづらいので、操作対象部付近のカメラ画像を手元の操作部近くにモニタ画面(別ウインドウ)として併せて提示してもよい。もしくは、仮想的に操作者が操作対象の近くに移動して、仮想オブジェクトαを操作してもよい。
<5-1.仮想オブジェクトの他のリリース処理>
 線から仮想オブジェクトαを離す場合に、仮想オブジェクトαが離れることをユーザ側でイメージしやすいようにコントローラ20を振ったり、振り回したり、投げたりするような急激な加速度の変化を伴う操作で実行しても良い。
<5-2.仮想オブジェクトの他の把持処理>
 例えば、交点の生成処理や仮想オブジェクトαの把持処理は、例えば、トリガー押しや特定のジェスチャ(例:手を合わせる、突き出すなど)、コンテキスト(アプリが選択モードに入ったら)に応じて実行してもよい。また、交点の作成処理や仮想オブジェクトの終了は、例えば、タイムアウトで実行してよい。
<5-3.仮想オブジェクトの他の移動処理>
 2本の線で交点位置や仮想オブジェクトαの位置を調整するが、1本の線はある時点の方向で固定(例:音声で「今」等と発話して指定する)してもよい。視線と指差しなどの異なるモーダルを組み合わせ、二人で2本の線を操作するなど複数人で操作してもよい。
 また、手元で微調整をする際に、例えば、10cm単位の特定距離毎に音や振動等で距離感を示すフィードバックを入れてもよい。ユーザ位置から仮想オブジェクトαまでの距離を、音声で読み上げてもよい。
 更に、本実施形態では、操作角度を基準角度のまま角度を変更せず固定して、交点位置を送り出す/戻す操作、例えば、手の前後移動もしくは左右移動によって、交点位置の変更し、仮想オブジェクトαの位置を連動して変更しても良い。図20は、操作線LN3の前方移動時の仮想オブジェクトαの移動位置の一例を示す図である。図20に示すように操作線LN3を前方移動した場合、主線LN1上の仮想オブジェクトαを前方(奥側)に移動する。これに対して、操作線LN3を後方移動した場合、主線LN1上の仮想オブジェクトαを後方(手前側)に移動する。
 図21は、操作線LN3の左方移動時の仮想オブジェクトαの移動位置の一例を示す図である。図21に示すように操作線LN3を左方移動した場合、主線LN1上の仮想オブジェクトαを前方(奥側)に移動する。これに対して、操作線LN3を右方移動した場合、主線LN1上の仮想オブジェクトαを後方(手前側)に移動する。
 本実施形態の制御部60は、操作角度θが基準角度θ0以上の場合、距離D1を保持したまま、仮想オブジェクトα及び交点Pを主線LN1上の奥行き方向において手前側に移動して表示部15に表示させる場合を例示した。しかしながら、制御部60は、操作角度θが基準角度θ0以上の場合、距離D1を保持したまま、仮想オブジェクトα及び交点Pを主線LN1上の奥行き方向において奥側に移動して表示部15に表示させる。更に、制御部60は、操作角度θが基準角度θ0未満の場合、距離D1を保持したまま、仮想オブジェクトα及び交点Pを主線LN1上の奥行き方向において手前側に移動して表示部15に表示させるようにしても良く、適宜変更可能である。
<5-4.他の指示構成要素>
 指示構成要素として第1のコントローラ20A及び第2のコントローラ20Bを例示したが、コントローラ20等のデバイスの代わりに他のデバイスやユーザの身体(手や目)等を使用しても良い。例えば、コントローラ20とユーザXの目の視線が指示構成要素であってもよい。
 指示構成要素は、上記に限らず、掌、腕、顔や頭の正面等、種々の要素であってもよい。すなわち、線を出すものとしては、コントローラ、指、手、掌、腕、視線、顔や頭の正面など方向を示すことができる種々のものが含まれる。
<5-5.仮想オブジェクトの他の表示形態>
 例えば、仮想オブジェクトαの重みや特性を理解しやすくするために、慣性や反力を示すような線の動きや仮想オブジェクトαの表現をしても良い。仮想オブジェクトαが他の仮想オブジェクトαや実世界のモノと重なったりぶつかったりしたことを理解しやすくするために、線や仮想オブジェクトαがしなったり弾けたりするような表現を入れても良い。仮想オブジェクトαが奥行き方向に、それ以上奥に移動できない場合に、仮想オブジェクトαが衝突し、押し付けられているような表現を線や仮想オブジェクトαに盛り込んでも良い。
 情報処理装置30は、仮想オブジェクトαの位置が移動中の場合、仮想オブジェクトαの表示態様を変更して表示するように、表示部15を制御する。例えば、情報処理装置30は、仮想オブジェクトαを移動し配置する場合、移動中の仮想オブジェクトαの表示を弱めてもよい。例えば、情報処理装置30は、移動中の仮想オブジェクトαの透過度を上げることにより、移動中の仮想オブジェクトαの表示を弱める。このように、仮想オブジェクトαを移動し配置する際、移動中の仮想オブジェクトαの表示を弱めることで、ユーザXは、実世界のモノや周りに配置されている仮想オブジェクトαとの配置や位置関係を確認しながら仮想オブジェクトαを移動させることができる。
 また、例えば、情報処理装置30は、仮想オブジェクトαを移動し配置する場合、移動中の仮想オブジェクトαの表示を強めてもよい。このように、移動中の仮想オブジェクトαの表示を強めることで、ユーザXは、同じような仮想オブジェクトαの中で目立たせたり(視認性を高めたり)、奥の方への配置をしやすくすることができる。
 また、上述のように仮想オブジェクトαの移動中は、種々の表示態様であってもよい。例えば、情報処理装置30は、移動中も仮想オブジェクトαをそのまま表示させてもよい。情報処理装置30は、実世界のモノや周りに配置されている仮想オブジェクトαとの配置や位置関係を確認しながら配置したい場合には、仮想オブジェクトαをそのまま表示する。
 また、例えば、情報処理装置30は、移動中の仮想オブジェクトαの表示を弱めてもよい。例えば、情報処理装置30は、仮想オブジェクトαの輪郭だけの表示や半透明にする。情報処理装置30は、実世界のモノや周りに配置されている仮想オブジェクトαとの配置や位置関係を確認しつつ、移動中の軌跡や位置調整も行いたい場合に、仮想オブジェクトαの輪郭表示や半透明にする。例えば、情報処理装置30は、仮想オブジェクトαの表示を消してもよい。この場合、情報処理装置30は、交点のみを表示させてもよい。情報処理装置30は、移動中の軌跡や位置調整を重視し、見やすくしたい場合には、仮想オブジェクトαの表示を消す。
 また、例えば、情報処理装置30は、移動中の仮想オブジェクトαの表示を強めてもよい。情報処理装置30は、色味を強めたり、輝度値を上げたりしてもよい。情報処理装置30は、アイコンなどの追加の表示と組み合わせてもよい。情報処理装置30は、同じようなオブジェクトが並んでいる場合に、選択している仮想オブジェクトαが分かりやすくするために強調表示する。また、情報処理装置30は、仮想オブジェクトαが並んでいる場所の奥に配置したい場合に、他の仮想オブジェクトの色味を抑え、透過度を上げることで、仮想オブジェクトの奥でも配置しやすくする。
<5-6.他の主従関係>
 また、2本の線に機能的な差異が無い場合でも、2本の線の主従関係を持ってもよい。情報処理装置30は、種々の情報を適宜用いて指示構成要素間の主従関係を判定してもよい。また、情報処理装置30は、主従関係を示すために、各線の色の濃さや形状などを変えてもよい。
 情報処理装置30は、優先して用いていると推定される指示構成要素を主たる指示構成要素(主指示構成要素)と判定してもよい。例えば、情報処理装置30は、ユーザの右手に対応する指示構成要素を主指示構成要素とする。また、例えば、情報処理装置30は、モノ(デバイス)を持っている方を主指示構成要素としてもよい。例えば、情報処理装置30は、片方の手のみにモノ(デバイス)を所持している場合、そのデバイスを主指示構成要素としてもよい。
 情報処理装置30は、所定の順番に応じて主指示構成要素を判定してもよい。情報処理装置30は、ビーム状態にした順番に応じて、主指示構成要素を判定してもよい。例えば、情報処理装置30は、最初にビーム状態にした指示構成要素を、主指示構成要素と判定してもよい。
 情報処理装置30は、動かし方に応じて主指示構成要素を判定してもよい。例えば、情報処理装置30は、大きく動かしたり、先に動かしたりした指示構成要素を、主指示構成要素と判定してもよい。
<5-7.線の他の表示形態>
 また、線の表現は、種々の対象であってもよい。例えば、操作に慣れてくると線の表示は必要なくなるので、交点だけの表示があってもよい。また、例えば、情報処理装置30は、2本の線が離れている時に交点を作りやすいように線を表現してもよい。例えば、情報処理装置30は、線の太さを太くしてもよい。
 なお、上記に限らず種々の表示態様であってもよい。上述した例では、ユーザが1人の場合の操作について説明したが、複数のユーザ(複数人)が、AR機器、VR機器やMR機器等の表示装置10を装着して同じ映像を見ながら複数人で操作してもよい。この場合、1人が仮想オブジェクトαを操作しているときに、もう1人も位置を調整することができる。
<5-8.他の幾何学的対象>
 なお、上述のように幾何学的対象は面(操作面)に限らず、線であってもよい。本実施形態では、操作線LN3と主線LN1とを交えて交点を作成する場合を例示したが、操作線ではなく、副線LN2と主線LN1とを交えて交点を作成しても良く、適宜変更可能である。
 本実施形態の情報処理装置30は、専用のコンピュータシステム、又は汎用のコンピュータシステムによって実現してもよい。
<<6.ハードウェア構成>>
 上述してきた各実施形態や変形例に係る情報処理装置100等の情報機器は、例えば、図22に示すような構成のコンピュータ100によって実現される。図22は、情報処理装置30等の情報処理装置の機能を実現するコンピュータ100の一例を示すハードウェア構成図である。以下、実施形態に係る情報処理装置30を例に説明する。コンピュータ100は、CPU110と、RAM120と、ROM(Read Only Memory)130と、HDD(Hard Disk Drive)140と、通信インターフェイス150と、入出力インターフェイス160とを有する。コンピュータ100の各部は、バス170によって接続される。
 CPU110は、ROM130又はHDD140に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、CPU110は、ROM130又はHDD140に格納されたプログラムをRAM120に展開し、各種プログラムに対応した処理を実行する。
 ROM130は、コンピュータ100の起動時にCPU110によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ100のハードウェアに依存するプログラム等を格納する。
 HDD140は、CPU110によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を非一時的に記録する、コンピュータが読み取り可能な記録媒体である。具体的には、HDD140は、プログラムデータ145の一例である本開示に係る情報処理プログラムを記録する記録媒体である。
 通信インターフェイス150は、コンピュータ100が外部ネットワーク155(例えばインターネット)と接続するためのインターフェイスである。例えば、CPU110は、通信インターフェイス150を介して、他の機器からデータを受信したり、CPU110が生成したデータを他の機器へ送信したりする。
 入出力インターフェイス160は、入出力デバイス165とコンピュータ100とを接続するためのインターフェイスである。例えば、CPU110は、入出力インターフェイス160を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、CPU110は、入出力インターフェイス160を介して、ディスプレイやスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス160は、所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
 例えば、コンピュータ100が実施形態に係る情報処理装置30として機能する場合、コンピュータ100のCPU110は、RAM120上にロードされた情報処理プログラムを実行することにより、制御部60等の機能を実現する。また、HDD140には、本開示に係る情報処理プログラムや、記憶部50内のデータが格納される。なお、CPU110は、プログラムデータ145をHDD140から読み取って実行するが、他の例として、外部ネットワーク155を介して、他の装置からこれらのプログラムを取得してもよい。
 例えば、上述の動作(例えば、仮想オブジェクトαの移動処理)を実行するためのプログラムを、光ディスク、半導体メモリ、磁気テープ、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に格納して配布する。そして、例えば、該プログラムをコンピュータにインストールし、上述の処理を実行することによって情報処理装置30を構成する。
 また、上記プログラムをインターネット等のネットワーク上の他の情報処理装置が備える記憶装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OS(Operating System)とアプリケーションソフトとの協働により実現してもよい。この場合には、OS以外の部分を媒体に格納して配布してもよいし、OS以外の部分をサーバ装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。
 また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。また、上記実施の形態では、具体的な値を示して説明をしている箇所があるが、値はその例に寄らず、別の値を使用してもよい。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
 また、上述の実施形態は、処理内容を矛盾させない領域で適宜組み合わせることが可能である。また、上述の実施形態のフローチャート及びシーケンス図に示された各ステップは、適宜順序を変更することが可能である。
 また、例えば、本実施形態は、装置またはシステムを構成するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
 なお、本実施形態において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、全ての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 また、本実施形態は、例えば、少なくとも1つの機能(例えば、取得部61、検出部62、設定部63、距離判定部64、判定部65や表示制御部66)を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
<<7.むすび>>
 以上説明したように、本開示の一実施形態の情報処理装置は、利用者が指し示す所定空間上の第1の方向と、当該利用者が指し示す前記所定空間上の第2の方向との成す角である操作角度を取得する取得部と、前記第1の方向に延在する線上の仮想オブジェクトの移動開始の指示を検出した時点で取得した前記操作角度を基準角度に設定する設定部と、前記第2の方向の変化に応じて前記取得部にて取得した前記操作角度が前記基準角度以上であるか否かを判定する判定部と、前記判定部の判定結果に基づき、前記第1の方向と前記第2の方向とが交わる交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向に移動して表示するように表示装置を制御する制御部とを有する。その結果、仮想オブジェクトαと交点との間の距離を保持したまま、操作しやすい手元位置で遠方の仮想オブジェクトαの位置を微調整できる。
 以上、本開示の各実施形態について説明したが、本開示の技術的範囲は、上述の各実施形態そのままに限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、異なる実施形態及び変形例にわたる構成要素を適宜組み合わせてもよい。
 また、本明細書に記載された各実施形態における効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
 なお、本技術は以下のような構成も取ることができる。
(1)
 利用者が指し示す所定空間上の第1の方向と、当該利用者が指し示す前記所定空間上の第2の方向との成す角である操作角度を取得する取得部と、
 前記第1の方向に延在する線上の仮想オブジェクトの移動開始の指示を検出した時点で取得した前記操作角度を基準角度に設定する設定部と、
 前記第2の方向の変化に応じて前記取得部にて取得した前記操作角度が前記基準角度以上であるか否かを判定する判定部と、
 前記判定部の判定結果に基づき、前記第1の方向と前記第2の方向とが交わる交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向に移動して表示するように表示装置を制御する制御部と
 を有する情報処理装置。
(2)
 前記制御部は、
 前記判定部にて前記操作角度が前記基準角度以上の場合に、前記交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向の手前側に移動して表示するように表示装置を制御する
 上記(1)に記載の情報処理装置。
(3)
 前記制御部は、
 前記判定部にて前記操作角度が前記基準角度以上でない場合に、前記交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の前記奥行き方向の奥側に移動して表示するように前記表示装置を制御する
 上記(1)又は(2)に記載の情報処理装置。
(4)
 前記制御部は、
 前記判定部にて前記操作角度が前記基準角度以上の場合に、前記交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向の奥側に移動して表示するように表示装置を制御する
 上記(1)に記載の情報処理装置。
(5)
 前記制御部は、
 前記判定部にて前記操作角度が前記基準角度以上でない場合に、前記交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の前記奥行き方向の手前側に移動して表示するように前記表示装置を制御する
 上記(1)又は(2)に記載の情報処理装置。
(6)
 前記仮想オブジェクトと前記交点との間の距離が閾値以上であるか否かを判定する第1の距離判定部を有し、
 前記判定部は、
 前記仮想オブジェクトと前記交点との間の距離が前記閾値以上の場合に、前記第2の方向の変化に応じて前記操作角度が前記基準角度以上であるか否かを判定する
 上記(1)~(5)の何れか一つに記載の情報処理装置。
(7)
 前記制御部は、
 前記仮想オブジェクトと前記交点との間の距離が前記閾値未満の場合に、前記交点が前記仮想オブジェクトの位置に吸着するように前記表示装置を制御する
 上記(6)の記載の情報処理装置。
(8)
 前記第2の方向は、
 前記利用者が指し示す前記所定空間上の第3の方向の原点と前記第1の方向とで決定する基準面に対して垂直な操作面上で、前記第3の方向と前記第1の方向とが交わる交点と前記第3の方向の原点とが通過する操作線上の方向である
 上記(1)~(7)の何れか一つに記載の情報処理装置。
(9)
 前記制御部は、
 前記判定部の判定結果に基づき、前記第1の方向と前記第2の方向とが交わる交点と前記仮想オブジェクトとの間の距離を維持したまま、操作対象である前記仮想オブジェクトを前記第1の方向の線上の奥行き方向に移動して表示するように前記表示装置を制御すると共に、前記操作対象付近の画像を別ウインドウで表示するように前記表示装置を制御する
 上記(1)に記載の情報処理装置。
(10)
 情報処理装置が、
 利用者が指し示す所定空間上の第1の方向と、当該利用者が指し示す前記所定空間上の第2の方向との成す角である操作角度を取得し、
 前記第1の方向に延在する線上の仮想オブジェクトの移動開始の指示を検出した時点で取得した前記操作角度を基準角度に設定し、
 前記第2の方向の変化に応じて取得した前記操作角度が前記基準角度以上であるか否かを判定し、
 判定結果に基づき、前記第1の方向と前記第2の方向とが交わる交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向に移動して表示するように表示装置を制御する
 処理を実行する情報処理方法。
(11)
 利用者が指し示す所定空間上の第1の方向と、当該利用者が指し示す前記所定空間上の第2の方向との成す角である操作角度を取得し、
 前記第1の方向に延在する線上の仮想オブジェクトの移動開始の指示を検出した時点で取得した前記操作角度を基準角度に設定し、
 前記第2の方向の変化に応じて取得した前記操作角度が前記基準角度以上であるか否かを判定し、
 判定結果に基づき、前記第1の方向と前記第2の方向とが交わる交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向に移動して表示するように表示装置を制御する
 処理をコンピュータに実行させる情報処理プログラム。
 1 情報処理システム
 10 表示装置
 15 表示部
 20 コントローラ
 20A 第1のコントローラ
 20B 第2のコントローラ
 30 情報処理装置
 60 制御部
 61 取得部
 62 検出部
 63 設定部
 64 距離判定部
 65 判定部
 66 表示制御部

Claims (11)

  1.  利用者が指し示す所定空間上の第1の方向と、当該利用者が指し示す前記所定空間上の第2の方向との成す角である操作角度を取得する取得部と、
     前記第1の方向に延在する線上の仮想オブジェクトの移動開始の指示を検出した時点で取得した前記操作角度を基準角度に設定する設定部と、
     前記第2の方向の変化に応じて前記取得部にて取得した前記操作角度が前記基準角度以上であるか否かを判定する判定部と、
     前記判定部の判定結果に基づき、前記第1の方向と前記第2の方向とが交わる交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向に移動して表示するように表示装置を制御する制御部と
     を有する情報処理装置。
  2.  前記制御部は、
     前記判定部にて前記操作角度が前記基準角度以上の場合に、前記交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向の手前側に移動して表示するように表示装置を制御する
     請求項1に記載の情報処理装置。
  3.  前記制御部は、
     前記判定部にて前記操作角度が前記基準角度以上でない場合に、前記交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の前記奥行き方向の奥側に移動して表示するように前記表示装置を制御する
     請求項1に記載の情報処理装置。
  4.  前記制御部は、
     前記判定部にて前記操作角度が前記基準角度以上の場合に、前記交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向の奥側に移動して表示するように表示装置を制御する
     請求項1に記載の情報処理装置。
  5.  前記制御部は、
     前記判定部にて前記操作角度が前記基準角度以上でない場合に、前記交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の前記奥行き方向の手前側に移動して表示するように前記表示装置を制御する
     請求項1に記載の情報処理装置。
  6.  前記仮想オブジェクトと前記交点との間の距離が閾値以上であるか否かを判定する第1の距離判定部を有し、
     前記判定部は、
     前記仮想オブジェクトと前記交点との間の距離が前記閾値以上の場合に、前記第2の方向の変化に応じて前記操作角度が前記基準角度以上であるか否かを判定する
     請求項1に記載の情報処理装置。
  7.  前記制御部は、
     前記仮想オブジェクトと前記交点との間の距離が前記閾値未満の場合に、前記交点が前記仮想オブジェクトの位置に吸着するように前記表示装置を制御する
     請求項6に記載の情報処理装置。
  8.  前記第2の方向は、
     前記利用者が指し示す前記所定空間上の第3の方向の原点と前記第1の方向とで決定する基準面に対して垂直な操作面上で、前記第3の方向と前記第1の方向とが交わる交点と前記第3の方向の原点とが通過する操作線上の方向である
     請求項1に記載の情報処理装置。
  9.  前記制御部は、
     前記判定部の判定結果に基づき、前記第1の方向と前記第2の方向とが交わる交点と前記仮想オブジェクトとの間の距離を維持したまま、操作対象である前記仮想オブジェクトを前記第1の方向の線上の奥行き方向に移動して表示するように前記表示装置を制御すると共に、前記操作対象付近の画像を別ウインドウで表示するように前記表示装置を制御する
     請求項1に記載の情報処理装置。
  10.  情報処理装置が、
     利用者が指し示す所定空間上の第1の方向と、当該利用者が指し示す前記所定空間上の第2の方向との成す角である操作角度を取得し、
     前記第1の方向に延在する線上の仮想オブジェクトの移動開始の指示を検出した時点で取得した前記操作角度を基準角度に設定し、
     前記第2の方向の変化に応じて取得した前記操作角度が前記基準角度以上であるか否かを判定し、
     判定結果に基づき、前記第1の方向と前記第2の方向とが交わる交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向に移動して表示するように表示装置を制御する
     処理を実行する情報処理方法。
  11.  利用者が指し示す所定空間上の第1の方向と、当該利用者が指し示す前記所定空間上の第2の方向との成す角である操作角度を取得し、
     前記第1の方向に延在する線上の仮想オブジェクトの移動開始の指示を検出した時点で取得した前記操作角度を基準角度に設定し、
     前記第2の方向の変化に応じて取得した前記操作角度が前記基準角度以上であるか否かを判定し、
     判定結果に基づき、前記第1の方向と前記第2の方向とが交わる交点と前記仮想オブジェクトとの間の距離を維持したまま、前記仮想オブジェクトを前記第1の方向の線上の奥行き方向に移動して表示するように表示装置を制御する
     処理をコンピュータに実行させる情報処理プログラム。
PCT/JP2021/008944 2020-03-26 2021-03-08 情報処理装置、情報処理方法及び情報処理プログラム WO2021192956A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180022357.8A CN115315677A (zh) 2020-03-26 2021-03-08 信息处理装置、信息处理方法和信息处理程序
US17/906,720 US20230154128A1 (en) 2020-03-26 2021-03-08 Information processing device, information processing method, and information processing program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020056229 2020-03-26
JP2020-056229 2020-03-26

Publications (1)

Publication Number Publication Date
WO2021192956A1 true WO2021192956A1 (ja) 2021-09-30

Family

ID=77890092

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/008944 WO2021192956A1 (ja) 2020-03-26 2021-03-08 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (3)

Country Link
US (1) US20230154128A1 (ja)
CN (1) CN115315677A (ja)
WO (1) WO2021192956A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180005438A1 (en) * 2016-06-30 2018-01-04 Cheyne Rory Quin Mathey-Owens Adaptive smoothing based on user focus on a target object
JP2018500674A (ja) * 2014-12-31 2018-01-11 株式会社ソニー・インタラクティブエンタテインメント ユーザーの指の位置を決定するための信号生成システム及び検出器システムならびに方法
US20180158250A1 (en) * 2016-12-05 2018-06-07 Google Inc. Generating virtual notation surfaces with gestures in an augmented and/or virtual reality environment

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5589625B2 (ja) * 2010-07-08 2014-09-17 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US10037626B2 (en) * 2016-06-30 2018-07-31 Microsoft Technology Licensing, Llc Interaction with virtual objects based on determined restrictions
US10937241B2 (en) * 2018-06-29 2021-03-02 The Travelers Indemnity Company Systems, methods, and apparatus for identifying an augmented reality service
KR20190106851A (ko) * 2019-08-27 2019-09-18 엘지전자 주식회사 Xr 컨텐츠 제공 방법 및 xr 컨텐츠 제공 디바이스

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018500674A (ja) * 2014-12-31 2018-01-11 株式会社ソニー・インタラクティブエンタテインメント ユーザーの指の位置を決定するための信号生成システム及び検出器システムならびに方法
US20180005438A1 (en) * 2016-06-30 2018-01-04 Cheyne Rory Quin Mathey-Owens Adaptive smoothing based on user focus on a target object
US20180158250A1 (en) * 2016-12-05 2018-06-07 Google Inc. Generating virtual notation surfaces with gestures in an augmented and/or virtual reality environment

Also Published As

Publication number Publication date
CN115315677A (zh) 2022-11-08
US20230154128A1 (en) 2023-05-18

Similar Documents

Publication Publication Date Title
JP7049393B2 (ja) 3次元空間内の仮想オブジェクトの自動配置
EP3433706B1 (en) Virtual-reality navigation
JP6002286B1 (ja) ヘッドマウントディスプレイ制御方法、および、ヘッドマウントディスプレイ制御プログラム
US20190240573A1 (en) Method for controlling characters in virtual space
US11294475B1 (en) Artificial reality multi-modal input switching model
JP7390541B2 (ja) アニメーション制作システム
JP6684746B2 (ja) 情報処理方法、コンピュータ及びプログラム
JP7454818B2 (ja) アニメーション制作方法
WO2021261595A1 (ja) 航空機のvr訓練システム、航空機のvr訓練方法及び航空機のvr訓練プログラム
WO2021192956A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2023116432A (ja) アニメーション制作システム
JP2022153476A (ja) アニメーション制作システム
TW202314451A (zh) 在人工實境裝置上釘住之外觀
WO2023014902A1 (en) 3d calling affordances
JP6964302B2 (ja) アニメーション制作方法
JP2018032413A (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
JP7078216B2 (ja) アニメーション制作方法
JP6403843B1 (ja) 情報処理方法、情報処理プログラム及び情報処理装置
WO2020255723A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2019207714A (ja) 情報処理方法、コンピュータ及びプログラム
JP6242452B1 (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
WO2023021757A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP7218873B6 (ja) アニメーション制作システム
WO2024090303A1 (ja) 情報処理装置及び情報処理方法
US20230011453A1 (en) Artificial Reality Teleportation Via Hand Gestures

Legal Events

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

Ref document number: 21775006

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21775006

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP