English | 日本語
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.
- 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
Unity 2022.3. Editor-only with no runtime footprint.
# 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/FluxVCC / VPM support is planned but not available yet — until then, use a Release .unitypackage or the git clone above.
Opening the window, authoring curves, baking, and the rest of the usage guide are at flux.aiczk.com.
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.
MIT License (LICENSE.txt).
