Files
udxandClaude Opus 5.5 89e0fa246f 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>
2026-10-21 12:23:55 +08:00

76 lines
2.8 KiB
JSON

{
"schemaVersion": 1,
"id": "SparkBird",
"kind": "Animal",
"usage": "companion_visual",
"profile": "avian_grounded",
"boneMappingReady": true,
"height": 0.45,
"maxTriangles": 2000,
"assetRoot": "Assets/Bundles/Characters/Animal/SparkBird",
"staticPrefab": "Assets/Bundles/Characters/Animal/SparkBird/SparkBird.prefab",
"approvedMesh": "AIClient/Assets/Bundles/Characters/Animal/SparkBird/SparkBird.fbx",
"rigSource": "Tools/output/sparkbird_dgx/high_rig/rigged.glb",
"lowUp": "Y",
"skinOverrides": [],
"outputDir": "Tools/output/companions/SparkBird",
"visualPrefab": "Assets/Bundles/Characters/Animal/SparkBird/SparkBird_Companion.prefab",
"reviewScene": "Assets/Bundles/Scenes/Review/Companion_SparkBird_Review.unity",
"reviewOriginX": 80,
"rootBone": "bone_0",
"chestBone": "bone_3",
"faceRight": "bone_22",
"faceLeft": "bone_26",
"rightFoot": "bone_22",
"leftFoot": "bone_26",
"rightFootTip": "bone_23",
"leftFootTip": "bone_27",
"rightArm": "bone_7",
"leftArm": "bone_14",
"walkStride": 0.045,
"walkLift": 0.012,
"walkSeconds": 0.9,
"walkBindCalibration": true,
"walkSourceWeight": 0.25,
"idleSeconds": 1.4,
"idleBreath": 0.002,
"idleSourceWeight": 0.06,
"attackStyle": "wing_cast",
"attackEvent": "OnCompanionAttackImpact",
"attackSeconds": 1.0,
"attackSourceWeight": 0.1,
"attackWindup": 0.25,
"attackImpact": 0.45,
"attackRecover": 0.88,
"attackLeanDegrees": 4,
"attackArmDegrees": 35,
"attackLunge": 0.002,
"attackReach": 0.015,
"maxRootTilt": 25,
"groundTolerance": 0.003,
"motions": [
{
"name": "Idle",
"sourceDir": "Tools/output/companions/SparkBird/motions/Idle",
"prompt": "a small upright bipedal sparrow stands on two feet with gentle breathing and subtle wing settling",
"duration": 2.0
},
{
"name": "Walk",
"sourceDir": "Tools/output/companions/SparkBird/motions/Walk",
"prompt": "a small upright bipedal sparrow walks on the ground with alternating short steps, keeping its wings near its sides",
"duration": 2.0
},
{
"name": "Attack",
"sourceDir": "Tools/output/companions/SparkBird/motions/Attack",
"prompt": "a small upright bipedal sparrow briefly draws both wings back, sweeps them forward once to cast a lightning spell, and recovers to standing",
"duration": 2.0
}
],
"anatomyNotes": "Inspected this SparkBird TokenRig original: 28 bones. Root0 vertical pelvis, chest3; x-positive wing7 with feather chain8..12, x-negative wing14 with feather chain15..19; x-positive ankle22/toe23 and x-negative ankle26/toe27. Head4/5 carries crest. Tail has no independent bone; inspect its weighting under the strongest wing cast. Grounded bird, not a flying locomotion adapter.",
"rightWingTip": "bone_12",
"leftWingTip": "bone_19",
"wingSpreadDegrees": 25
}