187 lines
6.1 KiB
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. _bpy.types.TransformOrientation:
.. _bpy.types.SpaceView3D.transform_orientation:
.. TODO/Review: {{review|Need to change and explain the behavior of the transform orientation.
It is toggled between the chosen orientation and
the global orientation when transformations are made by shortcuts}}.
Transform Orientation
.. reference::
:Mode: Object and Edit Modes
:Panel: :menuselection:`Header --> Transform Orientation`
:Shortcut: :kbd:`Comma`
The *Transform Orientation* determines the orientation of the
:doc:`Object Gizmo </editors/3dview/display/gizmo>`.
Changing this orientation can make it easier to perform
transformations in the direction you want.
.. figure:: /images/editors_3dview_controls_orientation_demo.png
:align: center
With the default Global transform orientation (left) it's tricky to
move the plane in the direction it's facing, but with Local (right)
it's easy.
The Transform Orientation can be changed using a
selector in the 3D Viewport's header:
.. figure:: /images/editors_3dview_controls_orientation_menu.png
Transform Orientation selector.
The orientation can also be changed temporarily while performing
a hotkey-based transformation with
:doc:`axis locking </scene_layout/object/editing/transform/control/axis_locking>`.
For example, if you first press :kbd:`G` to start moving an object,
then :kbd:`X` to lock to the orientation's X axis, and finally :kbd:`X` a second time,
you'll get a lock to an alternative orientation:
the Local orientation if it was Global previously, and the Global orientation
In addition to the builtin orientations,
you can also define your own (see `Custom Orientations`_ below).
.. _bpy.types.TransformOrientationSlot.type:
Align the transformation axes to world space.
The world axes are shown by the :ref:`Navigation Gizmo <navigation-gizmo>`
in the top right corner of the viewport, as well as the *Grid Floor*.
Align the transformation axes to the active object's orientation.
In Edit Mode, orient the transformation axes so that the Z axis of the gizmo
matches the average :doc:`Normal </modeling/meshes/editing/mesh/normals>`
of the selected elements.
In Object Mode, this is equivalent to *Local* orientation.
Orient the transformation axes to visualize the workings of the object's
:ref:`Rotation Mode <bpy.types.Object.rotation_mode>`.
This is specifically useful for the Euler modes,
where the object is rotated one axis at a time: the rotation axes don't
stay perpendicular to each other and might even overlap, a phenomenon
known as :term:`gimbal lock` that complicates animation.
Align the transformation axes to the view (meaning they change as you orbit around):
- X: Left/Right
- Y: Up/Down
- Z: Towards/Away from the screen
Align the transformation axes to the :doc:`3D Cursor </editors/3dview/3d_cursor>`.
Align the transformation axes to the :doc:`Parent </scene_layout/object/editing/parent>`.
.. list-table:: Cube with the rotation gizmo active in multiple transform orientations.
* - .. figure:: /images/editors_3dview_controls_orientation_manipulator-global-1.png
Default cube with Global transform orientation selected.
- .. figure:: /images/editors_3dview_controls_orientation_manipulator-global-2.png
Rotated cube with Global orientation, gizmo has not changed.
- .. figure:: /images/editors_3dview_controls_orientation_manipulator-local.png
Local orientation, gizmo matches the object's rotation.
* - .. figure:: /images/editors_3dview_controls_orientation_manipulator-normal.png
Normal orientation, in Edit Mode.
- .. figure:: /images/editors_3dview_controls_orientation_manipulator-gimbal.png
Gimbal transform orientation.
- .. figure:: /images/editors_3dview_controls_orientation_manipulator-view.png
View transform orientation.
* - .. figure:: /images/editors_3dview_controls_orientation_manipulator-parent.png
Parent transform orientation. Cube parented to rotated empty.
- ..
- ..
.. _bpy.ops.transform.delete_orientation:
Custom Orientations
.. reference::
:Mode: Object and Edit Modes
:Panel: :menuselection:`Header --> Transform Orientation`
You can define custom transform orientations using objects or mesh elements.
Custom orientations defined from an object use the *Local* orientation of that object,
whereas those defined from mesh elements (vertices, edges, faces)
use the average *Normal* orientation of those elements.
.. figure:: /images/editors_3dview_controls_orientation_custom.png
Transform Orientation panel.
The *Transform Orientation* panel, found in the header of the 3D Viewport,
can be used to select, add, remove, and rename transform orientations.
The default name for these orientations is derived from the selection.
If it's an object it will take that object's name,
if it's an edge it will be titled "Edge", and so on.
.. _bpy.ops.transform.create_orientation:
Create Orientation
To create a custom orientation, select an object or mesh element(s) and
click the "+" button in the *Transform Orientation* panel.
.. figure:: /images/editors_3dview_controls_orientation_custom-name.png
Create Orientation :ref:`bpy.ops.screen.redo_last` panel.
Right after creating the orientation,
the *Create Orientation* :ref:`bpy.ops.screen.redo_last` panel gives a few options:
Text field for naming the new orientation.
Use View
The new orientation will be aligned to the view space.
Use After Creation
The new orientation stays selected.
Overwrite Previous
If the new orientation is given an existing name, a suffix will be added
to it's name to avoid overwriting the existing orientation,
unless *Overwrite Previous* is checked, in which case it will be overwritten.
Delete Orientation
To delete a custom orientation, simply select it and click the × button.