Skip to content

Blockbench models

McHorse edited this page Nov 15, 2023 · 6 revisions

BBS supports loading Blockbench models by exporting them with a custom plugin.

Features

The format that the custom plugin exports supports decent chunk of Blockbench's features. Following known features that are not supported: extra animation options (including different loop modes, anim time update, blend weight, etc.), texture meshes, locators and null objects, and multiple textures per model (use Texture Stitcher plugin to combine multiple textures into one).

Following features are known to be supported:

  • Cubes with support for Box or per-face UV modes
  • Meshes
  • Groups, their rotation and pivots
  • Animations, including linear, step and smooth interpolations, and math expressions (without shorthand, i.e. v.query_time)

Installation

In Blockbench, go to File > Plugins > Available, search for BBS and there will be BBS model exporter plugin. Install it.

File > Plugins > Available

Exporting

Once the plugin is installed, you can export your model via File > Export > Export BBS model:

  1. Press Confirm button.
  2. Go to BBS' game folder, which you can open by pressing Escape and then Numpad 0 (or click the most top icon in the left sidebar).
  3. Press App in the left sidebar.
  4. Press Open game folder....
  5. Go to assets/models/ (create these folders if they don't exist) within popped up file browser winodw.
  6. Create a folder with any name (the folder's name will be model's ID).
  7. Save the file exactly as model.bbs.json.
  8. In Blockbench, export the texture as well to the same folder exactly as model.png.

After that, the model should appear next time you open one of the form picker menus.

Available variables

Following variables can be used within Blockbench's animations:

Name Description
query.anim_time Current animation progress in ticks.
query.head_yaw Horizontal rotation of entity's head.
query.head_pitch Vertical rotation of entity's head.
query.velocity Velocity of the entity in block units.
query.ground_speed Velocity of the entity in block units (only horizontal, i.e. X and Z).
query.yaw_speed Entity's horizontal rotation speed.
query.age Current age of the entity in ticks, i.e. for how many ticks did this entity exist.
joystick.l_x Left stick's X position. -1 is fully left, 0 is in the middle, 1 is fully right.
joystick.l_y Left stick's Y position. -1 is fully up, 0 is in the middle, 1 is fully down.
joystick.r_x Right stick's X position. -1 is fully left, 0 is in the middle, 1 is fully right.
joystick.r_y Right stick's Y position. -1 is fully up, 0 is in the middle, 1 is fully down.
joystick.l_trigger Left trigger's held state. -1 is fully released, 1 is fully pressed.
joystick.r_trigger Right trigger's held state. -1 is fully released, 1 is fully pressed.
extra1.x Horizontal axis of the first extra mouse controlled animation group.
extra1.y Vertical axis of the first extra mouse controlled animation group.
extra2.x Horizontal axis of the second extra mouse controlled animation group.
extra2.y Vertical axis of the second extra mouse controlled animation group.

Joystick variables were only tested on Xbox game controller. Values may differ on other game controllers. You can test out the values by pressing F3 and seeing how values change when you move around sticks and triggers.

Clone this wiki locally