I want to be able to take a mesh and scale it along the x and y axes without distorting certain parts of the mesh itself.
The mesh would be the blue in the example; for instance, like a circular silo wall. If the x and y were 1m and the mesh were to be scaled to double its size, it would thicken the walls themselves. Is there a way to counter that or just distort certain edges to get the correct result? If not, is there any kind of work around or a method that someone would recommend?
I have thought about maybe figuring out something with blend shapes but I wasn’t sure if that would work. I also thought about just procedurally generating the mesh with other meshes, but that would bump up the poly count quite a bit.
I am usually fairly knowledgeable in the Unreal Engine and other 3D software but I have never really come across this scenario in the past. Let me know if you need any additional information.
As a static mesh sorry to say that is how scaling works on the local level. As you mentioned the more direct root as far as a static object goes a blend shape is more reliable and less messy as to the need to maintain the proper volume as in X always = 1 meter. The reason this works is blendshapes scales based on relative scaling, is in volume changes based on worldspace in relationship to other objects around it, where local scaling changes the scale of the object based on it’s own relative size in world space.
The only problem is in general most objects are reference by their local transform and if you change the relative scale of the object via vertex manipulation the world space will still read the object scale as when it was first imported based on it’s local scale.
This effect may or may not be an issue but could be a problem with rendering engines that makes use of real world models, like lighting cloth simulation and physics, as most models are based on the local scale of the object and do not take the relative scale into account. Something to keep an eye open for.
If a vote I say go with the blendshape approach as it just works with out having to get fancy.
Zac, I am not sure what you mean by a job for Houdini. I can definitely achieve this in Blender being that it’s 3D software but I am trying to do this within UE4 and not the modeling software itself.
Thanks Frankie. Yeah, I understand the concepts behind what you are saying I just didn’t know if UE4 had a feature involving the actual geometry of the mesh that I wasn’t aware of. I am going to give blend shapes a go and see where I get with it.
Zac. That’s actually really nifty. I have messed around with Houdini in the past but I didn’t know that there was some kind of real time plugin like that. Unfortunately, at the moment I won’t be able to afford anything past Blender which I can’t complain too much, I love Blender. But I’ll definitely have to look into this further when I can afford a commercial license.
No1. This is currently what I have been doing… The example was more generalized but what I am actually trying to achieve is piecing together the round walls with 3 different meshes. The inner wall, the outer wall, and the plane for the top faces of them. Originally, I got it to work that way without the top ends of the wall but that is more or less what I am trying to implement now,
IGC. Yeah the morph targets/shape keys/blend shape stuff is what I am looking into at the moment. So far it seems like it’s the most feasible option.
SCHA. That’s really cool. That was more or less what I was conceptualizing before as a possible workaround but I didn’t even know where to begin with the material so I will definitely check this out.
while you can scale the object and reverse-scale on vertex level, this is really just a workaround. the scaling you mention requires either a modular object with preset modification behaviors (like 3dsmax primitives), or something like FFD modifier that would work on vertex level only (AFAIK, there is no such solution plugin). among other solutions, skinning the mesh comes to mind.
remember that the vertex displacement has no effect on the object collision, and can lead to other issues. if there are not too many objects of this type, perhaps consider making them in 3d package and importing