Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI: "Create" menu for creating primitives with UV2 present in 3D scene #4895

Open
SubtleMetaphor opened this issue Jul 17, 2022 · 13 comments
Open

Comments

@SubtleMetaphor
Copy link

Describe the project you are working on

...

Describe the problem or limitation you are having in your project

Most game engines have a command to immediately create primitives for use in the engine. In Godot this currently requires more clicks.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

I propose a "Create" menu option to appear in the main toolbar when working in a 3D scene. This menu allows for creation of primitives.

The primitives should be created with UV2 present, meaning they can be used immediately in lightbaking. (This is currently not the case when creating primitives in Godot.)

a58b11203ad238f44c84112193fbaca5

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

...

If this enhancement will not be used often, can it be worked around with a few lines of script?

...

Is there a reason why this should be core and not an add-on in the asset library?

...

@Zireael07
Copy link

You can create primitives already. Adding UV2 to them was also suggested and IIRC it is worked on.

@SubtleMetaphor
Copy link
Author

You can create primitives already. Adding UV2 to them was also suggested and IIRC it is worked on.

Thanks for pointing that out @Zireael07. Currently, the only way I've found out to create primitives is to create a new mesh instance, then create a new primitive mesh in the mesh instance. Creating the actual resource itself requires 1 click for opening the node creation window, then typing for finding "MeshInstance", and then finally another press or click to create (alternatively, a double click on a "recent" or "favorite"). Then you need to click the mesh field of the mesh instance, and finally what kind of mesh you want.

Perhaps there is a faster way to do it, but this is the way I've found out so far. If there is a faster way, please educate me.

My proposal is a way to reduce the amount of clicks to achieve the same thing, plus make newcomers feel more at home (especially those from Unity), since these kinds of commands exist there. It's a way to reduce friction.

All the best.

@Zireael07
Copy link

No, there is no faster way. However, Godot is not a Unity clone, nor any other game engine clone. Toolbars already suffer from being overstuffed with things, and adding one more menu isn't the way to go.

(IIRC there was a suggestion of two to reduce the amount of clicks needed to create resources in general, but I can't find it)

@SubtleMetaphor
Copy link
Author

Toolbars already suffer from being overstuffed with things, and adding one more menu isn't the way to go.

There's only 5 toolbar options. I don't think that's overstuffed. Adding a create menu would not only increase productivity but also make newcomers feel more at home. In my opinion this outweighs any concerns of overstuffing the interface.

All the best.

@Zireael07
Copy link

Ah, sorry, didn't notice you added it to the top bar, next to the Help.

That menu placement doesn't make sense, as the feature you propose is only relevant for 3D scenes, so it'd have to be in the more ckuttered toolbar where Transform and Menu are. (Maybe placed under that Menu...)?

@SubtleMetaphor
Copy link
Author

I think surely the editor can detect whether the current scene is a 2D or 3D one, and adapt the toolbar depending on which kind is active.

@Zireael07
Copy link

Yes, that already happens, but to the toolbar on top of the main viewport not to the bar where Help is.

@SubtleMetaphor
Copy link
Author

Ah, you mean placing it under the scene tab, next to "Transform" or "View"?

06bfa645ecc7aa36605b9f56443d055f

@Zireael07
Copy link

Yeah.

@SubtleMetaphor
Copy link
Author

Yeah, that works too I think. 👍

@Zireael07
Copy link

More on issues with this bar I mentioned: #3550

That's why I don't expect this proposal will be acted on, at least not before that UI issue is fixed (it's a real annoyance to people using Android Godot or Godot on smaller screens)

@Calinou
Copy link
Member

Calinou commented Jul 17, 2022

I think having a way to quickly create MeshInstances with primitive meshes (or more importantly, CSG nodes) would be useful, but it should probably be a contextual bottom panel or something like that.

The primitives should be created with UV2 present, meaning they can be used immediately in lightbaking. (This is currently not the case when creating primitives in Godot.)

This is being implemented by godotengine/godot#49932, but I need help for adding UV padding to the meshes. The lightmap texel size also needs to be set according to the primitive mesh's size.

No, there is no faster way.

There is, actually 🙂

  • Create a new scene.
  • Add a MeshInstance as a root node, with a primitive mesh of your choice.
  • Save the scene.
  • In your other scene, instance the saved scene. You can also drag-and-drop the saved scene from the FileSystem dock to the 3D editor viewport.

@Zireael07
Copy link

@Calinou to the rescue as always (cough cough do you ever sleep, Cal?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants