示例#1
0
    void readFile(string fileName)
    {
        //List config files
        string[] lines = System.IO.File.ReadAllLines(@"Assets\" + fileName);// dirty because Assets is inside Assets....<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

        ReadFaceFile       readFace    = GetComponent <ReadFaceFile>();
        SkinnedFaceTracing skinnedFace = GetComponent <SkinnedFaceTracing>();
        FaceMorpher        faceMorpher = GetComponent <FaceMorpher>();

        print(" <<<Load Anim File>>> ");

        faceMorpher.resetFaceStates();

        for (int i = 1; i < lines.Length; i++)
        {
            string[] spl      = lines[i].Split('_');
            string   faceName = spl[0];
            int      frame    = int.Parse(spl[1]);

            string cleanName = cleanInput(faceName, 7);

            readFace.loadFace(cleanName);
            Vector3[] faceV = skinnedFace.returnCurrentFace();
            faceMorpher.addFaceState(frame, faceV, faceName);
            //print("WE GET FACE V LENGTH " + faceV.Length);
        }
    }
示例#2
0
    public void saveFaceFile(string fileName)
    {
        print(" save Face File ");

        List <string> lines = new List <string>();

        SkinnedFaceTracing faceTracing = GetComponent <SkinnedFaceTracing>();

        indexLinks = faceTracing.returnIndexLinks();
        SkinnedMeshRenderer smr = fbxGuy.GetComponent <SkinnedMeshRenderer>();

        Vector3[] vertices = smr.sharedMesh.vertices;

        for (int i = 0; i < vertices.Length; i++)
        {
            if (indexIsInFace(i))
            {
                Vector3 v    = vertices[i];
                string  line = i + "_" + v.x + "_" + v.y + "_" + v.z;
                lines.Add(line);
            }
        }

        System.IO.File.WriteAllLines("Assets/FaceFiles/" + fileName + ".txt", lines.ToArray());
    }
示例#3
0
 void Start()
 {
     filesNames = new List <string>();
     // previewTrackingPoints = new List<GameObject>();
     faceTracing  = GetComponent <SkinnedFaceTracing>();
     faceModeller = GetComponent <SkinnedFaceModeller>();
     listFiles();
 }
示例#4
0
 public void initMorphing()
 {
     faces       = new List <FaceState>();
     skinnedGUI  = GetComponent <SkinnedGUIOptions>();
     faceTracing = GetComponent <SkinnedFaceTracing>();
     Vector3[] currentFace = faceTracing.returnCurrentFace();
     //faces.Add(new FaceState(0, currentFace));
     distances = new Vector3[currentFace.Length];
 }
示例#5
0
    // Use this for initialization
    void Start()
    {
        smr = fbxGuy.transform.GetComponent <SkinnedMeshRenderer>();
        sft = GetComponent <SkinnedFaceTracing>();

        m = smr.sharedMesh;


        vertices = m.vertices;


        DecorateMesh();
        //StartCoroutine(DecorateMesh());
    }
示例#6
0
    // Use this for initialization
    void Start()
    {
        vertexIndexes = new List <int>();
        meshVertices  = new List <Vector3>();
        faceTracing   = GetComponent <SkinnedFaceTracing>();
        smr           = fbxGuy.GetComponent <SkinnedMeshRenderer>();
        m             = smr.sharedMesh;

        for (int i = 0; i < m.vertices.Length; i++)
        {
            meshVertices.Add(m.vertices[i]);
        }

        guiOptions = GetComponent <SkinnedGUIOptions>();
        bakedAnimationController = GetComponent <BakedAnimationController>();
    }
示例#7
0
    // Use this for initialization
    void Start()
    {
        float rdiv = 2;

        rw = Screen.width / rdiv;
        rh = Screen.height / rdiv;
        rx = (Screen.width - rw) / 2;
        ry = (Screen.height - rh) / 2;

        if (hairObject)
        {
            hairGenerator = hairObject.GetComponent <HairGenerator>();
        }


        faceTracing = GetComponent <SkinnedFaceTracing>();

        modes = new List <string>();
        modes.Add("Object");
        modes.Add("Edit");
        modes.Add("Interpolate");
        modes.Add("Bake");
        modes.Add("Skin");
        modes.Add("Hair");


        skin        = fbxGuy.GetComponent <SkinnedMeshRenderer>();
        gridScript2 = GetComponent <HumanGrid2>();

        modificatorModes = new List <string>();

        inputField.SetActive(false);
        faceNameField.SetActive(false);

        mr = colorTest.GetComponent <MeshRenderer>();

        modificatorModes.Add("Y/Z translate");
        modificatorModes.Add("Y Saw");
        modificatorModes.Add("Y Curve");
        modificatorModes.Add("Expand");

        //enableDisableSliders(editable);
        setHairSliderStatus(false);
    }
示例#8
0
    void OnGUI()
    {
        //float sX = Screen.width / 20;
        //float sW = Screen.width;
        //float sY = Screen.height - Screen.height / 8;
        //float sH = Screen.height / 8;

        //GUI.Button(new Rect(0, sY, sW, sH), "");



        Rect renderRect = new Rect(rx, ry, rw, rh);

        if (!fullScreen)
        {
            GUI.DrawTexture(renderRect, renderCam);
        }


        float modeW = 100;
        float modeY = 140;

        for (int i = 0; i < modes.Count; i++)
        {
            GUI.color = Color.white;
            if (i == modeValue)
            {
                GUI.color = Color.yellow;
            }
            if (GUI.Button(new Rect(0 + modeW * i, modeY, modeW, 30), modes[i]))
            {
                modeValue = i;
                selectionMode();
            }
        }

        GUI.color = Color.white;

        switch (modeValue)
        {
        case 0:    //SELECTION MODE

            //CHANGE HUMAN SKIN OPACITY
            if (GUI.Button(new Rect(20, 20, 100, 30), "Change Skin"))
            {
                skinId++;
                if (skinId % 2 == 1)
                {
                    skin.material = translucentSkin;
                }
                else
                {
                    skin.material = basicSkin;
                }
            }

            if (GUI.Button(new Rect(20, 60, 100, 30), "Switch Opacity"))
            {
                opacityArg++;
                SkinnedFaceTracing faceTracing = GetComponent <SkinnedFaceTracing>();
                Material           opacityMaterial;
                opacityMaterial = opaque;
                if (opacityArg % 2 == 1)
                {
                    opacityMaterial = transparent;
                }
                faceTracing.switchOpacity(opacityMaterial, opacityArg);
            }



            if (GUI.Button(new Rect(20, 150, 100, 30), "Save Group"))
            {
                saveGroup   = true;
                fieldActive = !fieldActive;
                inputField.SetActive(fieldActive);
                faceNameField.SetActive(false);
            }

            GUI.Button(new Rect(20, 250, 150, 30), "Strength:" + power);

            if (saveGroup)
            {
                if (Input.GetKeyDown(KeyCode.Return))
                {
                    fieldActive = false;
                    InputField field     = inputField.GetComponent <InputField>();
                    string     fieldText = field.text;
                    if (fieldText.Length > 0)
                    {
                        saveGroupFile(faceTracing.returnVertexIndexes(), faceTracing.returnTrackingStrengths(), fieldText);
                    }
                    saveGroup = false;
                    inputField.SetActive(false);
                }
            }


            if (GUI.Button(new Rect(20, 280, 100, 30), "Save Face"))
            {
                saveFace       = true;
                saveFaceActive = !saveFaceActive;
                faceNameField.SetActive(saveFaceActive);
                inputField.SetActive(false);
            }

            if (saveFace)
            {
                if (Input.GetKeyDown(KeyCode.Return))
                {
                    print("try to");
                    saveFaceActive = false;
                    InputField field     = faceNameField.GetComponent <InputField>();
                    string     fieldText = field.text;

                    if (fieldText.Length > 0)
                    {
                        saveFaceFile(fieldText);
                    }

                    saveFace = false;
                    faceNameField.SetActive(false);
                }
            }


            break;


        case 1:    //EDIT MODE

            if (GUI.Button(new Rect(20, 100, 100, 30), "Show Grid"))
            {
                gridScript2.SwitchVisibleStatus();
                gridScript2.SwitchVisibleTracking();
            }

            float hM = 30;
            float wM = 120;
            float yM = Screen.height - modificatorModes.Count * hM;
            for (int i = 0; i < modificatorModes.Count; i++)
            {
                GUI.color = Color.white;
                if (i == modificatorModeValue)
                {
                    GUI.color = Color.green;
                }

                if (GUI.Button(new Rect(0, yM, wM, hM), modificatorModes[i]))
                {
                    modificatorModeValue = i;
                }

                yM += hM;
            }


            break;
        }

        if (Input.GetKey(KeyCode.X))
        {
            if (power > 0)
            {
                power--;
            }
        }

        if (Input.GetKey(KeyCode.C))
        {
            if (power < 100)
            {
                power++;
            }
        }
    }