Deform a mesh in a series of stages randomly


I’m working on this project and I’m quite lost. I want to animate a simple mesh randomly going through specific stages. It is like a cylinder with a radius of 2 cm, in one stage the spline at the middle of the cylinder should have a radius of 5cm, in a different stage a radius of 1 cm. So the cylinder should change from let’s say 2 cm, to 5 cm, to 1 cm in constant increments.

I think morph targets are not going to work. As I understand morph targets don’t work in absolute terms. I mean, if one morph target is 5 cm (which is 3 cm more from the original mesh), and the next is 1 cm (minus 1 from the original), if I play one after the other what I’m going to get is a sequence like: 2 cm, then 5 cm, and then 4 cm.

Let me know if it doesn’t make sense. I will appreciate any help.

Many thanks

Hi guys,

Someone that could point me in the right direction? I’m quite new to Unreal and I’m lost. I need this to be done soon.

It also happens that the project is a bit more complicated than I thought at the beginning. I will explain a simplified version of it as clear as I can. I’m trying to figure out how to deform a mesh according to specific parameters.

It is about a cylinder with three circular splines around it. Each spline has three possible positions that deform the mesh of the cylinder between the previous spline and the following one, this means that when one spline changes the stage it doesn’t affect the dimensions of the other two.

On the other hand, another set of parameters determine the space between the splines, which should change as well.

These are the three splines that are going to deform the cylinder in blue, white and green. The first stage of each spline is 0. Each spline has three stages 0, -1 and +1.

This is the cylinder with all the splines in stage 0

The first spline in the stage -1 (and the other in stage 0)

The first spline in the stage +1 (and the other in stage 0)
The second spline in stages +1 and -1 while the other two are in stage 0. You already got the point, right? The same thing with the third spline.

In this stage the first spline is -1, the second +1 and the third 0

And now let’s illustrate what I meant by the distances between the splines.

The first spline has moved upward according to a new distance between the first spline and the second.

Here the second spline has moved downward according to a new distance between the second and the third.

What I need to do is to combine these stages randomly, so the mesh is moving, from one point to another (one at a time)to meet the numerical requirements and start from this position for the next transition.

Your help is very much appreciated. I really need this to be done soon and I don’t know how to start. Maybe morph targets could work to change the distance between splines. But I think they won’t work to change the size of the splines.

Many, many thanks.

What issue are you having with Morph Targets?
Use Max,Maya,or Blender to create the animation and play it in Unreal
Each region can have its own morph that you can play independently.

Another option that comes to mind is using a skeletal mesh.
Put bones at each ring - you can scale each bone independently in the animation blueprint as needed.
The verts are weight blended and so will respect the scale.

Thanks OptimisticMonkey. I think a skeletal mesh will work better this time. I will come back with more questions!