Bad alignment on dragging a set of parts

This is happening to me in Studio constantly. Once the parts get off-axis, I have no idea how to get them on-axis again. It seems like I should have to do something special to get the behavior seen above and that the default should be making the bounding boxes flush the the surface I’m dragging on.

The current behavior is not intuitive. I don’t understand where it’s getting the rotation matrix from.

If a Roblox engineer has time to fix it, ping me and I will send you the file. I can’t post it here because I don’t own the content.

Infuriatingly, if I group the set of parts before doing the drag, I get a different, but still wrong (IMHO), result. I don’t think that should ever happen (IMHO).

Maybe the random rotation matrix is that of the minimum bounding box? If so that seems like a bug.

======

REPRO

  1. Download file I DMed to the bug account
  2. Select the five parts above the first guy (pet, sai, ninja, other sai, other pet).
  3. Drag (I was clicking on the torso in the original, not sure if the part you have under the cursor matters)

Interesting note, the order that you select the parts in matters and you will get different results. I think that is a bug also, or maybe the smoking gun.

12 Likes

Happens to me too. I recommend using the move tool as it is less likely to mess up when moved.

This is a problem everyone’s struggled with, and this happens when you use the move or rotate tool too, it’s very frustrating when trying to align your parts correctly.

This has also been happening to me. I hope roblox fix this. :eyes:

2 Likes

That’s a good workaround, but we need a fix. This is the default dragger tool.

3 Likes

You know what’s worse about this, I thought this was an intended feature, I fill stupid now.
This happen’s to me all the time, I’m glad I know that this was not actually intended. It’s a pain having to manually rotate build’s all the time, this need’s to be fixed.

1 Like

Yeah, I very much agree. Hopefully it can be fixed sometime soon.

1 Like

Sure, you go to fix it but the default behavior of the rotation tool isn’t that helpful, since now it has a weird bounding box.

4 Likes

I’m not sure if this is the right solution but have you tried disabling “Align Dragged Objects”? You can find it by right clicking in the viewport. Disabling it seemed to keep the rotation of the models while dragging with the select tool.

cc @tnavarts

We provide a private channel to provide repros for this reason

4 Likes

Nice.

DMed and added repro steps in the OP.

3 Likes

There’s a lot to unpack here, I’ll break this down into three points:

  1. If you don’t want things to rotate as you drag them, you can right click in the 3d space and uncheck “Align Dragged Objects” in the context menu. In many placement scenarios this is really what you want to be using rather than a better direction inferred by the tools. It’s unfortunate that this setting is not more visible, but we have no better option to display it right now (this is being worked on).

  2. The orientation you’re seeing is based off of the orientation of one of the objects in the selection (the sword in the right hand in the first gif for instance).

  3. Something has broken here, the choice of what to base the orientation off of is supposed
    to be the most recently clicked object within the multi-selection. I’ll file a ticket.

3 Likes

Some random thoughts:

  1. I didn’t know about “Align Dragged Objects”. What are the pros and cons of making it the default?

  2. I don’t think the order of selection should matter, as that is not a state element that is obvious to the user. A selection of parts should always drag the same. Less hidden state = more intuitive tools, in my opinion. If the selection order matters, at least give the user a hint and make the last selected thing a different color. This position is rather ideological tho and open to debate. For a similar reason I think selections of parts and models of those parts should drag the same. Basically the rule should be: same geometry = same dragging behavior.

  3. For this particular selection, I wonder about it. It feels like it should be solvable. And by solvable I mean, with no extra user input or settings, the drag should be able to just give me the right answer. I think I feel this way because, intuitively, I expect the dragger to make all possible coplanar surfaces coplanar. Is this a heuristic we use? In the GIF above it makes no surfaces coplanar. I think it should weight making surfaces at the model’s (or selection’s) extents coplanar. So the bottom-most surfaces of the selection in this case (the feet of the characters) and the top-most surface of the plate I’m dragging over. I’m sure there are cases where this will not produce good results (maybe when the bottom surface isn’t flat?)

  4. The dragger should probably have a preference for not rotating objects. I.e. if a “reasonable” non-rotated solution exists, prefer to return that one. I don’t know how to define “reasonable”. Maybe some way to toggle between the two if it really is ambiguous most of the times (i.e. it’s 50/50). I think the non-rotated case is probably at least 80/20 what people want since most surfaces in Roblox are flat. If it is 50/50 maybe there are two different dragger modes with some obvious way to switch between them (maybe even mid-drag)

I think some of my suggestions might just overlap with what “Align Dragged Objects” does. As the Studio editor becomes more powerful, we will probably want to have more settings like this. It would be great if they all presented themselves in the same way (and with hotkeys). I’m thinking about how 3DS Max does it, but maybe there are better ways.

3 Likes

The order of selection doesn’t matter. When I say “most recently clicked”, I don’t mean as far as selecting, I mean as far as dragging, so the object you drag within the selection is supposed to be the one that gets aligned. If you had a chance to try it out via the FFlag, I think that this behavior actually feels very intuitive.

The problem is that you only know that the feet are the “bottom most” through human context. One of the angled surfaces of the parts next to it could be considered “bottom most” just as well. When your selection contains multiple objects with different orientations, there is no clear heuristic to figure out exactly what object to align without taking context cues from user input.

image

One thing I considered is taking the selection as a point cloud of vertices, and shrink-wrapping the point cloud to find vertices which lie on the boundary nearest the direction of the surface we want to align to, but that doesn’t actually work as well as you would expect, and gives some very surprising results, on top of being quite expensive to compute.

1 Like

Try using SBS. It has a feature called ‘move axis’ which lets you move stuff without it going all wonky like that :slight_smile: .

1 Like

A fix has been enabled for this issue.

Parts in a multi-selection should now orient themselves based on the object you click on to start the drag.

2 Likes