private void Reset() { if (!searchNearPlayer) { searchNearPlayer = gameObject.GetComponent <SearchNearPlayer>(); } if (!facialController) { facialController = GameObject.FindWithTag("Model").GetComponent <FacialController>(); } if (!headLookController) { headLookController = GameObject.FindWithTag("Model").GetComponent <HeadLookController>(); } if (!anime) { anime = GameObject.FindWithTag("Model").GetComponent <Animator>(); } }
static void Run() { GameObject go = Selection.activeGameObject; string assetBundleName = "avatars/" + go.name; if (go.tag == "Avatar") { // //Duplicate avatar prefab // Object objectRoot = PrefabUtility.GetPrefabParent (go); // Object newGo = PrefabUtility.InstantiatePrefab (objectRoot); // AssetDatabase.Refresh (); //Set AssetBundle name of avatar string path = AssetDatabase.GetAssetPath(go); AssetImporter ai = AssetImporter.GetAtPath(path); Debug.Log(ai.assetBundleName); ai.assetBundleName = assetBundleName; //Write facial weights into text file FacialController fc = go.GetComponent <FacialController> (); string textPath = path.Replace(".prefab", string.Empty) + "_facialExpressions.txt"; Debug.Log(textPath); StreamWriter sw = new StreamWriter(textPath, true); for (int i = 0; i < fc.expressionTargets.Length; i++) { sw.WriteLine(fc.expressionTargets[i] + "," + fc.expressionWeights[i]); } sw.Close(); AssetDatabase.Refresh(); AssetImporter textai = AssetImporter.GetAtPath(textPath); textai.assetBundleName = assetBundleName; //Remove all components RecursivelyRemoveComponents(go.transform); } }
public void StartHMDSetup(GameObject _avatar, string skeletonName, string faceExpressions) { StartBasicSetup(_avatar); fc = _avatar.AddComponent(typeof(FacialController)) as FacialController; fc.photonView = pv; fc.OtherMeshes = new Transform[0]; IterateAndAddComponentsToThroughChildren(_avatar.transform, true); IterateAndAssignValuesDependenciesInChildren(_avatar.transform); pv.ObservedComponents.Add(fc); pv.ObservedComponents.Add(shp); pm.localOptitrackAnimator.SkeletonAssetName = skeletonName; pm.remoteOptitrackAnimator.SkeletonAssetName = skeletonName; pm.localOptitrackAnimator.enabled = true; pm.remoteOptitrackAnimator.enabled = true; fc.expressionTargets = new string[faceExpressions.Split('\n').Length - 1]; fc.expressionWeights = new float[fc.expressionTargets.Length]; for (int i = 0; i < faceExpressions.Split('\n').Length - 1; i++) { string[] entries = GetLine(faceExpressions, i).Split(','); fc.expressionTargets [i] = entries [0]; fc.expressionWeights [i] = float.Parse(entries [1]); } }
void OnEnable() { fc = (FacialController)target; }