Affect pivot point in edit mode

I don’t believe in that approach to the problem. The main thing is to give only one tool that works quite clearly and not that something that people can understand from common use is hidden. And it almost looks like a workaround. It’s like having a functionality that’s almost going to be main, behind a tool option. Like “we want make two behaviours, but we only do one”

Who is going to use this tool is who uses gizmos, so he won’t understand why to move the pivot point of the gizmo he has to have another gizmo underneath the gizmo, the 3D cursor. Which is also very important to work when putting 3D objects in the scene and for almost anything.

To that solution would be better and simpler to make the gizmo for the cursor on one side and allow moving the pivot point on the other side.

@Alberto. Not sure if i completely got your point. But I am in a row with the other guys proposal about being able to edit the pivot point itself and not taking the 3dcursor into account for this at all. That’s totally fine. It was a compromise as I got @billrey statement that way that he would like to leave any related functionality on 3dcursor side, and prefers seeing the cursor tweaked itself. And with my proposal that would be possible.

Yes, i know, i told that it was a solution before use a gizmo or active tool. But if the idea is a complete change in the 3d cursor behaviour (optionally) and place constantly in the median point will be merge two differents behaviours in one tool, so to that is better split in two tools more clear and easy to use.

Extrude and inset are similar, but we keep it separately because tell to the user to change the tool each time is worst than have both tool.

@clockmender: Sorry missed your question. The idea behind this was quite simple. If you have an interactive placement for the 3dcursor. You need a valuable default point as some kind of startpoint or as the default if you are not going to edit it. Almost every software choses the midpoint of a selection as the pivot if you are in edit mode.

@Alberto: Yes I agree with your point on that.

I know that everyone have their own opinion and the right idea in their minds but plz lets keep it on the topic even if we don’t understand each other well…the point is to try also understand what other people are suggesting, All this fighting is noise to the Devs and that’s why they stay away from these kind of discussions & we keep going in circles, IMO lets get the 3d Cursor to have Gizmos and few improvements first then build upon that.
Proposals,mockups…etc all help, in the end we all want blender to do it better and faster but at the same time take into consideration what already exists and if doesn’t work well we can always propse better ones.

Hey boss @Regnas your old suggestion might become a reality lol
https://developer.blender.org/T69550

Ahh. Well, I guess it’s better than nothing, right?
But still, this is not the solution, this is more like a workaround/hack. The workflow will still be a little convoluted and slow.
I hope that a proper implementation shows up in the future.

1 Like

I agree that a custom pivot should be handled by 3D Cursor.
It works like a charm when using addons with buttons to quickly place it.
But I also agree that if your are using a gizmo, 3D Cursor as a pivot is not currently satisfying.

When user wants to use 3D Cursor just to offset gizmo, it does not work.
Because after a translation, 3D Cursor location was not transformed like selection location.
So, user have to reposition 3D Cursor after each transformation.
For that, currently, only valuable options are to modify origin of object, use an empty as parent or create a hook.

Being able to modify 3D Cursor position with a gizmo is not a sufficient condition. It still means repositioning 3D Cursor after each selection transformation.
We need one or two option when 3D Cursor is used as pivot.
When option is off, 3D Cursor location/rotation are not changed by translation/rotation.
When option is on, 3D Cursor location/rotation are modified as well as selection by translation/rotation.

1 Like

Fun Fact: The English do not have a derogatory slang term for the Belgians, or Dutch, but have many for themselves.

Some other facts to consider:

In order to move, rotate, or scale geometry in Edit mode we need a reference location, that has 3 mutually normal axes and a 3D location.

This point needs to be able to be moved relative to the selected geometry, so, for example, some geometry can be rotated about a point other than the median of that geometry.

That is currently provided by the 3D cursor, but the cursor cannot be moved conveniently and universally, e.g. relative to some selected geometry at a distance and angle in the view plane and it has no gizmo.

Objects in Object mode may be moved by their gizmo located at the origin of the object.

Rotating the cursor does not facilitate moving geometry along the rotated axes of the cursor, or should I say “I cannot make this happen consistently”.

So, as a proposal what do the wise here think of this:

  1. Provide the cursor with a gizmo.
  2. Enable the cursor gizmo to automatically translate the cursor when no geometry is selected.
  3. Enable the gizmo to automatically translate the geometry when some geometry is selected.

This is then a completely automatic system requiring no user input to switch gizmo operational mode, other than the user selecting, or not selecting, some geometry. It also allows the rotated cursor axes to be used in Edit mode. Alternatively we could add a new “Reference Point” for geometry translation in Edit mode and leave the cursor as is. I am still in favour, in any circumstances, of having a gizmo for the cursor and also being able to move it more universally and precisely.

The position of this “Reference Point” could be automatically determined by the “Pivot Point” mode. so in “3D Cursor” mode, it appears at the 3D cursor location and otherwise it appears at the geometry median point, or at active element, etc. This would be consistent with the current methods.

Cheers, Clock.

PS. Could we add a “Distance At Angle” option for gizmos, so this option is universally available? This would operate in View Plane orientation, whatever that happens to be - the maths for this is not difficult and the coding is neither complex, nor lengthy.

This code does the rotational translation from Global to View Plane orientation:

def viewCoords(x_loc,y_loc,z_loc):
    areas = [a for a in bpy.context.screen.areas if a.type == 'VIEW_3D']
    if len(areas) > 0:
        vm = areas[0].spaces.active.region_3d.view_matrix
        vm = vm.to_3x3().normalized().inverted()
        vl = Vector((x_loc,y_loc,z_loc))
        vw = vm @ vl
        return vw
    else:
        return Vector((0,0,0))

And this one goes the other way:

def viewCoordsI(x_loc,y_loc,z_loc):
    areas = [a for a in bpy.context.screen.areas if a.type == 'VIEW_3D']
    if len(areas) > 0:
        vm = areas[0].spaces.active.region_3d.view_matrix
        vm = vm.to_3x3().normalized()
        vl = Vector((x_loc,y_loc,z_loc))
        vw = vm @ vl
        return vw
    else:
        return Vector((0,0,0))

Ahah! I can now make this happen consistently, but I cannot display the cursor’s axes - that would be nice.

Cheers, Clock.

1 Like

I guess the point many people here are trying to make is this:

The functionality isn’t the problem, the user experience is.

Blender has matured enough now that you need to start taking Ux seriously, because right now, imo, you don’t (and I know 2.8 is a big step up for Blender in terms of Ux, but for the rest of the world, it’s just Blender finally getting to a basic level of Ux where people actually want to use it at all, whereas before they didn’t).

If I may say so, that’s a bit harsh on those of us who have used it for a long time, warts and all…

May I ask what is your “must have” proposal to remedy this situation, do you have any thoughts as to what could be done, or what your “Star Fix” would be? I think we should all try to make construtive suggestions, rather than say just “It’s not good enough”.

For me the greatest leap forward has to be easy and precise location and orientation of the cursor using all common options, like “Global”, “Delta”, “Distance At Angle” and relative placement combined with the ability to use these for all modal operations.

Cheers, Clock.

It is, but the harsh truth is also that you were about 5% of the entire 3D industry… :wink:

As for proposals, I’ll see if I can post something in the paper cuts sub-forum in the weekend, because right now, that’s the closest we have to a Ux place here… (so my proposal for this thread is, make a dedicated Ux section on this forum first).

Suggestion…

For the modal mode could be good if when we use G or R, we can switch between move the components or move the 3DCursor pressing C. It will use same system than move, so, if we pulse other time the X, Y, Z it will use the own 3D cursor transform, or use the keyboard to add a offset.

I don’t know if this can work, maybe inside the move/rotate tool is not the best way to move the 3D cursor. Maybe a separate modal tool to move the 3D Cusror is a better option.

2 Likes

in case you decide to evolve the 3D cursor here are some wish

1 Like

I agree, maybe just add one/some buttons to this menu:

39

Maybe a “Command” button where you could type something like A1,2,5 for an absolute move, or D0.2,0,0.1 for a delta, or I1,34 for a Distance@Angle…

Cheers, Clock.

I think if you count CAD as well the figure will be a lot less than 5%, but we still have a voice to be heard!

Darn good idea that! :wink:

Cheers, Clock.

1 Like

Not so sure if it would have to feel like a hack, the main thing would be how well it is integrated in the ux/ui. What I described was more like the needed behaviour, not the manual amount of steps needed in the final solution. In C4D we also have to press a toggle button or use a shortcut to enter and leave that mode. And if there would exist such a toggle that would ovveride the current 3dcursor to be tightly coupled to the current pivot and make it editable then the amount of clicks needed would not be more.

The main problem with this is that the 3dcursor normally is very passive and never directly directly stands for something different that itself.

But with the changes i suggested in this mode the 3dcursor would “be” the pivot itself and no longer a pure reference point for somehting else. Not sure if that will be accepted or not.

But the only valid alternative would be not to use the 3dcursor at all for this. ( Which would also fine for me. Don’t get me wrong. This proposal is just for the sake of getting it working with the 3dcursor)

Otherwise that indirect behaviour is not solvable at all. The 3dcursor as it is, is not more than a pointer for something else, so it will never be in place at the beginning, and changes have to be written back to the target what is in this case the pivot point.

Anyhow, for me both modes would be benefitial for the workflow.

1 Like

I don’t understand how people can argue that the 3d cursor is the same as being able to add a transformation of “median point”, such as offsetting it by 1unit X until the selection changes. Then if you swap your pivot to 3d cursor you could rotate around that, then swap back to the transformed median point and scale toward it. It’s actually getting annoying hearing people argue about the 3d cursor being the same thing as offsetting the pivot point of the current mode (all modes, separately and independently, including the 3d cursor itself, without changing the origin)

edit: for the programmers to not argue about English
vec4 median * vec4 median_offset
vec4 active * vec4 active_offset
vec4 cursor * vec4 cursor_offset
vec4 box * vec4 box_offset

I have read the thread and i think there are interesting ideas but it seem there is dilemma, in a way blender has the 3d cursor which acts like one of the pivot points but it’s slow to use and rises some problems.
For example if it has an option to have the gizmos that mean you can’t use the transform tools to move your objects or even select them(except when using shift) but useful in some cases like placing objects,orientation…

I like the idea of the transform tools having a temporary pivots like the guys have shown and snapping to different elements while transforming, it looks intuitive.

For reference here is how maya doe it, with just one key, i can either click to enter the state or just hold a modifier and click to move the pivot and snap/orienting to any element, no need to call pie menu or activate a tool.

If it is something like this then i put my vote on it, simple & fast with less clicking or thinking.

2 Likes