WO2017169827A1 - 情報処理装置、表示制御方法及びプログラム - Google Patents

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

Info

Publication number
WO2017169827A1
WO2017169827A1 PCT/JP2017/010598 JP2017010598W WO2017169827A1 WO 2017169827 A1 WO2017169827 A1 WO 2017169827A1 JP 2017010598 W JP2017010598 W JP 2017010598W WO 2017169827 A1 WO2017169827 A1 WO 2017169827A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual object
display
virtual
operation element
information processing
Prior art date
Application number
PCT/JP2017/010598
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 US16/087,394 priority Critical patent/US11301031B2/en
Priority to CN201780019351.9A priority patent/CN108885523A/zh
Publication of WO2017169827A1 publication Critical patent/WO2017169827A1/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
    • G06T11/002D [Two Dimensional] image generation
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/20Linear translation of whole images or parts thereof, e.g. panning

Definitions

  • This technology relates to an information processing apparatus, a display control method, and a program.
  • a pointing object that gives the above operations to the object is displayed in the virtual space.
  • the pointing object is moved in the virtual space according to the front / rear / left / right movement of the user's hand detected by the sensor.
  • the control unit that receives the detection information performs control to cause the pointing object to hold the object.
  • an object of the present technology is to provide a new and improved information processing apparatus, information processing method, and program capable of improving the operability of objects in a virtual space.
  • an information processing apparatus includes: A display control unit that generates display information for causing the display device to display a first virtual object defined in the virtual space and a second virtual object different from the first virtual object; The first virtual object is moved in the virtual space based on a reference position based on a user operation input, and it is determined that the reference position of the first virtual object is in the second virtual object.
  • a controller configured to control the display position of the first virtual object so that the reference position and the display position of the first virtual object gradually coincide with each other.
  • the controller is Based on the movement vector of the reference position of the first virtual object and the difference vector between the reference position of the first virtual object and the display position of the first virtual object, from the second virtual object It may be configured to calculate a control amount for updating the display position of the first virtual object that accompanies the operation of releasing the first virtual object.
  • the controller is When displaying a plurality of the first virtual objects in the virtual space based on a reference position based on the user's operation input, a first virtual object at least a part of the plurality of first virtual objects When the reference position in the virtual space of the second virtual object is within the second virtual object, the second position of the second virtual object is determined under a relative positional constraint determined between the plurality of first virtual objects.
  • the partial first virtual object may be displayed at a position circumscribing the virtual object.
  • the controller is The reference position of the first virtual object and the display position of the first virtual object while maintaining the constraint condition in accordance with an operation of separating the plurality of first virtual objects from the second virtual object May be configured to control the display positions of the plurality of first virtual objects so as to gradually match.
  • the controller is When an operation for moving the first virtual object to a position in the second virtual object is determined, the first virtual object is moved to a position that circumscribes the second virtual object in a moving process of the first virtual object.
  • the virtual object may be displayed.
  • the controller is When an operation for moving the first virtual object from the outside of the second virtual object to the first position in the second virtual object is determined, Displaying the first virtual object at a second position circumscribing the second virtual object in the process of moving the first virtual object to a first position in the second virtual object; Obtaining a first normal direction relative to a contour line of the second virtual object circumscribed by the first virtual object displayed at the second position; Obtaining a second normal direction with respect to the contour of the second virtual object in the first normal direction from the first position; Updating the display position of the first virtual object to a third position circumscribing the contour line of the second virtual object in the second normal direction from the first position; The processing for updating the display position of the first virtual object may be repeated until convergence.
  • the display control unit generates display information for causing the display device to display a first virtual object defined in the virtual space and a second virtual object different from the first virtual object;
  • a controller moves the first virtual object in the virtual space based on a reference position based on a user operation input, and the reference position of the first virtual object is in the second virtual object.
  • the determination is made, the operation of displaying the first virtual object at a position circumscribing the second virtual object and releasing the first virtual object from the second virtual object is determined. Accordingly, the display position of the first virtual object is controlled so that the reference position and the display position of the first virtual object gradually coincide with each other.
  • a display control unit that generates display information for causing the display device to display a first virtual object defined in the virtual space and a second virtual object different from the first virtual object;
  • the first virtual object is moved in the virtual space based on a reference position based on a user operation input, and it is determined that the reference position of the first virtual object is in the second virtual object.
  • the computer is operated as a controller configured to control the display position of the first virtual object so that the reference position and the display position of the first virtual object gradually coincide with each other.
  • FIG. 1 It is a figure for demonstrating the penetration of the operation element in the object of virtual space. It is a block diagram showing an example of composition of information processing system 1 of a 1st embodiment concerning this art. It is a block diagram which shows the hardware constitutions of the information processing apparatus 10 which belongs to the information processing system 1 of FIG. 4 is a flowchart relating to display control of an operator 3 in the information processing apparatus 10 of FIG. 3. It is a figure for demonstrating the display control for prevention of the indentation of the operation element 3 in the information processing apparatus 10 of FIG. It is a figure for demonstrating the display control 1 accompanying operation which removes the operation element 3 from the object 2. FIG. It is a figure for demonstrating the display control 2 accompanying operation which separates the operation element 3 from the object 2. FIG.
  • FIG. It is a figure for demonstrating an example of the determination method of operation which separates the operation element 3 from the object 2.
  • FIG. It is a figure for demonstrating the bending
  • the technology of the present disclosure provides basic physical phenomena such as “having” and “touching” an object (second virtual object) that is a virtual object in a virtual space constructed on the screen of a display device.
  • the present invention relates to an information processing system that provides an accompanying operation based on information obtained by detecting a movement of a user's finger or the like.
  • information on the movement of the user's hand or finger is reflected in the movement of the operator (first virtual object) displayed as an operation object in the virtual space.
  • the information processing system basically includes a display device, a motion detection device, and an information processing apparatus that performs various information processing related to display of a virtual space such as VR (Virtual Reality) and AR (Augmented Reality). It has as a new configuration.
  • the information processing apparatus includes a CPU (Central Processing Unit) and a memory, such as a PC (Personal Computer), a game machine, a server device, and a smart phone, and a controller that can execute arithmetic processing by executing a program. I just need it.
  • the motion detection device detects the movement of a user's hand or finger for the purpose of operations such as “holding” and “touching” an object that is a virtual object placed in the virtual space of the screen of the display device. Then, the detection information is supplied to the information processing apparatus.
  • operation element calculation position The position of the operation element in the virtual space calculated based on the user movement detection information input from the movement detection device is hereinafter referred to as “operation element calculation position”, and the operation element displayed in the virtual space. This position is hereinafter referred to as “operator display position”.
  • the calculation position of the operation element corresponds to the “reference position based on the user's operation input” in the claims, and the display position of the operation element is the “first virtual object” in the claims. Corresponds to “display position”.
  • FIG. 2 is a block diagram illustrating an example of a configuration of the information processing system 1 according to the first embodiment of the present technology.
  • the information processing system 1 includes an information processing apparatus 10, a display device 20, and an operation detection device 30.
  • the information processing apparatus 10 can communicate with the display device 20 wirelessly or by wire.
  • the information processing apparatus 10 and the operation detection device 30 can communicate wirelessly or by wire.
  • Wireless communication is preferably used for each communication.
  • an arbitrary wireless communication system such as a wireless local area network (LAN), Bluetooth (registered trademark), Wi-Fi (registered trademark), Zigbee (registered trademark), or the like can be applied.
  • LAN wireless local area network
  • Bluetooth registered trademark
  • Wi-Fi registered trademark
  • Zigbee registered trademark
  • the display device 20 may be, for example, a stationary display independent from the information processing apparatus 10, a television monitor, a stereoscopic display, or a wearable display such as a head mounted display (HMD) or a bracelet display. Further, the information processing apparatus 10 and the display device 20 may be integrated like a notebook PC, a tablet terminal, or a smart phone. Alternatively, the information processing apparatus 10 may be incorporated in a wearable display such as a head mounted display (HMD) or a bracelet display.
  • HMD head mounted display
  • the motion detection device 30 may be any device that can detect the movement of the user U such as a hand or a finger.
  • Examples of the motion detection device 30 include a stick-type device equipped with a motion sensor, and a glove-type device that can detect the back of the user's hand, the position of each finger joint, and the like.
  • the user's hand or finger may be captured by one or more cameras, and the movement of the user's hand or finger may be detected by image recognition.
  • FIG. 3 is a block diagram showing a hardware configuration of the information processing apparatus 10 belonging to the information processing system 1 described above.
  • the information processing apparatus 10 includes a control unit 101, an operation unit 102, a storage unit 103, a display interface 104 with the display device 20, an input interface 105 with the motion detection device 30, and a bus 106.
  • the control unit 101 corresponds to a “controller” in the claims of the present technology, and includes a processor such as a CPU (Central Processing Unit) or a DSP (Digital Signal Processor) and a RAM (Random Access Memory). Main memory.
  • the control unit 101 executes a program using the main memory as a work area, and performs information processing related to display of a virtual space such as a VR.
  • the control unit 101 exchanges information with the operation unit 102, the storage unit 103, the display interface 104, and the input interface 105 through the bus 106.
  • the operation unit 102 is a user interface for accepting various inputs from the user to the information processing apparatus 10.
  • the operation unit 102 may be anything that can accept input from the user, such as a keyboard, a mouse, a button, a switch, a keypad, a game console controller, and a microphone (voice input).
  • the storage unit 103 is configured by a storage medium such as a semiconductor memory or a hard disk.
  • the storage unit 103 stores programs and data necessary for processing related to display of a virtual space such as VR. Note that at least a part of the program and data may be acquired from a storage external to the information processing apparatus 10, such as a data server, a network storage, or an external recording device, without being stored in the storage unit 103.
  • the display interface 104 is an interface for transmitting display data for display of the virtual space generated by the control unit 101 to the display device 20 by a wireless communication method or a wired communication method.
  • the input interface 105 is an interface for receiving user operation information from the operation detection device 30 by a wireless communication method or a wired communication method.
  • the input interface 105 corresponds to a “display control unit” in the claims.
  • the bus 106 is a transmission path used for transmitting information between the control unit 101, the operation unit 102, the storage unit 103, the display interface 104, and the input interface 105.
  • the control unit 101 of the information processing apparatus 10 Based on the program, the control unit 101 of the information processing apparatus 10 generates display data of a virtual space including the object 2 that is a virtual object to be operated and the operation element 3 that operates the object 2. The control unit 101 calculates the position of the operation element 3 in the virtual space based on the user operation information input from the operation detection device 30 using the interface 105 and displays the operation element 3 at the position.
  • FIG. 4 is a flowchart showing a display control procedure for preventing the operation element 3 from being sunk and a display control procedure when the operation element 3 is moved away from the object 2 described later.
  • the control unit 101 of the information processing apparatus 10 calculates the position of the operation element 3 in the virtual space based on the motion information acquired from the motion detection device 30 (step S101).
  • the control unit 101 calculates two positions P0 and P1 based on the motion information continuously acquired from the motion detection device 30 and whether or not the operation element 3 is embedded in the space of the object 2 in the calculation. Is determined (step S102).
  • first position P1 when at least the calculation position P1 of the operation element 3 (hereinafter referred to as “first position P1”) is within the object 2, the control unit 101 calculates that the operation element 3 of the object 2 is calculated. It is determined that it has been sunk into the space (YES in step S102), and control for preventing squeezing of the display position of the operation element 3 is activated (step S103).
  • FIG. 5 is a diagram for explaining the display control for preventing the operator 3 from sinking.
  • a stick type device is used as the motion detection device 30.
  • the number of operators 3 is “1”.
  • the shape of the object 2 in the virtual space is not particularly defined. However, in this description, it is assumed that the object 2 has a shape having two sides parallel to each other along the x-axis direction and both ends of each side connected by a curve.
  • the control unit 101 determines that the calculation position of the operation element 3 moves from the position P0 outside the object 2 to the first position P1 inside the object 2 with the object 2.
  • the operation element 3 is displayed at the circumscribed second position Pa1.
  • control unit 101 obtains a first normal direction La1 with respect to the contour 2a of the object 2 in the direction from the first position P1 to the second position Pa1.
  • control unit 101 obtains a second normal direction Lb1 with respect to the contour 2a of the object 2 in the first normal direction La1 from the first position P1.
  • control unit 101 updates the display position of the operation element 3 to the third position Pa2 circumscribing the outline 2a of the object 2 in the second normal direction Lb1 from the first position P1.
  • the control unit 101 repeats the same processing to move the display position of the operation element 3 along the outline 2a of the object 2 in the order of the fourth position Pa3 and the fifth position Pa4.
  • the normal direction Lb3 with respect to the contour 2a of the object 2 in the direction from the first position P1 to the fifth position Pa4 is parallel to the y-axis direction.
  • the process of updating the display position of converges.
  • the update processing of the display position of the operation element 3 converges at this timing.
  • the normal direction Lb3 with respect to the contour 2a of the object 2 in the direction from the first position P1 to the fifth position Pa4. Is parallel to the y-axis direction, and the update process is continued when the normal direction Lb3 is not parallel to the y-axis direction.
  • the control unit 101 activates the display control for preventing the operation element 3 from being entrapped.
  • the display position of is updated again.
  • the display control for preventing the operation element 3 from slipping in when the calculation position of the operation element 3 moves to an arbitrary first position P1 in the object 2, an operation is performed in the movement process.
  • the display position of the child 3 continues along the outline 2a of the object 2 so as to gradually approach the position directly above the first position P1 in the object 2 from the second position Pa1 that circumscribes the object 2 first. Move on.
  • the operation element 3 is stopped at the second position Pa1 that first circumscribes the object 2.
  • the operation element 3 When an operation for separating the operation element 3 from the object 2 occurs, the operation element 3 is displayed at a position circumscribing the object 2 (the outline 2a thereof) until the calculation position of the operation element 3 comes out of the object 2. Will remain. For this reason, there is a possibility that the user feels that the response speed to the operation of moving the operation element 3 away from the object 2 is slow.
  • Step S ⁇ b> 104 when an operation for separating the operation element 3 from the object 2 occurs (YES in Step S ⁇ b> 104), the control unit 101 is accompanied by the operation.
  • the display position of the operation element 3 is controlled so that the calculation position of the operation element 3 and the display position of the operation element 3 gradually coincide with each other (steps S105 and S106).
  • FIG. 6 is a diagram for explaining the display control 1 associated with the operation of moving the operation element 3 away from the object 2.
  • the calculation position P1 of the operation element 3 is in the object 2, for example, it is assumed that the operation element 3 is displayed at the position Ph1 that circumscribes the object 2 by the display control for preventing the operation element from being inserted. To do.
  • the display position Ph1 of the operation element 3 is a display position finally converged by the above-described display control for preventing the sinking, and corresponds to the fifth position Pa4 in FIG.
  • the control unit 101 determines that an operation of moving the operation element 3 away from the object 2 has occurred, the control unit 101 is arranged in a space outside the object 2 so that the calculation position of the operation element 3 and the display position of the operation element 3 gradually match.
  • the display position of the operation element 3 is calculated. That is, in FIG. 6, when the calculation position of the operation element 3 is updated from P1 to P2, the control unit 101 moves the display position of the operation element 3 away from the object 2 from Ph1, which is a position circumscribing the object 2. Update to Ph2.
  • the control unit 101 updates the display position of the operation element 3 from Ph2 to Ph3.
  • the display position of the operation element 3 is updated from Ph3 to Ph4 which is the same position as the calculation position P4 of the operation element 3 or substantially the same position. Shows the case.
  • the control amount for updating the display position of the operation element 3 is based on, for example, a movement vector between calculation positions before and after the movement of the operation element 3 and a difference vector between the display position of the operation element 3 and the calculation position. Can be calculated.
  • FIG. 7 is a diagram for explaining the display control 2 that accompanies the operation of moving the operation element 3 away from the object 2.
  • the display control for preventing the slipping in the calculation position of the operation element 3 is stopped at the position Ph1 when the operation element 3 first circumscribes the object 2 in the process of moving to the arbitrary position P1 in the object 2. It is assumed that the display method is used.
  • the control unit 101 determines that an operation for releasing the operation element 3 from the object 2 has occurred, the calculation position of the operation element 3 and the operation element 3 are determined.
  • the display position of the operation element 3 in the space outside the object 2 is calculated so that the display position gradually matches. That is, in FIG. 7, when the calculation position of the operation element 3 is updated from P1 to P2, the control unit 101 moves the display position of the operation element 3 from the position Ph1 circumscribing the object 2 to the position Ph2 away from the object 2.
  • control unit 101 updates the display position of the operation element 3 from Ph2 to Ph3.
  • the display position of the operation element 3 is updated from Ph3 to Ph4 which is the same position as P4 or substantially the same position.
  • the control amount for updating the display position of the operation element 3 is, for example, the movement vector between the calculated positions before and after the movement of the operation element 3 as in the case of the display control 1. It is possible to calculate based on the difference vector between the display position of the operation element 3 and the calculation position.
  • the display control associated with the operation of separating the operation element 3 from the object 2 according to the technique of the present disclosure, the calculation position of the operation element 3 and the operation position of the operation element 3 in accordance with the operation of separating the operation element 3 from the object 2. Since the display position of the operation element 3 is updated so that the display position gradually matches, the apparent responsiveness to the operation of moving the operation element 3 away from the object 2 is improved.
  • FIG. 8 is a diagram for explaining an example of an operation determination method for separating the operation element 3 from the object 2 by taking the case of the above-described display control 2 as an example.
  • v is a movement vector of the calculation position of the operation element 3 by the operation of moving the operation element 3 away from the object 2.
  • the angle of the movement vector v with respect to the operating element penetration axis H is ⁇ v
  • the magnitude of the movement vector v in the direction of the operating element insertion axis H is v h .
  • the following expression (1) is a determination condition for an operation in which the operation element 3 is separated from the object 2.
  • T ⁇ v and Tv h are threshold values.
  • control amount of the operation element 3 associated with the operation of moving the operation element 3 away from the object 2 is calculated using a movement vector between calculation positions before and after the movement of the operation element 3 and a difference vector between the display position and the calculation position of the operation element 3.
  • the control unit 101 calculates a control vector c that is a control amount of the operation element 3 by the following equation (2).
  • c ( ⁇ ⁇ v) + ( ⁇ ⁇ d) (2)
  • v is a movement vector
  • d is a difference vector.
  • ⁇ and ⁇ are control parameters, for example, take values of 0 or more and 1 or less, and are values depending on the magnitude
  • control parameter ⁇ determined depending on the magnitude
  • e ⁇ /
  • 1 ⁇ e ⁇ /
  • the glove-type motion detection device 30 that detects the movement of the user's hand and fingers.
  • the glove-type motion detection device 30 includes a three-dimensional position of the back of the hand and bending angles ⁇ 1,1 , ⁇ 1 of each joint of the fingers (first joint, second joint, third joint). , 2 , ⁇ 1,3 , and further, as shown in FIG. 10, the left / right swing angle ⁇ 1,1 of the finger is detected by a sensor provided in the glove body.
  • the user's hand or finger may be imaged with a camera, and similar detection may be performed by image processing.
  • FIG. 11 is a diagram illustrating a connection relationship of a plurality of operators displayed in the virtual space based on the motion information detected using the glove-type motion detection device 30 as described above.
  • A is an operator corresponding to the back of the hand.
  • B1-B4 are operators corresponding to the positions of the first joint, the second joint, the third joint, and the fingertip of the thumb.
  • C1-C4 are operators corresponding to the positions of the first joint, the second joint, the third joint, and the fingertip of the index finger, respectively.
  • D1-D4 are operators corresponding to the positions of the first joint, the second joint, the third joint, and the fingertip of the middle finger, respectively.
  • E1-E4 are operators corresponding to the positions of the first joint, the second joint, the third joint, and the fingertip of the ring finger, respectively.
  • F1-F4 are operators corresponding to the positions of the first joint, the second joint, the third joint, and the fingertip of the little finger, respectively.
  • the operation element A corresponding to the back of the hand
  • the operation elements C1 corresponding to the first joint, the second joint, the third joint, and the fingertip of the index finger, respectively.
  • -C4 is displayed.
  • a group of a plurality of operators A and C1-C4 used in the operation and displayed in the virtual space is referred to as an “operator set”.
  • the operator set is displayed in the virtual space as described above, for example, as shown in FIG. 12, one or more operators C2, C3, and C4 having calculation positions in the object 2 are individually set.
  • the calculation positions P C2 , P C3 , and P C4 indicated by dotted lines are displayed at the display positions indicated by solid lines.
  • the operators C2, C3, and C4 are displayed at positions where the length between the finger operators is ignored, it is unnatural such that the finger looks short.
  • the control unit 101 performs display control for preventing the operator from being caught while maintaining the length determined between the operators adjacent to each other in the operator set.
  • the control unit 101 controls the back of the hand with the operator A, and the first, second, third, and fingertip operators C1-C4 of the index finger.
  • the control unit 101 controls the back of the hand with the operator A, and the first, second, third, and fingertip operators C1-C4 of the index finger.
  • the control unit 101 controls the back of the hand with the operator A, and the first, second, third, and fingertip operators C1-C4 of the index finger.
  • the control unit 101 controls the back of the hand with the operator A, and the first, second, third, and fingertip operators C1-C4 of the index finger.
  • the control unit 101 controls the back of the hand with the operator A, and the first, second, third, and fingertip operators C1-C4 of the index finger.
  • the control unit 101 controls the back of the hand with the operator A, and the first, second, third, and
  • the determined length between adjacent operators differs depending on the type of finger.
  • the display control for preventing the insertion of the manipulator with the length between the manipulators restricted for example, as shown in FIG. 13, the manipulators C2, C3, C4 positioned in the object 2 are calculated. Each of them is displayed in a natural positional relationship, and the discomfort of the entire operator set is eliminated.
  • the range of the bending direction and the bending angle of the joint varies depending on the joint positions (first joint, second joint, and third joint), and also varies depending on the type of finger.
  • the first joint is bent up and down with respect to the height of the palm, but the second joint and the third joint can be bent toward the palm, but are hardly bent toward the back of the hand.
  • the bending direction and the bending angle range of each joint are set in advance as a constraint condition of display control for preventing the operator from being caught together with the length between the operators.
  • FIG. 15 is a view for explaining display control 1 for preventing the plurality of operating elements from being caught under the above-mentioned restraint conditions.
  • the control unit 101 Based on the motion information acquired from the motion detection device 30, the control unit 101 first calculates the calculation positions P A , P of the plurality of operators A, C 1, C 4 respectively corresponding to the back of the hand, the first joint of the index finger, and the fingertip. C1 and PC4 are calculated.
  • the control unit 101 outputs the calculated respective calculated position P A, with respect to P C1, P C4, the ⁇ 5.
  • the display position of each of the operators A, C1, and C4 is calculated according to the display control for preventing the operator from being caught.
  • the operator A on the back of the hand and the calculation positions P A and P C1 The operator C1 of the first joint of the index finger is displayed.
  • calculating the position P C4 of the fingertip of the operator C4 is within the object 2, the ⁇ 5.
  • the operator C4 corresponding to the fingertip is displayed at a position circumscribing the outline 2a of the object 2.
  • control unit 101 fixes the positions of the operation elements C2 and C3 of the second joint and the third joint while maintaining the display positions of the operation elements A, C1 and C4 as described in ⁇ 5. It is generated under the constraints of the above-mentioned constraint conditions, regardless of the display control>
  • the control unit 101 finally adjusts the display position of one or more of the operators A, C1, and C4 of the back of the hand, the first joint, and the fingertip under the restriction of the above-described constraint condition, and finally The display positions of all the operators A and C1-C4 are generated under the constraint of the above constraint conditions.
  • FIG. 16 is a diagram for explaining the display control 2 for preventing the plurality of operators from sinking under the constraint condition.
  • the control unit 101 controls the back of the hand operator A, the first joint operator C1, the second joint operator C2, and the third joint operator C3. Then, in the order of the fingertip operator C4, the operator whose calculation position is in the object 2 is searched. When an operation element whose calculation position is in the object 2 is found, the control unit 101 displays the change destination of the operation element by display control for preventing the operation element from being trapped under the constraint condition of the length between the operation elements. Calculate the position.
  • control unit 101 determines whether or not the display position of the change destination of the operation element causes a violation of the constraint condition of the bending method of the corresponding joint. If a violation of the constraint condition occurs, the control unit 101 restricts the display position of one or more operators that affect the bending direction of the corresponding joint while maintaining the constraint condition of the length between the operators. The display position of another change destination that does not cause the violation of is searched for, and an operator is displayed at that position.
  • the control unit 101 determines the display positions of the second joint operator C2 and the third joint operator C3, which are the operators that affect the direction of the music of the second joint operator C2, respectively. Make adjustments while adhering to the constraints.
  • control unit 101 determines that the display position of the fingertip operation element C4 causes a violation of the constraint condition of the bending method of the operation element C3 of the third joint. Similarly to the above, the control unit 101 controls the display position of the third joint operation element C3 and the display position of the fingertip operation element C4, which are operation elements that affect the direction of the music of the third joint operation element C3. Adjust while keeping the constraint of the length between.
  • the control unit 101 controls each of the second joint operator C2, the third joint operator C3, and the fingertip operator C4. The display position is adjusted again while observing the length constraint between the controls.
  • control unit 101 controls the operation element C1 of the first joint, the operation element C2 of the second joint, The display positions of the three-joint operation element C3 and the fingertip operation element C4 are adjusted again while keeping the length constraint between the operation elements.
  • the control unit 101 controls the operator A of the back of the hand, the operator C1 of the first joint, the operator C2 of the second joint, the third The display positions of the joint operation element C3 and the fingertip operation element C4 are adjusted again while keeping the length constraint between the operation elements.
  • control unit 101 When an operation of releasing the operator set from the object 2 occurs, the control unit 101 individually matches each operator assigned to the operator set so that the calculation position and the display position of the operator gradually match each other. The display position of the operation element 3 in the space outside the object 2 is calculated.
  • control unit 101 operates while adjusting the positional relationship of the plurality of operators constituting the operator set under the condition that the length between the operators, the bending direction of the joint, and the range of the bending angle are constrained.
  • the display position of each operator in the space outside the object 2 may be calculated so that the child calculation position and the display position gradually match.
  • ⁇ Modification 1> As described above, when the calculation position of the operation element is in the object, the operation element is displayed at a position circumscribing the object, thereby presenting a natural appearance when the user touches the object with the operation element in the virtual space.
  • the display control for preventing the child's sinking and the display control for improving the visual responsiveness of the operation for moving the operation element away from the object have been described. However, the following modifications are also possible in connection with these processes and controls. .
  • a device having a tactile sense presentation element such as a piezoelectric element may be used.
  • the control unit drives the tactile sense presenting element when the operation element in the virtual space circumscribes the object by the display control for preventing the operation element from being caught, and presents the user with a sense of touching the object.
  • the control unit uses the distance between the calculation position in the virtual space of the operator and the display position as the amount of indentation, and performs control so that the tactile sense presentation element is driven with the intensity of the stimulus according to the amount of indentation.
  • the amount of indentation is fed back to the user based on the strength of the tactile sensation, so that the user operability is improved.
  • the strength and pattern of tactile stimulation may be switched according to the type of object (type of article) and attributes (material, hardness, surface characteristics) and the like. Furthermore, when it is possible to give attributes (material, hardness, surface characteristics) to the operation element, the control unit presents different tactile sensations to the user depending on the combination of the operation element attribute and the object attribute. You may control to do. Alternatively, when one object is composed of a plurality of parts having different attributes, the tactile presentation corresponding to the attribute of the part touched by the operation element is performed, so that the user knows the part touched by the operation element through the tactile sense. Can do.
  • the object display itself in addition to the tactile sense.
  • the method of reflecting the object display include a method of changing the shape and size, color, texture, transparency, and luminance value of the object. Also in these methods, how to reflect the object on the display may be changed depending on the attributes of the object and the operator.
  • a threshold value for the amount of indentation is set for the object or the operator, and when the amount of indentation exceeds the threshold value, the display position of the operator is displayed at a position corresponding to the amount of indentation in the object. May be.
  • ⁇ Modification 2> As the display control of the operation element when the operation of separating the operation element from the object is performed, in the first embodiment, when the calculation position of the operation element is in the object, with the start of the operation of separating the operation element from the object, The display position of the operation element also starts to move away from the object.
  • the display position of the operation element gradually approaches the calculation position of the operation element for each calculation cycle from the position circumscribing the outline of the object, and finally coincides with the calculation position of the operation element.
  • the display position of the operation element is moved to Here, how to move from the start of the operation of releasing the operation element from the object until the display position of the operation element coincides with the calculation position is determined by the control parameters ⁇ and ⁇ in the above equation (2).
  • depends on the magnitude
  • a user interface for accepting selection or setting of the details of the dependency between the control parameters ⁇ and ⁇ and the magnitude
  • the user can select a favorite movement method as a movement method of the display position of the operation element with respect to an operation of releasing the operation element from the object.
  • the display position may be moved by the amount of movement due to the slip.
  • ⁇ Modification 5> When a plurality of controls in the form of a hand are displayed in the virtual space, the scales of the plurality of controls may be changed based on an instruction from the user given from the motion detection device.
  • the control unit performs display control for preventing the operator from getting stuck, and display control of the operator for the operation of separating the operator from the object, in accordance with the changed scale of the operator.
  • a force feedback device may be used to give force feedback to the user. Thereby, it is possible to present the user with a feeling that the display position of the operation element has moved in the direction opposite to the direction in which the operation element has moved from the calculation position.
  • ⁇ Modification 7> The display control for preventing the operator from getting stuck in the display of the present disclosure and the display control for the operation of moving the operator away from the object, such as when the object is hidden behind another object and does not enter the user's field of view, It may be controlled to be invalid. As a result, unnecessary computations by the CPU of the control unit are not executed, and the burden on the CPU can be reduced.
  • the operation element is displayed at a position circumscribing the object, but may be a position close to the object.
  • the display control for the operation of moving the operation element away from the object according to the technique of the present disclosure is not necessarily the display control for preventing the operation element from being sunk as described in the first embodiment, or the plurality of processes described in the second embodiment.
  • the present invention is not limited to being used in combination with display control for preventing the operator from getting stuck.
  • combining the method of displaying the operation element circumscribing or close to the object at the position where the operation element has entered the object, and the display control for the operation of separating the operation element from the object according to the technology of the present disclosure May be.
  • a method of displaying the operator circumscribing or close to the object at a position closest to the calculation position of the operator in the object, and display control for an operation of moving the operator away from the object according to the technology of the present disclosure may be combined.
  • the technology of the present disclosure is effective not only in the field of VR (Virtual Reality) but also in the field of AR (Augmented Reality).
  • this technique can also take the following structures.
  • a display control unit that generates display information for causing a display device to display a first virtual object defined in a virtual space and a second virtual object different from the first virtual object; , The first virtual object is moved in the virtual space based on a reference position based on a user operation input, and it is determined that the reference position of the first virtual object is in the second virtual object.
  • An information processing apparatus comprising: a controller configured to control the display position of the first virtual object so that the reference position and the display position of the first virtual object gradually coincide with each other.
  • the controller is Based on the movement vector of the reference position of the first virtual object and the difference vector between the reference position of the first virtual object and the display position of the first virtual object, from the second virtual object An information processing apparatus configured to calculate a control amount for updating a display position of the first virtual object in accordance with an operation of releasing the first virtual object.
  • the controller is When displaying a plurality of the first virtual objects in the virtual space based on a reference position based on the user's operation input, a first virtual object at least a part of the plurality of first virtual objects When the reference position in the virtual space of the second virtual object is within the second virtual object, the second position of the second virtual object is determined under a relative positional constraint determined between the plurality of first virtual objects.
  • An information processing apparatus configured to display the partial first virtual object at a position circumscribing the virtual object.
  • the controller is The reference position of the first virtual object and the display position of the first virtual object while maintaining the constraint condition in accordance with an operation of separating the plurality of first virtual objects from the second virtual object
  • An information processing apparatus configured to control display positions of the plurality of first virtual objects so that the values gradually match.
  • the controller is When an operation for moving the first virtual object to a position in the second virtual object is determined, the first virtual object is moved to a position that circumscribes the second virtual object in a moving process of the first virtual object.
  • An information processing apparatus configured to display a virtual object.
  • the controller is When an operation for moving the first virtual object from the outside of the second virtual object to the first position in the second virtual object is determined, Displaying the first virtual object at a second position circumscribing the second virtual object in the process of moving the first virtual object to a first position in the second virtual object; Obtaining a first normal direction relative to a contour line of the second virtual object circumscribed by the first virtual object displayed at the second position; Obtaining a second normal direction with respect to the contour of the second virtual object in the first normal direction from the first position; Updating the display position of the first virtual object to a third position circumscribing the contour line of the second virtual object in the second normal direction from the first position; An information processing apparatus configured to repeat the process for updating the display position of the first virtual object until convergence.
  • the display control unit generates display information for causing the display device to display the first virtual object defined in the virtual space and the second virtual object different from the first virtual object.
  • a controller moves the first virtual object in the virtual space based on a reference position based on a user operation input, and the reference position of the first virtual object is in the second virtual object.
  • the controller is Based on the movement vector of the reference position of the first virtual object and the difference vector between the reference position of the first virtual object and the display position of the first virtual object, from the second virtual object An information processing method for calculating a control amount for updating a display position of the first virtual object in accordance with an operation of releasing the first virtual object.
  • the controller is When displaying a plurality of the first virtual objects in the virtual space based on a reference position based on the user's operation input, a first virtual object at least a part of the plurality of first virtual objects When the reference position in the virtual space of the second virtual object is within the second virtual object, the second position of the second virtual object is determined under a relative positional constraint determined between the plurality of first virtual objects.
  • the controller is The reference position of the first virtual object and the display position of the first virtual object while maintaining the constraint condition in accordance with an operation of separating the plurality of first virtual objects from the second virtual object An information processing method for controlling display positions of the plurality of first virtual objects so that the values gradually match.
  • the controller is When an operation for moving the first virtual object to a position in the second virtual object is determined, the first virtual object is moved to a position that circumscribes the second virtual object in a moving process of the first virtual object.
  • the controller is When an operation for moving the first virtual object from the outside of the second virtual object to the first position in the second virtual object is determined, Displaying the first virtual object at a second position circumscribing the second virtual object in the process of moving the first virtual object to a first position in the second virtual object; Obtaining a first normal direction relative to a contour line of the second virtual object circumscribed by the first virtual object displayed at the second position; Obtaining a second normal direction with respect to the contour of the second virtual object in the first normal direction from the first position; Updating the display position of the first virtual object to a third position circumscribing the contour line of the second virtual object in the second normal direction from the first position; An information processing method that repeats the process for updating the display position of the first virtual object until convergence.
  • a display control unit that generates display information for causing the display device to display a first virtual object defined in a virtual space and a second virtual object different from the first virtual object; , The first virtual object is moved in the virtual space based on a reference position based on a user operation input, and it is determined that the reference position of the first virtual object is in the second virtual object.
  • a program for operating a computer as a controller configured to control the display position of the first virtual object so that the reference position and the display position of the first virtual object gradually coincide with each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

