Reference/Release Notes/3.5/Python API
< Reference | Release Notes | 3.5
Python API & Text Editor
Integration
- The users site-packages are now available by default without having to use
--python-use-system-env
(72c012ab4a)
General
- The active catalog of Asset Browsers can be changed via
bpy.types.FileAssetSelectParams.catalog_id
, it's no longer read-only. (rB80249ce6) - Custom node tree now have a default name set to
NodeTree.bl_label
. (59ce7bf59c) - New
object.modifiers.move()
method for reordering modifiers without using operators. (rBf7dd7d54)
Mesh
- The active and default (for render) color attributes are now stored as strings, making it easier to change them and access the correct attributes (rB6514bb05).
Internal Mesh Format
The mesh data structure refactoring from earlier releases has continued in 3.5.
- Mesh vertex positions are now accessible via the builtin
position
attribute (rB1af62cb3). - UV layers are now stored as generic attributes (rB6c774feb)
- The sharp edge property is now stored as a generic attribute (rBdd9e1ede).
- TODO: Expand on naming, performance tradeoffs, 4.0 deprecation, etc.
Loose edge status is stored differently internally now (rB1ea169d9).
- The
MeshEdge.is_loose
property is no longer editable. - Loose edge status can be recalculated with
Mesh.update(calc_edges_loose=True)
- The
Breaking changes
Grease Pencil Auto-masking moved to Global setting.
Props Removed:
brush.gpencil_settings.use_automasking_strokes,
brush.gpencil_settings.use_automasking_layer,
brush.gpencil_settings.use_automasking_material
Replaced by:
tool_settings.gpencil_sculpt.use_automasking_stroke,
tool_settings.gpencil_sculpt.use_automasking_layer_stroke,
tool_settings.gpencil_sculpt.use_automasking_material_stroke,
tool_settings.gpencil_sculpt.use_automasking_layer_active,
tool_settings.gpencil_sculpt.use_automasking_material_active
Motion tracking optical center
The internal storage of the optical center (principal point) has been changed in 7dea18b3aa to a normalized space.
The normalized space refers to coordinate (0, 0)
corresponding to the frame center, (-1, -1)
the left bottom frame corner, (1, 1)
is the top right frame corner. This notation is available via clip.tracking.camera.principal_point
property.
For some algorithms it is convenient to operate in the pixel space. For those usecases the new clip.tracking.camera.principal_point_pixels
property has been added.
The old clip.tracking.camera.principal
has been removed to avoid ambiguous naming in the API.
Inverted the meaning of the armature modifier vertex group in some cases
Fixed an old bug where the effect of the Invert Vertex Group toggle of the Armature modifier was inverted when Multi-Modifier was active. (rBea1c31a2)
Scripts creating complex armature modifier setups need updating to check the exact blender version:
modifier.use_multi_modifier = True
if bpy.app.version_file < (3, 5, 8): # Blender bug T103074
modifier.invert_vertex_group = True
bpy.ops.object.datalayout_transfer operator
Since we now feature two domains since eae36be372, the single "VCOL" in the enum has been split into "COLOR_VERTEX" and "COLOR_CORNER" 93d84e87b2.
Bundled Libraries
Python bindings for the following libraries are now bundled with Blender, and available to use by add-ons.