Skip to content

Replacing the Epic Fight assets

TiedUp!‘s rig is a fork of Epic Fight. A handful of Epic Fight assets are bundled for local development. You must replace them with original assets before any public release.

AssetFilesPurpose
Biped meshesanimmodels/entity/biped.json, biped_slim_arm.json, biped_old_texture.json, biped_outlayer.jsonThe skinned humanoid body the RIG renders for players and NPCs (replaces the vanilla model).
Cloth meshanimmodels/layer/default_cape.jsonThe cloth-sim proof mesh (a cape carrying a working cloth_info). Used by the cloth demo + the test_cloth item.
Locomotion clipsanimmodels/animations/{idle,walk,run,jump,fall,sneak,swim,sit,kneel,sleep,landing,float}.jsonThe base LivingMotion animations for players/NPCs.

A biped mesh file is a skinned mesh plus an armature:

{
"vertices": {
"positions": { "array": [ /* x,y,z … (Blender Z-up; the loader converts to MC) */ ] },
"normals": { "array": [ /* … */ ] },
"uvs": { "array": [ /* u,v … mapped to the vanilla player skin */ ] },
"vcounts": { "array": [ /* bones influencing each vertex */ ] },
"weights": { "array": [ /* skin weights */ ] },
"vindices": { "array": [ /* joint indices per influence */ ] },
"parts": {
// one named group per vanilla player part + overlay:
"head": { "array": [ …vertex indices… ] }, "torso": {},
"leftArm": {}, "rightArm": {}, "leftLeg": {}, "rightLeg": {},
"hat": {}, "jacket": {}, "leftSleeve": {}, "rightSleeve": {},
"leftPants": {}, "rightPants": {}
}
},
"armature": { "joints": [ /* 20 */ ], "hierarchy": [ ] }
}

What the loader uses:

  • Only the vertices block matters — the armature block in the file is ignored. The skeleton comes from the rest-pose in biped_local_transforms.json.
  • Author in Blender’s space: the loader applies the Blender → Minecraft coordinate transform to positions/normals, so don’t pre-rotate.

They come from Blender + the bundled Epic Fight JSON addon (io_scene_minecraft_json) — its mesh export writes exactly the positions / uvs / normals / vcounts / weights / vindices / parts block above from your model’s vertex groups and bone weights.

🔧 Manual / tool-gap Verify the round-trip in-game — the part names, the skin UVs and the Blender→MC transform all have to line up.

  1. Open docs/tools/EpicFight Animation Rig.blend — the 20-bone biped armature.
  2. Model the humanoid body (or re-rig your own to this armature). Keep it a faithful player shape.
  3. Split & name the mesh into the 12 vertex groups listed above (head, torso, leftArm, rightArm, leftLeg, rightLeg, and the overlay layers hat, jacket, leftSleeve, rightSleeve, leftPants, rightPants). These become the parts block.
  4. UV-unwrap to the vanilla player-skin template (64×64) — not a custom texture. Every player’s skin must map correctly.
  5. Weight-paint to the 20 deform bones (un-deform-flagged bones are skipped; unweighted verts fall back to Root with a warning).
  6. Export with the addon’s mesh export → the .json.
  7. Repeat for the four variants (see table).
VariantWhat changes
biped.jsonClassic 4-pixel arms (Steve), standard skin UV. Used for normal-model entities.
biped_slim_arm.json3-pixel arms (Alex). Used for slim/Alex-arm entities.
biped_old_texture.jsonPre-1.8 skin UV mapping (64×32 single-layer skins).
biped_outlayer.jsonThe outer/second layer overlay (hat + jacket + sleeves + pants).
  • The 12 locomotion clips are EF animations — re-author original clips (EF-JSON via the addon, with the hand-added constructor block — see Animations) bound to the LivingMotions. 🔧 Manual / tool-gap
  • The cloth cape is only a demo. Author an original mesh carrying a cloth_info block, or drop the cloth proof. ❌ Planned
  1. Drop the new original files in place (same paths under assets/<ns>/animmodels/…).
  2. Remove their entries from .gitignore (the four biped meshes, the cape, the 12 clips, the README).
  3. git add + commit the originals.
  4. Run a clean build and confirm the new mesh ships in the jar and renders in-game.