39: WARNING: undefined label: 'bpy.ops.screen.redo_last' 62: WARNING: undefined label: 'bpy.ops.screen.redo_last'
Note the preview is not accurate and warnings may not indicate real issues.
These operations lets you apply several transformations to the selected objects. The object transformation coordinates are transferred to the object data. If the objects have hierarchical descendants, it also applies those transformations to their children.
Object ‣ Apply ‣ Location / Rotation / Scale / Rotation & Scale
Applying transform values essentially resets the values of object’s location, rotation or scale, while visually keeping the object data in-place. The object origin point is moved to the global origin, the rotation is cleared and scale values are set to 1.
For simple cases you won’t notice any difference the 3D Viewport or rendered output, yet modifiers and constraints may depend on object transformation.
While applying transformations to armatures is supported, this does not apply to their pose location, animation curves or constraints. This tool should be used before rigging and animation.
When applying transforms to an object that shares Object Data between multiple objects, the object must first be made a Single User which can be performed by confirming the pop-up message.
When running Apply Transform, the bpy.ops.screen.redo_last panel lets you choose the combination of transformations to apply.
Apply (set) the location of the selection. This will make Blender consider the current location to be equivalent to 0 in each plane i.e. the selection will not move, the current location will be considered to be the “default location”. The object origin will be set to actual (0, 0, 0) (where the colored axis lines intersect in each view).
Apply (set) the rotation of the selection. This will make Blender consider the current rotation to be equivalent to 0 degrees in each plane i.e. the selection will not rotated, the current rotation will be considered to be the “default rotation”.
Apply (set) the scale of the selection. This will make Blender consider the current scale to be equivalent to 0 in each plane i.e. the selection will not scaled, the current scale will be considered to be the “default scale”.
- Rotation and Scale
Apply (set) the rotation and scale of the selection. Do the above two applications simultaneously.
- Apply Properties
Modify properties such as curve vertex radius, font size and bone envelope according to the applied transformation. (Found in the bpy.ops.screen.redo_last panel)
Transforms to Deltas
Object ‣ Apply ‣ Location / Rotation / Scale to Deltas
Converts primary object transformations to delta transforms, any existing delta transforms will be included as well.
Location to Deltas
Rotation to Deltas
Scale to Deltas
- All Transforms to Deltas
Converts all primary transformations to delta transforms.
- Animated Transform to Deltas
Converts the primary transformation animations (of the translation, scale, and, rotation values) to delta transforms.
- Reset Values
Clear primary transform values after transferring to deltas.
Object ‣ Apply ‣ Visual Transform
Apply (set) the result of a constraint and apply this back to the object’s location, rotation and scale.
Visual Geometry as Mesh
Object ‣ Apply ‣ Visual Geometry to Mesh
Apply the visual state of all selected objects (modifiers, shape keys, hooks, etc.) to object data. This is a way to freeze all object data into static meshes, as well as converts non-mesh types to mesh.
For details, see the Object convert to mesh.
Make Instances Real
Object ‣ Apply ‣ Make Instances Real
Make Instances Real creates a new object for each instance generated by the selected ones, and removes any direct instancing from those.
In the end, each instance becomes a real object.
This applies to both direct (from verts or faces…) and indirect (from particle system…) instancing. In case you have tens of thousands of instances (from particles for example), this can significantly slow down Blender, which does not always deal well with that many objects in a scene.
By default, new objects will be added to the same collection as the one containing their instancer, without keeping any hierarchy relationships. This behavior can be altered with the following options.
If Keep Hierarchy is not set, parents all the generated objects to the former instancer.
Otherwise, parents all the generated objects which are not already parented to their respective instancer, or its matching new copy (this is important in case of recursive instancing, see the note below).
- Keep Hierarchy
Preserves internal hierarchies (i.e. parent relationships) in the newly generated objects.
Usually, to get a new hierarchy as close as possible from the instancing one, you’ll want to enable both of these options.
Preserving relationships in recursive instancing cases (instancers instancing other instancer objects, etc.) is only supported to some extent currently.
Simple cases (like an empty instancing a collection containing instances of some other collections) will usually work, but more complex cases will fail to fully reproduce the whole instancing hierarchy.
Object ‣ Apply ‣ Parent Inverse
Applies the object’s Parent inverse matrix transform to the object data.