Transform Tools Addon - Core Version
Description
Transform Tools: Essential Gizmo Control & Precision Transformations
Transform Tools enhances object manipulation in Blender using custom 3D gizmos for precise transformation control. It works closely with Blender's core tools.
Core Features:
- Flexible Gizmo Definition: Define transformation origins and targets accurately. Create gizmos automatically from selections, interactively using Blender's 3D cursor.
- Dual-Gizmo Transformations: Apply a transformation between the two gizmo states, using modes for full transform (location, rotation, uniform scale).
- Independent Custom Orientation: Use the Active gizmo as a custom transform orientation for standard Blender transform tools like Move, Rotate, Scale, etc.
Workflow:
The addon operates by defining the 'Previous' (start) and 'Active' (end) gizmo states, then applying transformations based on these states. This system facilitates precise pose-to-pose adjustments. It integrates with Blender's 3D Cursor for placement.
User Documentation
Overview
Transform Tools provides enhanced transformation capabilities in Blender using custom 3D gizmos and dedicated operators. It allows for precise control over moving, rotating, and scaling objects and mesh components. The addon includes methods for:
- Transforming elements between two explicitly defined transform states using dual gizmos.
- Using a single gizmo as a custom orientation for standard Blender transform tools.
Core Workflow: The fundamental process involves:
- Defining the 'Previous' gizmo (representing the start state).
- Defining the 'Active' gizmo (representing the end state).
- Selecting the elements to modify.
- Applying the transformation operation that uses the defined gizmos.
Key Concepts:
- Gizmos definition sources: interactive clicking.
- Active gizmo can serve as a custom orientation for standard Blender tools via the
Cursor Pivotoperator.
Installation
- Go to
Edit > Preferences > Add-ons. - Click
Installand select the downloaded addon.zipfile. - Find "Transform Tools" in the list and enable the checkbox.
- The panel will appear in the 3D View's Sidebar (N-Panel) under the "TTools C" tab, aka "Transform Tools Core".
IMPORTANT NOTE: Upgrading or Installing Multiple Versions
-
Please be aware that running multiple versions of the Transform Tools addon (e.g., having both "Core" and "Lite" enabled) at the same time is not recommended and may cause conflicts.
-
The recommended procedure for a clean upgrade is to first disable and REMOVE the existing version from Blender's Add-on Preferences. Restarting Blender before installing the new version is also advised to ensure all modules are fully unloaded.
-
Automatic Conflict Detection
To assist with this process, the addon includes a built-in conflict detection system.
If you enable a new version while an older one is still active, an "Addon Conflict Detected" dialog box will appear, listing the conflicting addons that were found.
- You will be given an interactive choice:
- Clicking the "OK" button will automatically disable the conflicting version(s) for you, allowing the new one to register correctly.
- Clicking "Cancel" will abort the process, leaving the old version active and the new one disabled, allowing you to manage the conflict manually in your preferences.
- You will be given an interactive choice:
Working with the 3D Cursor and Snapping
The 3D Cursor plays a vital role in Create Gizmos operation:
Positioning the 3D Cursor: Accurate placement is often crucial. You can position it using:
- Direct Placement:
Shift + Right Mouse Buttonplaces the cursor on the surface under the mouse. Shift + SPie Menu: Offers various snapping options likeCursor to Selected,Cursor to World Origin,Cursor to Grid.- Sidebar (N-Panel): In the
Viewtab, you can numerically edit the3D CursorLocation and Rotation.
Using Blender's Snapping: For precise placement (especially during interactive Create or when positioning the cursor before other operations):
- Enable Snapping: Click the Magnet Icon in the 3D Viewport header or press
Shift + Tab. - Choose Snap Target (
Snap To): Select what to snap to (e.g.,Vertex,Edge,Face Center,Increment). - Choose Snap Element (
Snap With): Determine which part snaps (e.g.,Closest,Center,Active).
Mastering 3D Cursor placement and Blender's snapping system significantly enhances the precision you can achieve with this addon.
Panel Sections
1. Operations Section
-
Create: Interactively define the Active gizmo by clicking its origin, X-axis, and Y-axis endpoints in the 3D view.
- How it works: This process uses the 3D Cursor system to determine where your clicks land in 3D space. The behavior depends on the
Snaptoggle below: if active, it uses the addon's specific snapping settings; if inactive, it respects Blender's current header snapping settings. - Cancellation & Validation:
- You can cancel the placement of the origin or axes using
ESCorRight Mouse Button. - If you cancel placing the origin, its position reverts based on the setting below.
- If you cancel placing an axis endpoint (X or Y), or if the manually placed axis is invalid (too short or aligned with a previous axis), that axis will be automatically created using a reference orientation determined by the setting below.
- This fallback ensures a valid gizmo is always created.
- You can cancel the placement of the origin or axes using
- Reference State for Cancellation/Auto-Creation: The specific state used for origin cancellation revert and the orientation used for automatic axis creation depends on the
3D Cursor Orientationsetting (see description below). - Final Cursor Update: This operation always updates the 3D cursor's location and rotation upon successful completion, regardless of other settings.
- How it works: This process uses the 3D Cursor system to determine where your clicks land in 3D space. The behavior depends on the
-
Auto-Update Gizmos: If enabled, whenever the Active Gizmo is defined or updated (e.g., via Create,Get from selected,Paste), the Previous Gizmo automatically takes the state of the former Active Gizmo. This ensures the two gizmos usually represent the 'before' and 'after' states of the last operation.- Note: This setting is overridden and has no effect when using
Get from selectedwith exactly 2 objects, as both gizmos are defined directly from the selected objects in that specific case.
- Note: This setting is overridden and has no effect when using
-
3D Cursor Orientation: This option primarily controls the reference orientation and scale used by the interactive Createoperation when handling origin cancellation or performing automatic axis creation/alignment. The new gizmo's origin location will always be based on the 3D Cursor's current location if origin placement is cancelled.- Primary Effect (Reference for
Create's Orientation & Scale during Auto-Creation/Cancellation):- When Enabled: If an axis needs to be auto-created or cancelled, the
Createoperation uses the current 3D Cursor's orientation and derives a scale factor from the screen space zoom level as the reference. - When Disabled: If an axis needs to be auto-created or cancelled, the
Createoperation uses the orientation and scale from the former Active Gizmo (the one active beforeCreatebegan) as the reference.
- When Enabled: If an axis needs to be auto-created or cancelled, the
- Secondary Effect (Updating the 3D Cursor by other operations):
- When Enabled: Allows certain other addon operations (like
Get from selected) to update the 3D cursor's location and rotation. - When Disabled: These other addon operations will not automatically update the 3D cursor.
- (Note: The interactive
Createoperation always updates the 3D cursor's location and rotation upon successful completion, regardless of this setting).
- When Enabled: Allows certain other addon operations (like
- Primary Effect (Reference for
-
Snap: When enabled, this forces the interactive Createoperation to use a specific, pre-defined set of snapping settings, overriding whatever snapping settings are currently active in Blender's 3D View header. When disabled,Createrespects Blender's current header snapping settings.- Addon's Internal Snap Behavior (When this toggle is ON):
- Turns snapping ON.
- Sets snapping targets to Vertex, Edge, Face, and Edge Midpoint.
- Aligns the placed point's rotation to the snapped surface normal.
- Allows snapping to the object being edited (self-snapping).
- Ensures snapping works in both Edit Mode and Object Mode.
- Refer to the "Working with the 3D Cursor and Snapping" section above for general information on Blender's snapping system.
- Addon's Internal Snap Behavior (When this toggle is ON):
-
Undo/Redo Gizmos: Undo or redo changes made to the gizmo states themselves. -
Cursor Pivot: Switches Blender's Transform Orientation between the Active gizmo and the previously used standard orientation. This allows standard Blender operators like Move, Rotate, Scale, etc. to use the Active gizmo's precise alignment.
-
Fixed Visual Size: Keeps the visual size of the gizmos consistent on screen as you zoom in or out. Doesn't affect transformations. -
Gizmos Visibility: Cycles through the visibility states for the Previous and Active gizmos. Clicking the icon toggles between: showing both gizmos
, showing only the Active gizmo
, or hiding both gizmos
. -
Transform: Performs a full location and rotation transformation on the selected elements, moving them from the Previous gizmo's state to the Active gizmo's state. Behavior modified by Options Section settings like
ScaleandFlip.
4. Options Section
Modify the behavior of the Transform operation.
Scale: Include the uniform scale factor difference between the gizmos in the transformation calculations for operations in the Transformation Section. If unchecked, the scale component of the gizmos is ignored, and only location and rotation differences are applied.-
Note on Scale: Whether the scale component of the gizmos is included in the
Transformoperation depends on the state of theScalecheckbox in the Options Section. -
Flip: Rotates the Previous gizmo 180 degrees around its Y-axis before applying the transformation. Primarily used when transforming between two faces (e.g., on different objects) that should end up facing each other, rather than aligned in the same direction. -
Duplicate: Duplicates the selected elements before transforming them. -
Instance: (Object Mode Only) WhenDuplicateis checked, creates linked instances instead of full copies. -
Extrude: (Edit Mode Only for Mesh/Curve/Armature) Extrudes selected mesh components, curve points, or bones during the transformation instead of just moving them. Note: If bothExtrudeandDuplicateare enabled,ExtrudeoverridesDuplicate; the elements will be extruded, not duplicated then transformed. -
Note: The
InstanceandExtrudeoptions are contextual and replace each other in the UI. The option displayed depends on whether you are in Object Mode or Edit Mode. -
Reverse: (Redo Menu Only) Inverts the direction of the transformation. When checked, the selected elements will transform from the Active gizmo's state back to the Previous gizmo's state, effectively swapping the start and end points for the operation. -
Complex Dup: (Redo Menu Only) This option uses a more robust but slower duplication method. This ensures that complex relationships, such as modifiers that target other duplicated objects, are updated correctly. It is recommended to leave this behavior active for the most reliable results. However, if you are duplicating a high number of simple objects and experience a noticeable slowdown, you can deactivate this compatibility mode in the operator's Redo Last (F9) menu for a significant performance increase.
6. Redo Last Menu (F9 Panel)
After performing the Transform operation, a special menu becomes available. This menu allows you to interactively fine-tune the result of the last action without undoing and redoing the entire process.
How to Access:
* Press F9 immediately after an operation.
* Or, click on the operator panel that appears in the bottom-left corner of the 3D Viewport.
Session Persistence: All settings on the main panel, including those persistently set via the Redo menu, will reset to their defaults when you restart Blender.