Esempio n. 1
0
        private void DrawFingerTargetRig(HandTarget handTarget, TargetedFinger finger)
        {
            if (handTarget == null)
            {
                return;
            }

            if (finger.proximal.target != null)
            {
                HumanoidTarget.DrawTarget(finger.proximal.target.confidence, finger.proximal.target.transform, handTarget.outward, 0.03F);
            }
            if (finger.intermediate.target != null)
            {
                HumanoidTarget.DrawTarget(finger.intermediate.target.confidence, finger.intermediate.target.transform, handTarget.outward, 0.02F);
            }
            if (finger.distal.target != null)
            {
                HumanoidTarget.DrawTarget(finger.distal.target.confidence, finger.distal.target.transform, handTarget.outward, 0.02F);
            }
        }
Esempio n. 2
0
        private static HumanoidControl GetHumanoid(HumanoidTarget target)
        {
            HumanoidControl foundHumanoid = target.transform.GetComponentInParent <HumanoidControl>();

            if (foundHumanoid != null)
            {
                return(foundHumanoid);
            }

            HumanoidControl[] humanoids = GameObject.FindObjectsOfType <HumanoidControl>();

            for (int i = 0; i < humanoids.Length; i++)
            {
                if (humanoids[i].headTarget.transform == target.transform)
                {
                    foundHumanoid = humanoids[i];
                }
            }

            return(foundHumanoid);
        }
        protected virtual void UpdateFoot(LegSensor legSensor)
        {
            if (footTarget.foot.target.transform != null)
            {
                if (legSensor.foot.confidence.position > 0)
                {
                    footTarget.foot.target.transform.position = HumanoidTarget.ToVector3(legSensor.foot.position);
                }
                else
                {
                    footTarget.foot.target.transform.position = footTarget.lowerLeg.target.transform.position + footTarget.lowerLeg.target.transform.rotation * Vector3.down * footTarget.lowerLeg.bone.length;
                }

                if (legSensor.foot.confidence.rotation > 0)
                {
                    footTarget.foot.target.transform.rotation = HumanoidTarget.ToQuaternion(legSensor.foot.rotation);
                }

                footTarget.foot.target.confidence = legSensor.foot.confidence;
            }
        }
        private void UpdateArmIK(ArmSensor armSensor)
        {
            Vector3    handTargetPosition = handTarget.hand.target.transform.position;
            Quaternion handTargetRotation = handTarget.hand.target.transform.rotation;

            Vector3 forearmUpAxis = HumanoidTarget.ToQuaternion(armSensor.upperArm.rotation) * Vector3.up;

            if (handTarget.upperArm.target.confidence.rotation < 0.9F)
            {
                handTarget.upperArm.target.transform.rotation = ArmMovements.UpperArmRotationIK(handTarget.upperArm.target.transform.position, handTargetPosition, forearmUpAxis, handTarget.upperArm.target.length, handTarget.forearm.target.length, handTarget.isLeft);
                handTarget.upperArm.target.confidence         = armSensor.upperArm.confidence;
            }

            if (handTarget.forearm.target.confidence.rotation < 0.9F)
            {
                handTarget.forearm.target.transform.rotation = ArmMovements.ForearmRotationIK(handTarget.forearm.target.transform.position, handTargetPosition, forearmUpAxis, handTarget.isLeft);
                handTarget.forearm.target.confidence         = armSensor.forearm.confidence;
            }

            handTarget.hand.target.transform.rotation  = handTargetRotation;
            handTarget.hand.target.confidence.rotation = armSensor.hand.confidence.rotation;
        }
Esempio n. 5
0
        // Do not remove this, this is dynamically called from Target_Editor!
        public static HipsTarget CreateTarget(HumanoidTarget oldTarget)
        {
            GameObject      targetObject    = new GameObject("Hips Target");
            Transform       targetTransform = targetObject.transform;
            HumanoidControl humanoid        = oldTarget.humanoid;

            targetTransform.parent   = oldTarget.humanoid.transform;
            targetTransform.position = oldTarget.transform.position;
            targetTransform.rotation = oldTarget.transform.rotation;

            HipsTarget hipsTarget = targetTransform.gameObject.AddComponent <HipsTarget>();

            hipsTarget.humanoid = humanoid;
            humanoid.hipsTarget = hipsTarget;

            hipsTarget.RetrieveBones();
            hipsTarget.InitAvatar();
            hipsTarget.MatchTargetsToAvatar();
            //hipsTarget.NewComponent(oldTarget.humanoid);
            //hipsTarget.InitComponent();

            return(hipsTarget);
        }
Esempio n. 6
0
 public virtual void Start(HumanoidControl _humanoid, HumanoidTarget _target)
 {
 }
 private static void ReceiveTarget2(this IHumanoidNetworking networking, byte targetMask, HumanoidControl.TargetId targetId, HumanoidTarget target, Vector3 receivedHumanoidPosition, float deltaPoseTime)
 {
     if (IsTargetActive(targetMask, targetId))
     {
         target.EnableAnimator(false);
         Vector3 transformPosition = target.transform.position;
         ReceiveTransform(networking, target.transform);
         if (deltaPoseTime > 0)
         {
             Vector3 receivedLocalPosition = target.transform.position - receivedHumanoidPosition;
             //UnityEngine.Debug.Log(target.transform + " " + (target.humanoid.transform.position.z - target.transform.position.z));
             target.transform.position = target.humanoid.transform.position + receivedLocalPosition;
             target.main.target.confidence.position = 0.6F;
             target.main.target.confidence.rotation = 0.6F;
             target.main.target.CalculateVelocity();
         }
         else
         {
             target.transform.position = transformPosition;
         }
     }
     else
     {
         target.EnableAnimator(true);
     }
 }
 private static void ReceiveTarget(this IHumanoidNetworking networking, byte targetMask, HumanoidControl.TargetId targetId, HumanoidTarget target)
 {
     if (IsTargetActive(targetMask, targetId))
     {
         target.EnableAnimator(false);
         ReceiveTransform(networking, target.transform);
         target.main.target.confidence.position = 0.6F;
         target.main.target.confidence.rotation = 0.6F;
         target.main.target.CalculateVelocity();
     }
     else
     {
         target.EnableAnimator(true);
     }
 }
 protected virtual void UpdateJaw(FaceTarget.TargetedJawBone jaw)
 {
     jaw.target.transform.localRotation = HumanoidTarget.ToQuaternion(jaw.target.rotation);
 }
Esempio n. 10
0
 protected virtual void UpdateCheeks(FaceTarget face)
 {
     face.leftCheek.target.transform.localPosition  = HumanoidTarget.ToVector3(face.leftCheek.target.position);
     face.rightCheek.target.transform.localPosition = HumanoidTarget.ToVector3(face.rightCheek.target.position);
 }
Esempio n. 11
0
 public virtual void ShowSensor(HumanoidTarget target, bool shown)
 {
 }