Ejemplo n.º 1
0
        // This function ensures that the avatar is on the ground. It will adjust the tracking root vertically
        private void FootOnGroundCheck(FootTarget footTarget)
        {
            if (footSensor.rotationConfidence <= 0.1F)
            {
                return;
            }

            HipsTarget hipsTarget    = footTarget.humanoid.hipsTarget;
            float      upperLegAngle = Quaternion.Angle(hipsTarget.hips.target.transform.rotation, footTarget.upperLeg.target.transform.rotation);
            float      lowerLegAngle = Quaternion.Angle(footTarget.upperLeg.target.transform.rotation, footTarget.lowerLeg.target.transform.rotation);
            float      angle         = upperLegAngle + lowerLegAngle;

            if (angle < 20)   // stretched leg
            {
                float footY = footTarget.foot.target.transform.position.y - footTarget.soleThicknessFoot;
                float diff  = footY - hipsTarget.humanoid.transform.position.y;
                neuronTracker.trackerTransform.Translate(0, -diff, 0);
            }
        }
Ejemplo n.º 2
0
        private void FusePosition()
        {
            HipsTarget hipsTarget = headTarget.humanoid.hipsTarget;

            hipsTarget.chest.target.length = 0.4F;

            Vector3 neuronNeckPos = hipsTarget.chest.target.transform.position + hipsTarget.chest.target.transform.rotation * Vector3.up * (hipsTarget.chest.target.length - 0.08F);

            Vector3 externalNeckPos = headTarget.neck.target.transform.position;

            if (headTarget.head.target.confidence.position > headTarget.neck.target.confidence.position)
            {
                Vector3 externalHeadPos = headTarget.head.target.transform.position;
                externalNeckPos = externalHeadPos + headTarget.neck.target.transform.rotation * Vector3.down * headTarget.neck.target.length;
            }
            Vector3 resultNeckPos = Vector3.Lerp(neuronNeckPos, externalNeckPos, beta * Time.deltaTime);

            Vector3 deltaPos = resultNeckPos - neuronNeckPos;

            tracker.trackerTransform.transform.Translate(deltaPos, Space.World);
        }
 public HipsTargetProps(SerializedObject serializedObject, HipsTarget hipsTarget)
     : base(serializedObject, hipsTarget.astra, hipsTarget, "astra")
 {
 }
Ejemplo n.º 4
0
 public HipsTargetProps(SerializedObject serializedObject, HipsTarget hipsTarget)
     : base(serializedObject, hipsTarget.neuron, hipsTarget, "neuron")
 {
 }
Ejemplo n.º 5
0
 public HipsTargetProps(SerializedObject serializedObject, HipsTarget hipsTarget)
     : base(serializedObject, hipsTarget.kinect1, hipsTarget, "kinect1")
 {
 }