Object motion based on displacement?

I’ve got what I think is a simple problem but i can’t work it out for the life of me. I’m an old hand at 3D but I’m new to Unreal.

I’ve got a bunch of tiles that I want to animate on just the Z axis based on a procedural displacement (or an image map, I’m not picky.) The tiles don’t need to deform. Just move up and down as a whole mesh based on the displacement. Sort of like a bunch of object on water if they didn’t have to rotate.

Any ideas? Point me in the right direction!

Thanks so much,

Are you just wanting to move the objects on the z axis at certain scales but in random order? If the tiles are separate objects (each tile is it’s own static mesh) You can make a single blueprint with a single tile mesh actor that is due to play a timleline that increases the actor’s z location multiplied by a float variable that can serve as the movement scale, (either dictated by the user or also randomly set) and then just fire an event every couple seconds to pull a probability branch check, using get random float in range, then use a float=float and set the number that it needs to be on to fire, then when that float is the one that’s randomly generated, the branch will fire off a true pulse and play the movement timeline from start.

If you want to do a sheet, you could do material displacement but that’s going to be inaccurate unless you have a high poly count, and the collisions likely won’t be accurate.

I don’t even need collision at all. I just need them to move in the Z as I tell them to. Make hills, or other shapes, etc.

are you wanting like blocky hills and stuff like that? A la Minecraft, etc?

Yes, exactly. Something like that! No collision or interaction needed. Just blocky motion.

If you just want a hard angle blocky motion effect without any collision or interaction, you could probably pan a displacement map using tessellation.

Wouldn’t that displace a subdivided single mesh? I’m hoping to find a solution that would work on separate copies of an object. Something like this: 669dcaa7c0ebb86d673c3cd99d25485557f73c4c.jpeg

Are you wanting to control patterns like that, or just having it totally random? Whether you are or not, it’s going to be a bit more complex to set up in a blueprint, though it is definitely possible.

I need to control the pattern, yes.

I’m sorry, I’m not sure how to go about doing this in a way that allows pattern control, it’s beyond my capabilities. Best of luck to you in figuring it out :slight_smile:

Il give this a shot

In the tile object BP, make a function that accepts a value and adjusts its z position based on the input.

Make a “tile tiler” BP that generates an ordered 2D array of tile objects. Use your procedural algorithm to feed the necessary z values by doing nested loops through each tile.

Not too familiar with how data is extracted from image maps, but i imagine itll be the same deal