Esempio n. 1
0
    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.");
            }
        }
    }
Esempio n. 3
0
	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;
					}
				}
			}
		}

	}
Esempio n. 4
0
    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;
                }
            }
        }
    }
Esempio n. 7
0
    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;
                }
            }
        }
    }