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); } }
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; }
// 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); }
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); }
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); }
public virtual void ShowSensor(HumanoidTarget target, bool shown) { }