From c198770394484b95c96cee0f5cf2cbe242ef8673 Mon Sep 17 00:00:00 2001 From: yum Date: Wed, 19 Feb 2025 03:58:34 -0800 Subject: animations no longer put on disk --- Scripts/YOTSCore.cs | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/Scripts/YOTSCore.cs b/Scripts/YOTSCore.cs index 26e4a47..9c8bcd8 100644 --- a/Scripts/YOTSCore.cs +++ b/Scripts/YOTSCore.cs @@ -206,6 +206,8 @@ namespace YOTS public class YOTSCore { + private static Dictionary animationClipCache = new Dictionary(); + public static AnimatorController GenerateAnimator( string configJson, VRCExpressionParameters vrcParams, @@ -265,15 +267,6 @@ namespace YOTS private static void CreateAnimationClips(GeneratedAnimationsConfig animationsConfig) { - // Ensure the directory exists - string baseDir = "Assets/YOTS_generated"; - string animDir = Path.Combine(baseDir, "Animations"); - - if (!Directory.Exists(baseDir)) - Directory.CreateDirectory(baseDir); - if (!Directory.Exists(animDir)) - Directory.CreateDirectory(animDir); - foreach (var clipConfig in animationsConfig.animations) { AnimationClip newClip = new AnimationClip(); @@ -301,14 +294,10 @@ namespace YOTS AnimationUtility.SetEditorCurve(newClip, binding, curve); } - // Save the animation clip to the specified directory - string assetPath = Path.Combine(animDir, clipConfig.name + ".anim"); - AssetDatabase.CreateAsset(newClip, assetPath); - Debug.Log("Created/Updated animation clip: " + assetPath); + // Store in memory cache + animationClipCache[clipConfig.name] = newClip; + Debug.Log("Created animation clip in memory: " + clipConfig.name); } - - AssetDatabase.SaveAssets(); - AssetDatabase.Refresh(); } private static AnimatorController GenerateAnimatorController(GeneratedAnimatorConfig animatorConfig) @@ -361,11 +350,9 @@ namespace YOTS foreach (var entry in entries.OrderBy(e => e.name.EndsWith("_On"))) { Debug.Log("Adding child motion for: " + entry.name); - string clipPath = $"Assets/YOTS_generated/Animations/{entry.name}.anim"; - AnimationClip clip = AssetDatabase.LoadAssetAtPath(clipPath); - if (clip == null) + if (!animationClipCache.TryGetValue(entry.name, out AnimationClip clip)) { - Debug.LogWarning("Animation clip not found at: " + clipPath); + Debug.LogWarning("Animation clip not found in memory: " + entry.name); continue; } @@ -413,11 +400,9 @@ namespace YOTS foreach (var entry in layerConfig.directBlendTree.entries) { - string clipPath = $"Assets/YOTS_generated/Animations/{entry.name}.anim"; - AnimationClip clip = AssetDatabase.LoadAssetAtPath(clipPath); - if (clip == null) + if (!animationClipCache.TryGetValue(entry.name, out AnimationClip clip)) { - Debug.LogWarning("Animation clip not found at: " + clipPath); + Debug.LogWarning("Animation clip not found in memory: " + entry.name); continue; } -- cgit v1.2.3