この情報処理装置は、表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、ユーザの操作入力に基づく基準位置に基づいて仮想空間内で第1の仮想オブジェクトを移動させ、第1の仮想オブジェクトの基準位置が第2の仮想オブジェクト内にあると判定されるとき、第2の仮想オブジェクトに外接する位置に第1の仮想オブジェクトを表示させ、第2の仮想オブジェクトから第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、基準位置と第1の仮想オブジェクトの表示位置とが次第に一致するように第1の仮想オブジェクトの表示位置を制御するコントローラーとを具備する。

Description

情報処理装置、表示制御方法及びプログラム
 本技術は、情報処理装置、表示制御方法及びプログラムに関する。
 表示画面に表示される仮想空間内で、仮想的な物体(以下、「オブジェクト」と呼ぶ。)に対して"持つ"、"触れる"などの基本的な物理現象を伴う操作を与える方法には、例えば、次のようなものが知られる。
 仮想空間にオブジェクトに対して上記操作を与えるポインティングオブジェクトが表示される。このポインティングオブジェクトは、センサーによって検出されたユーザの手の前後左右の動きに従って、仮想空間内で移動される。ユーザが仮想空間内のオブジェクトを持つように手を握ると、センサーによってこの手を握った動きが検出され、この検出情報を受けた制御部は、ポインティングオブジェクトにオブジェクトを保持させるように制御を行う(例えば、特許文献1参照)。
