Add formal enemies, remaining formal partners and synthesized UI SFX
- UI SFX v3: procedurally synthesized one-shots (Tools/synth_ui_sfx.py) wired to buttons, rewards, errors and red dots via UiSfx, gated by the SFX setting. - Five formal enemies (Hornlet, Dashlet, Shellhorn, HornCaptain, GreatHorn): Hunyuan 50k -> 2000-tri XPbr, DGXA TokenRig, Idle/Walk/Attack, nested per type in PrototypeArena; PrototypeBattle.Enemy gains presentation-only Moving/Strikes. - Formal partners for all ten pets in the arena and portraits, including new VineSprite, ThunderLeopard and TideWhale. - Pipeline fixes: reject local TokenRig fallback, drop loose mesh islands, configurable Unity run_script timeout, companion static stage. - Also includes concurrent work from another tool in this working tree (FlameLion, enemy combat FX, challenge mode, home explorer, server updates). - Resources registered in Doc/ResDesc_*.md; verified on isolated :18081. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
import bpy,sys
|
||||
from pathlib import Path
|
||||
for fp in [Path('AIClient/Assets/Bundles/Characters/Animal/BudBud/BudBud.fbx'),Path('Tools/output/companions/BudBud/BudBud_Rigged.fbx')]:
|
||||
bpy.ops.wm.read_factory_settings(use_empty=True); bpy.ops.import_scene.fbx(filepath=str(fp))
|
||||
vs=[]
|
||||
for o in bpy.context.scene.objects:
|
||||
if o.type=='MESH': vs.extend([o.matrix_world@v.co for v in o.data.vertices])
|
||||
mn=[min(v[i] for v in vs) for i in range(3)]; mx=[max(v[i] for v in vs) for i in range(3)]
|
||||
print(fp.name,'min',*[round(x,5) for x in mn],'max',*[round(x,5) for x in mx],'height',round(mx[1]-mn[1],5),'center_xz',round((mn[0]+mx[0])/2,5),round((mn[2]+mx[2])/2,5))
|
||||
Reference in New Issue
Block a user