A visual tool that allows you to create animated sequences of tweens and tweak them on editor time.
C#
1,239
188 commits
updated Mar 4, 2026
I LOVE Tween, I love DOTween even more! But having to wait for a recompilation every time you tweak a single value on some animation it's frustrating! Even more complicated is properly have to visualize the entire animation in your head and having to wait until you reach your animation to see what you have done! That's why I created the Animation Sequencer, it is (cloned) HEAVILY INSPIRED from Space Ape amazing Creative Engineering: Balancing & Juicing with Animations presentation.
This is still in heavy development, please use it carefully
DOTween on your project with properly created asmdef for it (Created by the DOTween setup panel)Animation Steps you can add a new stepanimationSequencer.Play();[Serializable]
public class PlayLegacyAnimation : AnimationStepBase
{
public override string DisplayName => "Play Legacy Animation";
[SerializeField]
private Animation animation;
public override void AddTweenToSequence(Sequence animationSequence)
{
animationSequence.AppendInterval(Delay);
animationSequence.AppendCallback(
() =>
{
animation.Play();
}
);
animationSequence.AppendInterval(animation.clip.length);
}
}
Absolutely! The same as the step, you can add any new DOTween action by extending DOTweenActionBase. In order to avoid any performance issues all the tweens are created on the PrepareToPlay method on Awake, and are paused.
[Serializable]
public sealed class ChangeMaterialStrengthDOTweenAction : DOTweenActionBase
{
public override string DisplayName => "Change Material Strength";
public override Type TargetComponentType => typeof(Renderer);
[SerializeField, Range(0,1)]
private float materialStrength = 1;
public override bool CreateTween(GameObject target, float duration, int loops, LoopType loopType)
{
Renderer renderer = target.GetComponent<Renderer>();
if (renderer == null)
return false;
TweenerCore<float, float, FloatOptions> materialTween = renderer.sharedMaterial.DOFloat(materialStrength, "Strength", duration);
SetTween(materialTween, loops, loopType);
return true;
}
}

You can use the Custom ease to define an AnimationCurve for the Tween.

Unity 2018.4.0 or later versions
This package is available on OpenUPM: https://openupm.com/packages/com.brunomikoski.animationsequencer
To add it the package to your project:
Edit/Project Settings/Package ManagerName: OpenUPM
URL: https://package.openupm.com/
Scope(s): com.brunomikoski
com.demigiant
com.brunomikoski.animationsequencerYou can also add it directly from GitHub on Unity 2019.4+. Note that you won't be able to receive updates through Package Manager this way, you'll have to update manually.
https://github.com/brunomikoski/Animation-Sequencer.git2,666 followers · starred Oct 2022
58 followers · starred Dec 2022
32 followers · starred Dec 2024
A visual tool that allows you to create animated sequences of tweens and tweak them on editor time.
C#
1,239
188 commits
updated Mar 4, 2026
I LOVE Tween, I love DOTween even more! But having to wait for a recompilation every time you tweak a single value on some animation it's frustrating! Even more complicated is properly have to visualize the entire animation in your head and having to wait until you reach your animation to see what you have done! That's why I created the Animation Sequencer, it is (cloned) HEAVILY INSPIRED from Space Ape amazing Creative Engineering: Balancing & Juicing with Animations presentation.
This is still in heavy development, please use it carefully
DOTween on your project with properly created asmdef for it (Created by the DOTween setup panel)Animation Steps you can add a new stepanimationSequencer.Play();[Serializable]
public class PlayLegacyAnimation : AnimationStepBase
{
public override string DisplayName => "Play Legacy Animation";
[SerializeField]
private Animation animation;
public override void AddTweenToSequence(Sequence animationSequence)
{
animationSequence.AppendInterval(Delay);
animationSequence.AppendCallback(
() =>
{
animation.Play();
}
);
animationSequence.AppendInterval(animation.clip.length);
}
}
Absolutely! The same as the step, you can add any new DOTween action by extending DOTweenActionBase. In order to avoid any performance issues all the tweens are created on the PrepareToPlay method on Awake, and are paused.
[Serializable]
public sealed class ChangeMaterialStrengthDOTweenAction : DOTweenActionBase
{
public override string DisplayName => "Change Material Strength";
public override Type TargetComponentType => typeof(Renderer);
[SerializeField, Range(0,1)]
private float materialStrength = 1;
public override bool CreateTween(GameObject target, float duration, int loops, LoopType loopType)
{
Renderer renderer = target.GetComponent<Renderer>();
if (renderer == null)
return false;
TweenerCore<float, float, FloatOptions> materialTween = renderer.sharedMaterial.DOFloat(materialStrength, "Strength", duration);
SetTween(materialTween, loops, loopType);
return true;
}
}

You can use the Custom ease to define an AnimationCurve for the Tween.

Unity 2018.4.0 or later versions
This package is available on OpenUPM: https://openupm.com/packages/com.brunomikoski.animationsequencer
To add it the package to your project:
Edit/Project Settings/Package ManagerName: OpenUPM
URL: https://package.openupm.com/
Scope(s): com.brunomikoski
com.demigiant
com.brunomikoski.animationsequencerYou can also add it directly from GitHub on Unity 2019.4+. Note that you won't be able to receive updates through Package Manager this way, you'll have to update manually.
https://github.com/brunomikoski/Animation-Sequencer.git2,666 followers · starred Oct 2022
58 followers · starred Dec 2022
32 followers · starred Dec 2024