Пример #1
0
    private void OnFacesChanged(ARFacesChangedEventArgs obj)
    {
        logText.text = "# of faces: " + obj.updated.Count + "\n";

        foreach (ARFace face in obj.updated)
        {
            mainId = face.trackableId;

            if (!faceAnimExports.ContainsKey(face.trackableId))
            {
                var newFaceAnimExport = new FaceAnimExportEntity();
                newFaceAnimExport.uvs       = face.uvs.Select(uv => new MyVec2(uv)).ToList();
                newFaceAnimExport.indices   = face.indices.ToList();
                newFaceAnimExport.keyframes = new List <AnimKeyframe>();

                faceAnimExports.Add(face.trackableId, newFaceAnimExport);
            }

            var faceAnimExport = faceAnimExports[face.trackableId];
            var keyframe       = new AnimKeyframe
            {
                position = new float[] { face.transform.position.x, face.transform.position.y, face.transform.position.z },
                rotation = new float[] { face.transform.rotation.x, face.transform.rotation.y, face.transform.rotation.z, face.transform.rotation.w },
                vertices = face.vertices.Select(vert => new MyVec3(vert)).ToList()
            };
            faceAnimExport.keyframes.Add(keyframe);
            //If recording record voice
        }
    }
Пример #2
0
    private void Start()
    {
        faceAnim = JsonUtility.FromJson <FaceAnimExportEntity>(faceData.text);

        mesh = new Mesh();
        GetComponent <MeshFilter>().mesh = mesh;
        Debug.Log("Got " + faceAnim.keyframes.Count + " frames.");
        Debug.Log("The face has " + faceAnim.keyframes[0].vertices.Count + " vertices");
    }