void Update() { if (kinectManager == null || sensorData == null || sensorData.sensorInterface == null) { return; } long userId = kinectManager.GetUserIdByIndex(playerIndex); Kinect2Interface k2int = (Kinect2Interface)sensorData.sensorInterface; for (int i = 0; i < sensorData.bodyCount; i++) { if (k2int.faceFrameSources != null && k2int.faceFrameSources[i] != null && k2int.faceFrameSources[i].TrackingId == (ulong)userId) { if (k2int.faceFrameResults != null && k2int.faceFrameResults[i] != null) { Windows.Kinect.DetectionResult newStatus = k2int.faceFrameResults [i].FaceProperties [Microsoft.Kinect.Face.FaceProperty.Happy]; if (newStatus != Windows.Kinect.DetectionResult.Unknown) { smileStatus = newStatus; } debugText.text = "Smile-status: " + smileStatus; } } } }
void Start() { Kinect2Interface sensorInterface = KinectManager.Instance.GetSensorData().sensorInterface as Kinect2Interface; Windows.Kinect.KinectSensor kinectSensor = sensorInterface != null ? sensorInterface.kinectSensor : null; if (kinectSensor != null) { this.audioSource = kinectSensor.AudioSource; this.audioReader = audioSource.OpenReader(); Debug.Log("AudioSource IsActive: " + audioSource.IsActive); if (audioReader != null) { Debug.Log("KinectAudio successfully initialized."); } else { Debug.Log("KinectAudio initialization failed."); } } }
void Update () { // get reference to the Kinect2Interface if(k2interface == null) { manager = KinectManager.Instance; if(manager && manager.IsInitialized()) { KinectInterop.SensorData sensorData = manager.GetSensorData(); if(sensorData != null && sensorData.sensorInterface != null) { k2interface = (Kinect2Interface)sensorData.sensorInterface; } } } // get the face points if(k2interface != null && k2interface.faceFrameResults != null) { if(manager != null && manager.IsUserDetected()) { ulong userId = (ulong)manager.GetPrimaryUserID(); for(int i = 0; i < k2interface.faceFrameResults.Length; i++) { if(k2interface.faceFrameResults[i] != null && k2interface.faceFrameResults[i].TrackingId == userId) { facePoints = k2interface.faceFrameResults[i].FacePointsInColorSpace; break; } } } } }
void Update() { // get reference to the Kinect2Interface if (k2interface == null) { manager = KinectManager.Instance; if (manager && manager.IsInitialized()) { KinectInterop.SensorData sensorData = manager.GetSensorData(); if (sensorData != null && sensorData.sensorInterface != null) { k2interface = (Kinect2Interface)sensorData.sensorInterface; } } } // get the face points if (k2interface != null && k2interface.faceFrameResults != null) { if (manager != null && manager.IsUserDetected()) { ulong userId = (ulong)manager.GetPrimaryUserID(); for (int i = 0; i < k2interface.faceFrameResults.Length; i++) { if (k2interface.faceFrameResults[i] != null && k2interface.faceFrameResults[i].TrackingId == userId) { facePoints = k2interface.faceFrameResults[i].FacePointsInColorSpace; break; } } } } }
private bool InitVisualGestures() { KinectManager kinectManager = KinectManager.Instance; KinectInterop.SensorData sensorData = kinectManager != null?kinectManager.GetSensorData() : null; Kinect2Interface kinectInterface = sensorData.sensorInterface as Kinect2Interface; KinectSensor kinectSensor = kinectInterface != null ? kinectInterface.kinectSensor : null; if (kinectSensor == null) { return(false); } if (gestureDatabase == string.Empty) { Debug.LogError("Please specify gesture database file!"); return(false); } // copy the gesture database file from Resources, if available if (!File.Exists(gestureDatabase)) { TextAsset textRes = Resources.Load(gestureDatabase, typeof(TextAsset)) as TextAsset; if (textRes != null && textRes.bytes.Length != 0) { File.WriteAllBytes(gestureDatabase, textRes.bytes); } } // create the vgb source vgbFrameSource = VisualGestureBuilderFrameSource.Create(kinectSensor, 0); // open the reader vgbFrameReader = vgbFrameSource != null?vgbFrameSource.OpenReader() : null; if (vgbFrameReader != null) { vgbFrameReader.IsPaused = true; } using (VisualGestureBuilderDatabase database = VisualGestureBuilderDatabase.Create(gestureDatabase)) { if (database == null) { Debug.LogError("Gesture database not found: " + gestureDatabase); return(false); } // check if we need to load all gestures bool bAllGestures = (gestureNames.Count == 0); foreach (Gesture gesture in database.AvailableGestures) { bool bAddGesture = bAllGestures || gestureNames.Contains(gesture.Name); if (bAddGesture) { string sGestureName = gesture.Name; vgbFrameSource.AddGesture(gesture); if (!gestureNames.Contains(sGestureName)) { gestureNames.Add(sGestureName); } if (!gestureData.ContainsKey(sGestureName)) { VisualGestureData data = new VisualGestureData(); data.gestureName = sGestureName; data.timestamp = Time.realtimeSinceStartup; data.isDiscrete = (gesture.GestureType == GestureType.Discrete); data.isContinuous = (gesture.GestureType == GestureType.Continuous); gestureData.Add(sGestureName, data); } } } } return(true); }
void Update() { // get reference to the Kinect2Interface if(k2interface == null) { manager = KinectManager.Instance; if(manager && manager.IsInitialized()) { KinectInterop.SensorData sensorData = manager.GetSensorData(); if(sensorData != null && sensorData.sensorInterface != null) { k2interface = (Kinect2Interface)sensorData.sensorInterface; } } } // get the face points if(k2interface != null && k2interface.faceFrameResults != null) { if(manager != null && manager.IsUserDetected()) { ulong userId = (ulong)manager.GetPrimaryUserID(); for(int i = 0; i < k2interface.faceFrameResults.Length; i++) { if(k2interface.faceFrameResults[i] != null && k2interface.faceFrameResults[i].TrackingId == userId) { facePoints = k2interface.faceFrameResults[i].FacePointsInColorSpace; break; } } } } if(manager && manager.IsInitialized() && k2interface != null) { long userId = manager.GetPrimaryUserID(); if(manager.IsJointTracked(userId, (int)KinectInterop.JointType.Head)) { //Vector3 headPos = manager.GetJointPosition(userId, (int)KinectInterop.JointType.Head); string sStatus = string.Empty; // string.Format("Head: {0}\n", headPos); Vector2 facePointColor = GetFacePoint(facePoint); if(facePointColor != Vector2.zero && !float.IsInfinity(facePointColor.x) && !float.IsInfinity(facePointColor.y)) { Vector2 facePointDepth = manager.MapColorPointToDepthCoords(facePointColor, true); if(facePointDepth != Vector2.zero && !float.IsInfinity(facePointDepth.x) && !float.IsInfinity(facePointDepth.y)) { ushort depthValue = manager.GetDepthForPixel((int)facePointDepth.x, (int)facePointDepth.y); Vector3 facePointPos = manager.MapDepthPointToSpaceCoords(facePointDepth, depthValue, true); facePointTransform.position = facePointPos; sStatus += string.Format("{0}: {1}", facePoint, facePointPos); } } if(faceInfoText) { faceInfoText.text = sStatus; } } } }
void Update() { // get reference to the Kinect2Interface if (k2interface == null) { manager = KinectManager.Instance; if (manager && manager.IsInitialized()) { KinectInterop.SensorData sensorData = manager.GetSensorData(); if (sensorData != null && sensorData.sensorInterface != null) { k2interface = (Kinect2Interface)sensorData.sensorInterface; } } } // get the face points if (k2interface != null && k2interface.faceFrameResults != null) { if (manager != null && manager.IsUserDetected()) { ulong userId = (ulong)manager.GetPrimaryUserID(); for (int i = 0; i < k2interface.faceFrameResults.Length; i++) { if (k2interface.faceFrameResults[i] != null && k2interface.faceFrameResults[i].TrackingId == userId) { facePoints = k2interface.faceFrameResults[i].FacePointsInColorSpace; break; } } } } if (manager && manager.IsInitialized() && k2interface != null) { long userId = manager.GetPrimaryUserID(); if (manager.IsJointTracked(userId, (int)KinectInterop.JointType.Head)) { //Vector3 headPos = manager.GetJointPosition(userId, (int)KinectInterop.JointType.Head); string sStatus = string.Empty; // string.Format("Head: {0}\n", headPos); Vector2 facePointColor = GetFacePoint(facePoint); if (facePointColor != Vector2.zero && !float.IsInfinity(facePointColor.x) && !float.IsInfinity(facePointColor.y)) { Vector2 facePointDepth = manager.MapColorPointToDepthCoords(facePointColor, true); if (facePointDepth != Vector2.zero && !float.IsInfinity(facePointDepth.x) && !float.IsInfinity(facePointDepth.y)) { ushort depthValue = manager.GetDepthForPixel((int)facePointDepth.x, (int)facePointDepth.y); Vector3 facePointPos = manager.MapDepthPointToSpaceCoords(facePointDepth, depthValue, true); facePointTransform.position = facePointPos; sStatus += string.Format("{0}: {1}", facePoint, facePointPos); } } if (faceInfoText) { faceInfoText.text = sStatus; } } } }