File: orientation.rst

package info (click to toggle)
blender-doc 4.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 253,604 kB
  • sloc: python: 13,030; javascript: 322; makefile: 113; sh: 107
file content (186 lines) | stat: -rw-r--r-- 6,232 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
.. _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
otherwise.

In addition to the builtin orientations,
you can also define your own (see `Custom Orientations`_ below).


.. _bpy.types.TransformOrientationSlot.type:

Orientations
============

Global
   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*.

Local
   Align the transformation axes to the active object's orientation.

Normal
   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.

Gimbal
   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.

View
   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

Cursor
   Align the transformation axes to the :doc:`3D Cursor </editors/3dview/3d_cursor>`.

Parent
   Align the transformation axes to the :doc:`Parent </scene_layout/object/editing/parent>`.


Examples
--------

.. 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.types.TransformOrientation.name:
.. _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:

Name
   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.