[RE: No More Hinges] Make it easier to visualize geometry Faces

As a Roblox developer, we have since the dawn of Roblox used hinges to easily mark surfaces.

Source: Finale of Part Surface Changes: No More Hinges

[First of all, I hesitated on making a feature request in the first place because I saw the key words “we plan to further solve this problem with the new Lua Dragger/Move tools.” Thank you for recognizing this is a problem and not simply going to go away just because the old surfaces are going away.]

Personally I have never had any issue with slapping a hinge to visualize faces. I compare this to when developers used to have to use game.Lighting for storage of models that would not be used in the game until later. Of course we shouldn’t be doing that, but Roblox didn’t provide any better alternative until ReplicatedStorage.

Both of these examples are user experience vs intended design.
image

Developers gravitated to using hinges to visualize part face due to it’s simplicity and ease of removing once we no longer needed it (Or even just making the transparency of the part 1)

Developers did not use the alternatives Roblox now recommends because it was not faster to do, therefore, not the user experience dirt path in the above picture.

Attachments:


My verdict is there is nothing in the properties of the attachment that display face direction which means I can’t tie the orange, yellow, and red arrows to part face without first knowing the face I put the attachment on. This ruins the point in my opinion.

Adornments:


My verdict is after inserting the default adornments I still am left with a lot of work to do so it is not a viable replacement.

Decals:



My verdict is these work the best. Having a property called Face on the object itself makes all the difference. Again though, this is no different from the non elegant solution of hinges.

If this is solved, developers will have less nuance in something that should be simple and easy to visualize.

This feature request is to provide an elegant solution to the developer pain points marked above to solve the easy visualization of geometry faces.

41 Likes

I recently made an example of what a potential surface visualization feature could look like in studio:

image

In studio, Roblox could add a “Show Surfaces” widget that enables the thing above ^
image

5 Likes

I think the best way to do this is to simply add additional adornments to selected parts/models when a setting is enabled.

E.g.

Does anyone have use-cases for also having up and right identified separately, or is there only need to see the front face?


I’ve also written a gizmo add-on plugin that identifies part faces in response to this.

4 Likes

If the top and front surfaces are identified, then I can visualize the other surfaces in my head. Also, great plugin!

Is there something specifically important about seeing surfaces by name? Or would altering the Move tool arrows to look different when pointing in the negative direction suffice?

Also just to clarify, the reason an Attachment could work as a temporarily solution, is that when the orientation matches the parent (default when inserted via the (+) menu on a part), the arrows point on the positive X and Y axis. (right and top surface)

But yes like you said, this should be a temporarily solution, and an official way needs to be added.

2 Likes

I think the issue with showing faces implicitly without name is that people do not naturally know that blue means front/back, and there’s a lot of dots to connect to figure this out. The view selector is a good way to learn but it’s pretty out of the way, and other ways to learn involve adding instances to parts and may not end up showing the colored dragger handles alongside the direction. Further, this is confusing if you use world space draggers and have rotated the part without knowing. It’s a challenge to learn which color corresponds to which direction unless you put a conscious effort towards learning and memorizing it.

The way I’ve done the implicit gizmos in my plugin is highlight front in a special way, but this still assumes background knowledge that front is especially important, and still has understanding issues once the part gets rotated. Not sure if this idea is acceptable for new developers.

Floating text next to dragger handles in local mode might be most effective and least cluttering?

2 Likes

Exactly this… Whenever I need to add item spawn parts or player spawn parts (which is very infrequent within my game’s development), I usually have to go back and re-learn what the arrow colors represent in terms of surfaces. For me, it’s not much of an issue but for newer developers, they probably won’t know what to do unless they find a tutorial.

I guess my question though is when is it important to know a specific face is the “front” face, without actually knowing what that means? (Z coord, forward vector)
There’s plenty of geometry that doesn’t have 6 distinct faces, but they all have their 6 local space directions. It seems like we should move towards dealing with an object’s “up vector” rather than it’s “top face”

The most basic use would be creating a Seat object and making sure it will sit the player in the correct direction. It’s simple enough in many games, cafes, cars, planes, boats, etc that no one needs to know what the coords mean beyond making sure their seat is facing correctly.

5 Likes

Lots of things on the platform rely on being oriented correctly without an explicit face property to work: e.g. spawns, seats, and character rootpart. All of these rely on the concept of “forwards” in local space, which is not easily visible.

There are also instances that rely on an explicit face property that may be faster to set if developers could see faces naturally, but they’re not as important.

I do agree that calling them faces is kind of incorrect. It is the direction that is important, not the face.

3 Likes

I would love for this to be an actual feature built into studio, It’s sometimes essential to know which face is the front face of a part for things such as seats, or camera parts which need to point in a specific direction, or character models where the parts need to a specific direciton.

I would like to note that for the time being plugins can be a potential solution to this? While not the most elegant, and no longer just 2 clicks away, they are quicker and cleaner than inserting a decal or something into a part.

Plugin includes basic face visualisation and the lookvector, upvector and rightvector.

2 Likes

I completely agree that hinges were a great workaround for this in their time but now it seems to me this would be best solved by a simple plugin.

Having a plugin designed to solve this exact problem could make it a far better user experience than the hinge workaround and any dev could create a plugin for this in just a couple hours.

2 Likes

I am still using decals to identify faces of parts. We need a setting as @TheAviator01 as mentioned before, to allow users to easily identify faces without needing of inserting instances. This is will greatly improve developing experience for a lot of users.

1 Like

It came to my attention that having a slight distinction in the move tool arrows could really benefit developers so that they know which direction is positive and negative (and thus give them a better understanding of the orientation in case they aren’t using a plugin like I am right now).

1 Like