Simple_animation

Houdini Digital Asset (simple_animation) for animating a figure made of separate pieces, such as the letters of a text, without keyframes. In the loop mode every piece swings, stretches or shifts on its own, with a time shift between neighbouring pieces so the motion runs across the figure. In the proxy mode the drones follow the deformation of a proxy geometry.

Inputs:

  1. Drone points with the attribute that splits them into pieces (for text from Smart_scatter, the glyph index).
  2. Proxy geometry for the proxy mode: an animated surface with normals and a rest attribute holding its undeformed position.

HDA: houdinitools/hda/simple_animation.hda

Parameters

ParameterTypeDefaultDescription
attribute_idString—Point or primitive attribute that splits the drones into pieces, such as the glyph index of a text. Each piece moves as a whole around its own pivot.
type_animationMenuloop_animationloop_animation: repeat rotation, squeeze and shift of every piece. proxy_animation: drones follow the deformation of the proxy geometry (input 2), keeping their distance from its surface.

animation_setting

Hidden when type_animation != 0

ParameterTypeDefaultDescription
RotationToggleOffSwing every piece back and forth around Rotation Axis.
SqueezeToggleOffStretch every piece up and down from its pivot.
Ofset By Axis Ofset_by_axisToggleOffMove every piece back and forth along Ofset Axis.

animation_setting / Rotation_parm

Hidden when type_animation != 0 or Rotation == 0

ParameterTypeDefaultDescription
Rotation Axis rotation_axisMenuYAxis the pieces swing around.
Rotation Ofset rotation_ofsetInteger0Time shift between neighbouring pieces, in seconds, so they swing one after another instead of together.
Rotation Amplitude rotation_amplitudeInteger10Largest swing angle, in degrees.
Rotation Speed rotation_speedFloat1Speed of the swing: one full swing takes 6.28 / speed seconds.

animation_setting / Squeeze_parm

Hidden when type_animation != 0 or Squeeze == 0

ParameterTypeDefaultDescription
Squeeze Ofset squeeze_ofsetInteger50Time shift between neighbouring pieces, in seconds, so they stretch one after another.
Squeeze Amplitude squeeze_amplitudeFloat1.2Largest vertical scale of a piece: it stretches between 1 and this value.
Squeeze Speed squeeze_speedFloat5Speed of the stretch: one full cycle takes 6.28 / speed seconds.

animation_setting / Ofset_parm

Hidden when type_animation != 0 or Ofset_by_axis == 0

ParameterTypeDefaultDescription
Ofset Axis ofset_axisMenuZAxis the pieces move along.
Ofset By Axis ofset_by_axisFloat100Time shift between neighbouring pieces, in seconds, so they move one after another. Rounded to whole seconds.
Ofset Amplitude ofset_amplitudeFloat10Largest shift of a piece, in meters: it moves between 0 and this value.
Ofset Speed ofset_speedFloat2Speed of the shift: one full cycle takes 6.28 / speed seconds.

Other

ParameterTypeDefaultDescription
streched_posToggleOffNot used: shown only for animation type 2, which the Type menu does not offer. Hidden when type_animation != 2
enable_animationToggleOffNot used: shown only for animation type 2, which the Type menu does not offer. Hidden when type_animation != 2
offset offset_curve_posFloat0Not used: shown only for animation type 2, which the Type menu does not offer. Hidden when type_animation != 2
animation_speedFloat0.05Not used: shown only for animation type 2, which the Type menu does not offer. Hidden when enable_animation != 1 or type_animation != 2

Pivot selection

ParameterTypeDefaultDescription
Pivot matrix pivot_matrixMenu8Point of each piece's bounding box that the swing and the stretch go around, on a 3 × 3 grid: 1–3 top row, 4–6 middle, 7–9 bottom, each left to right. The default 8 is bottom center.

Video tutorials

Dronatello Course #06 — Looping Text Animation Techniques in HoudiniLet's animate our text. Using the Simple Animation tool, we build a looping rotation animation driven by each character's unique attribute, then explore pivot offset, squeeze and translation to create expressive, reusable text motion.