-
Notifications
You must be signed in to change notification settings - Fork 6
Fishing Reel
Overview
The Fishing Reel technique is a pointing technique extension of Ray-Casting developed by Bowman and Hodges (1997). Much like Ray-Casting, the Fishing Reel technique uses a virtual ray which the user points at virtual objects to select them. After selection, the user is able to reel an object back and forth using an input mechanism. In our implementation, we use the HTC Vive touchpad and Oculus Rift joysticks to control the distance of the object.
Current implementation of Fishing Reel as of 3/06/2018 (NOTE: This may be modified/changed later)
Source paper of the technique:
Bowman, D., and L. Hodges (1997). “An Evaluation of Techniques for Grabbing and Manipulating Remote Objects in Immersive Virtual Environments.” Proceedings of the 1997 ACM Symposium on Interactive 3D Graphics (I3D ‘97), 35–38.
Use by manually attaching
To manually attach the Fishing Reel to the Camerarig VR components if the auto-attach fails:
- Drag onto FishingReel script:
- Left controller onto left controller
- Right controller onto right controller
Inspector parameters
For Fishing Reel Script:
| Parameter | Default | Description |
|---|---|---|
| Intractable Layer | PickableObject | The layers that the technique can interact with |
| Laser Prefab | Laser | Laser representing the fishing reel which is projected out of the controller |
| Interaction Type | Selection | When set to manipulation Fishing reel can move objects up and down the reel via parenting. When pure selection it will just send an event that it has selected and place the object into a public variable. |
| Controller Picked | Right_Controller | The controller this technique works with |
| 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 |
| Last Selected Object | None | The last object selected by the fishing reel |
| Reel speed | 40 | Speed objects will scroll up and down the cast fishingreel |
Class methods
reelObject(GameObject obj) - Parameter obj is the object which has been selected using a simple ray-casting technique. The object will be able to be reeled back and forth based on the users touchpad input.
PickupObject(GameObject obj) - Parameter obj is the object which is intersecting the virtual ray. When pulling the trigger, the object attaches to the controller allowing the user to manipulate the object. Pulling the trigger again, will then release the object.
ShowLaser(RaycastHit hit) - RaycastHit hit is the object which is being hit by the laser. This method Generates the position and scale of the laser based on the position of the controller, and targeted object.
Test/Example scenes
FishingReelScene 1
- A simple scene which consists of some 3D objects in a non-dense environment
Major example scene under:
- Assets/Technique Example Scenes/FishingReelExample
Wiki
Hand Grasping
Enhanced Grasping
Volume-based Pointing
Enhanced Pointing
Symmetric Bi-manual
Asymmetric Bi-manual
Progressive refinement
