コード例 #1
0
    RaceData CreatRace(UmaTPose umaTpose)//创建Race文件
    {
        if (umaTpose == null)
        {
            return(null);
        }

        RaceData rd       = new RaceData();
        RaceData targetrd = new RaceData();

        rd.expressionSet = expressionSet;

        rd.dnaConverterList    = new DnaConverterBehaviour[2];
        rd.dnaConverterList[0] = dnaConverterBehaviour;
        rd.dnaConverterList[1] = RaceMap.Instance.tutorialDan;

        rd.dnaRanges    = new DNARangeAsset[1];
        rd.dnaRanges[0] = danRange;

        rd.TPose    = umaTpose;
        rd.raceName = objBase.Name;
        string tempPath = string.Format("{0}/{1}_Race.asset", Fold, objBase.Name);

        IObjectBase race = new ObjectBase(tempPath);

        race.CreatAsset(rd);
        return(rd);
    }
コード例 #2
0
        static void ExtractTPose()
        {
            var selectedObjects = Selection.objects;

            if (selectedObjects.Length > 0)
            {
                bool extracted = false;
                foreach (var selectedObject in selectedObjects)
                {
                    var assetPath = AssetDatabase.GetAssetPath(selectedObject);
                    if (!string.IsNullOrEmpty(assetPath))
                    {
                        var modelImporter = AssetImporter.GetAtPath(assetPath) as ModelImporter;
                        if (modelImporter != null)
                        {
                            var asset = UmaTPose.CreateInstance <UMA.UmaTPose>();
                            asset.ReadFromHumanDescription(modelImporter.humanDescription);
                            var name = selectedObject.name;
                            if (name.EndsWith("(Clone)"))
                            {
                                name = name.Substring(0, name.Length - 7);
                                asset.boneInfo[0].name = name;
                                asset.Serialize();
                            }
                            if (!System.IO.Directory.Exists("Assets/UMA/Assets/TPoses"))
                            {
                                System.IO.Directory.CreateDirectory("Assets/UMA/UMA_Assets/TPoses");
                            }
                            AssetDatabase.CreateAsset(asset, "Assets/UMA/UMA_Assets/TPoses/" + name + "_TPose.asset");
                            extracted = true;
                        }
                    }
                }
                if (extracted)
                {
                    AssetDatabase.SaveAssets();
                    return;
                }
            }

            foreach (var animator in Transform.FindObjectsOfType(typeof(Animator)) as Animator[])
            {
                var asset = UmaTPose.CreateInstance <UmaTPose>();
                asset.ReadFromTransform(animator);
                var name = animator.name;
                if (name.EndsWith("(Clone)"))
                {
                    name = name.Substring(0, name.Length - 7);
                    asset.boneInfo[0].name = name;
                    asset.Serialize();
                }
                if (!System.IO.Directory.Exists("Assets/UMA/Assets/TPoses"))
                {
                    System.IO.Directory.CreateDirectory("Assets/UMA/UMA_Assets/TPoses");
                }
                AssetDatabase.CreateAsset(asset, "Assets/UMA/UMA_Assets/TPoses/" + name + "_TPose.asset");
                EditorUtility.SetDirty(asset);
                AssetDatabase.SaveAssets();
            }
        }
コード例 #3
0
    public RaceData CreatTPose()//创建TPose文件
    {
        ModelImporter modelImporter = objBase.importer as ModelImporter;
        UmaTPose      umaTpose      = UmaTPose.CreateInstance <UMA.UmaTPose>();

        modelImporter.animationType = ModelImporterAnimationType.Human;//修改 animation类型 为 humanoid
        modelImporter.SaveAndReimport();
        umaTpose.ReadFromHumanDescription(modelImporter.humanDescription);

        string tempPath = string.Format("{0}/{1}_TPose.asset", Fold, objBase.Name);

        IObjectBase tpose = new ObjectBase(tempPath);

        tpose.CreatAsset(umaTpose);
        return(CreatRace(umaTpose));
    }
コード例 #4
0
 static void ExtractTPose()
 {
     foreach (var animator in Transform.FindObjectsOfType(typeof(Animator)) as Animator[])
     {
         var asset = UmaTPose.CreateInstance <UmaTPose>();
         asset.ReadFromTransform(animator);
         var name = animator.name;
         if (name.EndsWith("(Clone)"))
         {
             name = name.Substring(0, name.Length - 7);
             asset.boneInfo[0].name = name;
             asset.Serialize();
         }
         if (!System.IO.Directory.Exists("Assets/UMA/Assets/TPoses"))
         {
             System.IO.Directory.CreateDirectory("Assets/UMA/UMA_Assets/TPoses");
         }
         AssetDatabase.CreateAsset(asset, "Assets/UMA/UMA_Assets/TPoses/" + name + "_TPose.asset");
         EditorUtility.SetDirty(asset);
         AssetDatabase.SaveAssets();
     }
 }