特開2012-018559号公報
 しかしながら、仮想空間のオブジェクトに対するユーザの操作性に関しては、様々な点で改善すべき課題がある。
 以上のような事情に鑑み、本技術の目的は、仮想空間のオブジェクトに対する操作性を向上させることが可能な、新規かつ改良された情報処理装置、情報処理方法およびプログラムを提供することにある。
 上記の課題を解決するために、本技術に係る一形態の情報処理装置は、
 表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
 ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーとを具備する。
 前記コントローラーは、
 前記第1の仮想オブジェクトの前記基準位置の移動ベクトルおよび前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置との差分ベクトルをもとに、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作に伴う前記第1の仮想オブジェクトの表示位置を更新するための制御量を算出するように構成されたものであってよい。
 前記コントローラーは、
 前記ユーザの操作入力に基づく基準位置をもとに、複数の前記第1の仮想オブジェクトを前記仮想空間内に表示する場合、前記複数の第1の仮想オブジェクトの少なくとも一部の第1の仮想オブジェクトの前記仮想空間内の前記基準位置が前記第2の仮想オブジェクト内にあるとき、前記複数の第1の仮想オブジェクトの間に決められた相対的な位置関係の拘束条件下で、前記第2の仮想オブジェクトに外接する位置に前記一部の第1の仮想オブジェクトを表示させるように構成されたものであってよい。
 前記コントローラーは、
 前記第2の仮想オブジェクトから前記複数の第1の仮想オブジェクトを離す操作に伴って、前記拘束条件を守りながら、前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記複数の第1の仮想オブジェクトの表示位置を制御するように構成されてもよい。
 前記コントローラーは、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の位置に移動させる操作が判定されたとき、前記第1の仮想オブジェクトの移動過程で前記第2の仮想オブジェクトと外接する位置に前記第1の仮想オブジェクトを表示させるように構成されてもよい。
 前記コントローラーは、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクトの外から前記第2の仮想オブジェクト内の第1の位置に移動させる操作が判定されたとき、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の第1の位置に移動させる過程で前記第2の仮想オブジェクトと外接する第2の位置に前記第1の仮想オブジェクトを表示させ、
 前記第2の位置に表示された前記第1の仮想オブジェクトが外接する前記第2の仮想オブジェクトの輪郭線に対する第1の法線方向を求め、
 前記第1の位置から前記第1の法線方向にある前記第2の仮想オブジェクトの前記輪郭線に対する第2の法線方向を求め、
 前記第1の位置から前記第2の法線方向にある前記第2の仮想オブジェクトの輪郭線に外接する第3の位置に前記第1の仮想オブジェクトの表示位置を更新し、
 前記第1の仮想オブジェクトの表示位置を更新するための処理を収束まで繰り返すように構成されてもよい。
 本技術に係る一形態の情報処理方法は、
 表示制御部が、表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成し、
 コントローラーが、ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御する。
 本技術に係る一形態のプログラムは、
 表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
 ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーとして
 コンピュータを動作させる。
 以上のように、本技術によれば、仮想空間のオブジェクトに対する操作性を向上させることが可能な、新規かつ改良された情報処理装置を提供することができる。
