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); } }
void DecorateMesh() { Transform root = guy.transform.parent; //print(" lossyScale is" + parent.transform.lossyScale); Vector3 initScale = pointCube.transform.localScale; Vector3 lossyScale = childGroup.transform.lossyScale; childGroup.transform.position = guy.transform.position; Vector3 normalizeScale = new Vector3(initScale.x / lossyScale.x, initScale.y / lossyScale.y, initScale.z / lossyScale.z); sft.resetIndexLinks();//reset index links for (int i = 0; i < vertices.Length; i++) { // WE HAD TO TRACKING if (vertices[i].y > startY && vertices[i].z > startZ) { GameObject newCube = GameObject.Instantiate(pointCube); newCube.transform.parent = childGroup.transform; newCube.transform.localScale = normalizeScale; // 100 car on est a 0.01 newCube.transform.position = vertices[i] * guy.transform.localScale.x * 100 * root.transform.localScale.x + guy.transform.position; newCube.transform.name = "newCube" + i; sft.addIndexLink(i); } //loading++; } childGroup.transform.rotation = new Quaternion(0, 0, 0, 0); sft.setVertices(); // sft.linkToTrackingPosition(); // WHEN INDEX LINKING IS DONE , WE CAN INIT THE MORPHING FaceMorpher morpher = GetComponent <FaceMorpher>(); morpher.initMorphing(); }
void OnGUI() { int modeValue = skinnedGui.returnModeValue(); if (modeValue == 2) { if (GUI.Button(new Rect(400, 10, 150, 40), "Save Anim File")) { saving = !saving; animNameInputField.SetActive(saving); } if (saving) { if (Input.GetKeyDown(KeyCode.Return)) { FaceMorpher morpher = GetComponent <FaceMorpher>(); List <string> faceNames = morpher.returnFaceNames(); List <int> frames = morpher.returnFrames(); List <string> lines = new List <string>(); lines.Add("" + morpher.nbFrames); for (int i = 0; i < faceNames.Count; i++) { string line = faceNames[i] + "_" + frames[i]; lines.Add(line); } InputField field = animNameInputField.GetComponent <InputField>(); string fileName = field.text; System.IO.File.WriteAllLines("Assets/AnimFiles/" + fileName + ".txt", lines.ToArray()); saving = false; animNameInputField.SetActive(saving); } } } }