Add rank, friends, fishing, and camp treasure with T2 studio models and skill presentation.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env python3
|
||||
"""T2 accessory static stage: Hunyuan GLB -> 400-tri / 512 XPbr bake -> Characters/Animal/{Name}/{Name}T2/ -> SetupCharacter prefab.
|
||||
|
||||
Only the FBX and the two XPbr PNGs are copied; Unity creates the metas and SetupCharacter creates the Test/XPbr material and
|
||||
the static prefab. The accessory has no rig, so loose islands are fine. Placement on the head bone is BuildT2Visuals.BuildPrefabs.
|
||||
|
||||
Usage:
|
||||
python Tools/t2_accessory_static.py # every partner whose T2 GLB exists
|
||||
python Tools/t2_accessory_static.py FireCat BudBud # selected only
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import shutil
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from enemy_static_pipeline import ROOT, run, unity
|
||||
|
||||
PARTNERS = ["RockBall", "FireCat", "BudBud", "SparkBird", "BubbleTurtle", "RockRhino", "FlameLion", "VineSprite", "ThunderLeopard", "TideWhale"]
|
||||
|
||||
|
||||
def main() -> None:
|
||||
wanted = sys.argv[1:] or PARTNERS
|
||||
for name in wanted:
|
||||
low = name.lower()
|
||||
glb = ROOT / f"Tools/output/t2_3d/{name}/{low}_t2.glb"
|
||||
if not glb.exists():
|
||||
print(f"{name}: no GLB yet, skipped", flush=True)
|
||||
continue
|
||||
game = ROOT / f"Tools/output/t2_game/{low}_t2_game"
|
||||
run([sys.executable, "Tools/model_tools/model_lowpoly_bake.py", str(glb), "-o", str(game), "--tris", "400", "--size", "512",
|
||||
"--callback-file", str(game / "bake_status.json")])
|
||||
xpbr = game / f"{low}_t2_xpbr"
|
||||
actor = name + "T2"
|
||||
dest = ROOT / f"AIClient/Assets/Bundles/Characters/Animal/{name}/{actor}"
|
||||
dest.mkdir(parents=True, exist_ok=True)
|
||||
shutil.copy2(xpbr / f"{low}_t2.fbx", dest / f"{actor}.fbx")
|
||||
shutil.copy2(xpbr / f"{low}_t2_base.png", dest / f"{actor}_base.png")
|
||||
shutil.copy2(xpbr / f"{low}_t2_mix.png", dest / f"{actor}_mix.png")
|
||||
out = unity("AgentScripts/SetupCharacter.cs", "SetupCharacter.Run", [f"Animal/{name}", actor, 0.15])
|
||||
print(f"{name}: installed {dest.relative_to(ROOT)}", flush=True)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user