コード例 #5
0
ファイル: TPoseExtracter.cs プロジェクト: gokudo-graves/UMA-2
        static void ExtractTPose()
        {
            var selectedObjects = Selection.objects;

            if (selectedObjects.Length > 0)
            {
                bool extracted = false;
                foreach (var selectedObject in selectedObjects)
                {
                    var assetPath = AssetDatabase.GetAssetPath(selectedObject);

                    if (!string.IsNullOrEmpty(assetPath))
                    {
                        // Get asset path directory
                        var assetDirectory = new FileInfo(assetPath).Directory.FullName + Path.DirectorySeparatorChar + "TPoses";

                        // Trim off the path at "Assets" to get the relative path to the assets directory
                        assetDirectory = assetDirectory.Substring(assetDirectory.IndexOf("Assets"));

                        var modelImporter = AssetImporter.GetAtPath(assetPath) as ModelImporter;
                        if (modelImporter != null)
                        {
                            var asset = UmaTPose.CreateInstance <UMA.UmaTPose>();
                            asset.ReadFromHumanDescription(modelImporter.humanDescription);
                            var name = selectedObject.name;
                            if (name.EndsWith("(Clone)"))
                            {
                                name = name.Substring(0, name.Length - 7);
                                asset.boneInfo[0].name = name;
                                asset.Serialize();
                            }
                            if (!Directory.Exists(assetDirectory))
                            {
                                Directory.CreateDirectory(assetDirectory);
                            }
                            try
                            {
                                AssetDatabase.CreateAsset(asset, assetDirectory + Path.DirectorySeparatorChar + name + "_TPose.asset");
                            }
                            catch (UnityException e)
                            {
                                Debug.Log(e.ToString());
                            }
                            extracted = true;
                        }
                    }
                }
                if (extracted)
                {
                    AssetDatabase.SaveAssets();
                    return;
                }
            }

            foreach (var animator in Transform.FindObjectsOfType(typeof(Animator)) as Animator[])
            {
                var asset = UmaTPose.CreateInstance <UmaTPose>();
                asset.ReadFromTransform(animator);
                var name = animator.name;
                if (name.EndsWith("(Clone)"))
                {
                    name = name.Substring(0, name.Length - 7);
                    asset.boneInfo[0].name = name;
                    asset.Serialize();
                }
                if (!Directory.Exists("Assets/UMA/UMA_Assets/TPoses"))
                {
                    Directory.CreateDirectory("Assets/UMA/UMA_Assets/TPoses");
                }
                AssetDatabase.CreateAsset(asset, "Assets/UMA/UMA_Assets/TPoses/" + name + "_TPose.asset");
                EditorUtility.SetDirty(asset);
                AssetDatabase.SaveAssets();
            }
        }
コード例 #6
0
        static void ExtractTPose()
        {
            var selectedObjects = Selection.objects;

            if (selectedObjects.Length > 0)
            {
                bool extracted = false;
                foreach (var selectedObject in selectedObjects)
                {
                    var assetPath = AssetDatabase.GetAssetPath(selectedObject);

                    if (!string.IsNullOrEmpty(assetPath))
                    {
                        // Get asset path directory
                        var assetDirectory = new FileInfo(assetPath).Directory.FullName + Path.DirectorySeparatorChar + "TPoses";

                        // Trim off the path at "Assets" to get the relative path to the assets directory
                        assetDirectory = assetDirectory.Substring(assetDirectory.IndexOf("Assets"));

                        var modelImporter = AssetImporter.GetAtPath(assetPath) as ModelImporter;
                        if (modelImporter != null)
                        {
                            var asset = UmaTPose.CreateInstance <UMA.UmaTPose>();
                            asset.ReadFromHumanDescription(modelImporter.humanDescription);
                            var name = selectedObject.name;
                            if (name.EndsWith("(Clone)"))
                            {
                                name = name.Substring(0, name.Length - 7);
                                asset.boneInfo[0].name = name;
                                asset.Serialize();
                            }
                            if (!Directory.Exists(assetDirectory))
                            {
                                Directory.CreateDirectory(assetDirectory);
                            }
                            try
                            {
                                AssetDatabase.CreateAsset(asset, assetDirectory + Path.DirectorySeparatorChar + name + "_TPose.asset");
                            }
                            catch (UnityException e)
                            {
                                Debug.Log(e.ToString());
                            }
                            extracted = true;
                        }
                    }
                }
                if (extracted)
                {
                    AssetDatabase.SaveAssets();
                    return;
                }
            }

            foreach (var animator in Transform.FindObjectsOfType(typeof(Animator)) as Animator[])
            {
                var asset = UmaTPose.CreateInstance <UmaTPose>();
                asset.ReadFromTransform(animator);
                var name = animator.name;
                if (name.EndsWith("(Clone)"))
                {
                    name = name.Substring(0, name.Length - 7);
                    asset.boneInfo[0].name = name;
                    asset.Serialize();
                }

                // Default path
                string path = "Assets/UMA/Content/Generated/TPoses";

                string[] inds = AssetDatabase.FindAssets("AssetIndexer t:umaassetindexer");
                if (inds.Length > 0)
                {
                    // If UMA has moved, then move the pose path also.
                    string tpath   = AssetDatabase.GUIDToAssetPath(inds[0]);
                    int    pos     = tpath.IndexOf("UMA/InternalDataStore", System.StringComparison.OrdinalIgnoreCase);
                    string UMABase = tpath.Substring(0, pos) + "/UMA";
                    path = UMABase + "Content/Generated/TPoses";
                }


                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                AssetDatabase.CreateAsset(asset, path + "/" + name + "_TPose.asset");
                EditorUtility.SetDirty(asset);
                AssetDatabase.SaveAssets();
            }
        }