Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
            }
        }
    }