Skip to content

Blender 4.1: Animation & Rigging

Bone Collections

Bone Collections are now hierarchical (129fb2eab8). The collections are shown in a tree instead of a flat list, where they can be rearranged and nested via drag-and-drop. The outliner also shows the bone collection hierarchy (2e2b5dcd52).

Screenshot of the Bone Collections in the Outliner in Blender 4.1

Visibility is determined by the bone collection itself, and its ancestors: a bone collection is only visible when its parent, grandparent, etc. are visible (6cfbf9ef2f). In other words: hiding a bone collection will also hide its children.

Screenshot of the Bone Collections in the Armature Properties panel in Blender 4.1

Bone Collections can be 'solo'ed with the โ˜† icon. When any bone collection is marked as 'solo', shown as โ˜… in the interface, the regular visibility options (the ๐Ÿ‘ icon) are overridden. Only the bone collections with a โ˜… are then shown. This makes it possible to, for example, quickly show certain bone collections without altering the regular visibility setup.

An Un-Solo All operator is available to disable all 'solo'ed bone collections, and return to the regular visibility rules.

Screenshot of the Bone Collections in the Bone Properties, Relations panel

The Bone Properties' Relations panel also shows which Bone Collections the Bone is assigned to, including visibility & solo toggles. The bone can also be un-assigned from its collections here.

Python API

import bpy

# Create bone collections
armature = bpy.context.object.data
bcoll_root = armature.collections.new("A Root Collection")
bcoll_child = armature.collections.new("Child Collection", parent=bcoll_root)

# Moving the bone collection after it has been created.
bcoll = armature.collections.new("collection")
bcoll.parent = bcoll_root  # Assign a new parent collection.
bcoll.child_number = 0     # Move to be the first of its siblings.

# Access to the top level (aka 'root') collections:
for bcoll in armature.collections:
    print(f'Root collection: {bcoll.name}')

# Access to all collections:
for bcoll in armature.collections_all:
    print(f'Collection: {bcoll.name}')

# Access to all collections, backward-compatible with Blender 4.0.
# NOTE: this does NOT return the collections in a strict top-to-bottom order.
# See the link below this code for more info.
colls_all = getattr(armature, 'collections_all', armature.collections)
for bcoll in bcolls_all:
    print(f'Collection: {bcoll.name}')

# Assigned bones can be retrieved hierarchically:
bcoll_child.assign(armature.bones['thigh.L'])
for bone in bcoll_root.bones_recursive:
    print(bone.name)

For more information about the bone collections, see Bone Collections: Storage and Hierarchy.

NLA

  • Add new channel options to Action bake, so you can choose what to bake (loc/rot/scale and custom properties) (dd5b870d15, 4ddb52a775).
  • Rename "NLA Channels" to "NLA Tracks" (661e7e451a).

Screenshot of Blender showing the new Bake Action popup

Weight Paint: Bone Selection

Selection mode options in the Weight Paint mode

Bone selection mode is made explicit when you enter weight paint mode with an armature (edcac1f48b). It now has an icon and can be accessed with the hotkey 3. In previous versions, this mode would be enabled implicitly when both 'vertex' and 'face' selection modes were turned off.

Keying

Rik Schutte explains these changes in Keying Animation Updates in Blender 4.1 (YouTube).

  • Pressing I in the viewport will no longer pop up a menu of keying sets. Instead, it will use newly added options in the Preferences. These options define which channels get keyed. This makes it significantly simpler to set up Blender so that it keys what you need. (a99e419b6e)
  • There is a new hotkey K in Object and Pose Mode which pops up the Keying Set menu. This shows the menu even if a keying set is active in the scene. (87fc8e8ddd)
  • The hotkey to change the active Keying Set has been changed from Ctrl+Shift+Alt+I to Shift+K. (87fc8e8ddd)
  • When the User Preference option "Pie Menu on Drag" (in the "Keymap" category) is enabled, holding I and moving the cursor will show a pie menu to insert one of Location, Rotation, Scale and Available. (87fc8e8ddd)
  • The User Preference option "Only Insert Needed" is now split between manual keying and auto-keying. (5e28601d69)

Drivers

  • Single Property and Context Property driver variables now support a fallback value to use if the RNA path lookup fails. (d0ef66ddff, Manual)
  • Drivers that failed to evaluate are now underlined in red in the channel list of the Driver Editor. Previously that only happened for drivers attached to non-existing properties. (b9074381e5)

Graph Editor

  • Scale from Neighbor operator (b27718a9e7, Manual)
  • Add an option to automatically lock key movement to either the X or Y axis. This can be found under View ยป Auto-Lock Axis. (446b92d2ce)
  • Add option to right click menu on animated properties to view the FCurve that animates it. For this to work the object/node has to be selected. (a91a8f3fed, Manual)
Demo of viewing the F-Curve of the animated property

F-Curve Baking

A new operator "Bake Channels" has been added to the Graph Editor. (1e931f5bd7, Manual)

It allows you to:

  • Specify a range to bake.
  • Define the distance between baked keys, e.g. 2s or 3s.
  • Remove keys outside the baked range.
  • Define a interpolation type for new keyframes.
  • Bake modifiers to keyframes.

It is found in the Graph Editor under Channel ยป Bake Channels.

Dope Sheet

  • Speed up Dope Sheet by only calculating keyframes that are visible in the current view. (f06fd85d97)

Motion Paths

  • Add an option to create motion paths relative to the active camera. This means the motion paths will appear in screen space when looking through that camera. (79f84775f2)
Demo of motion paths in camera space