仮想空間のオブジェクト内への操作子のめり込みを説明すするための図である。 本技術にかかる第1の実施形態の情報処理システム1の構成の一例を示すブロック図である。 図2の情報処理システム1に属する情報処理装置10のハードウェア構成を示すブロック図である。 図3の情報処理装置10での操作子3の表示制御に関するフローチャートである。 図3の情報処理装置10での操作子3のめり込み防止のための表示制御を説明するための図である。 オブジェクト2から操作子3を離す操作に伴う表示制御その1を説明するための図である。 オブジェクト2から操作子3を離す操作に伴う表示制御その2を説明するための図である。 オブジェクト2から操作子3を離す操作の判定方法の一例を説明するための図である。 グローブタイプの動作検出デバイスによって検出可能なユーザの指の関節の曲がりについて説明するための図である。 グローブタイプの動作検出デバイスによって検出可能なユーザの指の左右の振りについて説明するための図である。 グローブタイプの動作検出デバイスによって検出される動作情報をもとに仮想空間に表示可能な複数の操作子について説明するための図である。 複数の操作子に対するめり込み防止のための表示制御の課題を説明する図である。 操作子間の長さを拘束した操作子のめり込み防止のための表示制御を説明するための図である。 操作子間の長さを拘束した操作子のめり込み防止のための表示制御の課題を説明するための図である。である。 操作子間の長さおよび関節間の曲がり方を拘束した複数の操作子のめり込み防止のための表示制御その1を説明するための図である。 操作子間の長さおよび関節間の曲がり方を拘束した複数の操作子のめり込み防止のための表示制御その2を説明するための図である。 オブジェクト2から操作子3を離す操作に伴う操作子3の制御量を算出する方法を説明するための図である。
 以下、本技術に係る実施の形態を説明する。
 本実施の形態の説明は、以下の順に行われる。
 1.概要
 2.システム構成
 3.情報処理装置10の構成
 4.操作子めり込み防止のための表示制御
 5.オブジェクト2から操作子3を離す操作に伴う表示制御その1
 6.オブジェクト2から操作子3を離す操作に伴う表示制御その2
 7.オブジェクト2から操作子3を離す操作の判定方法
 8.操作子3の制御量の算出方法の一例
 9.拘束条件下での複数の操作子のめり込み防止のための表示制御その1
 10.拘束条件下での複数の操作子のめり込み防止のための表示制御その2
 <第1の実施形態>
 [1.概要]
 本開示の技術は、表示デバイスの画面に構築された仮想空間における仮想的な物体であるオブジェクト(第2の仮想オブジェクト)に対して、"持つ"、"触れる"などの基本的な物理現象を伴う操作をユーザの手指などの動きを検出した情報をもとに与える情報処理システムに関する。この情報処理システムにおいて、ユーザの手や指などの動きの情報は、仮想空間に操作用のオブジェクトとして表示される操作子(第1の仮想オブジェクト)の動きに反映される。
 この情報処理システムは、表示デバイス、動作検出デバイス、そしてVR(Virtual Reality:仮想現実)、AR(Augmented Reality:拡張現実)などの仮想空間の表示に関する様々な情報処理を行う情報処理装置を基本的な構成として有する。情報処理装置は、PC(Personal Computer)、ゲーム機、サーバ装置、スマートホンなど、CPU(Central Processing Unit)およびメモリを備え、プログラムを実行して演算処理を行うことが可能なコントローラーを有するものであればよい。
 動作検出デバイスは、表示デバイスの画面の仮想空間に配置された仮想物体であるオブジェクトに対して、例えば"持つ"、"触れる"などの操作を目的としたユーザの手や指などの動きを検出し、検出情報を情報処理装置に供給する。
(1)動作検出デバイスより入力されたユーザの動きの検出情報をもとに仮想空間内の操作子の位置を計算し、その計算上の位置に操作子を表示させる方法によると、例えば、図1に示すように、オブジェクト2の空間内に操作子3の計算上の位置があるとき、操作子3がオブジェクト2内にめり込んだ見た目となる。柔軟な物性を想定しないオブジェクト2内に操作子3が表示されると、"持つ"、"触れる"などの操作の見た目としては不自然である。そこで本明細書においては、オブジェクト2内に操作子3の計算上の位置が存在しても、操作子3がオブジェクト2内にめり込まないように操作子3の表示位置を変更する操作子のめり込み防止のための表示制御について開示する。
 なお、動作検出デバイスより入力されたユーザの動きの検出情報をもとに計算された仮想空間内の操作子の位置を以後「操作子の計算位置」と呼び、仮想空間に表示された操作子の位置を以後「操作子の表示位置」と呼ぶ。操作子の計算位置は、特許請求の範囲でいうところの「ユーザの操作入力に基づく基準位置」に対応し、操作子の表示位置は、特許請求の範囲でいうところの「第1の仮想オブジェクトの表示位置」に対応する。
