From 4302687be4d14f19468f7ca8eae4dcc17ed7ac3f Mon Sep 17 00:00:00 2001 From: Luis Gonzalez Date: Tue, 14 Jul 2026 22:21:06 -0700 Subject: [PATCH] Art/anim: EnemyRigTools + Grindylow + Bathynaut suit-frame builders BuildGrindylow (SciFiSpace Alien, gloam-blue) = 2nd creature (A1 'twice' repeatability); BuildBathynautFrame (armored+helmeted soldier, warm-neutral) = suit-frame preview proving the suit body skins via Rukhanka. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../_Project/Scripts/Editor/EnemyRigTools.cs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/Assets/_Project/Scripts/Editor/EnemyRigTools.cs b/Assets/_Project/Scripts/Editor/EnemyRigTools.cs index 24f872522..8ddf2a20d 100644 --- a/Assets/_Project/Scripts/Editor/EnemyRigTools.cs +++ b/Assets/_Project/Scripts/Editor/EnemyRigTools.cs @@ -98,6 +98,37 @@ namespace ProjectM.EditorTools Debug.Log("[EnemyRigTools] Drowner built -> EnemyDrowner.prefab; add to WaveDirector.EnemyPrefabs[] to spawn it."); } +/// LANTERN Grindylow (2nd creature = A1 repeatability): SciFiSpace Alien body, cold gloam-blue, same path. + [MenuItem("ProjectM/Animation/Enemy Rigs - Build Grindylow (LANTERN)")] + public static void BuildGrindylow() + { + const string atlas = "Assets/Synty/PolygonSciFiSpace/Textures/PolygonSciFiSpace_Texture_01_A.png"; + const string mat = "Assets/_Project/Materials/M_Enemy_Grindylow_Animated.mat"; + const string synty = "Assets/Synty/PolygonSciFiSpace/Prefabs/Characters/SM_Chr_Alien_01.prefab"; + MakeMat(mat, atlas, new Color(0.30f, 0.62f, 0.72f, 1f)); // cold gloam-blue deep-thing + AssetDatabase.SaveAssets(); + BuildOne(new Variant { Name = "Grindylow (SciFiSpace Alien)", Template = "Assets/_Project/Prefabs/Enemy.prefab", Synty = synty, Output = "Assets/_Project/Prefabs/EnemyGrindylow.prefab", Material = mat, RootY = -1.13f, Scale = 0f }); + AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); + Debug.Log("[EnemyRigTools] Grindylow built -> EnemyGrindylow.prefab."); + } + + /// Bathynaut suit-frame PREVIEW: armored+helmeted soldier body, warm-neutral (ours, not gloam). Built on the + /// enemy chassis to PROVE the suit body skins+animates via Rukhanka; player-frame integration (swap into Player.prefab) + /// is a separate step, and the custom brass diving kit is an A3 silhouette upgrade. + [MenuItem("ProjectM/Animation/Enemy Rigs - Build Bathynaut Suit-Frame (LANTERN)")] + public static void BuildBathynautFrame() + { + const string atlas = "Assets/Synty/PolygonSciFiSpace/Textures/PolygonSciFiSpace_Texture_01_A.png"; + const string mat = "Assets/_Project/Materials/M_SuitFrame_Bathynaut_Animated.mat"; + const string synty = "Assets/Synty/PolygonSciFiSpace/Prefabs/Characters/SM_Chr_SpaceSoldier_HelmetArmor_Male_01.prefab"; + MakeMat(mat, atlas, new Color(0.95f, 0.90f, 0.82f, 1f)); // warm-neutral: our light, not gloam-tinted + AssetDatabase.SaveAssets(); + BuildOne(new Variant { Name = "Bathynaut Suit-Frame", Template = "Assets/_Project/Prefabs/Enemy.prefab", Synty = synty, Output = "Assets/_Project/Prefabs/SuitFrame_Bathynaut.prefab", Material = mat, RootY = -1.13f, Scale = 0f }); + AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); + Debug.Log("[EnemyRigTools] Bathynaut suit-frame preview built -> SuitFrame_Bathynaut.prefab (not wired to the player)."); + } + + // ---- 1. Materials ------------------------------------------------------------------------------------