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,13 @@
|
||||
import bpy,sys,os,json
|
||||
from pathlib import Path
|
||||
p=Path(sys.argv[-1]); bpy.ops.wm.open_mainfile(filepath='') if False else None
|
||||
# importer each fbx
|
||||
for f in [p/'BudBud_Rigged.fbx', Path('AIClient/Assets/Bundles/Characters/Animal/BudBud/BudBud.fbx')]+[p/'motions'/n/'animated.fbx' for n in ('Idle','Walk','Attack')]:
|
||||
bpy.ops.wm.read_factory_settings(use_empty=True)
|
||||
bpy.ops.import_scene.fbx(filepath=str(f),use_anim=True)
|
||||
objs=list(bpy.context.scene.objects); tris=0; bones=[]; acts=[]
|
||||
for o in objs:
|
||||
if o.type=='MESH': tris += sum(len(poly.vertices)-2 for poly in o.data.polygons)
|
||||
if o.type=='ARMATURE': bones += [b.name for b in o.data.bones]
|
||||
print(f.name,'objects',len(objs),'tris',tris,'bones',len(bones),'bone_names',bones[:10])
|
||||
print('actions',[(a.name,a.frame_start,a.frame_end) for a in bpy.data.actions])
|
||||
Reference in New Issue
Block a user