Change pivot or local origin of an object

  • How can I change the local origin of an object, without changing the object location in the world space.

    This is the object located at position (0,0,0) in the world space

    enter image description here

    This is the same object located at position (0,1,0) in the world space, but with its local origin offset so that the object is in the same place

    enter image description here

    Is there a way to do this in a single step?

  • iKlsR

    iKlsR Correct answer

    7 years ago

    One way to do this is by entering Edit mode and placing the 3D cursor where you want the new origin. (When doing this, you can be very precise by selecting vertices, edges or faces and using them as guides. If you pick several points and snap the cursor to them using Shift+SCursor to Selected, Blender will use the average of the selected points to determine the new location of the cursor).

    enter image description here

    You then go back to Object mode and use Ctrl+Alt+Shift + COrigin to 3D Cursor to update or change the object origin to the location of the 3D cursor.

    enter image description here

    With all the attention this has gotten, this seems to be a good idea, https://rightclickselect.com/p/modeling/vqbbbc/interactive-pivot. Maybe someone with a little time on their hands could tackle it. :)

    For properly center object from blender for unity I was needed to place 3D cursor to the zero coordinates (0, 0, 0) and then place the center of mesh object using Origin to 3D Cursor.

    My pivot point has become rotated, how do I restore the rotation to be non rotated with respect to the rotation in world coordinates?

    @rien333 Best to ask a new question, not sure what you mean by *"pivot point has become rotated"*.

    Okay, I will. Its pretty obscure, some old threads show up on Google but people in general just act confused.

    Here is the question if anyone is interested (I guess it also pretty related to this one): http://blender.stackexchange.com/questions/77224/change-object-pivot-point-orientation

    When you want to check your modification in Unity, make sure you toggle the button to "Pivot" in Unity Editor to see where the new pivot point is. Otherwise, you would still see the center of the gameObject.

    I would like to upvote your answer every time I need this. +4 till now.

  • This is useful to have as a script, I wrote one back in 2011. It uses the 3d cursor but restores its original position.

    A link to this script is here (includes all addon boilerplate) Once installed the script can be run from 3d view > space bar > Origin Move to Selected

    This is the juicy bit:

    def execute(self, context):
        saved_location = bpy.context.scene.cursor_location.copy()
        bpy.ops.view3d.snap_cursor_to_selected()
    
        bpy.ops.object.mode_set(mode = 'OBJECT')
        bpy.ops.object.origin_set(type='ORIGIN_CURSOR')  
        bpy.context.scene.cursor_location = saved_location
    
        bpy.ops.object.mode_set(mode = 'EDIT')
        return {'FINISHED'}
    

    To bind this to a key combo:

    • User Preferences > Input > 3D View > 3D View (Global) > New.
    • Then fill in the text field with object.origin_to_selected and Blender will name the short-cut correctly. Then pick your short-cut keys: enter image description here

    More work up front, but convenient when used hourly.

    Very handy! I knew it could be done with scripting, but I'm new on that topic

    Very nice.. This should be part of Blender distribution.

    How can be added undo support?

    hmm, this might take a bit longer, i will let you know when I find time to add undo. it's not just a simple `bl_options = {'REGISTER', 'UNDO'}`

    @rraallvv, i recoded it to manipulate directly the verts and object location, https://gist.github.com/zeffii/5879583, but still no nice undo.. :/ maybe someone else has a solution. I realize I've never used undo for something like this:)

    @rraallvv the best way I know at the moment is, and this only works immediately after the origin switch.. is to go to object mode and hit undo.

  • In Blender 2.81 the transform tools can be restricted to only affect the origins, which allows to translate it directly.

    1. Open the Options in the Tool Settings
    2. In the Transform - Affect Only section check Origins
    3. Select an object and adjust the origin using the shortcut G to move it. Alternatively you can also use the Move tool from the toolbar for the interactive gizmo.

    Enable transform only for the origins Moving the origin by using the move tool

    In addition to the above, I also use the "Snap to" tool and set it to "Edge" and "Closest" so that I get exact positioning of the origin to be at the very edge of the object (which is usually what most folks want when they move the origin).

  • In Object Mode, first select the Object you want to change the Origin. Then click Manipulate Center points (or Alt ,) It is the 3rd button on the right from the Object mode in the 3D header.
    Switch to Edit Mode, if your Object is not selected, press A or A twice to select everything.
    Move the selected object with the 3D manipulator. It works now relative to the center point. When you are done, go back to Object Mode and uncheck Manipulate Center points (or Alt ,).

    Sorry but you're wrong. The "manipulate center points" button only works with rotation, in "object" or "pose" modes. To move the pivot point of an object, this option is useless... However, manipulating the whole vertices of an object in "edit" mode will do the trick, as you said.

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM