GSoC 2021: Curve Improvements: Feedback

Yes please. Keep settings out of preferences as much as possible. Better use: Tool Bar, menus, WorkSpace tab, etc.
Preferences > “Keymap” Settings is one of the few things that have remained non-intuitive and difficult to configure in the transition 2.79 → 2.80

True. I’m not sure whether space is viable since it’s used for the timeline but I’ll check what might work based on Blender’s conventions.

I agree. I’ll look into it. Hopefully, the same flexibility for options is available in one of the places you mentioned. Thanks for bringing it up.

Also, just a heads up to all, the next build might be a bit late since I have an exam this week. Will work on the changes on the weekend.

1 Like

ah I was under impression that is standard since my blender does that
space bar to open this submenu and second shorcut is a tool
so yeah I don’t know this is probably question for UI teame
image
image

Tool settings under the header seems like the most appropriate place to put these options. And the most convenient. I would also suggest putting Close Spline toggle in there.

Btw Move Adjacent Handle feature moves the handle only on one side of the vertex, even if you grab the handle on the other other side.

Noted

I was planning on having the following as options:
Select Distance
Extrude Handle Type
Extrude Internal

The issue with including the close spline toggle is that it’s enabled by default only for Left-Click and not for Shift-Click or Ctrl-Click. So having the option there would mean that it would toggle the option for all keybindings. This isn’t a problem for Extrude Internal or Extrude Handle Type since they only matter when Extrude Point is enabled. I’m open to any suggestions regarding the close spline toggle.

That’s actually intended behavior. The reason for adding the functionality was to be able to control the nearby segment from the other end of the segment. I just needed some way to trigger it which was why I chose the handles. Did you run into any situation where having the behavior you mentioned would have been useful? If that’s the case, I could make the changes to include it.

I have read the entire thread just now and I am really looking forward to seeing this tool. Will it be merged in 3.1?

I was wondering, did you add support for converting a vertex to any of the types in the V menu through a modifier + click? So e.g. Shift + Alt click to discretely convert to the type to vertex. Or is it just a toggle between auto and vertex that you implemented?
E: I could actually see this work as modal, select the points, type 1/2/3/4 and it would convert the points to a particular type.

While I agree that certain options should be exposed in the header, it also has benefits to have them in the keymap for custom functionality.

And do you also plan to add curve booleans at a later stage (in an other patch)?

I am interested in testing your builds. How do I make sure it doesn’t mess with my fully customised Blender 3.0? I just spent an entire week on reconfiguring my shortcuts and reinstalling addons due to various (reported) keymap bugs.

Hi. I don’t think it will be merged with 3.1 since the implementation underwent a lot of changes since the last review. So it’ll almost be like restarting the review process. I’m considering not implementing any new features from this week on because otherwise, this could go on for a long time.

At the moment, you can double click a vertex to cycle through the handle types of both the handles belonging to the vertex. You could also double-click a single handle to toggle the type of the handle between vector and auto.

Right. All the options that are to be exposed in the header will also be available in properties. Also, I think all the key binding related options should remain only in properties.

There aren’t any plans for it at the moment but eventually, I don’t see why not :slight_smile:

Sure, there should be a new build available at Blender Builds - blender.org (branch name: soc-2021-curves). It shouldn’t affect your current settings since this is a separate executable.

Changes for the new build:

  • Added the following options to the tool header: Select Distance, Extrude Handle Type, Extrude Internal
  • Fixed bug with Ctrl-Shift (Link Handles)
  • Added functionality to lock the angle of the handle (Name on UI: Lock Handle Angle)
  • Changed the default key-bindings for the extra functionalities:
    • Free-Align Toggle: Shift
    • Lock Handle Angle: Ctrl
    • Move Entire: Alt
    • Link Handles: Ctrl-Shift
    • Move Adjacent Handle: Ctrl-Alt
8 Likes

Turns out the bug with Ctrl-Shift returned after I moved the key-bindings around so excuse it till I fix it again. Also, Lock Angle doesn’t get activated when you click and drag to add a new point and control its handles. I’ll fix that as well in the next build. Thanks.

These two bugs should be fixed on the latest build.

I would definitely recommend selfimose feature freeze. features can be always added later and what you dane is already more than good .

just tested last build.
noticed two things fist you removed abilyt to move second handle with modifier (was that planed )
also I would except control modifer work like a modifier not as a switch and also I would expect still be able to change angle. Curent bahiviour is not bad just diffrent from my expectations and not saign it should be changed to my expectations just asking if this was intentional.

other than this two things I did not find any problems and like new toolbar

I see, so it’s used mainly when creating new points. However, if you use this feature on a vertex in the middle of the spline, the behaviour is unexpected.

