github JannisX11/blockbench v5.0.0
5.0.0 - The Element Update

13 hours ago

Welcome to Blockbench 5.0!

This update introduces multiple new elements, a new design, armatures, and much more!

image

Armatures

Armatures introduce a new way of animating models. Attach an armature to a mesh to create a rig, then animate the rig.
Rigs can bend and deform meshes, allowing greater flexibility when setting up a model for animation.

Alongside armatures, the new tool "Weight Brush" has been added. This tool lets you control which parts of a mesh are affected by a certain bone.
Select the tool, select a bone, and then paint on the mesh. A black area on your mesh indicates that the bone has no effect on it.
The warmer the color, the higher the effect of the bone will be. A red vertex will be fully controlled by the bone.
You can automatically calculate vertex weights based on the position of the bones, and the weight brush lets you refine this.

  • Added Armatures
  • Added Armature Bones
  • Added new Weight Brush tool
  • Added Vertex Weight and Vertex Bone Color view modes
image

Splines

Splines are a new mesh type that simplify the creation of long mesh shapes following a specific path.
Splines offer a great way to model objects like cables, branches, pipes, snakes, stylized hair, and all sorts of shapes like that.

Overview over spline functionality

Thanks to @Azagwen for developing this new feature!

UI Changes

  • Upgraded the design of Blockbench, introducing more rounded corners, gradients, shadows, and paddings, and improving usability
  • Multiple panels can now be added into one as tabs
  • Renamed former "Element" panel to "Transform"
  • Added "Element" panel as a tab behind "Transform"
  • Added Montserrat as new headline font
  • Settings that were added by a plugin now display the plugin name in the UI
  • Added modifier key hint for moving panels without docking
  • Updated keyframe icons (#2712, thanks @MrSirSquishy!)
  • Form labels no longer have colons by default
  • Node icons are now displayed in timeline
  • Reorganized and sorted Load Images menu into categories
  • Removed edit session dialog close button
  • Added panel menu option to reset size

Preview options

  • Added preview options menu
  • Added option to show/hide gizmos (#2803)
  • Added quick preview background color option (#1788)
  • Allow blueprint reference images in front of the model
  • Added setting to toggle double click to select reference image
  • Shift click in orbit gizmo to select middle, (#2685)
  • Set antialiasing bleeding fix setting to true by default

Exporting

  • Added STL exporter
  • Added GIF exporter for images (#2679)
  • Before asking for save locations for multiple textures when saving, a pop-up now opens to confirm you want to save them
  • Added git text normalization for JSON files

Animation

  • Added expanded Molang expression editor (#2636)
  • Added animation groups (#2327)
  • The animation list is now searchable
  • Added setting to change default keyframe interpolation mode (#2319)
  • Bind to actor property on keyframes (#2827)
  • Allow locking animation as playing while selected
  • Added support for shift and control modifiers when sliding keyframes with keyboard
  • Move keyframes up and down in graph editor with arrow keys (#2314)
  • Added animation file save as context menu option
  • Added channel filter action to timeline context menu
  • Added quaternion interpolation mode (opt-in per timeline animator in generic models)

Texturing

  • Added darken/lighten blend modes
  • Added Flipbook texture toggle in texture context menu
  • Searchable texture list
  • Add action to import image as layer (#2980)
  • Added normal map color picker
  • Added setting to toggle automatically loading textures as flipbook (#2920)
  • Images with an aspect ratio of 1x2 are now no longer automatically loaded as flipbook textures
  • Added standalone action to apply selected texture to selected elements

New elements

  • Added billboards
  • Added splines
  • Added armatures and armature bones
  • The add element actions in the outliner toolbar have been combined into one Add Element action with a submenu

Minecraft

  • Added display settings support for the new shelf slot (#2900, thanks @Nogard-YT!)
  • Added java display settings GUI slot clipping
  • Added fallback for query.model_scale (#2902)
  • Added support for cem model field in jem format (#2899)

Minecraft skin editor

  • Added skin menu
  • Added waist bone for minecraft player skins
  • Option to convert between slim and wide skin model (#1735)
  • Added custom skin pose saving (#1614)
  • Option to load skin textures from Minecraft vanilla samples pack

Themes customization

  • Added a new CSS-based .bbtheme file format (More info)
  • Theme configuration options (Better organization for sets of themes #2657)
  • Workflow improvements for theme creators
    • Themes can now be edited in an external code editor using CSS syntax
    • You can reload themes with the press of a button
    • You can enable automatic reload to apply your changes instantly when you save them
  • Separate CSS layer for themes, allowing full CSS control without using !important.

Miscellaneous changes

  • Added mesh smooth shading option (#2024)
  • Added Record Gizmos option to GIF Recorder
  • Added setting for relative or absolute asset paths (#1322)
  • Allow specifying custom install location on Windows (#1884)
  • Added setting to disable autocomplete (#2473)
  • Added a keybind for adding a mesh to the blender bbkeymap (#3019)
  • Improved outdated client message when opening newer bbmodel
  • Added confirmation dialog when loading palette to confirm replacing other palette
  • Added button to open file in external program in the JSON error dialog
  • Made stretch gizmo operate more granularly
  • Added model identifier in collections (#2750)
  • Added legacy bbmodel export
  • Improve automatic node name flipping to support R and L notation
  • Improve Flip Animation tool to support more left/right name notations

Technical updates

  • Switched codebase to use modules and esbuild
  • Introduced typescript
  • Added new development workflow, scripts, and VSCode renderer debug integration (see readme.md on the "next" branch)
  • Updated required browser version to ES2023
  • Replaced compareVersions with new VersionUtil (#2995)
  • Renamed selectLow to markAsSelected on outliner nodes
  • Implemented new element behavior system, allowing more hard-coded behavior of elements to be customized on custom element types
  • Added full clone support for "object"-type properties
  • Change how outliner hierarchy + groups are saved in undo history and bbmodel
  • Mobile UI tweaks
  • Support for separators in menu sidebars
  • Added permission system for plugins using native APIs
  • Added scoped file system
  • Changed Group.selected to return array
  • Added dialog onResize hook
  • Plugin dependency order is now resolved on load
  • Added collection contains API
  • Added support for any data:image/ URL to getIconNode (#3000)
  • Added events loaded_plugin and unloaded_plugin
  • Addsed delete functions to Menu and MenuBar classes to make them match their types
  • Added new SystemInfo API to get common information about the system that the program is running on
  • Added developer menu option to expose native APIS in dev tools
  • Added block_size option in ModelFormat
  • Made euler order configurable per format
  • Support for property inputs in collections
  • Changed collection save-over to no longer show file dialog
  • Add category option to message box commands
  • Added element behavior override system
  • Added external data loader option to codec parse functions (#2806, thanks @ewanhowell5195)
  • Changed third argument in codec load + parse methods
  • Added property support on timeline animators
  • Added animation loop wrapping as a format feature flag
  • Ensure consistent mesh quad vertex order (#2932)

There are some breaking changes to the plugin API in this update. Read Upgrading Plugins to 5.0 for details.

Typescript

The codebase is now partially using typescript, with the goal to move everything to typescript over time.
Some files are now fully written in typescript. Legacy files files are still written in javascript, and types are defined as .d.ts files in the ./types/custom directory.
Types from typescript files are automatically generated from source and saved inside ./types/generated.

The blockbench-types package is now generated from this repository, the old repository will become deprecated. This will help keep types up-to-date and verify their correctness when making changes.

Fixes

  • Fixed #2839 Pivot sliders move position of meshes
  • Fixed brush outline not showing up when using WebGL1
  • Fixed #2832 invalid texture state after rotating layer
  • Fixed animation axis directions
  • Fixed scrollbar colors in 2D editor
  • Fixed missing centroid in texture vertex shader
  • Fixed element selection issue in Condition resolving
  • Fixed HSV sliders affecting each other while using
  • Fixed loop cut direction when loop of faces is selected
  • Fixed hybrid menu mouse hover issue
  • Fixed closing window sometimes requiring two clicks
  • Disabled UV remapping when changing project resolution (#2799)
  • Improved viewport orbit rotation on ultra wide screens (#2801)
  • Improved texture bleeding fix in display reference models (#2860)
  • Fixed applying animation controller preset not registering undo edit
  • Fixed #2875 Incorrect importing of discontinuous keyframes
  • Fixed #2874 bedrock display settings scale can export as negative
  • Fixed clicking on UV editor scroll bar triggering paint tool
  • Fixed texture mesh shape with PBR map selected
  • Fixed variable placeholder not working with number arguments
  • Fixed #3009 Changing Model or File name does not mark it with unsaved changes
  • Fixed collection item text overflow (#3012)
  • Fixed #3004 TGA textures fail to load when importing texture_set file
  • Fixed TGA texture import failing when using drag & drop
  • Fixed split RGB channels into layers
  • Fixed issues with JSON comment stripping
  • Fixed #2983 Floating Panels do not overflow correctly
  • Fixed UV face rotating issue
  • Fixed vindicator skin preset arm angle
  • Fixed Alex reference model arm origins
  • Fixed #2856 Exporting collection does not use collection name as the default file name
  • Fixed #2964 duplicate entry in autocomplete data crashes UI
  • Fixed #2958 render modes option in image editor
  • Fixed #2695 Animated frame mirror texturing cannot be activated without enabling other painting mirror features
  • Fixed pixel grid missing on inverted cubes
  • Sanitize names when converting projects (#2888)
  • Omit resizeobserver warnings from error log
  • Fixed #2928 loop cut behavior on radial loop of tris
  • Drag and dropping images as references now sets the correct layer in image editor
  • Fixed #3017 Group-select via shift does not correctly select faces
  • Fixed single file selection dialog (#3023)
  • Fixed #2921 Loop cut direction produces glitchy result in mirror modeling mode
  • Fixed #2452 Resizing texture with layers crops layers with offset incorrectly
  • Fixed invalid mesh when moving geometry of centered mesh over to other side
  • Fixed #2131 With mirror modelling, moving shared vertex away from the middle breaks symmetry
  • Fixed auto mesh fix not working when using Vertex Snap with vertices
  • Fixed display of relative dates (#3030)

Don't miss a new blockbench release

NewReleases is sending notifications on new releases.