Beispiel #1
0
        static void SaveDatabase(LipsyncSequenceDatabase database, string path)
        {
            path += "SequenceDatabase.asset";

            LipsyncSequenceDatabase exisitingDatabase = AssetDatabase.LoadMainAssetAtPath(path) as LipsyncSequenceDatabase;

            if (exisitingDatabase != null)
            {
                //if there is data we want to save the user might have altered inside the Unity editor we do it here
                foreach (LipsyncSequence existingSequence in exisitingDatabase.sequences)
                {
                    foreach (LipsyncSequence sequence in database.sequences)
                    {
                        if (sequence.name == existingSequence.name)
                        {
                            sequence.mood = existingSequence.mood;
                        }
                    }
                }

                EditorUtility.CopySerialized(database, exisitingDatabase);
                AssetDatabase.SaveAssets();
            }
            else
            {
                AssetDatabase.CreateAsset(database, path);
            }
        }
Beispiel #2
0
        static void SaveDatabase(LipsyncSequenceDatabase database, string path)
        {
            path += "SequenceDatabase.asset";

            LipsyncSequenceDatabase exisitingDatabase = AssetDatabase.LoadMainAssetAtPath (path) as LipsyncSequenceDatabase;
            if (exisitingDatabase != null)
            {
                //if there is data we want to save the user might have altered inside the Unity editor we do it here
                foreach(LipsyncSequence existingSequence in exisitingDatabase.sequences)
                {
                    foreach(LipsyncSequence sequence in database.sequences)
                    {
                        if(sequence.name == existingSequence.name)
                        {
                            sequence.mood = existingSequence.mood;
                        }
                    }
                }

                EditorUtility.CopySerialized (database, exisitingDatabase);
                AssetDatabase.SaveAssets ();
            }
            else
                AssetDatabase.CreateAsset (database, path);
        }
Beispiel #3
0
        public static LipsyncSequenceDatabase BuildDatabase(DirectoryInfo directory)
        {
            LipsyncSequenceDatabase database = ScriptableObject.CreateInstance <LipsyncSequenceDatabase>();

            DirectoryWalkCallback callback = filePath =>
            {
                string[] lines = File.ReadAllLines(filePath.FullName);
                string   name  = filePath.Name.Replace(LipsyncAutomation.fileEnding, "");

                LipsyncSequence sequence = LipsyncSequenceFactory.BuildSequence(lines, name);

                database.sequences.Add(sequence);
            };

            LipsyncFileUtility.WalkDirectoryRecursively(directory, ".dat", callback);
            return(database);
        }
Beispiel #4
0
        public static void BuildSequenceDatabases(string dataPath, string outputPath)
        {
            string projectPath = Application.dataPath.Replace("Assets", "");

            dataPath = projectPath + dataPath;

            DirectoryInfo dataFolder   = new DirectoryInfo(dataPath);
            DirectoryInfo outputFolder = new DirectoryInfo(outputPath);

            DirectoryInfo[] sceneDataFolders = dataFolder.GetDirectories();

            foreach (DirectoryInfo sceneDataFolder in sceneDataFolders)
            {
                Debug.Log(sceneDataFolder.FullName);

                LipsyncSequenceDatabase database = LipsyncSequenceDatabaseFactory.BuildDatabase(sceneDataFolder);

                SaveDatabase(database, outputPath + "/" + sceneDataFolder.Name);
            }
        }