Parameter interpolation allows us to avoid blendtree smoothing setups for parameters that share the same local/remote smoothing rates, but not for more advanced uses, so I'd like to request a few things:
  1. The option to set local/remote interpolation times independently
  2. The option to control interpolation times dynamically at runtime, through another parameter's value
  3. The option to define interpolated parameters for contact parameters (without adding them to expression parameters)
  4. The option to skip interpolation when a parameter is driven by parameter drivers (new toggle, default to true)
Alternatively to adding the above to the interface which can add complexity, give us a parameter "namespace" that gives us access to interpolated values without having to manually configure them in expression parameters, for example
Lerp/<duration>/<originalParameter>
:
  • Float parameter
    Val
    is changed from 0.5 to 1.0 (immediately)
  • Float parameter
    Lerp/1.5/Val
    interpolates that change over
    1.5
    seconds
  • Allow
    Lerp/1.5/Val
    to be driven by parameter drivers - if it does not match
    Val
    then interpolate from the new value to
    Val
    over
    1.5
    seconds. Driving the interpolation parameter and the
    <originalParameter>
    to the same value at the same time would skip the interpolation.
  • Multiple interpolated parameters could be defined for one parameter, like
    Lerp/0.5/Val
    to interpolate the same parameter over
    0.5
    seconds, giving us the option to use one locally and one remotely, and for various other uses.
To support point #2, special non-duration definitions could be added too:
  • Lerp/<originalParameter>
    used locally/remotely with different rates, dictated by:
  • Lerp/LocalRate/<originalParameter>
    to set the local interpolation rate for the parameter
  • Lerp/RemoteRate/<originalParameter>
    to set the remote interpolation rate for the parameter
  • Optionally support
    Lerp/LocalRate
    and
    Lerp/RemoteRate
    without a parameter, to act as a "default" interpolation rate when an explicit override for a parameter isn't set.
  • When rates aren't set, default to the current interpolation rate (I believe that's 0.1 seconds if I'm not mistaken?)
  • Interpolation rate of
    0
    should be acting as a mirror of the original parameter (no frame buffer), if someone desires a frame buffer they can use
    0.0001
    or some other impossibly low value that is greater than
    0
    .
Originally posted on the forums here, corrected for local parameters being supported and adjusted
Inter
namespace to
Lerp
, in case you'd like to support additional interpolation modes with different "namespaces", though
Inter
works if you'd add
Inter/<originalParameter>/Mode
int or suffix the
<duration>
with the mode like
Inter/0.5E/Val
for exponential.