Houdini Motion Design

Projected Velocity

Projected Velocity is a technique that involves calculating an object's velocity based on its position and forward direction. This approach offers a unique and abstract way to simulate the movement of underwater vegetation or other natural elements, capturing the fluid, responsive behavior of plants swaying with currents or environmental forces. 

Motion Design smooth

The base of this effect uses the Vellum SOP Solver, particularly the Vellum String Constraint. The movement is driven by a custom @targetv attribute. The @targetv attribute adds a goal velocity to reach, rather than simply setting the @v. @targetv makes the movement much more natural and smooth.

Houdini Test Geometry

To start, we need two components: the active geometry (the lines) and the effector geometry (the swan-donkey). Once we have the two geometries, it's important to animate the effector, as this is the primary movement that we can control. After animating the effector, we can move into the solver. 

Houdini underwater

We first need to group the pinned points so that the lines don't float away. In this case, I pinned the first point before copying and transforming. It's also important that we have the rest attribute. 

Houdini Tutorial

In the Vellum String Constraint, it's important to set the pinned points. I find it’s good to experiment with the attributes in the constraint nodes. In my final pass, I decided on a low bendiness and medium stretchiness.

Now that we have our active and effector geometries initialized, we can move into the Vellum Solver. Right off the bat, I find the velocity damping to be a great variable for smoothing out simulations. Inside the Vellum Solver, I use a POP VOP to build our @targetv attribute.

As you can see below, there’s a bit going on, but it's not complicated. The majority of the "bind export" nodes are used for me to visualize what is being calculated for testing. An important reminder: we need to plug our effector geometry into the second input of the POP VOP. This allows us to reference the geometry within the POP VOP.

Houdini PopVop

The basis of what we have going on is that we calculate the distance between the active and effector geometries. This is used as a mask to blend two different vectors. The first vector is the projection vector from the effector to the active points, and the second is the vector to return to the points' rest position. The top PCOpen calls the @N of the active geometry, while the lower PCOpen calls the @P of the active geometry points. 

Houdini PCOpen