2
$\begingroup$
  • At the bind event of the Mesh Deform modifier there is no warning yet
  • When the frame is changed a warning is issued in the Mesh Deform modifier ... verts changed from 8888 to 8800 ... two different numbers
  • The goal is to change the shape of the fluid simulation. The fluid is not in the general shape of a box.

  • This is a narrow ["Yes", "No"] question. A 1 to 4 sentence answer might be sufficient. Conciseness is appreciated. No images, new examples, or mention of other modifiers are necessary in a candidate answer.

  • There are other issues which may be posed in a separate question.

$\endgroup$
4
$\begingroup$

No - a fluid mesh cannot be used directly as the deformation object in a Mesh Deform modifier, nor can it be deformed by a Mesh Deform modifier.

The reason for this is that the Mesh Deform uses the change in the mesh of the 'Object' to affect the target mesh by reacting to the changing location of each individual vertex by 'binding' vertices together - by determining how much a vertex in the 'target' mesh would be affected by the position in the 'source' mesh and averaging those deformations over all vertices. For this to work there must be a fixed number of vertices in each mesh (the source and the target). In a fluid simulation, the mesh is not actually deforming from frame to frame but is being effectively re-built for each frame to represent the fluid in that frame. Since the fluid mesh is effectively rebuilt each frame it is not actually the same vertex that represents a particular part of the fluid throughout the animation - and this breaks the deformation.

That said, if your requirement was to deform an object within a fluid as that fluid moves, there is a solution by using another mesh to deform based on the fluid and use that as the Deform Modifier source.

First, create your fluid simulation :

fluid

Add another mesh with sufficient geometry to capture the motion of the fluid - eg, a subdivided Cube. Make sure you add enough subdivision to capture the required detail of the fluid (you'll probably want more detail than I've added in my example images - I purposefully didn't subdivide too far so as to be able to clearly show the mesh deforming). Add a Shrinkwrap modifier set to shrinkwrap to the fluid - the 'Project' mode of the shrinkwrap is useful here so that vertices can project up to the surface :

shrinkwrap

You should now have your "shrinkwrapped" mesh deforming to the fluid :

shrinkwrap animated

You can now use this as the source of deformation :

deform modifier

This can produce the following result :

result


The other alternative is if you want to deform the result of the fluid simulation base on another mesh (which is your actual requirement), and this cannot be done with the Mesh Deform modifier due to the changing vertices throughout the animation (due to how the mesh is completely rebuilt between frames).

However, this can be achieved with a Lattice Deform instead. A Lattice deformation is very similar to a Mesh Deform but is greatly simplified - instead of being based on the 'target' being within the 'source' mesh (and so the effect of each vertex is applied to each vertex in the target), it is the actual deformation of the whole lattice that affects the whole of the target mesh (regardless of whether it is within the source mesh or not). You could potentially also apply a Mesh Deform to your Lattice so that the mesh deform affects the lattice and the lattice affects your fluid simulation.

If you could update your question to include more specific examples of what you're trying to achieve I could include more specific details of how this could be applied to your case.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.