public MMAnimationClip CreateNewMMAnimationClip(AnimationClip clip) { Debug.Log("Creating Asset"); string path = "Assets/Resources/ScriptableClips"; if (!AssetDatabase.IsValidFolder(path)) { if (!AssetDatabase.IsValidFolder("Assets/Resources")) { AssetDatabase.CreateFolder("Assets", "Resources"); } AssetDatabase.CreateFolder("Assets/Resources", "ScriptableClips"); } MMAnimationClip animationAsset = CreateInstance <MMAnimationClip>(); animationAsset = CreateOrReplaceAsset(animationAsset, path + "/" + clip.name + ".asset"); animationAsset.frameRate = config.frameRate; animationAsset.Length = (int)clip.length * config.frameRate; animationAsset.animClip = clip; animationAsset.baseTrajectory = CreateBaseTrajectoryArray(clip); animationAsset.basePoses = CreateBasePoseArray(clip); animationAsset.PreformatData(); //AssetDatabase.CreateAsset(w, path + "/asset12321.asset"); AssetDatabase.SaveAssets(); return(animationAsset); }
public override void OnInspectorGUI() { MMAnimationClip mmClip = (MMAnimationClip)target; GUILayout.Label("Clip name: " + mmClip.animClip.name); GUILayout.Label("Animation Length: " + mmClip.animClip.length + "s"); GUILayout.Label("Processed frames: " + mmClip.Length); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); mmPreProcessor = (MMPreProcessor)target; AnimationClip myClip = mmPreProcessor.clip; if (GUILayout.Button("Preprocess")) { //Debug.Log("Amount of clips : " + mmPreProcessor.name); mmPreProcessor.PreProcess(); //AssetDatabase.GetAssetPath(); } if (GUI.changed) { if (mmPreProcessor.clip != null) { // mmPreProcessor.CreateBasePose(mmPreProcessor.clip); MMAnimationClip container = mmPreProcessor.CreateNewMMAnimationClip(mmPreProcessor.clip); if (mmPreProcessor.mmAnimationClips.Contains(container)) { int index = System.Array.IndexOf(mmPreProcessor.mmAnimationClips, container); mmPreProcessor.mmAnimationClips[index] = container; List <MMAnimationClip> tempList = mmPreProcessor.mmAnimationClips.ToList(); for (var i = tempList.Count - 1; i > -1; i--) { if (tempList[i] == null) { tempList.RemoveAt(i); } } mmPreProcessor.mmAnimationClips = tempList.ToArray(); } else { List <MMAnimationClip> tempList = mmPreProcessor.mmAnimationClips.ToList(); tempList.Add(container); for (var i = tempList.Count - 1; i > -1; i--) { if (tempList[i] == null) { tempList.RemoveAt(i); } } mmPreProcessor.mmAnimationClips = tempList.ToArray(); } mmPreProcessor.clip = null; EditorUtility.SetDirty(mmPreProcessor); } } }