Overview
BetterModel provides a sophisticated 12-limb player animation system that allows you to create custom player models with full-body animations while maintaining compatibility with armor, elytra, and player skins.Understanding Player Limbs
The 12-Limb System
BetterModel’s player models consist of 12 independent limbs:- Head
- Body
- Left Arm
- Right Arm
- Left Leg
- Right Leg
- Left Arm Layer (outer layer)
- Right Arm Layer (outer layer)
- Left Leg Layer (outer layer)
- Right Leg Layer (outer layer)
- Cape
- Elytra (when equipped)
Player Model Directory
Place player limb models in theplayers/ directory:
Player limb models are not saved persistently. They must be recreated when a player joins the server.
Creating Player Models
BlockBench Setup
In BlockBench, structure your player model with proper limb names:Limb Tags
Tag specific limbs for automatic behavior:player_tag: Always visible nametaghead: Head rotation trackinghead_with_children: Head rotation including child bones
Loading Player Models
Basic Loading
Load a player limb model from the API:Applying to Players
Create a player tracker:Simplified Player Animation API
Use the ModelManager for quick player animations:Player Tracking and Movement
Body Rotator
Player trackers useEntityBodyRotator in player mode for correct body/head rotation:
Automatic Synchronization
Player models automatically sync with:- Position: Follows player location
- Rotation: Matches player head and body rotation
- Animations: Syncs with player movements
- Potion effects: Applies invisibility and other effects
Working with Player Skins
Using Player Skin Textures
Apply a player’s skin to a model:Custom Skin Profiles
Use a custom skin profile:Skin Parts Control
Control which skin parts are visible:Player Animations
Standard Player Animations
Create animations for common player actions:- idle: Standing still
- walk: Walking
- run: Sprinting
- sneak: Sneaking
- swim: Swimming
- jump: Jumping
- attack: Attacking/mining
- use: Using items
- bow_draw: Drawing a bow
- throw: Throwing items
Playing Player Animations
Animation State Management
Implement player animation states:Player Model Events
Creating Player Tracker Event
Player Join/Leave Handling
Armor and Equipment
Armor Rendering
BetterModel integrates with the ArmorModel library to render armor on custom player models:Equipment Slots
Handle equipment changes:Advanced Player Model Features
Custom Player Hitboxes
Add interactive hitboxes to player models:Dynamic Player Model Switching
Switch between different player models:Per-Player Model Visibility
Show different models to different players:Best Practices
Performance Considerations:
- Player models are computationally intensive
- Limit the number of simultaneous player models
- Use
sightTracein TrackerModifier to reduce rendering - Cache tracker references
- Clean up trackers on player disconnect
Model Organization
Example: RPG Class System
Next Steps
Per-Player Animation
Advanced per-player animation techniques
Resource Pack Generation
Understand automatic resource pack creation
