Add Object Tools Todo #57210
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
35 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#57210
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Add Object tool
A new set of tools for adding objects in a visual and interactive way using the new active tools system in Blender 2.8.
General behaviour
From here, gizmos allow user to adjust the base and height of the primitives using these handles:
Tool Settings
Type
Spawn From
Axis
Origin
Segments
Notes
The orientation will follow the Scene Orientation setting. If the scene orientation is set to Normal, objects will orient themselves from the normal of the surface you drag on, but if it's set to Scene, they will always be oriented according to the scene orientation, or example.
For the 3D Cursor Axis Plane position feature, we may want to investigate a plane preview, and snapping abilities - a reference for how it might work:*https:*www.youtube.com/watch?v=qbK9al4pMbE
Ctrl snaps the size to increments
Holding Alt while dragging works as a shortcut toggle the origin (Base vs Center)
Animated example
add_tool_example.mp4
(In this case, the Orientation is set to Normal and the Placement is set to Surface)
Added subscribers: @WilliamReynish, @Znio.G, @DanPool, @Rawalanche, @zeauro, @A.Lex_3D, @CraigJones, @nokipaike, @JonDoe286, @DuarteRamos, @Djay
Added subscriber: @REMBO
Added subscriber: @michaelknubben
Added subscriber: @Jeroen-Bakker
Added subscriber: @AlbertoVelazquez
Could be a great idea allow one of this tools to add arbitrary mesh. To add objects/meshes to the scene/object easily
@AlbertoVelazquez For that we have the forthcoming Asset Manager
Added subscriber: @RobertS
The tool setting panel should also be persistent and always accessible for the object until the first vertex transform happens.
Tool settings should also include dimensions.
This is currently only accessible from within the N panel in Blender.
@RobertS That is outside of the scope of this topic and this tool. Yes, parametric modeling is a much needed feature in Blender, but luckily Blender is moving in this direction with the Everything Nodes project.
Added subscriber: @Ghostil
Will it be in the final 2.81?
Added subscriber: @renderhjs
Added subscriber: @jc4d
Added subscriber: @Schiette
I very much like this proposal.
One question I have: how is this going to interact with the traditional add menu. Are the primitives going to go away from there. Or are they going to get the same behavior as outlined in this proposal?
Could the creation command (for example when you are dragging out the radius of the sphere) accept numeric input on the keyboard? This would be a good step towards making Blender more suitable for precision modeling.
Added subscriber: @Constantina32
Added subscriber: @MetinSeven-1
This is a great addition. Please consider making it accessible from Sculpt Mode as well. Thanks!
Added subscriber: @SethTooQuick
After you've modified your object, will these gizmos disappear or will they show up on every object once the tool is enabled? I feel like this'd be better for modifiying other shapes fast.
Added subscriber: @xan2622
It makes me think of QBlocker :
https://blenderartists.org/t/qblocker-for-blender-2-8/1146607/177
https://gumroad.com/l/gOEV
Added subscriber: @Zeirus
Create Object Tools Todoto Add Object Tools TodoAdded subscriber: @Ben-Knowles
Added subscriber: @ckohl_art
Added subscriber: @LeoSch
Added subscriber: @realeyez
Added subscriber: @Draxley
Added subscriber: @DirSurya
BRUH
Added subscriber: @BulatKR
Added subscriber: @mattli911
Changed status from 'Confirmed' to: 'Resolved'
Committed
122cb1aea8
Added subscriber: @CobraA
I saw this in the master. so what will happen to the blueprint tool be a seperate tool because it has more functionality?.
Removed subscriber: @MetinSeven-1
Removed subscriber: @realeyez
Hey, so awesome feature but may I request grid snapping? Obviously this is a WIP but I think grid snapping, or any snapping, would be perfect. Another thing, would it be possible for dimensions to be shown as you draw something?
CTRL key snaps.
The cone has an icon like a cube.
There is no choice to create a plane.
There is no choice to create Torus.
In orthogonal mode, nothing is created at all.
Added subscriber: @DanielBystedt
This is a very nice addition to the modeling tools. Great work! @ideasman42 asked me to try it out and write some feedback, so here we go. I've tried to keep suggestions to fixes that I assume are fairly easy to implement. More complicated features are noted with "IMPORTANT".
UI changes
There are already settings for origin, drawing plane etc from grease pencil. We should use these settings as much as possible in order to have consistency in the UI of different tools.
Drawing plane
Change menu name from Orientation to Drawing plane
{F8927631, height = 300}
Options:
- separator----------
This is mostly the same UI name that grease pencil uses. I personally like the name orientation better, but if we want to keep UI consistency, we should change it to "Drawing plane". Refer to grease pencil if it is unclear what each item means. By adding front, side, top, we can remove the current menu next to depth with items X, Y, Z. Nice with less UI drop down menues.
After some discussions here and on devtalk, some users feel that the options front, side and top are cluttering the UI. I think it is important to keep them, but we should group them in the lower part of the drop down menu for readability.
Closest view plane is an option suggested by other users. This is an additional drawing feature so I will add a description below.
Closest view plane
This is an additional drawing plane option, suggested by other users. @justastatue
made a nice mockup and posted on devtalk https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/54
Here is a video showing the mockup
{F8927644, height = 400}
This option would need a widget similair to the one at your mouse location, in order to communicate the drawing plane to the user.
Placement
Change menu name from Depth to Placement. This is the same UI name that grease pencil uses. The functionality of placement should mimic the functionality in grease pencil.
{F8845551, height = 300}
Options:
Draw on selected
New sub option in Placement and drawing plane menus. The option is only "active" when surface item is chosen in the menu. When nothing is selected, the object is placed on the surface below the mouse pointer. This feature would be useful in order to avoid placing objects on the wrong surface when objects are tightly packed together.
Add option (bool) Set origin to drawing plane
IMPORTANT: This feature is very much a "could be better". I would personally prioritize UV tools instead of this. However it could be implemented in the future.
There is a high probability that the user will adjust the position by snapping the origin to the surface of another object. If the origin of the new object is set to the drawing plane from the start, this would be a lot easier. I would argue that this would be the use case in 90% of the time
Add ngon as object
IMPORTANT: This feature is very much a "could be better". I would personally prioritize UV tools instead of this. However it could be implemented in the future.
This feature could add a lot of possibilities for hard surface modeling
Boolean - new menu
IMPORTANT: This feature is very much a "could be better". I would personally prioritize UV tools instead of this. However it could be implemented in the future.
Automatically add boolean modifier to selected object(s) and add created object as the boolean object on the boolean modifier(s). Set created object to object.display_type = 'BOUNDS' (just like the addon "bool tool" does).
Options:
Solver options:
Added subscriber: @Imaginer
@DanielBystedt The boolean mode you suggest sounds very cool! I love the idea of being able to just cut stuff out by drawing primitives!
Does it really make sense to populate this menu with 3 individual world axis aligned drawing planes? I'd go for the mainstream way of having one drawing plane option that automatically switches to appropriate orientation (one of 3 world axes) depending on the view angle. There are quite a few different pieces of 3D software that share this quite common functionality. It also removes necessity to manually switch between them.
That is a really good idea. Perhaps we add an option called [closest view axis] so that the drawing plane snaps to the closest axis based on view angle.
We should not remove front (X-Z), side(Y-Z), Top (X-Y). Blocking up a city layout for instance would need drawing plane = Top (X-Y) and the view would not be aligned with the Z-axis, since you clearly want to see the height of each building (cube/box)
https://blender.community/c/rightclickselect/KRfbbc/
I made some suggestions to improve the tool a while ago. These posts from Daniel are also pretty much what I requested.
Also in my post, I requested if there'd be grid snapping. I think that'd be really helpful here.
My point is - is there really any reasonable use case for user to want to start drawing a new primitive on a plane of a world axis while not looking at least roughly (winthin 45° angle) perpendicular to that plane? :) The rule of a thumb when it comes to UI design is that if you are unsure, then the answer should always be remove it. UI clutter is the worst enemy, because it makes features appear a lot more complicated than they really are, increase learning curve unnecessarily, and in this option, also add need to do manually what should be done automatically :)
IMHO all that's needed here is to have some visual indication of closest axis aligned plane whenever create object tool is active, even before starting the object creation. That should majorly diminish the possibility of unintended action (wrong plane chosen), and would make the tool much faster to work with. There's one piece of 3D software which has a native feature which is a great example of this, unfortunately we can't mention other software here anymore :)
If you really manage to find some reasonable common use case to keep the individual world axis planes there, then perhaps instead we should have just following options:
And the World option would have 4 sub options:
This discussion might be better moved to devTalk since there’s seems to be a good bit of back and forth. But I will back Daniel’s sentiment that consistency is King. This type of behavior of partially looking down an axis means you want to draw in a certain orientation doesn’t exist anywhere else in Blender. The dev team spent two years going through blender and making it more consistent. Going backwards now would be a mistake.
Also the use case of wanting to draw with a certain orientation is that the location may be hidden from the view position because of other objects obscuring placement. In the “other software” that you reference, if I wanted to draw a bunch of disks inside a volume I would have to create the discs and then rotate and position them. With Daniel’s solution, I could create them in place which is the way I prefer to work.
Unless all of blender is going to adopt the behavior you describe, I don’t see this being a good approach.
That makes very little sense, to be honest.
First of all, for example there's auto perspective operator which snaps you to one of ortho views depending on the rough direction you are looking through. So there's similar concept in Blender already.
Second of all, you can not apply consistency to different modeling operators, because every one is unique. By the same logic you just said, the grid highlight in the animation attached to this task when using surface should not be possible either, because there is no other tool in Blender having that behavior. Furthermore, I suggested that this behavior should be accompanied by some visual indicator of what's happening, it's right in that post. That would be the failsafe intended to avoid user confusion by this tool specific behavior. Every other modeling tool in Blender has some unique concept no other tool does (Knife comes to mind) yet without it, the tool usefulness would be severely limited.
I also don't understand your argument about location hidden from the view position. It makes really no sense. The "World" setting would ignore any scene objects, and just use world plane grid. For drawing on scene objects, there's the "Surface" option Daniel has proposed. So whatever issue you are talking about would be exactly the same with the XZ/YZ/XY plane options Daniel was proposed. Only difference between his and my proposal is that while in his case, clicking into popover sub-menu would be switching them, in my case, viewport view direction would be what's switching them.
Lastly, no other Blender tool has a concept of having it's own orientation and surface snap menu. All the other tools rely on current transform orientation and snapping settings, so if we were to go with your interpretation of consistency, then the entire Orientation popover menu Daniel proposes should never exist. The reason it does, however, is to simplify and speed up the workflow, so if you have certain snapping and transform orientation settings, you don't need to change them just for the create tool, and then change them back once you are done creating the object. In the similar spirit, my proposal suggest to switch the draw planes automatically instead of having to always do it two clicks away, depending on which direction you want your object to face.
Added subscriber: @Leul
Hi, The add object tools really are great additions to blender, and they have soo much more potential as a precision modeling tools if they are allowed to, the current implementation completely ignores precision modeling, and so here are my thoughts on them...
1, Add Plane Tool (a plane is used often so it would be great to have it)
2, the current placement of the base region by dragging and a further click for the height does NOT allow an input of dimensions "which is not the default behavior of blender"
**3, Adding object should be Three clicks,**this could create a workflow of clicking once then typing in the dimensions separated by commas, and it becomes even better using the radius method because "click once for center then type in the radius then type in the height"
4, the Redo Panel doesn't show the Actual dimensions but only default ones, i understand this is similar to the above problem but it compounds to the problem of not having accurate objects
I have given this feedback elsewhere but that thread seems to be deleted so I have added them here again
EDITS: Grammar
Removed subscriber: @AlbertoVelazquez
Added subscriber: @justastatue
I've written out my thoughts regarding the tool and some of the discussion here in the devtalk feedback thread. Please give it a look: https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/49
Added subscriber: @rwman
Sorry if this is notifying people unnecessarily!
I just regret not pinging @DanielBystedt in my comment above.
I'd appreciate knowing your thoughts on my posts 49 and 50: https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/49
I'm very interested in this tool and would like to help improve it, so I tried to be thorough.
Since Campbell is considering your feedback in further development of the tool, I'd like to know if what I propose in my posts is something you could get behind, or if you have any doubts.
Thanks!
Thank you for the feedback. I have answered your posts on devtalk. I'm posting links here for others to see.
https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/53?u=danielbystedt
https://devtalk.blender.org/t/add-object-tool-requesting-feedback/13529/54?u=danielbystedt
I will edit my initial feedback in this design task thread in order to keep all info in one place and make it readable.
@DanielBystedt, checking your proposal and I don't think it's practical to closely follow grease-pencil settings.
In principle being consistent is good where possible, however grease pencil is a drawing tool which focuses on drawing a 2D lines.
The kind of interaction is different with grease pencil too, when drawing 2D shapes you almost always want the view to be quite closely aligned with the plane your drawing onto. When placing 3D shapes it's the opposite, since being aligned on any axis means you can't properly set the depth on that axis.
Instead of defining grease-pencil like options as good/bad, I'd rather focus on capabilities.
For example, we might want to use a custom-orientation to place the object. Or we might want to use the active object's axis for placement, in that case we wont want to be locked onto only one of it's axes.
If the axis-planes become a global axis (while that may be good to support), I'd rather not loose the ability to choose an axis for other orientations.
Or, as has been mentioned, we could default to the closest axis, which would be significantly helped by adding a preview-plane.
For now I'll look into:
Other options I'd rather think over a bit more, we could chat about this online.
@ideasman42
I agree with your assessment on this. Have you read my full proposal for this tool and the conversation between Daniel and I on devtalk? In that I've included more detail about how automatic plane axis selection could work in a way that feels natural and does not limit the use cases of the tool.
In my experiments I've found that just using the plane axis that faces the view the most limits the range of view angles for a given axis too much, but there's a very easy solution to that which I demonstrate in my posts.
My proposal is actually that automatic drawing plane selection could completely replace the Plane Axis setting without losing any functionality except for difficult-to-control and erroneous behavior.
I also propose ways to simplify the tool's options, again with the goal of eliminating confusing behavior and making the tool's behavior more consistent with itself.
Also, if I may add in my opinion for the problem when placing view-aligned shapes, in regard to design:
I think that if during an operation the dimensions of the added object were exposed in the status bar, communicating the height to the user non-visually, then when the shape is view-aligned, the tool could then change the height based on the user's left-to-right or down-to-up mouse movement during the height-setting part of the operation.
Transform operations already do this. For example, if you are to look straight down (top perspective/orthographic view), and Grab an object, constrained to the Z axis, the object will move along the Z axis smoothly in accordance to your mouse movements up and down.
If that were not feasible, I think it would be reasonable to skip the height-setting part of the operation in the case of a view-aligned object and default to a height of 2, considering that's the default dimensions for most mesh objects when added through the Add menu.
Sure thing. Perhaps I was a bit too focused on UI consistency.
One solution to the view aligned shape issue would be to be able to change camera angle while drawing:
Added subscriber: @MACHIN3
Added subscriber: @wilBr
@ideasman42, thank you very much for this tool... it is excelent for rapid modeling....
Please, if you can, fix snap problems.. the edge snap is allways on, overlaying others snap points like curve knots, other meshes vertex and the last version have some problem with start draw position and vertex snap, offseting start draw point if mouse point dont exactly over vertex position.
edit:
I think the snap point position should be initial draw coord's ... and mouse pointer position used for get surface/face/view coords orientation.
Snapping to edges is working fine for me. It sounds like you have snapping on per default. Try to hold down CTRL to set snapping on or off instead.
Snapping with ctrl.mp4
IMPORTANT:
I agree that snapping from a corner vertex should require less precision from the user. In the recorded video it shows that it is a bit hard to snap from a corner vertex
hard to snap from corner vertex.mp4
I'm not sure what you mean here. The tool is doing what you describe above. Please attach a sketch or similair to decribe more in detail what you mean.
video:
blender bug add tool.mp4
@wilBr
0:37 You are trying to snap to the surface of curves. Curves does not allow snapping to surface. That's why you need to change orientation from surface to default. This is a limitation when snapping objects to curves in general.
1:34 The surface of the cube is obstructing the vertex of the curve that you want to snap to. You need to toggle x-ray mode in order to see the curve vertex and snap to it.
3:09 You write that you can't snap to the vertex, but I see that you are snapping both to the edge and the vertex depending on your cursor position. Perhaps you want the snapping distance to vertices to be greater? I think the snapping distance works nicely for all draw points except for the first draw point.
3:32 I agree. The first draw point is hard to snap to vertices.
3:45 You write that you are not getting correct orientation, but you are getting correct orientation based on your preference (orientation = surface).
A: 2.91 dont have this problem
A: sorry.. x-ray or wireframe mode dont solve this problem.... I think add_tool hardcoded edge snap is replacing vertex snap
A: 2.91 and older versions dont have this problem
A: I think it should work like this:
oDgx1EVbGS.mp4
get surface orientation from mouse pointer... and first draw point position from snap point
He is not trying to snap to a surface of a curve, but to the vertices of a curve. There should be no discrimination between object types to snap to as long as they have some set of point which can be interpreted as vertices and vertex snap mode is enabled.
Removed subscriber: @BulatKR
Fixed
5804bf25bd
Fixed
f64746177f
Will the primitive creation finally be fixed? Spheres, Cones and Cylinders are still made squashed by default, and require modifier key presses to make them uniform. This results in very poor usability compared to equivalents of this tool in other 3D packages.
Update: committed various improvements.
27c142aa29
8fd3ffcb31
2f0d919f89
c4bbe44e47
cdfa3feb91
fef7b792e7
ecffd231a0
f7829961c6
@Rawalanche there is now an option for fixed aspect by default.
While this is nice, the thing is that there are common use scenarios which require some primitives to be fixed aspect, while others not. And constantly wrangling this option on and off won't really help much. For example when drawing boxes, one rarely wants to have fixed aspect, while when drawing for example cylinder, or cone, one wants to have fixed XY aspect and then define Z height on secondary interaction. The main point is that the primitive creation should accommodate the most common use case by default. You can see it for example in one of the most popular Blender addons - BoxCutter:
2021-01-16_08-53-05.mp4
Common user expectation is for boxes to be created non uniformly, but for example cylinders to be created uniformly on XY, and then height adjusted on Z. I suspect fixed aspect will simply create 1M^3 cylinder, which user will then have to manually scale on Z. And without fixed aspect, one will not be able to make XY axes fixed aspect. So in the end, there will be no productivity gain in add object tool compared to the old Add Cylinder operator, as in both cases user will have to utilize transform tools afterwards to adjust the created primitive to correct proportions.
So I am seeing that the new option to have separate fixed aspect for base and height has been added.
The way this is implemented is still a bit unfortunate. You keep missing the most important point - that the common user expectation is individually based on the type of the primitive. The create object tool was supposed to speed up object creation, but right now, the setting is universally applied to all shapes, and adds significant UI complexity.
The tool has now become very clunky to use, because to get user expected behavior of the box for example, I need to perform multiple clicks, I need to:
Let's say I want to create a cylinder right after I created the box, I now need to:
So there's now this annoying chore of having to adjust multiple knobs prior to creation every time user switches the type of the primitive they want to create. Obviously no one is going to put up with such a slow and clunky process, so in reality, what will happen is that the UI will now be polluted with a substantial set of UI controls no one is going to use, because expected user behavior changes for different primitives.
There is not much benefit from adding these if you miss the main point of every primitive having unique expected user behavior (With alternate behavior still being available on modifier key press). So Cylinders should have fixed aspect by default with Shift key making the aspect free, while Boxes should have free aspect by default with Shift key making it fixed.
Otherwise this will end up yet another Blender tool known as "the one that had a lot of potential, but..."
...or you could learn the keyboard shortcuts. They are incredibly intuitive and work like a lot of graphic design software out there. The shortcuts are the same as inkscape and gimp.
I really like where this tool is going. Much better than other software I've used that have similar interactive primitive creation. The issue I see with making aspect settings that differ for each primitive is that this quick shift/alt/ctrl interaction will also vary. For instance, if the sphere is set to fixed/fixed what key would we press to quickly unlock the aspects?
My suggestion if making everyone happy is of great concern is either having a third option under Aspect called SMART that varies based on the primitive chosen or saving those settings per tool instead of universally for all primitive tools.
This doesn't make any sense. I mentioned the keyboard shortcuts, so obviously I know them. Having to start creating some primitives with the keyboard shortcut while not others is very poor usability. And also, while Free/Fixed aspect is currently mapped on shift, Edge/Center base origin is not.
I don't understand how can you even possibly come up with this argument. This is not about if something is or is not doable, this is about how intuitive and usable the tool is. You can in theory do all the modeling in Blender using python. So imagine you were missing a crucial modeling tool which would save you a lot of time and someone would tell you "...or you could learn Python". Seriously, just sit back and take a moment to think about the argument you've put up to realize how little sense it makes.
It’s not an argument. It’s me stating my opinion just as you did. If you would like to argue how your idea is so superior to the current design despite being copied from software that is 25 years old, take it to another forum. This is for developers to discus designs with a little bit of feedback from users sprinkled in. Post a link to the thread you start on another forum and I will be happy to join in the conversation. Otherwise, you’ve stated your opinion now move on.
Added subscriber: @IihT2cWA9xiP30BsYphz3EiEISNoScoe