Skip to content

aiczk/Flux

Repository files navigation

Flux

English | 日本語

Unity Docs

A Unity Editor extension that authors per-property value curves (normalized envelopes) on a timeline and bakes them into a single standard .anim clip. Animate a ParticleSystem's emission rate, Transforms, StartColor, material properties, and more over time. Unity's AnimationWindow is clumsy for authoring multi-property envelopes and Timeline doesn't fit avatar work, so Flux is a purpose-built timeline for it — and its output is a plain .anim, playable anywhere.

Flux timeline

Features

  • Author curves as normalized levels (a multiplier or offset over a baseline), not absolute values
  • Affine compose against the baseline (Multiply / Absolute / Additive)
  • Non-destructive Regions / Effects: layer Repeat and Noise at read time without touching the authored curves
  • Live in-scene preview through the same path as the bake, so the preview matches the baked result
  • One-click re-bake (Flux remembers the target Animator)
  • Drivers: EmissionRate, SimulationSpeed, StartColor, Transform, GameObject active, material properties

Requirements

Unity 2022.3. Editor-only with no runtime footprint.

Installation

# A: download the latest .unitypackage from Releases and import it
# B: clone into your project's Assets
git clone https://github.com/aiczk/Flux Assets/Flux

VCC / VPM support is planned but not available yet — until then, use a Release .unitypackage or the git clone above.

Documentation

Opening the window, authoring curves, baking, and the rest of the usage guide are at flux.aiczk.com.

Extending

Add a driver (animate another property):

public class SimulationSpeedDriver : PropertyDriver<ParticleSystem, float>
{
    public override string DisplayName => "Simulation Speed";
    protected override string Binding => "simulationSpeed";
    protected override float Read(ParticleSystem ps) => ps.main.simulationSpeed;
}

Subclass PropertyDriver<TComponent, TValue> and implement Binding and Read; it registers itself with DriverRegistry and the driver dropdown.

Add an effect (another Region compose):

public class NoiseEffect : Effect
{
    public override string DisplayName => "Noise";
    public override void Fill(FillSink sink, FillContext ctx) { /* layer keys via sink.TryFill */ }
}

Subclass Effect and implement Fill; it shows up in EffectRegistry, the "+ Add Effect" menu, and the inspector with no Editor-side changes.

License

MIT License (LICENSE.txt).

About

Author per-property value curves on a timeline and bake them into a single standard Unity .anim clip. Editor-only, no runtime.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages