Download

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,
-g

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