(2)さらに、操作子のめり込み防止のための表示制御を採用した場合、操作子3をオブジェクト2の内から外に移動させる操作を行っても、その直後暫くの時間は操作子3の計算位置はオブジェクト2内にある。このため、操作子3が見た目上移動しはじめるまでには遅延時間が生じ、見掛け上の応答性が劣化する。そこで、本明細書においては、操作子3をオブジェクト2から離す操作が行われたときの操作子3の自然な応答感をユーザに与えることができる表示制御について開示する。
 [2.システム構成]
 図2は、本技術にかかる第1の実施形態の情報処理システム1の構成の一例を示すブロック図である。
 この情報処理システム1は、情報処理装置10と、表示デバイス20と、動作検出デバイス30とを有する。情報処理装置10は、表示デバイス20と無線あるいは有線により通信することが可能である。情報処理装置10と動作検出デバイス30とは無線あるいは有線による通信することが可能である。各々の通信には、望ましくは無線通信が用いられる。無線通信には、例えば、無線LAN(Local Area Network)、Bluetooth(登録商標)、Wi-Fi(登録商標)、Zigbee(登録商標)などの任意の無線通信方式を適用し得る。
 表示デバイス20は、例えば、情報処理装置10から独立した据え置き型のディスプレイ、テレビジョンモニター、立体視ディスプレイ、あるいは、ヘッドマウントディスプレイ(HMD)、ブレスレット型ディスプレイなどのウェアラブル型ディスプレイであってよい。また、ノート型PC、タブレット端末、スマートホンのように、情報処理装置10と表示デバイス20とは一体化されたものであってもよい。あるいは、ヘッドマウントディスプレイ(HMD)、ブレスレット型ディスプレイなどのウェアラブル型ディスプレイ内に情報処理装置10が組み込まれていてもよい。
 動作検出デバイス30は、ユーザUの例えば手や指などの動きを検出することのできるものであればよい。動作検出デバイス30としては、例えば、モーションセンサーを搭載したステッィク型のデバイスや、ユーザの手の甲、各指の関節の位置などを検出することのできるグローブ型のデバイスなどが挙げられる。あるいは、1以上のカメラでユーザの手や指を撮像して画像認識によってユーザの手や指などの動きを検出してもよい。
 [3.情報処理装置10の構成]
 図3は、上記の情報処理システム1に属する情報処理装置10のハードウェア構成を示すブロック図である。
 同図に示すように、情報処理装置10は、制御部101、操作部102、記憶部103、表示デバイス20との表示インタフェース104、動作検出デバイス30との入力インタフェース105およびバス106を備える。
 制御部101は、本技術にかかる請求項の「コントローラー」に相当するものであり、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)などのプロセッサと、RAM(Random Access Memory)などにより構成されるメインメモリとを含む。制御部101はメインメモリを作業領域として用いてプログラムを実行し、VRなどの仮想空間の表示に関する情報処理を行う。また、制御部101は、バス106を通じて操作部102、記憶部103、表示インタフェース104、入力インタフェース105との間で情報をやりとりする。
 操作部102は、情報処理装置10に対するユーザからの各種入力を受け付けるためのユーザインタフェースである。操作部102は、例えば、キーボード、マウス、ボタン、スイッチ、キーパッド、ゲーム機用コントローラー、マイク(音声入力)など、ユーザからの入力を受け付けることができるものであればよい。
 記憶部103は、例えば、半導体メモリ、ハードディスクなどの記憶媒体により構成される。記憶部103には、VRなどの仮想空間の表示に関する処理に必要なプログラムおよびデータが格納される。なお、プログラムおよびデータの少なくとも一部は、記憶部103により記憶されることなく、例えば、データサーバ、ネットワークストレージ、外付け記録装置など、情報処理装置10の外部のストレージから取得されてもよい。
 表示インタフェース104は、制御部101により生成された仮想空間の表示のための表示データを表示デバイス20に無線通信方式または有線通信方式で送信するためのインタフェースである。
 入力インタフェース105は、動作検出デバイス30よりユーザの動作情報を無線通信方式または有線通信方式で受信するためのインタフェースである。入力インタフェース105は、特許請求の範囲の「表示制御部」に対応する。
 バス106は、制御部101、操作部102、記憶部103、表示インタフェース104、入力インタフェース105との間での情報の伝送に用いられる伝送路である。
 [4.操作子めり込み防止のための表示制御]
 情報処理装置10の制御部101は、プログラムに基づいて、操作対象である仮想的な物体であるオブジェクト2およびこれを操作する操作子3を含む仮想空間の表示データを生成する。制御部101は、インタフェース105を用いて動作検出デバイス30より入力したユーザの動作情報をもとに、仮想空間における操作子3の位置を計算し、その位置に操作子3を表示させる。
 図1に示したように、オブジェクト2の空間内に操作子3の計算位置があり、その位置に操作子3をそのまま表示させると、操作子3がオブジェクト2内にめり込んだ見た目となってしまい、不自然である。そこで、本実施形態の情報処理装置10では、オブジェクト2の空間内に操作子3の計算位置がある場合には、操作子3がオブジェクト2内にめり込まないように操作子3の表示位置を変更するめり込み防止のための表示制御が行われる。
 図4は、操作子3のめり込み防止のための表示制御、および後述するオブジェクト2から操作子3を離す操作時の表示制御の手順を示すフローチャートである。
 情報処理装置10の制御部101は、動作検出デバイス30から取得した動作情報をもとに操作子3の仮想空間内の位置を計算する(ステップS101)。制御部101は、動作検出デバイス30から時間的に連続して取得した動作情報をもとに2つの位置P0、P1を算出し、操作子3が計算上、オブジェクト2の空間内にめり込んだかどうかを判定する(ステップS102)。
 ここで、少なくとも操作子3の計算位置P1(以下、「第1の位置P1」と呼ぶ。)がオブジェクト2内である場合には、制御部101は、操作子3が計算上、オブジェクト2の空間内にめり込んだことを判定し(ステップS102のYES)、操作子3の表示位置のめり込み防止のための制御を発動する(ステップS103)。
 図5は、操作子3のめり込み防止のための表示制御を説明するための図である。
 なお、この説明では、動作検出デバイス30としてステッィク型のデバイスが用いられる場合を想定する。この場合、操作子3の数は"1"である。仮想空間におけるオブジェクト2の形状は特に規定されない。但し、この説明では、x軸方向に沿った互いに平行な2つの辺を有し、各々の辺の両端が曲線により接続された形状のオブジェクト2を想定する。
 操作子3のめり込み防止のための制御として、まず、制御部101は、操作子3の計算位置がオブジェクト2の外の位置P0からオブジェクト2内の第1の位置P1に移動する過程でオブジェクト2と外接する第2の位置Pa1に操作子3を表示する。
 次に、制御部101は、第1の位置P1から第2の位置Pa1の方向にあるオブジェクト2の輪郭線2aに対する第1の法線方向La1を求める。
 次に、制御部101は、第1の位置P1から第1の法線方向La1にあるオブジェクト2の輪郭線2aに対する第2の法線方向Lb1を求める。
 続いて、制御部101は、第1の位置P1から第2の法線方向Lb1にあるオブジェクト2の輪郭線2aに外接する第3の位置Pa2に操作子3の表示位置を更新する。
 この後も制御部101は、同様の処理を繰り返すことによって、操作子3の表示位置をオブジェクト2の輪郭線2aに沿って第4の位置Pa3、第5の位置Pa4の順に移動させる。本例では、第1の位置P1から第5の位置Pa4の方向にあるオブジェクト2の輪郭線2aに対する法線方向Lb3はy軸方向と平行であるため、この第5の位置Pa4で操作子3の表示位置を更新する処理が収束する。
 なお、このタイミングで操作子3の表示位置の更新処理が収束するのは、この例では、第1の位置P1から第5の位置Pa4の方向にあるオブジェクト2の輪郭線2aに対する法線方向Lb3がy軸方向と平行であるためであり、法線方向Lb3がy軸方向と平行でない場合には更新処理が継続される。
 動作検出デバイス30から取得した動作情報をもとに操作子3の仮想空間内の計算位置が変化すると、制御部101は、操作子3のめり込み防止のための表示制御を再度発動し、操作子3の表示位置が再び更新される。
 このように、本開示の技術にかかる操作子3のめり込み防止のための表示制御では、操作子3の計算位置がオブジェクト2内の任意の第1の位置P1に移動するとき、その移動過程で操作子3の表示位置が、オブジェクト2に最初に外接する第2の位置Pa1から、オブジェクト2内の第1の位置P1の真上にあたる位置に次第に近付くようにオブジェクト2の輪郭線2aに沿って連続的に移動する。これにより、例えば、操作子3の計算位置がオブジェクト2内の任意の第1の位置P1に移動する過程で操作子3がオブジェクト2に最初に外接する第2の位置Pa1に操作子3を止めて表示させるだけの制御に比べ、ユーザに与える違和感を軽減することができる。
 本開示の技術にかかる操作子のめり込み防止のための表示制御などに代表されるように、操作子3をオブジェクト2の外から内に移動させる操作が発生した場合に、オブジェクト2に外接する位置に操作子3を表示させる制御が行われる場合、次のような課題がある。
 オブジェクト2から操作子3を離す操作が発生した場合、操作子3の計算位置がオブジェクト2の外に出るまでは、操作子3はオブジェクト2(の輪郭線2a)に外接した位置に表示されたままとなる。このため、オブジェクト2から操作子3を離す操作に対する応答速度が遅いようにユーザに感じさせてしまう可能性がある。
 この課題を解決するために、制御部101は、図4のフローチャートにも示したように、オブジェクト2から操作子3を離す操作が発生した場合(ステップS104のYES)、その操作に伴って、操作子3の計算位置と操作子3の表示位置とが次第に一致するように操作子3の表示位置を制御する(ステップS105、S106)。
 以下に、このオブジェクト2から操作子3を離す操作に伴う表示制御の詳細を説明する。
 [5.オブジェクト2から操作子3を離す操作に伴う表示制御その1]
 図6は、このオブジェクト2から操作子3を離す操作に伴う表示制御その1を説明するための図である。
 まず、操作子3の計算位置P1がオブジェクト2内にあるものの、例えば、上記の操作子のめり込み防止のための表示制御によって操作子3はオブジェクト2と外接する位置Ph1に表示されている状態を想定する。なお、本例では、この操作子3の表示位置Ph1は、上記のめり込み防止のための表示制御によって最終的に収束した表示位置であり、図5の第5の位置Pa4に相当する。
 この後、オブジェクト2から操作子3を離す操作が発生し、制御部101がその操作の発生を判定したこととする。なお、このオブジェクト2から操作子3を離す操作の判定方法については後で説明する。
 制御部101は、オブジェクト2から操作子3を離す操作が発生したことを判定すると、操作子3の計算位置と操作子3の表示位置とが次第に一致するように、オブジェクト2の外の空間内での操作子3の表示位置を算出する。つまり、図6において、制御部101は、操作子3の計算位置がP1からP2に更新すると、操作子3の表示位置を、オブジェクト2に外接する位置であるPh1から、オブジェクト2から離間した位置Ph2に更新する。
 次に、制御部101は、操作子3の計算位置がP2からP3に更新すると、操作子3の表示位置をPh2からPh3へ更新する。この例では、さらに、操作子3の計算位置がP3からP4に更新すると、操作子3の表示位置がPh3から、操作子3の計算位置P4と同じ位置あるいは略同じ位置であるPh4へと更新した場合を示している。
 ここで、P2とPh2との距離をL1、P3とPh3との距離をL2、P4とPh4との距離をL3、そしてP4とPh4との距離をL4とするとL1>L2>L3>L4が成立する。
 操作子3の表示位置を更新するための制御量は、例えば、操作子3の移動前後の計算位置間の移動ベクトルと、操作子3の表示上の位置と計算位置との差分ベクトルをもとに算出することが可能である。
 [6.オブジェクト2から操作子3を離す操作に伴う表示制御その2]
 上記の表示制御その1では、オブジェクト2から操作子3を離す操作が行われる直前の操作子3の表示位置Ph1と操作子3の計算位置P1とのx軸上の位置が互いに一致し、y軸上の位置が一致しないことを前提したが、本開示の技術にかかる操作子3の表示制御は、オブジェクト2から操作子3を離す操作が行われる直前の操作子3の表示位置Ph1と操作子3の計算位置P1とがxy軸方向において異なる場合においても有効である。次に、この場合の表示制御を、オブジェクト2から操作子3を離す操作に伴う表示制御その2として説明する。
 図7は、オブジェクト2から操作子3を離す操作に伴う表示制御その2を説明するための図である。
 ここでは、めり込み防止のための表示制御として、操作子3の計算位置がオブジェクト2内の任意の位置P1に移動する過程で、操作子3がオブジェクト2に最初に外接するときの位置Ph1に止めて表示する方式を採用した場合を想定する。
 この表示制御その2においても、上記の表示制御その1と同様に、制御部101は、オブジェクト2から操作子3を離す操作が発生したことを判定すると、操作子3の計算位置と操作子3の表示位置とが次第に一致するように、オブジェクト2の外の空間内での操作子3の表示位置を算出する。つまり、図7において、制御部101は、操作子3の計算位置がP1からP2に更新すると、操作子3の表示位置をオブジェクト2に外接する位置であるPh1から、オブジェクト2から離間した位置Ph2に更新する。
 次に、制御部101は、操作子3の計算位置がP2からP3に更新すると、操作子3の表示位置をPh2からPh3へ更新する。
 この例では、さらに、操作子3の計算位置がP3からP4に更新すると、操作子3の表示位置がPh3から、P4と同じ位置または略同じ位置であるPh4へと更新した場合を示している。
 ここで、P2とPh2との距離をL1、P3とPh3との距離をL2、そしてP4とPh4との距離をL3、そしてP4とPh4との距離をL4とするとL1>L2>L3>L4が成立する。
 この表示制御その2の場合も、操作子3の表示位置を更新するための制御量は、表示制御その1の場合と同様に、例えば、操作子3の移動前後の計算位置間の移動ベクトルと、操作子3の表示上の位置と計算位置との差分ベクトルをもとに算出することが可能である。
 このように、本開示の技術にかかるオブジェクト2から操作子3を離す操作に伴う表示制御によれば、オブジェクト2から操作子3を離す操作に伴って操作子3の計算位置と操作子3の表示位置とが次第に一致するように操作子3の表示位置が更新されるので、オブジェクト2から操作子3を離す操作に対する見掛け上の応答性が向上する。
 [7.オブジェクト2から操作子3を離す操作の判定方法]
 図8は、上記の表示制御その2の場合を例として、オブジェクト2から操作子3を離す操作の判定方法の一例を説明するための図である。
 同図において、操作子3の計算位置がオブジェクト2内の任意の位置P1に移動する過程で、操作子3がオブジェクト2に最初に外接するときの表示位置Ph1と操作子3の計算位置P1の各中心とを結んだ直線Hを「操作子めり込み軸H」と呼ぶこととする。vはオブジェクト2から操作子3を離す操作による操作子3の計算位置の移動ベクトルである。この移動ベクトルvの操作子めり込み軸Hに対する角度をθ、移動ベクトルvの操作子めり込み軸H方向の大きさをvとする。
 以下の式(1)は、オブジェクト2から操作子3が離れる操作の判定条件である。
 |θ|<TθかつTv<|v|   ・・・(1)
 ここで、Tθ、Tvはそれぞれ閾値である。
 このように、オブジェクト2から操作子3が離れる操作の判定条件が規定されることによって、手振れなどによる操作子3の微量の動きをキャンセルできるとともに、操作子3の計算位置がオブジェクト2内にめり込んできた方向を基準にオブジェクト2から離れる操作を判定することができる。これにより、オブジェクト2から離れる操作をより適切に判定することができる。
 なお、オブジェクト2から操作子3を離す操作の判定方法は上記のものに限定されない。その他、様々な方法や、変形が考えられる。
 [8.操作子3の制御量の算出方法の一例]
 次に、オブジェクト2から操作子3を離す操作に伴う操作子3の制御量を、操作子3の移動前後の計算位置間の移動ベクトルと、操作子3の表示位置と計算位置との差分ベクトルをもとに算出する方法の一例を図17を用いて説明する。
 制御部101は、操作子3の制御量である制御ベクトルcを次式(2)により算出する。
 c=(α×v)+(β×d)   ・・・(2)
 ここで、vは移動ベクトル、dは差分ベクトルである。αおよびβは制御パラメータであり、例えば、0以上かつ1以下の値をとり、移動ベクトルvの大きさ|v|あるいは角度の大きさ|θ|に依存する値である。
 移動ベクトルvの大きさ|v|に依存して決まる制御パラメータβの例を以下に挙げる。
 β=e-γ/|v|(γは定数)
 β=1-e-γ/|v|(γは定数)
 <第2の実施形態>
 次に、本開示の技術にかかる操作子のめり込み防止のための表示制御の第2の実施形態として、ユーザの手および指の形態を模して互いに接続された複数の操作子を仮想空間に表示する場合のめり込み防止のための表示制御について説明する。
 ユーザの手および指の動きを検出する動作検出デバイス30としてグローブタイプのものがある。グローブタイプの動作検出デバイス30は、図9に示すように、手の甲の3次元位置や、指の各関節(第1関節、第2関節、第3関節)の曲げ角度θ1,1、θ1,2、θ1,3、さらには図10に示すように、指の左右の振り角度φ1,1などを、グローブ体に設けられたセンサーにより検出するように構成される。また、ユーザの手あるいは指をカメラで撮像し、画像処理して同様な検出を行ってもよい。
 図11は、上記のようなグローブタイプの動作検出デバイス30を用いて検出される動作情報をもとに仮想空間に表示される複数の操作子の接続関係を示す図である。
 ここで、Aは手の甲に対応する操作子である。B1-B4は親指の第1関節、第2関節、第3関節および指先の位置に各々対応する操作子である。C1-C4は人差し指の第1関節、第2関節、第3関節および指先の位置に各々対応する操作子である。D1-D4は中指の第1関節、第2関節、第3関節および指先の位置に各々対応する操作子である。E1-E4は薬指の第1関節、第2関節、第3関節および指先の位置に各々対応する操作子である。F1-F4は小指の第1関節、第2関節、第3関節および指先の位置に各々対応する操作子である。
 例えば、操作で使われる指が例えば人差し指である場合、仮想空間には、手の甲に対応する操作子Aと、人差し指の第1関節、第2関節、第3関節および指先に各々対応する操作子C1-C4が表示される。このように操作で用いられて仮想空間に表示される複数の操作子A、C1-C4のまとまりを「操作子セット」と呼ぶことにする。
 このように操作子セットが仮想空間に表示される方式の場合、例えば、図12に示すように、オブジェクト2内に計算位置が存在する1以上の操作子C2、C3、C4が、各々個別に上記の操作子のめり込み防止のための表示制御が行われることによって、各々点線で示される計算位置PC2、PC3、PC4から各々実線で示される表示位置に表示される。この場合、操作子C2、C3、C4が、指の操作子間の長さを無視した位置に表示されるため、指が短くみえるなど不自然である。
 この課題を解決するために、制御部101は、操作子セットにおいて互いに隣り合う操作子間で決められた長さを保った上で操作子のめり込み防止のための表示制御を行う。例えば、制御部101は、操作で使われた指が人差し指である場合には、手の甲の操作子Aと、人指し指の第1関節、第2関節、第3関節および指先の各操作子C1-C4について、隣り合うもの同士の間に決められた長さlA-C1、lC1-C2、lC2-C3、lC3-C4を保った上で、各々の操作子C2、C3、C4のめり込み防止のための表示制御を行う。
 なお、操作子セットにおいて、互いに隣り合う操作子間の決められた長さは、指の種類によっても異なる。
 このように、操作子間の長さを拘束した操作子のめり込み防止のための表示制御によって、例えば、図13に示すように、計算上、オブジェクト2内に位置する操作子C2、C3、C4がそれぞれ自然な位置関係で表示され、操作子セット全体の見た目の違和感が解消される。
 但し、操作子間の長さの条件だけを拘束した操作子のめり込み防止のための表示制御では、オブジェクト2の形状によっては見た目の違和感が残る場合がある。例えば、図14に示すように、操作子間の長さを拘束した操作子のめり込み防止のための表示制御の結果、オブジェクト2の輪郭線2aにおける平らな線に沿って各操作子C2、C3、C4が表示される場合、第2関節に対応する操作子C2が本来曲がり得ない方向に曲がっており、不自然な見た目となっている。
 そこで、操作子間の長さの条件に加え、関節の曲がりの向きと曲げ角度の範囲を拘束した条件下で、操作子のめり込み防止のための表示制御を行うことがより望ましい。関節の曲がりの向きと曲げ角度の範囲は関節の位置(第1関節、第2関節、第3関節)によって異なり、さらには指の種類によっても異なる。例えば、第1関節は掌の高さに対して上下に曲げられるが、第2関節および第3関節は、掌側に曲げることができるものの、手の甲側にはほとんど曲げられない。このような関節毎の性質を考慮して、各々の関節の曲がりの向きと曲げ角度の範囲が、操作子間の長さとともに、操作子のめり込み防止のための表示制御の拘束条件として予め設定される。
 次に、上記の拘束条件下での複数の操作子のめり込み防止のための表示制御の動作を説明する。
 [9.拘束条件下での複数の操作子のめり込み防止のための表示制御その1]
 図15は上記の拘束条件下での複数の操作子のめり込み防止のための表示制御その1を説明するための図である。
 制御部101は、動作検出デバイス30から取得した動作情報をもとに、まず、手の甲、人差し指の第1関節、指先に各々対応する複数の操作子A、C1、C4の計算位置P、PC1、PC4を算出する。
 次に、制御部101は、算出した各々の計算位置P、PC1、PC4に対して、上記の<5.操作子のめり込み防止のための表示制御>によって各々の操作子A、C1、C4の表示位置を算出する。この際、手の甲、人差し指の第1関節の各操作子A、C1の計算位置P、PC1はオブジェクト2の外にあるため、それらの計算位置P、PC1に手の甲の操作子Aと人差し指の第1関節の操作子C1が表示される。一方、指先の操作子C4の計算位置PC4はオブジェクト2内にあるため、上記の<5.操作子のめり込み防止のための表示制御>によって指先に対応する操作子C4はオブジェクト2の輪郭線2aと外接する位置に表示される。
 続いて、制御部101は、操作子A、C1、C4の表示位置を固定したまま、第2関節および第3関節の各操作子C2、C3の位置を、上記の<5.操作子のめり込み防止のための表示制御>に拠らず、上記の拘束条件の制約下で生成する。
 もし、手の甲、第1関節および指先の各操作子A、C1、C4の表示位置を固定したまま、拘束条件下で第2関節および第3関節の操作子C2、C3の表示位置を生成できない場合、制御部101は、手の甲、第1関節および指先の各操作子A、C1、C4のうち1以上の操作子の表示位置を上記の拘束条件の制約下で調整するなどして、最終的に、すべての操作子A、C1-C4の表示位置を上記の拘束条件の制約下で生成する。
 以上により、ユーザの手および指の形態を模した複数の操作子で構成される操作子セットに対して、自然の形態を崩すことなく、めり込み防止処理を施すことができる。
 [10.拘束条件下での複数の操作子のめり込み防止のための表示制御その2]
 図16は、上記の拘束条件下での複数の操作子のめり込み防止のための表示制御その2を説明するための図である。
 まず、制御部101は、動作検出デバイス30から取得した動作情報をもとに、手の甲の操作子A、第1関節の操作子C1、第2関節の操作子C2、第3関節の操作子C3、指先の操作子C4の順に、計算位置がオブジェクト2内にある操作子を探す。計算位置がオブジェクト2内にある操作子が見つかると、制御部101は、操作子間の長さの拘束条件下での操作子のめり込み防止のための表示制御によって、その操作子の変更先の表示位置を計算する。
 次に、制御部101は、その操作子の変更先の表示位置が、対応する関節の曲がり方の拘束条件の違反を発生させるかどうかを判定する。もし、拘束条件の違反を発生させる場合、制御部101は、対応する関節の曲がり方に影響を与える1以上の操作子の表示位置を操作子間の長さの拘束条件を守りながら、拘束条件の違反を発生させない別の変更先の表示位置を探索し、その位置に操作子を表示させる。
 図16の例では、第3関節の操作子C3の表示位置が、第2関節の操作子C2の曲が方の拘束条件の違反を発生させることが制御部101によって判定される。そこで制御部101は、第2関節の操作子C2の曲が方に影響を与える操作子である第2関節の操作子C2および第3関節の操作子C3の表示位置をそれぞれ操作子間の長さの拘束条件を守りながら調整する。
 図16の例では、その後、指先の操作子C4の表示位置が、第3関節の操作子C3の曲がり方の拘束条件の違反を発生させることが制御部101によって判定される。制御部101は、前記同様に、第3関節の操作子C3の曲が方に影響を与える操作子である第3関節の操作子C3の表示位置と指先の操作子C4の表示位置を操作子間の長さの拘束条件を守りながら調整する。
 また、第3関節の操作子C3の位置が再度調整されたことによって、第2関節の操作子C2の曲がり方の拘束条件の違反が再度発生する可能性がある。第2関節の操作子C2の曲がり方の拘束条件の違反が再度発生した場合、制御部101は、第2関節の操作子C2、第3関節の操作子C3、指先の操作子C4の各々の表示位置を各々の操作子間の長さの拘束条件を守りながら再度調整する。
 さらに、この調整により、第1関節の操作子C1の曲がり方の拘束条件違反が再度発生した場合には、制御部101は、第1関節の操作子C1、第2関節の操作子C2、第3関節の操作子C3、指先の操作子C4の各々の表示位置を各々の操作子間の長さの拘束条件を守りながら再度調整する。
 この調整により、手の甲の操作子A1の曲がり方の拘束条件違反が発生した場合、制御部101は、手の甲の操作子A、第1関節の操作子C1、第2関節の操作子C2、第3関節の操作子C3、指先の操作子C4の各々の表示位置を各々の操作子間の長さの拘束条件を守りながら再度調整する。
 以上により、この操作子のめり込み防止のための表示制御その2によっても、ユーザの手および指の形態を模した複数の操作子で構成される操作子セットに対して、自然の形態を崩すことなく、めり込み防止処理を施すことができる。
 オブジェクト2から操作子セットを離す操作が発生した場合、制御部101は、その操作子セットに属する各操作子について、各々個別に、操作子の計算位置と表示位置とが次第に一致するように、オブジェクト2の外の空間内での操作子3の表示位置を算出する。
 あるいは、制御部101は、操作子間の長さ、関節の曲がり方向および曲がりの角度の範囲を拘束した条件下で、操作子セットを構成する複数の操作子の位置関係を調整しながら、操作子の計算位置と表示位置とが次第に一致するように、オブジェクト2の外の空間内での各操作子の表示位置を算出するようにしてもよい。
 <変形例1>
 以上、操作子の計算位置がオブジェクト内にあるとき、オブジェクトに外接する位置に操作子を表示させることによって、ユーザが仮想空間内で操作子でオブジェクトに触れたときの自然な見た目を提示する操作子のめり込み防止のための表示制御と、オブジェクトから操作子を離す操作の見た目上の応答性を改善する表示制御について説明したが、これらの処理及び制御に関連して以下のような変形も考えられる。
 動作検出デバイスとして、圧電素子などの触覚提示素子を有するものを用いてもよい。制御部は、操作子のめり込み防止のための表示制御によって、仮想空間内の操作子がオブジェクトに外接しているときに触覚提示素子を駆動して、ユーザにオブジェクトに接触している感覚を提示する。この際、制御部は、操作子の仮想空間での計算位置と表示位置との距離をめり込み量として、このめり込み量に応じた刺激の強度で触覚提示素子が駆動されるように制御をする。これにより、めり込み量をパラメータとしてオブジェクトに対する何からの制御が行われることを想定した場合、めり込み量が触感の強さによりユーザにフィードバックされるので、ユーザの操作性か向上する。
 触覚提示においては、オブジェクトの種類(物品の種類)や属性(材質、硬さ、表面特性)などに応じて、触覚刺激の強度、パターンなどを切り替えるようにしてもよい。さらに、操作子に属性(材質、硬さ、表面特性)を与えることが可能である場合には、制御部は、操作子の属性とオブジェクトの属性との組み合わせに応じて異なる触覚をユーザに提示するように制御してもよい。あるいは、1つのオブジェクトが属性の異なる複数の部位で構成される場合、操作子が触れた部位の属性に対応した触覚提示が行われることによって、ユーザは触覚を通して操作子で触れた部位を知ることができる。
 ユーザにめり込み量を提示する方法としては、触覚の他、オブジェクトの表示そのものに反映させる方法がある。オブジェクトの表示に反映させる方法には、例えば、オブジェクトの形や大きさ、色、テスクチャ、透明度、輝度値を変える方法などがある。これらの方法においても、オブジェクトおよび操作子の各々の属性により、オブジェクトの表示への反映のさせ方を変えてもよい。
 また、オブジェクトあるいは操作子に対してめり込み量の閾値を設定しておき、めり込み量が閾値を超えた場合には、操作子の表示位置を、オブジェクト内のめり込み量に対応した位置に表示させるようにしてもよい。
 <変形例2>
 オブジェクトから操作子を離す操作が行われた際の操作子の表示制御として、第1の実施形態では、操作子の計算位置がオブジェクト内にあるとき、オブジェクトから操作子を離す操作の開始とともに、操作子の表示位置もオブジェクトから離れ始めることとした。
 オブジェクトから操作子を離す操作の開始タイミングと操作子の表示位置がオブジェクトから離れ始めるタイミングに、例えば、オブジェクトに与えられた属性(材質、硬さ、表面特性)、操作子3に与えられた属性(材質、硬さ、表面特性)などに応じた時間差を設けてもよい。より具体的には、オブジェクトまたは操作子の表面の属性に粘着性が与えられている場合には、オブジェクトから操作子が離れる際に両接触面の間にあたかも粘着力が働いたかのように、オブジェクトから操作子を離す操作の開始から時間差(遅延時間)を置いて操作子の表示位置がオブジェクトから離れ始めるように制御してもよい。
 <変形例3>
 第1の実施形態では、操作子の表示位置が、オブジェクトの輪郭線に外接した位置から、計算サイクルごとに操作子の計算位置に次第に近付いて行き、最終的に操作子の計算位置と一致するまで操作子の表示位置を移動されることとした。ここで、オブジェクトから操作子を離す操作を開始してから、操作子の表示位置が計算位置と一致するまでの動き方は、上記(2)式の制御パラメータα、βによって決まり、制御パラメータα、βは、移動ベクトルの大きさ|v|、角度|θ|に依存する。
 そこで、ユーザより制御パラメータα、βと移動ベクトルの大きさ|v|、角度|θ|との依存関係の詳細の選択あるいは設定を受け付けるためのユーザインタフェースを設けてもよい。これにより、ユーザは、オブジェクトから操作子を離す操作に対する操作子の表示位置の動き方として好みの動き方を選択することができる。
 <変形例4>
 オブジェクトおよび操作子の少なくとも一方が滑りやすい表面特性を有するものである場合、互いの接触時の滑りによる操作子の移動量を推定し、操作子のめり込み防止のための表示制御によって得られた操作子の表示位置をその滑りによる移動分だけ移動させてもよい。
 <変形例5>
 仮想空間に手の形態による複数の操作子を表示させる場合に、動作検出デバイスより与えられるユーザからの指令をもとに複数の操作子のスケールを変更するようにしてもよい。制御部は、変更された操作子のスケールに合せて、操作子のめり込み防止のための表示制御、オブジェクトから操作子を離す操作に対する操作子の表示制御を行う。
 <変形例6>
 操作子のめり込み防止のための表示制御が発動されるとき、力覚提示デバイスを用いてユーザに力のフィードバックを与えるようにしてもよい。これにより、操作子の表示位置が計算位置から操作子が移動してきた方向とは逆方向に移動した感覚をユーザに提示することができる。
 <変形例7>
 本開示の操作子のめり込み防止のための表示制御およびオブジェクトから操作子を離す操作に対する表示制御は、オブジェクトが別の物体の裏に隠れているなど、表示上ユーザの視界に入らない場合には、無効にとなるように制御されてよい。これにより制御部のCPUの無駄な演算が実行されずにすみ、CPUの負担を軽減することができる。
 <変形例8>
 操作子のめり込み防止の表示制御において、操作子はオブジェクトに外接する位置に表示されることとしたが、オブジェクトに近接する位置であってもよい。
 また、本開示の技術に係るオブジェクトから操作子を離す操作に対する表示制御は、必ずしも、第1の実施形態で説明した操作子のめり込み防止のための表示制御、あるいは第2の実施形態で説明した複数の操作子のめり込み防止のための表示制御と組み合わせて用いられることに限定されない。
 例えば、オブジェクトに操作子が入り込んできた位置に、操作子をオブジェクトと外接して、あるいは近接して表示させる方法と、本開示の技術に係るオブジェクトから操作子を離す操作に対する表示制御とを組み合わせてもよい。
 あるいは、オブジェクト内の操作子の計算位置と最も近い位置に、操作子をオブジェクトと外接して、あるいは近接して表示させる方法と、本開示の技術に係るオブジェクトから操作子を離す操作に対する表示制御とを組み合わせてもよい。
 本開示の技術は、VR(Virtual Reality)に分野に限らず、AR(Augmented Reality)の分野においても有効である。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 なお、本技術は以下のような構成もとることができる。
