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

186 lines
4.5 KiB
JSON

{
"schemaVersion": 1,
"id": "RockRhino",
"kind": "Animal",
"usage": "companion_visual",
"profile": "quadruped_heavy",
"boneMappingReady": true,
"height": 0.55,
"maxTriangles": 2000,
"assetRoot": "Assets/Bundles/Characters/Animal/RockRhino",
"staticPrefab": "Assets/Bundles/Characters/Animal/RockRhino/RockRhino.prefab",
"approvedMesh": "AIClient/Assets/Bundles/Characters/Animal/RockRhino/RockRhino.fbx",
"rigSource": "Tools/output/rockrhino_dgx/high_rig/rigged.glb",
"lowUp": "Y",
"skinOverrides": [],
"outputDir": "Tools/output/companions/RockRhino",
"visualPrefab": "Assets/Bundles/Characters/Animal/RockRhino/RockRhino_Companion.prefab",
"reviewScene": "Assets/Bundles/Scenes/Review/Companion_RockRhino_Review.unity",
"reviewOriginX": 120,
"rootBone": "bone_0",
"neckBone": "bone_2",
"headBone": "bone_3",
"faceRight": "bone_11",
"faceLeft": "bone_15",
"frontRightFoot": "bone_11",
"frontLeftFoot": "bone_15",
"hindRightFoot": "bone_19",
"hindLeftFoot": "bone_27",
"frontRightFootTip": "bone_12",
"frontLeftFootTip": "bone_16",
"hindRightFootTip": "bone_20",
"hindLeftFootTip": "bone_28",
"walkStride": 0.06,
"walkLift": 0.015,
"walkSeconds": 1.4,
"walkSwingFraction": 0.2,
"walkBindCalibration": true,
"walkSourceWeight": 0.12,
"idleSeconds": 2.0,
"idleBreath": 0.0015,
"idleSourceWeight": 0.04,
"attackStyle": "braced_bash",
"attackEvent": "OnCompanionAttackImpact",
"attackSeconds": 1.2,
"attackSourceWeight": 0.04,
"attackWindup": 0.3,
"attackImpact": 0.5,
"attackRecover": 0.9,
"attackLunge": 0.025,
"maxRootTilt": 15,
"groundTolerance": 0.003,
"rootTiltReference": "bind_up",
"motions": [
{
"name": "Idle",
"sourceDir": "Tools/output/companions/RockRhino/motions/Idle",
"prompt": "a small stocky armored quadrupedal rhinoceros stands on all four hooves with gentle breathing, keeping its stone armor stable and head relaxed",
"duration": 2.0
},
{
"name": "Walk",
"sourceDir": "Tools/output/companions/RockRhino/motions/Walk",
"prompt": "a small stocky armored quadrupedal rhinoceros walks steadily on the ground with four separate short legs taking deliberate alternating steps, keeping its back horizontal and head facing forward",
"duration": 2.0
},
{
"name": "Attack",
"sourceDir": "Tools/output/companions/RockRhino/motions/Attack",
"prompt": "a small stocky armored quadrupedal rhinoceros braces its four hooves, draws its head and shoulders back slightly, lowers its horn and performs one short forward head and shoulder bash, then recovers to its resting stance",
"duration": 2.0
}
],
"anatomyNotes": "Own 29-bone forward TokenRig inspected: hip root 0, chest 1, neck 2, head 3, ears 5..8, front legs 9..12 / 13..16, hind legs 17..20 / 25..28, tail 21..24. Offline full-weight rigid core/head and planted lower-paw masks fitted to this low mesh. Heavy braced shoulder and head bash; no turtle or biped mapping reused.",
"chestBone": "bone_1",
"attackHeadReach": 0.018,
"attackHeadPitchDegrees": 10,
"armorRegionMin": [
-0.4,
0.48,
-0.1
],
"armorRegionMax": [
0.4,
0.85,
0.6
],
"armorRigidityTolerance": 0.001,
"hornRegionMin": [
-0.1,
0.72,
-0.74
],
"hornRegionMax": [
0.2,
0.95,
-0.43
],
"hornRigidityTolerance": 0.001,
"skinRegions": [
{
"bone": "bone_1",
"min": [
-0.5,
0.4,
-0.66
],
"max": [
0.5,
0.89,
0.16
],
"feather": 0.03
},
{
"bone": "bone_3",
"min": [
-0.45,
0.36,
0.2
],
"max": [
0.4,
1.05,
0.8
],
"feather": 0.04
},
{
"bone": "bone_11",
"min": [
-0.07,
-0.02,
-0.08
],
"max": [
0.33,
0.25,
0.41
],
"feather": 0.03
},
{
"bone": "bone_15",
"min": [
-0.49,
-0.02,
-0.15
],
"max": [
-0.1,
0.25,
0.41
],
"feather": 0.03
},
{
"bone": "bone_19",
"min": [
0.08,
-0.02,
-0.47
],
"max": [
0.49,
0.25,
-0.12
],
"feather": 0.03
},
{
"bone": "bone_27",
"min": [
-0.27,
-0.02,
-0.57
],
"max": [
0.08,
0.25,
-0.14
],
"feather": 0.03
}
]
}