It would be more useful if the handle on the right would move adjacent handle also on the right.

I see. Will keep it in mind. Thanks.

Sorry, which modifier are you referring to?

Ah right. Wasn’t sure which way it should work. I’ll make it work while holding down the modifier key. I don’t really have an opinion on it, so either works for me.

Ah yes. Good point. I’ll make it so. Thanks.

control
this is not possible anymore (tis s old build)

perosnaly i would change it to holed to toggle but that is my other softwaer centric pov… i seen som bleder users compain that they dont liek this patternt and that is bad for your wrist … so dont know my opinion differs :smiley:

As I mentioned previously, Ctrl is assigned to the lock angle functionality and the move adjacent handle functionality (previously Ctrl) was moved to Ctrl-Alt.

I see. I think this works well so let’s go with this.

1 Like

in that case, i think i am don e with testing and giving it my personal go … pig me if you need to test it after code review changes … i hope to see this soon in master

shouldn’t ctrl be reserved for future snap toggles? (vertex, edge, face… snap)

saving shortcuts for features that do not exist sounds like a very strange concept. I dont even knw it thsi sulo be modifer maybe just a tog on of shorcut
I would say we cross that bridge when we came there

Sorry for the delay, but I finally got around to testing this myself.

  1. One of the keymap items can be cleared: Move Entire should be mapped to Spacebar by default
    1a. It is a convention to use Spacebar for this (Krita does so to) and in Blender it is used in Sculpt mode to move a selection around as well, the spacebar can then always be used to move points around, which is ideal, see 1b.
    1b. When inserting a point (now this is with shift), I would like to be able to change the handles instead of moving the point around. In other software, this is possible because you use space to move the point around.
    Here I simulated that effect:

  2. Double clicking outside of a point on the curve should close the curve, I see that the Close Spline option only works for clicking on endpoints.

  3. Changing Handle types on the fly
    A. I can imagine modals for changing the handle type, e.g. press 1 for automatic, 2 for Vector, 3 for aligned, 4 for free, this should apply to newly created points, just like the extrude handle type dropdown
    afbeelding
    B. The selected handles could be converted to a specific type by pressing 1/2/3/4 (ideally these should be possible to change for the user)
    C. I think a select tool pass-through would be nice for converting points, meaning, if I for instance decide to hold down ctrl and drag, I would ibe able to initiate a box/ lasso selection depending on the select tool that is currently specified.
    afbeelding
    D. In support of 3b, there could be hotkeys to go to the next point in the curve (e.g. left and right arrow)

  4. I quite like the combined close spline, make it vector and subsequently cycle handle, the reason being is that if all the other spline handles are aligned, then it is more reasonable to assume that the point that is closed may need to be an automatic handle as well (at least when all other points on the curve have automatic handles).

  5. For consistency, I think I would prefer to be able to edit the handles length when clicking upon the handle rather than the endpoint. As mentioned, it’s a little counter intuitive if you can do this close to a point, but not when you leave the point’s hitbox.

Question:
Is it possible to have the add point (current shift click behaviour) detect whether it is on the curve or not, so it could be used both to ‘extrude’ points for a curve and to add points on a curve?

Report:
A. Should shift selecting multiple curves and then clicking a point in the canvas give this as a result?


B. After using shift twice to re-enable Free-Align, the handles are no longer linked, whereas I expect them to be linked when I press shift for the second time.

This is also the case when Locking Angle Constraint with Ctrl. I would always want the handles linked unless I unlink them with Ctrl+Shift

Keymap
If I were to be able to change the keymap and what function I can perform with a key, I would do so as follows: (I can already achieve quite a lot of this).

Modifiers

Shift: = Lock Handle Angle, [axis constraints are usually done with shift in other software]
Ctrl = Snap, when pressing Ctrl, release ctrl to drag a the handles of a point, Ctrl + drag = selection pass through [other software], add point when clicking on the curve
Alt = Link handles
Spacebar = Move Entire
Ctrl + Alt = Move adjacent handles

Keymap items
Alt + LMB click = change handle type to vector
Alt + LMB drag (on points) = change the handle size (with both handles being linked)
Double LMB click = to close a curve, and maybe insert a vector point when double clicking on the curve itself
Ctrl + LMB click = select point when clicked on the point, add a point when clicking on the curve
Shift + LMB click = remove point when clicked on the point

Notice I have swapped shift and ctrl in my own keymap, so I add to the selection with Ctrl and remove using Alt, hence why it’s different from the default keymap

I really like where this project is heading towards! Great job, if already feels rather intuitive despite the fact that I would mess up the entire keymap :wink:

1 Like