Aller au contenu

sTransform Node

By Kriss Norde

sTransform adds an extra transformation layer to vector shapes (position, scale, rotation). Different from Transform 2D: it works on the vector data before rasterization by the sRender, which allows precise hierarchical animations with no loss of quality.

Overview

sTransform sits between shape nodes and adds an extra transform on top of the built-in transforms of each shape (Offset, Angle in sRectangle, for example).

Its main benefit: hierarchical animations. An sStar with its internal Angle spins the star on itself. An sTransform downstream can make it orbit around the frame. The two animations combine naturally, with no conflict.

Where to find this node

  • Effects Library: Tools > Shape > sTransform
  • Quick add: right-click in the Node Editor → Add Tool > Shape > sTransform

sTransform vs Transform 2D

Transform (2D)
Works on bitmap images. Sits after the sRender. Resampling is needed - it can add blur if you zoom in after rasterization.
sTransform
Works on vector data. Sits before the sRender. Resolution is preserved - the shape stays sharp at any scale. Faster too (no resampling).

Rule: a transformation on a shape that is still vector → sTransform. A transformation after rasterization (or on non-shape elements) → a classic Transform 2D.

Inputs

  • Input (orange, required) - the output of a shape node (sRectangle, sEllipse, sBoolean, etc.).

Setup

Hierarchical animation (a star spinning + orbiting):
sStar (animated Angle - spins on itself)
  → sTransform (animated Rotation - orbits around the center, Offset away from 0)
  → sRender

Scaling a compound shape:
sRectangle → sBoolean Subtract ← sEllipse
                  ↓
              sTransform (Scale 1.5) → sRender

Animated parent transform (group):
Multi-shapes → sMerge → sTransform (group animation) → sRender

Controls tab

Offset (X / Y)
Additional offset relative to the shape's own position.
Size / Scale
Resizing. Can be uniform or separate in X/Y for stretching.
Angle
Additional rotation around the anchor point. Adds up with the shape's internal Angle (if any).
Anchor Point
Reference point for rotation / scale. Move it to spin the shape around an external point = an orbit effect.

Hierarchical animations: the key use case

Hierarchical animations take advantage of the fact that each node (shape or sTransform) has its own transformation parameters. By combining:

  1. The shape's internal rotation (e.g. the Angle of an sStar) = rotation on its own axis.
  2. An sTransform with an offset Anchor Point + an animated Angle = rotation around the Anchor (outside the shape).

Result: the star spins on itself while it orbits around the center. Impossible to do cleanly with a single Transform 2D - you need the hierarchical layer.

The same logic as "null objects" in After Effects or "parent/child" in 3D. Several sTransform nodes can be stacked for N-level hierarchies.

Use cases

  • A star spinning + orbiting (the canonical example) - sStar with an animated Angle + sTransform with an animated Angle and an external Anchor.
  • Planet + satellites - several sEllipse nodes + several sTransform nodes with different Anchor Points = a complete orbital system.
  • Cleanly scaling a compound shape - after an sBoolean or sMerge, an sTransform lets you scale the whole thing without touching the individual shapes.
  • Positioning a composite shape - move a set of grouped shapes from a single control point = cleaner than changing each Offset.
  • Animating the letters of a logo - each letter has its own animation (one sTransform per letter), then a global sTransform for the whole thing.
  • Animated scale during a rotation - an sTransform with Size and Angle animated at the same time = a clean rotating zoom (no resampling blur).
  • Pre-positioning for sDuplicate - position a shape before duplicating it with sDuplicate for precise patterns.

Tips

  • Stack sTransform nodes for multi-level hierarchies. Each sTransform = one more transformation level. Think in terms of nesting.
  • Offset Anchor Point = orbit - to make a shape orbit, move the Anchor far from the center of the shape, then animate Angle.
  • sTransform is not always needed - if a simple translation is enough, use the shape's own Offset directly. Keep sTransform for hierarchical animations or compound shapes.
  • No loss of quality - unlike a Transform 2D after the sRender, an sTransform never blurs the shape, even at a very high zoom.
  • Rename for clarity - "sTransform_Orbit", "sTransform_Global" make a graph with several hierarchical levels readable.
  • Animate a uniform Size for a clean scale. A Size X different from Size Y = a visible stretch, only use it if that is the effect you want.
  • For grouped timed animations (e.g. all the shapes appearing in a cascade), combine sMerge + sDuplicate with a Time Offset for staggering.