Skip to content

Image Plane Pointing

Ian edited this page Nov 3, 2018 · 14 revisions

Overview

Image-plane allows a user to simply grab an object ‘out of the air’ as if its right in front of you on a 2D plane even if it is in 3D. There are quite a few variations of this technique. We are implementing “sticky finger” and “Framing hands”. Sticky finger: Sticky finger allows selection by using an invisible ray cast through the users eye/camera and into the controller (the users finger). By allowing selection like this it gives the illusion that the user is grabbing the object out of the air in 2D.

Framing hands: Framing hands utilizes a similar method and illusion to sticky finger except that the user has two controllers. The user can place one controller above the object, and one below as if they are creating a picture frame of the object. Then when they select the object found in that frame is selected.

Source paper of the technique:

Pierce, J., A. Forsberg, M. Conway, S. Hong, R. Zeleznik, and M. Mine (1997). “Image Plane Interaction Techniques in 3D Immersive Environments.” Proceedings of the 1997 ACM Symposium on Interactive 3D Graphics (I3D ‘97), 39–44


Use by manually attaching

StickyHand:

To manually attach the Image Plane Pointing to the Camerarig VR components if the auto-attach fails:

  • Drag onto ImagePlane_Stickyhand script:
    • Camera eye onto Camera Head
    • Camera Rig onto Camera Rig
    • Right VR controller onto Right controller
    • Left VR controller onto Left controller

Framing Hands:

To manually attach the Image Plane Pointing to the Camerarig VR components if the auto-attach fails for each hand:

  • Drag onto ImagePlane_Framinghand script:
    • Camera eye onto Camera Head
    • Camera Rig onto Camera Rig
    • Right VR controller onto Right controller
    • Left VR controller onto Left controller

Inspector parameters

For Stickyhand ImagePlane_StickyHand Script:

Parameter Default Description
Interaction Layers PickableObject The layers that the technique can interact with
Selected Object None The last selected object by stickyhand
Currently Pointing At None The object hovered by the stickyhand
Laser Prefab InvisLaser Laser showing where stickyhand is aiming
SelectedObject None Currently selected object
Selected Object() Empty Invoked when object is selected
Dropped Object() Empty Invoked when object is Dropped
Hovered() Empty Event Invoked when an object is hovered over
UnHovered() Empty Event Invoked when an object ceases being hovered over

For Stickyhand ImagePlane_FramingHands Script:

Parameter Default Description
Interaction Layers PickableObject The layers that the technique can interact with
Currently Pointing At None The object hovered by the framing hands
Selected Object() Empty Invoked when object is selected
Hovered() Empty Event Invoked when an object is hovered over
UnHovered() Empty Event Invoked when an object ceases being hovered over
Point of Interaction InteractionPoint Shows a dot in between the hands that i the interaction point
Laser Prefab InvisLaser Laser showing where framinghand is aiming
Selected Object None The last selected object by framinghand

Test/Example scenes

Major example scene under:

  • Assets/Technique Example Scenes/Scenes/ImagePlaneStickyHandsExample
  • Assets/Technique Example Scenes/Scenes/ImagePlaneFramingHandsExample

Clone this wiki locally