public override void UpdateTracker() { if (!enabled) { return; } if (RealsenseDevice.present) { //if ((humanoid.leftHandTarget.realsenseHand.enabled && humanoid.leftHandTarget.realsenseHand.status == Status.Tracking) || // (humanoid.rightHandTarget.realsenseHand.enabled && humanoid.rightHandTarget.realsenseHand.status == Status.Tracking)) // status = Status.Tracking; //else status = Status.Present; } else { status = Status.Unavailable; } realsenseDevice.position = Target.ToVector(trackerTransform.transform.position); realsenseDevice.orientation = Target.ToRotation(trackerTransform.transform.rotation); RealsenseDevice.Update(); }
public override void StartTracker(HumanoidControl humanoid) { base.StartTracker(humanoid); if (!enabled) { return; } RealsenseDevice.Start(); }
private void UpdateBones() { Vector localNeckPosition = RealsenseDevice.GetFaceLocalPosition(); neck.position = device.ToWorldPosition(localNeckPosition); neck.confidence.position = RealsenseDevice.GetFaceTargetConfidence(); Rotation localNeckRotation = RealsenseDevice.GetFaceLocalOrientation(); neck.rotation = localNeckRotation; neck.confidence.rotation = RealsenseDevice.GetFaceTargetConfidence(); }
private void DrawFace() { //Debug.DrawRay(headTarget.neck.target.transform.position + Target.ToVector3(RealsenseDevice.facePosition), Vector3.up, Color.red); Vector point; Vector3 referencePoint = headTarget.face.nose.tip.target.transform.position; for (int i = 0; i < RealsenseDevice.FacePointsCount(); i++) { if (RealsenseDevice.GetFacePoint(i, out point)) { Vector3 facePoint = Target.ToVector3(point) + headTarget.head.target.transform.position; Debug.DrawRay(facePoint, Vector3.forward * 0.01F); } } }
public override Status Update() { if (RealsenseDevice.GetFaceTargetConfidence() <= 0) { status = RealsenseDevice.present ? Status.Present : Status.Unavailable; return(status); } status = Status.Tracking; if (headTracking) { UpdateBones(); } return(status); }
private void UpdateEyes() { Debug.Log("A"); if (headTarget.unityVRHead.camera == null) { return; } float eyesTurnLeft = RealsenseDevice.GetFaceExpression(RealsenseDevice.FaceExpression.EyesTurnLeft); float eyesTurnRight = RealsenseDevice.GetFaceExpression(RealsenseDevice.FaceExpression.EyesTurnRight); float eyesX = eyesTurnRight - eyesTurnLeft; float eyesUp = RealsenseDevice.GetFaceExpression(RealsenseDevice.FaceExpression.EyesUp); float eyesDown = RealsenseDevice.GetFaceExpression(RealsenseDevice.FaceExpression.EyesDown); float eyesY = eyesDown - eyesUp; Vector3 lookDirection = headTarget.unityVRHead.camera.ViewportPointToRay(new Vector3(eyesX, eyesY, 2)).direction; headTarget.face.SetGazeDirection(lookDirection, 0.8F); Debug.Log("B"); }
public override void Calibrate() { RealsenseDevice.Calibrate(); }