Replace TownSquare with HomeCamp art and land humanoid bots, LittleBear, and LmGirl review assets.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
udx
2026-11-03 20:33:08 +08:00
co-authored by Cursor
parent 45e62132c8
commit 9eec364f30
838 changed files with 57978 additions and 12225 deletions
+18 -5
View File
@@ -18,7 +18,7 @@ public static class AuditCharacterVisual
"Tools/output/campguide_review/idle",
1.55f,
"Assets/Bundles/Characters/Human/CampGuide/Clips/Idle.anim",
0.45f);
0.45f, -1f); // Existing CampGuide asset uses legacy -Z.
}
public static string CaptureCampGuideWalk()
@@ -28,11 +28,12 @@ public static class AuditCharacterVisual
"Tools/output/campguide_review/walk",
1.55f,
"Assets/Bundles/Characters/Human/CampGuide/Clips/Walk.anim",
0.3f);
0.3f, -1f);
}
public static string Capture(string prefabPath,string outputDirectory,float height=.55f,string clipPath="",float phase=0)
public static string Capture(string prefabPath,string outputDirectory,float height=.55f,string clipPath="",float phase=0,float forwardZ=1f)
{
var directions=ViewDirections(forwardZ);
string dir=Path.GetFullPath(Path.Combine(Application.dataPath,"../..",outputDirectory));Directory.CreateDirectory(dir);
var scene=EditorSceneManager.NewPreviewScene();
try
@@ -50,7 +51,7 @@ public static class AuditCharacterVisual
int triangles=filters.Sum(m=>m.sharedMesh.triangles.Length/3);
if(Mathf.Abs(minY)>.002f || Mathf.Abs(actualHeight-height)>.002f)throw new Exception("Static height/bottom invalid");
if(unit.GetComponentsInChildren<Renderer>().Any(r=>r.sharedMaterial==null || r.sharedMaterial.shader.name!="Test/XPbr"))throw new Exception("Static XPbr material missing");
File.WriteAllText(Path.Combine(dir,"static_verification.txt"),$"height={actualHeight:F6} bottom={minY:F6} triangles={triangles} XPbr=True; facing verified in front/side/back views");
File.WriteAllText(Path.Combine(dir,"static_verification.txt"),$"height={actualHeight:F6} bottom={minY:F6} triangles={triangles} XPbr=True; frontAxis={(forwardZ>0?"+Z":"-Z")}; facing requires visual review of front/side/back views");
}
if(!string.IsNullOrEmpty(clipPath))
{
@@ -77,7 +78,6 @@ public static class AuditCharacterVisual
var rt=new RenderTexture(640,640,24);var tex=new Texture2D(640,640,TextureFormat.RGB24,false);var previous=RenderTexture.active;
try
{
var directions=new[]{new Vector3(0,.22f,-1),new Vector3(1,.22f,0),new Vector3(0,.22f,1),new Vector3(.7f,.3f,-1)};
string[] names={"front","side","back","perspective"};
for(int i=0;i<directions.Length;i++)
{
@@ -94,5 +94,18 @@ public static class AuditCharacterVisual
finally {EditorSceneManager.ClosePreviewScene(scene);}
return dir;
}
static Vector3[] ViewDirections(float forwardZ = 1f)
{
if (forwardZ != 1f && forwardZ != -1f) throw new ArgumentException("forwardZ must be +1 or legacy -1");
return new[]{new Vector3(0,.22f,forwardZ),new Vector3(1,.22f,0),new Vector3(0,.22f,-forwardZ),new Vector3(.7f,.3f,forwardZ)};
}
public static string VerifyForwardConvention()
{
if(ViewDirections()[0].z!=1 || ViewDirections()[2].z!=-1 || ViewDirections(-1)[0].z!=-1)
throw new Exception("Front/back or legacy view directions are reversed");
return "PASS +Z default views and explicit legacy -Z views";
}
}
#endif