11

I just created a plane and added a wave modifier to it, to simply make it look like something fluid. Now, I have an Object that I want to place on the surface of this fluid plane. But how do I do that?

I thought of adding a driver to my Objects location, but I have no clue how to get the location of a certain vertex in runtime.

Marten Zander
  • 1,158
  • 6
  • 20
  • 39

2 Answers2

24

You want to use Vertex Parent to parent the object to vertices in the wave mesh.

To do this, select the Wave mesh and switch to Edit mode. Select the vertex you want.

Note: I've actually found it better to select 3 vertices in a small triangle shape, because it will transfer lateral/tipping movement instead of pure vertical motion that you would get with a single vertex).

Then tab out of edit mode. Select the float object and then shift-select the wave object. CTRL+P and select Vertex or Vertex (Triangle) from the menu.

enter image description here

If you're trying to create a boat simulation and want the float object to react slower to the wave movement you can parent an empty to the wave and then use constraints to copy the empty's location and rotations to the float object. Doing it that way will allow you to reduce the Influence value on the constraints which will give you a more realistic motion for the float object.

enter image description here

Todd McIntosh
  • 9,421
  • 25
  • 50
1

Todd already provided the great answer suitable for your case, but mentioned in the comments was another great way to stick an object to another objects vertex.

  1. For the mesh object, create a vertex group with one or more selected vertices assigned to it
  2. Make empty
  3. Put a Copy Location constraint to that empty and select the mesh object and select the created vertex group
  4. Ta-daa, done!

Works super well with mesh objects that have for example multiple animated shapekeys in it.

Manu Järvinen
  • 7,392
  • 2
  • 25
  • 62