コード例 #1
0
        //Transform chestTargetTransform;

        public override void Start(HumanoidControl _humanoid, Transform targetTransform)
        {
            base.Start(_humanoid, targetTransform);
            neuronTracker = handTarget.humanoid.neuronTracker;
            tracker       = neuronTracker;

            //if (handTarget.humanoid.hipsTarget.chest.target.transform != null) {
            //    chestTargetTransform = handTarget.humanoid.hipsTarget.chest.target.transform;
            //}
            //else {
            //    chestTargetTransform = handTarget.humanoid.hipsTarget.hips.target.transform;
            //}

            if (neuronTracker.device == null)
            {
                return;
            }

            Side side = handTarget.isLeft ? Side.Left : Side.Right;

            shoulderSensor = neuronTracker.device.GetBone(0, side, SideBone.Shoulder);
            upperArmSensor = neuronTracker.device.GetBone(0, side, SideBone.UpperArm);
            forearmSensor  = neuronTracker.device.GetBone(0, side, SideBone.Forearm);
            handSensor     = neuronTracker.device.GetBone(0, side, SideBone.Hand);

            for (int i = 0; i < (int)Finger.Count; i++)
            {
                StartFinger(side, handTarget.fingers.allFingers[i], i);
            }
        }
コード例 #2
0
        public override void Start(HumanoidControl _humanoid, Transform targetTransform)
        {
            base.Start(_humanoid, targetTransform);
            neuronTracker = headTarget.humanoid.neuronTracker;
            tracker       = neuronTracker;

            if (neuronTracker.device == null)
            {
                return;
            }

            headSensor = neuronTracker.device.GetBone(0, Bone.Head);
        }
コード例 #3
0
        public void CalibrateWithHands(SensorBone leftHandSensor, SensorBone rightHandSensor)
        {
            Vector3 avgHandPosition = (leftHandSensor.position + rightHandSensor.position) / 2;

            Vector3 targetLeftHandPosition  = humanoid.leftHandTarget.hand.target.transform.position;
            Vector3 targetRightHandPosition = humanoid.rightHandTarget.hand.target.transform.position;
            Vector3 targetAvgHandPosition   = (targetLeftHandPosition + targetRightHandPosition) / 2;

            Vector3 delta = targetAvgHandPosition - avgHandPosition;

            trackerTransform.position += (delta * 0.01F);

            // Just positional calibration for now
        }
コード例 #4
0
        public override void Start(HumanoidControl _humanoid, Transform targetTransform)
        {
            base.Start(_humanoid, targetTransform);
            astraTracker = headTarget.humanoid.astra;
            tracker      = astraTracker;

            if (astraTracker.device == null)
            {
                return;
            }

            neckSensor = astraTracker.device.GetBone(0, Bone.Neck);
            headSensor = astraTracker.device.GetBone(0, Bone.Head);
        }
コード例 #5
0
        public override void Start(HumanoidControl _humanoid, Transform targetTransform)
        {
            base.Start(_humanoid, targetTransform);

            kinectTracker = hipsTarget.humanoid.kinect1;
            tracker       = kinectTracker;

            if (kinectTracker.device == null)
            {
                return;
            }

            hipsSensor  = kinectTracker.device.GetBone(0, Bone.Hips);
            spineSensor = kinectTracker.device.GetBone(0, Bone.Spine);
        }
コード例 #6
0
        public override void Start(HumanoidControl _humanoid, Transform targetTransform)
        {
            base.Start(_humanoid, targetTransform);
            neuronTracker = hipsTarget.humanoid.neuronTracker;
            tracker       = neuronTracker;

            if (neuronTracker.device == null)
            {
                return;
            }

            hipsSensor  = neuronTracker.device.GetBone(0, Bone.Hips);
            spineSensor = neuronTracker.device.GetBone(0, Bone.Spine);
            chestSensor = neuronTracker.device.GetBone(0, Bone.Chest);
        }
コード例 #7
0
        public override void Start(HumanoidControl _humanoid, Transform targetTransform)
        {
            base.Start(_humanoid, targetTransform);
            astraTracker = handTarget.humanoid.astra;
            tracker      = astraTracker;

            if (astraTracker.device == null)
            {
                return;
            }

            Side side = handTarget.isLeft ? Side.Left : Side.Right;

            upperArmSensor = astraTracker.device.GetBone(0, side, SideBone.UpperArm);
            forearmSensor  = astraTracker.device.GetBone(0, side, SideBone.Forearm);
            handSensor     = astraTracker.device.GetBone(0, side, SideBone.Hand);
        }