(1)表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
 ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーと
 を具備する情報処理装置。
(2)上記(1)に記載の情報処理装置であって、
 前記コントローラーは、
 前記第1の仮想オブジェクトの前記基準位置の移動ベクトルおよび前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置との差分ベクトルをもとに、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作に伴う前記第1の仮想オブジェクトの表示位置を更新するための制御量を算出するように構成された
 情報処理装置。
(3)上記(1)または(2)に記載の情報処理装置であって、
 前記コントローラーは、
 前記ユーザの操作入力に基づく基準位置をもとに、複数の前記第1の仮想オブジェクトを前記仮想空間内に表示する場合、前記複数の第1の仮想オブジェクトの少なくとも一部の第1の仮想オブジェクトの前記仮想空間内の前記基準位置が前記第2の仮想オブジェクト内にあるとき、前記複数の第1の仮想オブジェクトの間に決められた相対的な位置関係の拘束条件下で、前記第2の仮想オブジェクトに外接する位置に前記一部の第1の仮想オブジェクトを表示させるように構成された
 情報処理装置。
(4)上記(3)に記載の情報処理装置であって、
 前記コントローラーは、
 前記第2の仮想オブジェクトから前記複数の第1の仮想オブジェクトを離す操作に伴って、前記拘束条件を守りながら、前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記複数の第1の仮想オブジェクトの表示位置を制御するように構成された
 情報処理装置。
