Пример #1
0
        private void StartFinger(Side side, FingersTarget.TargetedFinger finger, int fingerIx)
        {
            SideBone sideBoneId = BoneReference.HumanoidSideBone((Finger)fingerIx, FingerBone.Proximal);

            fingerSensors[fingerIx, 0] = neuronTracker.device.GetBone(0, side, sideBoneId);

            sideBoneId = BoneReference.HumanoidSideBone((Finger)fingerIx, FingerBone.Intermediate);
            fingerSensors[fingerIx, 1] = neuronTracker.device.GetBone(0, side, sideBoneId);

            sideBoneId = BoneReference.HumanoidSideBone((Finger)fingerIx, FingerBone.Distal);
            fingerSensors[fingerIx, 2] = neuronTracker.device.GetBone(0, side, sideBoneId);
        }
Пример #2
0
        private void UpdateLeapFinger(FingersTarget.TargetedFinger finger, int fingerIx)
        {
            Leap.Finger leapFinger       = leapHand.Fingers[fingerIx];
            Quaternion  proximalRotation = leapFinger.Bone(Leap.Bone.BoneType.TYPE_PROXIMAL).Rotation.ToQuaternion();

            finger.proximal.target.transform.rotation = proximalRotation * Quaternion.AngleAxis(handTarget.isLeft ? 90 : -90, Vector3.up);

            Quaternion intermediateRotation = leapFinger.Bone(Leap.Bone.BoneType.TYPE_INTERMEDIATE).Rotation.ToQuaternion();

            finger.intermediate.target.transform.rotation = intermediateRotation * Quaternion.AngleAxis(handTarget.isLeft ? 90 : -90, Vector3.up);

            Quaternion distalRotation = leapFinger.Bone(Leap.Bone.BoneType.TYPE_DISTAL).Rotation.ToQuaternion();

            finger.distal.target.transform.rotation = distalRotation * Quaternion.AngleAxis(handTarget.isLeft ? 90 : -90, Vector3.up);
        }
Пример #3
0
 private void UpdateFinger(FingersTarget.TargetedFinger finger, int fingerIx)
 {
     finger.proximal.target.transform.localRotation     = GetFingerRotation(openVRController, fingerIx, 0);
     finger.intermediate.target.transform.localRotation = GetFingerRotation(openVRController, fingerIx, 1);
     finger.distal.target.transform.localRotation       = GetFingerRotation(openVRController, fingerIx, 2);
 }
Пример #4
0
 private void UpdateFinger(Quaternion baseRotation, FingersTarget.TargetedFinger finger, int fingerIx)
 {
     finger.proximal.target.transform.rotation     = baseRotation * fingerSensors[fingerIx, 0].rotation;
     finger.intermediate.target.transform.rotation = baseRotation * fingerSensors[fingerIx, 1].rotation;
     finger.distal.target.transform.rotation       = baseRotation * fingerSensors[fingerIx, 2].rotation;
 }