Reference/Release Notes/4.0/Animation Rigging

Animation & Rigging

  • The pose library uses the newly introduced asset shelf to make pose assets available in 3D Views.
  • Channel list background colors have moved from covering the entire background (making text hard to read) to a small rectangle (c524fbe623). The channel background color is also more subtle and blends in better. As the feature now no longer causes hard to read text, the "Channel Group Colors" option in the preferences has been enabled by default.
3.6 4.0
Blender-4.0-channel-group-colors-before.png Blender-4.0-channel-group-colors-after.png

Breaking/Backward-Incompatible Changes

  • 1-9 hotkeys for switching collection visibility have been removed from Pose Mode. PR #105120
  • Certain Graph Editor Slider tools had their range changed from 0-1 to -1/1: Blend to Neighbor, Breakdown, Ease PR #107173
  • Making Make Vertex Weight Edit modifier Group Add / Remove threshold inclusive. 1837bda030
  • The "Push Rest Pose" and "Relax Rest Pose" operators have been merge into "Blend Pose with Rest Pose" PR #108309
  • Update NLA "Duplicate hotkey" to be "Duplicate Linked" by default 8183f21258
  • The "Tab" shortcut to enter tweak mode in the NLA now defaults to "full stack evaluation". (b95cf5ff0f).
  • The Preserve Volume deformation math in the Armature modifier and constraint has been improved to fix distortion caused by scaling. (f12e9f32b5, dee29f4e81)
  • Snapping for the Graph Editor, NLA and Dope Sheet have moved to the scene. PR #109015
  • Armature Layers and Bone Groups have been removed, and replaced with Bone Collections and per-bone colors (see below).
  • Bones influenced by an Inverse Kinematics (IK) constraint can now be keyed visually (eab95fa2aa). This means that when the 'Use Visual Keying' preferenced is enabled, visual keying is used on such bones (where in Blender 3.6 and older still would create regular keys).

Operator Renames

Python/RNA API changes

  • FCurve.update() now also deduplicates the F-Curve's keys. 6452eccc80
  • Action.frame_range now accurately reports zero-length frame ranges (49eab72141).

Bone Collections & Bone Colors

As a major feature, this release introduces named bone collections instead of legacy numbered layers and bone groups (design task #108941)

  • Legacy armature layers and bone groups have been replaced with bone collections. (998136f7a7)
  • Bone collections can be added to linked armatures via library overrides.
  • With the removal of bone groups, colors are now specified individually for each bone (042c5347f4). These colors can be defined on the armature (edit mode) bones, as well as on the pose bones (also see Gotchas: edit bones, pose bones, bone bones). The "edit mode" colors are shared between all users of the armature, and are available in edit mode as well as pose mode. The "pose mode" colors can be different per armature object (in the same way that each armature object has its own pose), and thus allow per-character customisation of colors. The pose mode colors work as override on the edit mode colors; setting the pose color to "default" will show the edit mode color.
  • The Armature property show_group_colors has been renamed to show_bone_colors (f78ed7b900).
  • The Select Grouped operator (Shift+G) can now select by bone color and by bone collection. This works based on the active bone; it selects all the other bones with the same color resp. sharing one or more bone collections. This is slightly different than before, where all selected bones were taken into account. (e41fbfd6e9, c230c52626, d5329eeea2, e59944dba4, 62639080bc).
  • The Bone Layer operators (M, Shift+M) have been replaced by bone collection operators (b48031df8e)
  • The "Skeleton" panel in the Armature properties has been renamed to "Pose" (007cea4653).

See Bone Collections & Colors: Upgrading for an overview of how to change Python code from armature layers & bone groups to bone collections.

Bendy Bones

A new method of mapping vertices to B-Bone segments for deformation that takes the rest pose curvature into account has been added. (0055ae01ab, Wiki)

The new mapping is slower to compute, but produces better deformation when the B-Bone is strongly curved in the rest pose, e.g. in a corner of the mouth:

Straight Mapping (Default) Curved Mapping Deformation
Bbone-mapping-straight.png Bbone-mapping-curved.png Bbone-mapping-comparison.png


  • NLA Strips can now be vertically re-ordered. Strips can vertically be dragged through existing strips, and locked tracks. (4268ac0ed9).
  • Vertically clamp scrolling to view. Preventing infinite scrolling 7146371964


Graph Editor

  • PR #106052 Animation: Improve drawing of locked FCurves
  • PR #112419 Anim: Multi Editing for FCurve modifiers

New Operators


The performance of the Graph Editor has been greatly enhanced for 4.0 when it comes to dense key data. In a test setup with 6000 keys per channel on 62 bones this is the performance delta.

Before After
Zoomed In ~170ms (5-6fps) ~16ms (60fps)
Zoomed Out ~170ms (5-6fps) ~30ms (30fps)
  • PR #110301 Animation: Graph Editor curve drawing performance improvement
  • PR #110764 Animation: Common curve drawing for FCurves
  • PR #110788 Animation: Graph Editor - Don't draw curve points if they are too close to each other
  • PR #112126 Animation: Graph Editor optimize handle drawing
  • #111579 Improve animation playback timing, avoiding jitter in the time between frames.
FPS Jitter comparison


  • PR #108518 Animation: Keep icons aligned when curves are baked
  • Preferences: support adjusting the number of samples used for FPS playback display. (b150b47720)