(5)上記(1)または(2)に記載の情報処理装置であって、
 前記コントローラーは、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の位置に移動させる操作が判定されたとき、前記第1の仮想オブジェクトの移動過程で前記第2の仮想オブジェクトと外接する位置に前記第1の仮想オブジェクトを表示させるように構成された
 情報処理装置。
(6)上記(1)または(2)に記載の情報処理装置であって、
 前記コントローラーは、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクトの外から前記第2の仮想オブジェクト内の第1の位置に移動させる操作が判定されたとき、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の第1の位置に移動させる過程で前記第2の仮想オブジェクトと外接する第2の位置に前記第1の仮想オブジェクトを表示させ、
 前記第2の位置に表示された前記第1の仮想オブジェクトが外接する前記第2の仮想オブジェクトの輪郭線に対する第1の法線方向を求め、
 前記第1の位置から前記第1の法線方向にある前記第2の仮想オブジェクトの前記輪郭線に対する第2の法線方向を求め、
 前記第1の位置から前記第2の法線方向にある前記第2の仮想オブジェクトの輪郭線に外接する第3の位置に前記第1の仮想オブジェクトの表示位置を更新し、
 前記第1の仮想オブジェクトの表示位置を更新するための処理を収束まで繰り返すように構成された
 情報処理装置。
(7)表示制御部が、表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成し、
 コントローラーが、ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御する
 情報処理方法。
(8)上記(7)に記載の情報処理方法であって、
 前記コントローラーは、
 前記第1の仮想オブジェクトの前記基準位置の移動ベクトルおよび前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置との差分ベクトルをもとに、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作に伴う前記第1の仮想オブジェクトの表示位置を更新するための制御量を算出する
 情報処理方法。
(9)上記(7)または(8)に記載の情報処理方法であって、
 前記コントローラーは、
 前記ユーザの操作入力に基づく基準位置をもとに、複数の前記第1の仮想オブジェクトを前記仮想空間内に表示する場合、前記複数の第1の仮想オブジェクトの少なくとも一部の第1の仮想オブジェクトの前記仮想空間内の前記基準位置が前記第2の仮想オブジェクト内にあるとき、前記複数の第1の仮想オブジェクトの間に決められた相対的な位置関係の拘束条件下で、前記第2の仮想オブジェクトに外接する位置に前記一部の第1の仮想オブジェクトを表示させる
 情報処理方法。
(10)上記(9)に記載の情報処理方法であって、
 前記コントローラーは、
 前記第2の仮想オブジェクトから前記複数の第1の仮想オブジェクトを離す操作に伴って、前記拘束条件を守りながら、前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記複数の第1の仮想オブジェクトの表示位置を制御する
 情報処理方法。
(11)上記(7)または(8)に記載の情報処理方法であって、
 前記コントローラーは、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の位置に移動させる操作が判定されたとき、前記第1の仮想オブジェクトの移動過程で前記第2の仮想オブジェクトと外接する位置に前記第1の仮想オブジェクトを表示させる
 情報処理方法。
