Scaling pivot doesn't work

As you can see here the pivot gets ignored and instead a pivot used that is in the center of the mesh:

When scaling all directions at once it is correct with scaleing it around the pivot which makes it especially awkward:

I need to scale the BP with a defined pivot in 1 direction by code but I can’t because of this bug.

Hey

Which version of the Editor are you working out of? When I am scaling using the same methods, I seem to see the reverse of what your GIFs are showing. Please provide me the exact steps you used to replicate this issue so I can ensure it’s still an issue with our editor.

Looking forward to hearing back from you, thank you. :slight_smile:

Recreated it now and figured out now that it somehow scales each object in the BP on its own but in the wrong direction based on its local rotation in the BP which makes it even worse. I’m using 4.7.5.

  • Make a BP (actor)
  • Put any component in the root (I used a arrow)
  • Add a shape component (I used a cone)
  • Rotate shape 90 degrees (I made it point same as the arrow)
  • When scaling the BP in your level in 1 direction you will see the cone scales in a different direction
  • When you now move the cone component so that the flat side matches the pivot point of the BP you get the same effect I showed there

Hey

Thank you for describing exactly how you were able to achieve this issue within the editor. I have replicated this and reported the bug. If you need to reference this bug in the future, please refer to: UE-14103

Thank you! :slight_smile:

Ah I’m afraid this is a limitation of how we inherit scaling in the engine. Because we don’t support shear, we can’t perform scaling in the ‘parent space’. Think about a cube that was rotated 45 degrees and then the parent was scaled - it would ‘squash’ the cube and it wouldn’t be a cube any more - this is not an operation we support. So instead we always scale in local space. This guarantees no shear, and still works with uniform scaling, but does give the confusing scaling you are seeing.

Yea, I understand now why it works that way but I don’t understand why you made it work that way. I mean how is that practical?

Shear isn’t an issue, at least from a standpoint, it it was you expect when you scale a cube in one direction of which the pivot is rotated 45 degrees. That is how it is in every 3d modeling program.

If I want to strech my whole BP/Prefab/Group in 1 direction, like parent space, like position and rotation already does it, I need to go way back in 3Ds in the source of my meshes and rotate and position the pivot of all the component meshes in a way that they line up with the pivot of the root of my BP. Sounds crazy to me!

I however understand that at this point, with the scaling already working this different way you can’t just change it because it will break projects. But maybe there could be tickbox somewhere that allows scaling in a way that every artist does expect it. When every 3D program works with shear it shouldn’t be a huge problem to get it in UE4?

I understand that shear may not be an issue from a perspective, but it is a fairly major issue from the engine’s perspective! We have looked into it, but the changes required to the rendering and collision pipelines would be pretty dramatic, so it wasn’t something we planned to tackle at the moment.