{"id":13730263,"url":"https://github.com/brunomikoski/Animation-Sequencer","last_synced_at":"2025-05-08T02:32:08.167Z","repository":{"id":37395130,"uuid":"344047157","full_name":"brunomikoski/Animation-Sequencer","owner":"brunomikoski","description":"A visual tool that allows you to create animated sequences of tweens and tweak them on editor time.","archived":false,"fork":false,"pushed_at":"2025-03-26T08:59:06.000Z","size":267,"stargazers_count":1044,"open_issues_count":1,"forks_count":122,"subscribers_count":27,"default_branch":"develop","last_synced_at":"2025-04-13T17:46:45.818Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brunomikoski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-03-03T07:59:28.000Z","updated_at":"2025-04-12T09:27:52.000Z","dependencies_parsed_at":"2023-09-27T02:09:14.534Z","dependency_job_id":"5c02af9d-d52e-4dd8-b557-83a6a2b80aa0","html_url":"https://github.com/brunomikoski/Animation-Sequencer","commit_stats":{"total_commits":143,"total_committers":12,"mean_commits":"11.916666666666666","dds":0.5384615384615384,"last_synced_commit":"bfbdbda3573da34f590a3f011e2c9f3a14ededc0"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunomikoski%2FAnimation-Sequencer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunomikoski%2FAnimation-Sequencer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunomikoski%2FAnimation-Sequencer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunomikoski%2FAnimation-Sequencer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brunomikoski","download_url":"https://codeload.github.com/brunomikoski/Animation-Sequencer/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252986907,"owners_count":21836252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T02:01:12.389Z","updated_at":"2025-05-08T02:32:07.827Z","avatar_url":"https://github.com/brunomikoski.png","language":"C#","funding_links":[],"categories":["Open Source Repositories","C#","Animation and Tweening"],"sub_categories":["Tweening"],"readme":"# Animation Sequencer\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/brunomikoski/Animation-Sequencer/blob/master/LICENSE.md\"\u003e\n\t\t\u003cimg alt=\"GitHub license\" src =\"https://img.shields.io/github/license/Thundernerd/Unity3D-PackageManagerModules\" /\u003e\n\t\u003c/a\u003e\n\n\u003c/p\u003e \n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"https://www.codacy.com/gh/brunomikoski/Animation-Sequencer/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=brunomikoski/Animation-Sequencer\u0026amp;utm_campaign=Badge_Grade\"\u003e\u003cimg src=\"https://app.codacy.com/project/badge/Grade/ab4c5923ca0545c9b8c85d87adbd689a\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://openupm.com/packages/com.brunomikoski.animationsequencer/\"\u003e\n        \u003cimg src=\"https://img.shields.io/npm/v/com.brunomikoski.animationsequencer?label=openupm\u0026amp;registry_uri=https://package.openupm.com\" /\u003e\n    \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/brunomikoski/Animation-Sequencer/issues\"\u003e\n     \u003cimg alt=\"GitHub issues\" src =\"https://img.shields.io/github/issues/brunomikoski/Animation-Sequencer\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/brunomikoski/Animation-Sequencer/pulls\"\u003e\n   \u003cimg alt=\"GitHub pull requests\" src =\"https://img.shields.io/github/issues-pr/brunomikoski/Animation-Sequencer\" /\u003e\n  \u003c/a\u003e\n  \n  \u003cimg alt=\"GitHub last commit\" src =\"https://img.shields.io/github/last-commit/brunomikoski/Animation-Sequencer\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \t\u003ca href=\"https://github.com/brunomikoski\"\u003e\n        \t\u003cimg alt=\"GitHub followers\" src=\"https://img.shields.io/github/followers/brunomikoski?style=social\"\u003e\n\t\u003c/a\u003e\t\n\t\u003ca href=\"https://twitter.com/brunomikoski\"\u003e\n\t\t\u003cimg alt=\"Twitter Follow\" src=\"https://img.shields.io/twitter/follow/brunomikoski?style=social\"\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\nI 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](https://spaceapegames.com/) amazing [Creative Engineering: Balancing \u0026 Juicing with Animations](https://youtu.be/4JoBw212Kyg) presentation.\n\n*This is still in heavy development, please use it carefully*\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Example\" src=\"https://user-images.githubusercontent.com/600419/109826506-c299cb00-7c32-11eb-8b0d-8c0e97c4b5b7.gif\"\u003e\n   \u003cimg alt=\"Example\" src=\"https://user-images.githubusercontent.com/600419/128615966-ee93d57b-9cfe-4402-9f9c-ded83ef2b0e8.gif\"\u003e\n\n\u003c/p\u003e\n\n\n## Features\n- Allow you to create a complex sequence of Tweens/Actions and play on Editor Mode!\n- User Friendly interface with a lot of customization\n- Easy to extend with project specific actions\n- Chain sequences and control entire animated windows with a single interface\n- Searchable actions allowing fast interactions and updates\n- Can be used for any type of Objects, UI or anything you want! \n\n## Built in Steps\n - Tween Target \n    - DOAnchoredPosition\n    - DOMove\n    - DOScale\n    - DORotate\n    - DOFade (Canvas Group)\n    - DOFade (Graphic)\n    - DOPath\n    - DOShake (Position/Rotation/Scale)\n    - DOPunch (Position/Rotation/Scale)\n    - DOText (TextMeshPro Support)\n    - DOFill  \n - Play Particle System\n - Play Animation Sequencer\n\n## How to use?\n- Animation Sequencer rely on DOTween for now, so it a requirement that you have `DOTween` on your project with properly created `asmdef` for it (Created by the `DOTween` setup panel)\n- Add the Animation Sequencer to any GameObject and start your animation! \n- Using the \u003ckbd\u003e+\u003c/kbd\u003e button under the `Animation Steps` you can add a new step\n- Select \u003ckbd\u003eTween Target\u003c/kbd\u003e\n- Use the \u003ckbd\u003eAdd Actions\u003c/kbd\u003e to add specific tweens to your target\n- Press play on the Preview bar to view it on Editor Time.\n- To play it by code, just call use `animationSequencer.Play();`\n\n## FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003eI'm seeing a bunch of errors  like `error CS1929: 'CanvasGroup' does not contain a definition for 'DOFade'`\u003c/summary\u003e \nThis means that you don't have the DOTween setup complete with Asmdef files, make sure you do it by the menu: `Tools/Demigiant/DOTween Utility Panel`\n\t\n\u003c/details\u003e\n\u003cdetails\u003e\n    \n\u003csummary\u003eHow can I create my custom actions?\u003c/summary\u003e \nTo create a custom action there's a few things you need to do, first your class needs to be `[Serializable]` in order to be properly displayed on inspector.\nNow you need to make sure whatever you are doing, you are connecting it with the Sequence, like the example bellow.\nAlso notice that in this case I'm adding the Duration its getting the lenght from the clip\n\n```c#\n[Serializable]\n public class PlayLegacyAnimation : AnimationStepBase\n {\n     public override string DisplayName =\u003e \"Play Legacy Animation\";\n\n     [SerializeField]\n     private Animation animation;\n\n     public override void AddTweenToSequence(Sequence animationSequence)\n     {\n         animationSequence.AppendInterval(Delay);\n         animationSequence.AppendCallback(\n             () =\u003e\n             {\n                 animation.Play();\n             }\n         );\n         animationSequence.AppendInterval(animation.clip.length);\n     }\n }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eI have my own DOTween extensions, can I use that? \u003c/summary\u003e\n\nAbsolutely! 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.\n\n```c#\n[Serializable]\npublic sealed class ChangeMaterialStrengthDOTweenAction : DOTweenActionBase\n{\n    public override string DisplayName =\u003e \"Change Material Strength\";\n        \n    public override Type TargetComponentType =\u003e typeof(Renderer);\n\n    [SerializeField, Range(0,1)]\n    private float materialStrength = 1;\n\n     public override bool CreateTween(GameObject target, float duration, int loops, LoopType loopType)\n     {\n        Renderer renderer = target.GetComponent\u003cRenderer\u003e();\n        if (renderer == null)\n            return false;\n\n        TweenerCore\u003cfloat, float, FloatOptions\u003e materialTween = renderer.sharedMaterial.DOFloat(materialStrength, \"Strength\", duration);\n        \n        SetTween(materialTween, loops, loopType);\n        return true;\n    }\n}\n```\n\n![custom-tween-action](https://user-images.githubusercontent.com/600419/109774425-3965a280-7bf8-11eb-9bfe-90b0be8b8617.gif)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eUsing custom animation curve as easing \u003c/summary\u003e\n    \nYou can use the Custom ease to define an *AnimationCurve* for the Tween.\n    \n![custom-ease](https://user-images.githubusercontent.com/600419/109780020-7af94c00-7bfe-11eb-8f0f-52480dd97ea3.gif)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n   \u003csummary\u003eWhat are the differences between the initialization settings\u003c/summary\u003e\n\t\n- \u003ckbd\u003eNone\u003c/kbd\u003e *Don't do anything on the AnimationSequencer Awake method*\t\n- \u003ckbd\u003ePrepareToPlayOnAwake\u003c/kbd\u003e *This will make sure the Tweens that are from are prepared to play at the intial value on Awake.*\n- \u003ckbd\u003ePlayOnAwake\u003c/kbd\u003e Will play the tween on Awake.*\n   \n\u003c/details\u003e\n\n## System Requirements\nUnity 2018.4.0 or later versions\n\n\n## How to install\n\n\t\n\t\n\u003cdetails\u003e\n\u003csummary\u003eAdd from OpenUPM \u003cem\u003e| via scoped registry, recommended\u003c/em\u003e\u003c/summary\u003e\n\nThis package is available on OpenUPM: https://openupm.com/packages/com.brunomikoski.animationsequencer\n\nTo add it the package to your project:\n\n- open `Edit/Project Settings/Package Manager`\n- add a new Scoped Registry:\n  ```\n  Name: OpenUPM\n  URL:  https://package.openupm.com/\n  Scope(s): com.brunomikoski\n            com.demigiant\n  ```\n- click \u003ckbd\u003eSave\u003c/kbd\u003e\n- open Package Manager\n- click \u003ckbd\u003e+\u003c/kbd\u003e\n- select \u003ckbd\u003eAdd from Git URL\u003c/kbd\u003e\n- paste `com.brunomikoski.animationsequencer`\n- click \u003ckbd\u003eAdd\u003c/kbd\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eAdd from GitHub | \u003cem\u003enot recommended, no updates :( \u003c/em\u003e\u003c/summary\u003e\n\nYou 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.\n\n- open Package Manager\n- click \u003ckbd\u003e+\u003c/kbd\u003e\n- select \u003ckbd\u003eAdd from Git URL\u003c/kbd\u003e\n- paste `https://github.com/brunomikoski/Animation-Sequencer.git`\n- click \u003ckbd\u003eAdd\u003c/kbd\u003e\n\u003c/details\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunomikoski%2FAnimation-Sequencer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrunomikoski%2FAnimation-Sequencer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunomikoski%2FAnimation-Sequencer/lists"}