(12)上記(7)または(8)に記載の情報処理方法であって、
 前記コントローラーは、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクトの外から前記第2の仮想オブジェクト内の第1の位置に移動させる操作が判定されたとき、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の第1の位置に移動させる過程で前記第2の仮想オブジェクトと外接する第2の位置に前記第1の仮想オブジェクトを表示させ、
 前記第2の位置に表示された前記第1の仮想オブジェクトが外接する前記第2の仮想オブジェクトの輪郭線に対する第1の法線方向を求め、
 前記第1の位置から前記第1の法線方向にある前記第2の仮想オブジェクトの前記輪郭線に対する第2の法線方向を求め、
 前記第1の位置から前記第2の法線方向にある前記第2の仮想オブジェクトの輪郭線に外接する第3の位置に前記第1の仮想オブジェクトの表示位置を更新し、
 前記第1の仮想オブジェクトの表示位置を更新するための処理を収束まで繰り返す
 情報処理方法。
(13)表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
 ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーとして
 コンピュータを動作させるプログラム。
(14)上記(13)に記載のプログラムであって、
 前記コントローラーにて、
 前記第1の仮想オブジェクトの前記基準位置の移動ベクトルおよび前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置との差分ベクトルをもとに、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作に伴う前記第1の仮想オブジェクトの表示位置を更新するための制御量を算出するように
 コンピュータを動作させるプログラム。
(15)上記(13)または(14)に記載のプログラムであって、
 前記コントローラーにて、
 前記ユーザの操作入力に基づく基準位置をもとに、複数の前記第1の仮想オブジェクトを前記仮想空間内に表示する場合、前記複数の第1の仮想オブジェクトの少なくとも一部の第1の仮想オブジェクトの前記仮想空間内の前記基準位置が前記第2の仮想オブジェクト内にあるとき、前記複数の第1の仮想オブジェクトの間に決められた相対的な位置関係の拘束条件下で、前記第2の仮想オブジェクトに外接する位置に前記一部の第1の仮想オブジェクトを表示させるように
 コンピュータを動作させるプログラム。
(16)上記(15)に記載のプログラムであって、
 前記コントローラーにて、
 前記第2の仮想オブジェクトから前記複数の第1の仮想オブジェクトを離す操作に伴って、前記拘束条件を守りながら、前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記複数の第1の仮想オブジェクトの表示位置を制御するように
 コンピュータを動作させるプログラム。
(17)上記(13)または(14)に記載のプログラムであって、
 前記コントローラーにて、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の位置に移動させる操作が判定されたとき、前記第1の仮想オブジェクトの移動過程で前記第2の仮想オブジェクトと外接する位置に前記第1の仮想オブジェクトを表示させるように
 コンピュータを動作させるプログラム。
(18)上記(13)または(14)に記載のプログラムであって、
 前記コントローラーて、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクトの外から前記第2の仮想オブジェクト内の第1の位置に移動させる操作が判定されたとき、
 前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の第1の位置に移動させる過程で前記第2の仮想オブジェクトと外接する第2の位置に前記第1の仮想オブジェクトを表示させ、
 前記第2の位置に表示された前記第1の仮想オブジェクトが外接する前記第2の仮想オブジェクトの輪郭線に対する第1の法線方向を求め、
 前記第1の位置から前記第1の法線方向にある前記第2の仮想オブジェクトの前記輪郭線に対する第2の法線方向を求め、
 前記第1の位置から前記第2の法線方向にある前記第2の仮想オブジェクトの輪郭線に外接する第3の位置に前記第1の仮想オブジェクトの表示位置を更新し、
 前記第1の仮想オブジェクトの表示位置を更新するための処理を収束まで繰り返すように
 コンピュータを動作させるプログラム。
 1…情報処理システム
 2…オブジェクト
 3…操作子
 10…情報処理装置
 20…表示デバイス
 30…動作検出デバイス
 101…制御部
 102…操作部
 103…記憶部
 104…表示インタフェース
 105…入力インタフェース

Claims (8)

  1.  表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
     ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーと
     を具備する情報処理装置。
  2.  請求項1に記載の情報処理装置であって、
     前記コントローラーは、
     前記第1の仮想オブジェクトの前記基準位置の移動ベクトルおよび前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置との差分ベクトルをもとに、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作に伴う前記第1の仮想オブジェクトの表示位置を更新するための制御量を算出するように構成された
     情報処理装置。
  3.  請求項2に記載の情報処理装置であって、
     前記コントローラーは、
     前記ユーザの操作入力に基づく基準位置をもとに、複数の前記第1の仮想オブジェクトを前記仮想空間内に表示する場合、前記複数の第1の仮想オブジェクトの少なくとも一部の第1の仮想オブジェクトの前記仮想空間内の前記基準位置が前記第2の仮想オブジェクト内にあるとき、前記複数の第1の仮想オブジェクトの間に決められた相対的な位置関係の拘束条件下で、前記第2の仮想オブジェクトに外接する位置に前記一部の第1の仮想オブジェクトを表示させるように構成された
     情報処理装置。
  4.  請求項3に記載の情報処理装置であって、
     前記コントローラーは、
     前記第2の仮想オブジェクトから前記複数の第1の仮想オブジェクトを離す操作に伴って、前記拘束条件を守りながら、前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記複数の第1の仮想オブジェクトの表示位置を制御するように構成された
     情報処理装置。
  5.  請求項1に記載の情報処理装置であって、
     前記コントローラーは、
     前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の位置に移動させる操作が判定されたとき、前記第1の仮想オブジェクトの移動過程で前記第2の仮想オブジェクトと外接する位置に前記第1の仮想オブジェクトを表示させるように構成された
     情報処理装置。
  6.  請求項1に記載の情報処理装置であって、
     前記コントローラーは、
     前記第1の仮想オブジェクトを前記第2の仮想オブジェクトの外から前記第2の仮想オブジェクト内の第1の位置に移動させる操作が判定されたとき、
     前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の第1の位置に移動させる過程で前記第2の仮想オブジェクトと外接する第2の位置に前記第1の仮想オブジェクトを表示させ、
     前記第2の位置に表示された前記第1の仮想オブジェクトが外接する前記第2の仮想オブジェクトの輪郭線に対する第1の法線方向を求め、
     前記第1の位置から前記第1の法線方向にある前記第2の仮想オブジェクトの前記輪郭線に対する第2の法線方向を求め、
     前記第1の位置から前記第2の法線方向にある前記第2の仮想オブジェクトの輪郭線に外接する第3の位置に前記第1の仮想オブジェクトの表示位置を更新し、
     前記第1の仮想オブジェクトの表示位置を更新するための処理を収束まで繰り返すように構成された
     情報処理装置。
  7.  表示制御部が、表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成し、
     コントローラーが、ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御する
     情報処理方法。
  8.  表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
     ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーとして
     コンピュータを動作させるプログラム。
PCT/JP2017/010598 2016-03-31 2017-03-16 情報処理装置、表示制御方法及びプログラム WO2017169827A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/087,394 US11301031B2 (en) 2016-03-31 2017-03-16 Information processing apparatus and display control method to control a display position of a virtual object
CN201780019351.9A CN108885523A (zh) 2016-03-31 2017-03-16 信息处理设备、显示控制方法和程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-070142 2016-03-31
JP2016070142A JP2017182532A (ja) 2016-03-31 2016-03-31 情報処理装置、表示制御方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2017169827A1 true WO2017169827A1 (ja) 2017-10-05

Family

ID=59964380

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/010598 WO2017169827A1 (ja) 2016-03-31 2017-03-16 情報処理装置、表示制御方法及びプログラム

Country Status (4)

Country Link
US (1) US11301031B2 (ja)
JP (1) JP2017182532A (ja)
CN (1) CN108885523A (ja)
WO (1) WO2017169827A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019082853A1 (ja) 2017-10-26 2019-05-02 株式会社ソニー・インタラクティブエンタテインメント 画像処理装置、画像処理方法およびプログラム
KR20210069491A (ko) * 2019-12-03 2021-06-11 삼성전자주식회사 전자 장치 및 이의 제어 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014072576A (ja) * 2012-09-27 2014-04-21 Kyocera Corp 表示装置および制御方法
JP2015061616A (ja) * 2014-11-05 2015-04-02 任天堂株式会社 ゲームプログラムおよびゲーム装置
WO2015156068A1 (ja) * 2014-04-10 2015-10-15 ソニー株式会社 画像処理装置及び画像処理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472047B2 (en) 1997-05-12 2008-12-30 Immersion Corporation System and method for constraining a graphical hand from penetrating simulated graphical objects
US20060277466A1 (en) * 2005-05-13 2006-12-07 Anderson Thomas G Bimodal user interaction with a simulated object
CN102314285B (zh) 2010-07-01 2016-05-04 上海本星电子科技有限公司 虚拟物品拿取系统
JP5589625B2 (ja) 2010-07-08 2014-09-17 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
JP5656514B2 (ja) * 2010-08-27 2015-01-21 キヤノン株式会社 情報処理装置及び方法
EP2903265A4 (en) 2012-09-27 2016-05-18 Kyocera Corp DISPLAY DEVICE, CONTROL METHOD, AND CONTROL PROGRAM
JP6499900B2 (ja) 2015-04-06 2019-04-10 日本放送協会 力覚制御装置及び力覚提示装置
CN105159459B (zh) 2015-09-06 2018-09-14 东南大学 一种可用于移动终端的虚拟物体三维形状触觉再现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014072576A (ja) * 2012-09-27 2014-04-21 Kyocera Corp 表示装置および制御方法
WO2015156068A1 (ja) * 2014-04-10 2015-10-15 ソニー株式会社 画像処理装置及び画像処理方法
JP2015061616A (ja) * 2014-11-05 2015-04-02 任天堂株式会社 ゲームプログラムおよびゲーム装置

Also Published As

Publication number Publication date
US20210200301A1 (en) 2021-07-01
JP2017182532A (ja) 2017-10-05
US11301031B2 (en) 2022-04-12
CN108885523A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
US11402902B2 (en) Gesture based user interfaces, apparatuses and systems using eye tracking, head tracking, hand tracking, facial expressions and other user actions
US20220121344A1 (en) Methods for interacting with virtual controls and/or an affordance for moving virtual objects in virtual environments
CN109690447B (zh) 信息处理方法、用于使计算机执行该信息处理方法的程序、以及计算机
EP3425481B1 (en) Control device
US20230154122A1 (en) Methods for manipulating objects in an environment
US20190265802A1 (en) Gesture based user interfaces, apparatuses and control systems
US10583359B2 (en) Systems and methods for providing haptic effects related to touching and grasping a virtual object
TW202105133A (zh) 在人工實境環境中使用周邊裝置的虛擬使用者介面
TW202101172A (zh) 用於人工實境系統的手臂視線驅動的使用者介面元件閘控
KR101548156B1 (ko) 촉감과 관절 저항감을 동시에 전달하는 무선 외골격 햅틱 인터페이스 장치 및 그 구성 방법
TW202105129A (zh) 具有用於閘控使用者介面元件的個人助理元件之人工實境系統
TW202101170A (zh) 用於人工實境系統的角點識別手勢驅動的使用者介面元件閘控
JP2018113025A (ja) 触覚によるコンプライアンス錯覚のためのシステム及び方法
EP3499344A1 (en) Haptically-enabled peripheral usable for two-dimensional and three-dimensional tracking
KR20190059726A (ko) 가상현실 환경에서의 사용자와 객체 간 상호 작용 처리 방법
WO2017169827A1 (ja) 情報処理装置、表示制御方法及びプログラム
US20230142242A1 (en) Device for Intuitive Dexterous Touch and Feel Interaction in Virtual Worlds
WO2021172580A1 (ja) 位置・力制御システム、装着ユニット、制御ユニット、位置・力制御方法及びプログラム
JP4665172B2 (ja) 対話型インターフェース方式および対話型インターフェース用プログラム
EP3660631A1 (en) Variable curvature interactive devices
JP2022140141A (ja) 情報処理システム、情報処理プログラム、及び情報処理方法
JP2019134880A (ja) プログラム及びゲーム装置
Tang A Study of Velocity-Dependent JND of Haptic Model Detail

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 17774371

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17774371

Country of ref document: EP

Kind code of ref document: A1