The following is derived from a discussion with ethan.fight4dream on the VRTK slack.
To convert from a generic grab handle to distinct left and right grab handles, you will need to do the following.
- Duplicate the GenericOrientationHandle.
- Rename each (as LeftOrientationHandle and RightOrientationHandle).
- Offset the handle objects (likely on the x-axis) somewhat so that you can tell if things are working correctly later.
- In the parent OrientationHandles object, GameObjectRelationObservableList, make sure that both orientation handles are listed as elements (the keys will be null and the values will be LeftOrientationHandle and RightOrientationHandle)
- Set the keys to the matching AttachmentOrigin GameObjects from your VR Setup / Rig (these are children of Interaction.Grabbing - Left/Right ControllerAlias).
- In Interactable.GrabAction.FollowAction, in GrabInteractableFollowAction, set Grab Offset enum to Orientation Handle
- In SetupFollow, in GameObjectEventProxyEmitter, change GameObjectRelations.DoGetValue(int) to GameObjectRelations.DoGetValue (Dynamic)
After completing this list, you should have functional L/R Grab handles by having effectively created a relationship map between your attachment points and the orientation handles.