VG_FingerAnimator is a public script that can be used to overwrite (“post-animate”) grasps that are generated by VirtualGrasp. The goal of it is to specify on which Hand side of which Avatar(s), a set of selected Finger(s) and their Bone(s) are to be rotated to certain Rotation from their initial poses. And multiple Finger Animation clips can be added together to create complex animations combining individual bones rotating to different angles.
Besides the GUI interface, VG_FingerAnimator.DriveAnimation(float) public function is provided to enable dynamically driving finger animation. For example, this function can listen to the On Driven event of VG_AnimationDriver to move fingers through a controller input.
Two major use cases can be covered by this component:
Animating in-hand manipulation of articulated objects
Since grasps generated by VG are static hand poses on individual solid objects, to enable finger movement post grasping an object, this VG_FingerAnimator component can be used. VG onboarding task9 shows a detailed tutorial of how to enable in-hand manipulation of pliers using this component together with VG_ObjectAnimator and VG_AnimationDriver.
Correcting primary grasps
When VG_GraspEditor is used to add primary grasps on an object, sometimes it is difficult to find the exact grasp pose desired. VG_FingerAnimator can be used in such cases to make minor corrections of finger poses on the added primary grasps. To do it, add VG_FingerAnimator component to the object transform, and specify which hand and finger bones to animate and how much to rotate from the primary grasp poses. And also make sure to assign Interactable Object to be this transform in order to only enable animation when this object is grasped.