Curve serialisation formatΒΆ

Below is a general description of the general NUKE Animation Curve format, using AUgmented Backhaus Naur Form.

See also Roto serialisation format

int

float

interpolation            = K / L / S / R / C

                         ; Constant / Linear / Smooth / Catmull-Rom / Cubic

extrapolation            = k / l

                         ; Constant / Linear

x-value                  = float

y-value                  = float

l-slope                  = float

r-slope                  = float

l-angle                  = float

r-angle                  = float

animation-curve-key      = [SP interpolation] [SP extrapolation] [SP "x" x-value] SP y-value [SP "s" l-slope] [SP "t" r-slope] [SP "u" l-angle] [SP "v" r-angle]

animation-curve-key-list = 0*animation-curve-key

  ; This is basically just a list of floats, which may or may not be prepended by string constants.
  ;
  ; Each key will have one 'core' float, which is the y-value.  This might
  ; be preceded by the x value, e.g. "x10".  If not, then the new x value
  ; is linearly extrapolated from the last two.  If no x-value is specified
  ; for the first key, it uses 0; if none for the second it increments the
  ; first key.
  ;
  ; Each key then may have some tangent data.  If an l-slope is set and
  ; no r-slope then the lslope should be used for both.  l-a and r-a default to 1.

animation-curve          = begin curve-expression [SP "i" / SP "I"] animation-curve-key-list end

  ; "i" indicates invisible, "I" indicates trace only