Hello, I’m relatively new to Unreal and I have a (hopefully) simple question that I haven’t been able to find the answer to.
I need to scale an entire level down uniformly, and I was assuming it was as easy as to select everything and use the scale gizmo. The problem is, when I scale it up and down, everything moves around in different directions and some actors don’t even scale evenly and become warped. I’m not technical enough to explain what is happening, but described above is the end result.
I thought I had found the issue when I noticed that the gizmo was set to local coordinates instead of world coordinates. No good, as the toggle button for this doesn’t work when scale is selected. The documentation seems to confirm that scale cannot be set to world coordinates.
Is there a way to fix this issue, or a work around to accomplish the same goal? At this point it would almost be faster to recreate the whole level at the new scale than to clean up the mess that results from trying to scale it down. Any help is appreciated.
the issue that youre having is the fact that many of the objects have different poitns of origin. if you play around with the scale in some of the starter content youll see that some of them scale from the bottom, and others scale from the middle. I honestly dont think there is a simple solution to youre issue, but you can try selecting everything the pressing ctrl G to group them all together, then scaling them down. I think that will make them all scale uniformly but ive only used groups with moving objects so im really not sure.
Thanks for the reply. That makes a lot of sense. Theoretically if I changed all of the points of origin to be top left let’s say, would they scale together correctly?
I tried to grouping idea and thought that would be the answer too, but unfortunately it doesn’t seem to work with scaling either.
It seems crazy to me this is so difficult to do. Is having to scale a whole room or building in a level that rare of an issue? I’ll admit I’m coming from using Adobe and other 2D game engines. In those worlds scaling everything at once and having it stay together properly is a completely standard feature. Maybe in 3D it’s not like that, though?
I’m with you guys on this one. The default scale tool makes it useless for 90% of the level designers needs when it comes to scaling multiple meshes at once.
I’ve seen a some requests that are asking for this feature, and I think it gets shot down because the requests are getting confused with a request for true worldspace scaling, which can allow for skewing…but that request is NOT the same thing as what you’re looking for, which is just shared-pivot-scaling.
Shared pivot scaling is exactly when grouping does…and is also essentially what the rotate and move tools do. (last selected object acts as the axis for rotating/moving). It’s really bizarre why this behavior isn’t the same for scaling too.
Hey Gomo, thanks for the response. We actually reached the same conclusion in the end. Still wish this was easier, but good to know there is a work around. For others with the same problem, these are the exact steps we used:
Drag an “Empty Actor” to the scene.
Set its location to 0, 0, 0
Click “DefaultSceneRoot” in the Details tab. Set “Mobility” to “Static”
Drag and drop everything else (except your Player) inside of it. Unfortunately folders aren’t supported.
Set its scale to resize the rest (you are multiplying all of your other objects’ scale by the amounts you put in)
Reposition the Player to where it should be. Voila!
To clarify what Clockwatcher means for anyone who hasn’t done this before, here’s a step by step guide:
1) Drag a new mesh like a Cube into your scene, then rename it SCALER (select the actor in the world outliner and press F2).
2) Press CTRL + A to select your entire level (or just select the actors you want to scaler) and then hold CTRL and Left click on your SCALER actor to de-select it.
3) In the World Outliner, right-click on any of the selected actors and choose Attach To and then pick your SCALER mesh in the list (Alternatively you can drag all of the selected objects in the world outliner onto the SCALER mesh to parent/attach.)and then deselect everything. In the World Outliner, you will see that your SCALER mesh is now at the top of the list with a grey arrow (black when selected) to the left of its name and everything else is below it and slightly indented to the right letting you know that they’re all children of the SCALER mesh.
4) If you know the exact amount you want to scale everything, select your SCALER mesh and hit the lock icon to scale uniformly then type the amount in one of the axes. For example 4.0 for 4X larger or 0.25 for 4x smaller. You can also use the transform gizmo (Press R or hit Spacebar till you get to scale) to scale by eye if you’re not sure of the exact amount.
5) Once everything is to the scale you want, just delete the SCALER mesh and it will unparent everything else.
I’ve put in an actor, selected everything other than it, but when I go to ‘attach to’ It shows a search bar and then a ‘empty world’ text with a drop arrow (which shows my world but doesn’t allow me to select or do anything with it)
it isn’t letting me attach to the empty actor or anything and I’m so confused, lol.
I found a simple (in my particular case) solution, without need to grouping, merging, attaching, etc. - all you need to scale objects from their individual origins - select objects you want to scale and use the data box inside transform section in Details window. Spent roughly 30 seconds to find the right numbers.