コード例 #8
0
        public void CalibrateWithHeadAndHands(SensorBone headSensor, SensorBone leftHandSensor, SensorBone rightHandSensor)
        {
            Vector3 trackingNormal = TrackingNormal(humanoid.headTarget.head.target.transform.position, humanoid.leftHandTarget.transform.position, humanoid.rightHandTarget.transform.position);

            Vector3 TrackingSensorsNormal = TrackingNormal(headSensor.position, leftHandSensor.position, rightHandSensor.position);

            Quaternion rotation = Quaternion.FromToRotation(TrackingSensorsNormal, trackingNormal);
            float      rotY     = Angle.Normalize(rotation.eulerAngles.y);
            float      rotX     = Angle.Normalize(rotation.eulerAngles.x);

            trackerTransform.RotateAround(humanoid.headTarget.head.target.transform.position, humanoid.up, rotY * 0.01F);
            trackerTransform.RotateAround(humanoid.headTarget.head.target.transform.position, humanoid.transform.right, rotX * 0.01F);

            Vector3 delta = humanoid.headTarget.head.target.transform.position - headSensor.position;

            trackerTransform.transform.position += (delta * 0.01F);
        }
コード例 #9
0
        public override void Start(HumanoidControl _humanoid, Transform targetTransform)
        {
            base.Start(_humanoid, targetTransform);
            neuronTracker = footTarget.humanoid.neuronTracker;
            tracker       = neuronTracker;

            if (neuronTracker.device == null)
            {
                return;
            }

            Side side = footTarget.isLeft ? Side.Left : Side.Right;

            upperLegSensor = neuronTracker.device.GetBone(0, side, SideBone.UpperLeg);
            lowerLegSensor = neuronTracker.device.GetBone(0, side, SideBone.LowerLeg);
            footSensor     = neuronTracker.device.GetBone(0, side, SideBone.Foot);
        }
コード例 #10
0
        public override void Start(HumanoidControl _humanoid, Transform targetTransform)
        {
            base.Start(_humanoid, targetTransform);
            leapTracker = handTarget.humanoid.leapTracker;
            tracker     = leapTracker;

            if (leapTracker.device == null)
            {
                return;
            }

            Side side = handTarget.isLeft ? Side.Left : Side.Right;

            forearmSensor = leapTracker.device.GetBone(0, side, SideBone.Forearm);
            handSensor    = leapTracker.device.GetBone(0, side, SideBone.Hand);

            for (int i = 0; i < (int)Finger.Count; i++)
            {
                StartFinger(side, handTarget.fingers.allFingers[i], i);
            }
        }
コード例 #11
0
        public void CalibrateWithHands(SensorBone leftSensor, SensorBone rightSensor)
        {
            Vector3 astraLeftHandPosition  = leftSensor.position;
            Vector3 astraRightHandPosition = rightSensor.position;
            Vector3 astraAvgHandPosition   = (astraLeftHandPosition + astraRightHandPosition) / 2;

            Debug.DrawLine(astraLeftHandPosition, astraRightHandPosition, Color.red);

            Vector3 targetLeftHandPosition  = humanoid.leftHandTarget.hand.target.transform.position;
            Vector3 targetRightHandPosition = humanoid.rightHandTarget.hand.target.transform.position;
            Vector3 targetAvgHandPosition   = (targetLeftHandPosition + targetRightHandPosition) / 2;

            Debug.DrawLine(targetLeftHandPosition, targetRightHandPosition, Color.magenta);

            Vector3 delta = targetAvgHandPosition - astraAvgHandPosition;

            Debug.DrawRay(astraAvgHandPosition, delta, Color.blue);

            trackerTransform.position += (delta * 0.01F);

            // Just positional calibration for now
        }
コード例 #12
0
        public void CalibrateWithHead(SensorBone headSensor)
        {
            Vector3 delta = humanoid.headTarget.head.target.transform.position - headSensor.position;

            trackerTransform.position += (delta * 0.01F);
        }
コード例 #13
0
        public void CalibrateWithHead(SensorBone headSensor)
        {
            Vector3 delta = humanoid.headTarget.head.target.transform.position - device.GetBonePosition(0, Bone.Head);

            trackerTransform.position += (delta * 0.01F);
        }