blockbench import library
This library streamlines the process of integrating Blockbench models (generic and from the AnimatedJava Blockbench Plugin) into your Fabric mods.
It automates item model and texture creation and leverages resource packs in combination with item display entities for client-side integration, eliminating the need for players to install additional mods.
The library offers comprehensive support for animations, including Molang expressions for keyframes, along with a variety of Blockbench features and additionally support for one of its plugins, AnimatedJava.
Features:
- Animation Support: Import models with pre-rendered animations and utilize Molang expressions (currently only q.anim_time and q.life_time) for dynamic animation control.
- CustomModelData & Item Displays: Employs CustomModelData and Item Displays to represent the model with minimal server impact through "virtual" item display entities. - Item Display transformations are asynchronously updated for smooth performance.
- Large Bone Support: Breaks free from vanilla's limitations, allowing for bones exceeding the standard 3x3x3 size restriction.
- Blockbench Feature Support: Offers compatibility with various Blockbench features, including effect keyframes (commands & sound effects), animation loop modes, interpolations, and more.
- AnimatedJava Extensions: Provides additional functionality for AnimatedJava, including variant support, bone blacklisting, conditional effects, and locator support
- Vanilla Mob Feature Integration: Out-of-the-box support for many vanilla mob features like accurate hitboxes (visible in F3+B), ridability, name tags, invisibility, glowing, fire animations, particle effects, leashes, death animations, smooth collisions, dynamic hitboxes/scale, and entity-specific ticking for optimized performance.
Checkout the Github README and the documentation for more infos!
Setup
repositories {
maven { url "https://maven.tomalbrc.de" }
}
dependencies {
modImplementation include("de.tomalbrc:blockbench-import-library:[TAG]")
}
Usage
Documentation is available here
Commands
-
/bil model create id<.ajmodel>|filepath <model>Spawns a model ingame based on mob identifier or a file path (from server root folder) to the model json file. These models are not saved and are mostly intended for testing. If you want load an .ajmodel file, make sure to append
.ajmodelto either the id or file path. -
/bil model <targets> animation|variant|scale <args>Modifies the model of any entity selected in
that has a custom model. Allows you to temporarily change the scale of the model, update the variant and play / pause / stop animations. This is also mostly intended for testing and playing with the models.
Roadmap
1.x
- Bone modifier for more dynamic animations
- Handle pre/post values for keyframes
- mcmeta generation for animated textures
- Bezier support for keyframes
2.x
- Dynamic Animations for dynamic animation speed, right now all animations are pre-rendered during import
- Per-player animations; Show animations to only a single player or a group of players. Right now all animations are played globally, visible for all players
- Multiple rider (for entities), currently only 1 is supported
- Multiple hitboxes (requires the same changes as multiple rider support)
- Particle effects (?)
Test Sever
Join the test server with a 1.20.5-1.21+ client on
mc.tomalbrc.de:25565
to test this mod and my other mods + upcoming, unreleased mods and features!
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 26d ago | 1 | ||||
| 7mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 |
- Minor fixes
1.21.11 support
- Minor fixes
- Minor fixes
- Adds support for per-player animations
- Minor bug fixes for bbmodel deserialization
- Fix incorrect UV for some models
- Fixes small living entities using
LivingEntityHoldernot being able to show their nametags
- Adds support for AjBlueprint format, including keyframe easing functions. (Item/Block/Text display elements are supported but have incorrect translations)
- Properly supports
light_emissionandshadeproperties for model elements Poseobjects now store a copy of the composed matrix- Fixes broken uv scale for some models
- Fixes walk state animations in 1.21.5
- Fixes leashes not being visible in some cases
- Fixes some json parsing issues for model files
- LivingEntityHolder now always have a minimum slime size of 1 for collisions (and lead rendering)
- Fixes leashes not being visible in some cases
- Fixes some json parsing issues for model files
- LivingEntityHolder now always have a minimum slime size of 1 for collisions (and lead rendering)
- Fixes leashes not being visible in some cases
- Fixes some json parsing issues for model files
- LivingEntityHolder now always have a minimum slime size of 1 for collisions (and lead rendering)
- Reduces client-side logs caused by missing particle texture
- Reduces default teleport_duration of display entities from 4 to 3 to better match transformation interpolation duration
- Reduces client-side logs caused by missing particle texture
- Reduces default teleport_duration of display entities from 4 to 3 to better match transformation interpolation duration
- Fixes an issue with texture path names
- Fixes an issue with texture path names
- Fixes an issue with texture path names
- Support for uppercase characters in texture names
- Fixes an issue with CIT resewn
- Support for uppercase characters in texture names
- Fixes an issue with CIT resewn
- Support for uppercase characters in texture names
- Fixes an issue with CIT resewn
- Prevents texture file names with duplicate extensions
- Partially prevents invalid cube rotations