I’m Crypto(ZDevZ12) and I created a new system to play and edit your animations just by connecting some nodes.
What is this for?
This plugin is used to play animations without having to load each animation individually, instead… you do it visually and everything is ready for use when starting the game.
Why would I use this and not the Roblox animation system?
Because roblox animations are very simple and have many limitations, that’s why I made my own animator that allows you to do much more advanced things than just modify the “weight” and “priority” property of the animations, with my animator you can add one animation to another, mix them or get the difference between them.
Is this a revolutionary idea?
YES!, in all my years as a roblox developer I have never seen before a resource that would help you build and order your animations in an advanced and efficient way!.
This is new in roblox, however I’m basing myself on the animation systems of video game engines like unity, unreal and especially godot, they don’t load one animation at a time to the player, they use similar systems to this where they can have more control over all the animations.
after reading the above text:
How can I use this?
-
First, you must create an “AnimationTree”, to create it you just need to go to the plugins tab inside roblox studio and click on the “New Tree” button, this will generate a new module called “AnimationTree” that will be available in workspace and You can edit by having it selected and clicking on the “Edit Tree” button that is next to the previous button.
-
all your animations must be published to Roblox , then you must generate some “animation” nodes and place the id of your animation right in the space that is inside the node called “Animation Id”
and Congratulations, you’ve saved yourself the time of loading animations individually by using :load_animation.
-
now… you must understand that what the “output” node receives is what will be applied to the character so you must mix everything very well before sending it to the “output”, output only has one input so if you have more than two animations you should mix them before sending them to output.
-
Check out this godot video from 0:30 onwards to better understand how animationtrees work.
Tree Documentation
To make the tree start playing the animations:local AnimationTree = require(Animation_Tree_Path).new(Character_Model)
AnimationTree:set_character(character)--It is not necessary if the character has been set on the previous line
AnimationTree:start()
--if you want to stop
AnimationTree:stop()
--if you want to reset all motors6D cframes of your character to the default ones
AnimationTree:reset()
AnimationTree:set(Node_Name,SettingName,Value)-- or
AnimationTree:get(Node_Name,SettingName,Value)
Nodes Documentation
-
The Looped button of a node can be configured using
AnimationTree:set(Node_Name,Looped, Value )
and its value can be true or false -
The Play button of OneShot node can be configured using
AnimationTree:set(Node_Name, Fire, Value )
and its value can be true -
The Stop button of OneShot node can be configured using
AnimationTree:set(Node_Name, Active, Value )
and its value can be false -
The Sync button can be configured using
AnimationTree:set(Node_Name, Sync, Value )
and its value can be true or false -
If you want to set a Fade In you can use
AnimationTree:set(Node_Name, FadeIn, Value )
and its value can be 0.0 to 1.0 -
If you want to set a Fade Out you can use
AnimationTree:set(Node_Name, FadeOut, Value )
and its value can be 0.0 to 1.0 -
If you want to set a Slider you can use
AnimationTree:set(Node_Name, BlendValue, Value )
.
In a common slider, the possible values are from 0.0 to 1.0, however in the TimeScale node the default value is 1.0, so the possible values are from 0.0 to 2.0
New Nodes
- In a new update, the WeightScale node has been added, with which you can edit the weight of each body part separately, setting the weight of a specific body part is more complicated, that’s why I’ve set a function directly in the animation tree:
AnimationTree:set_weight(NodeName,Place,PartName,Weight)
and
AnimationTree:get_weight(NodeName:string,Place:number)
where the “Place” is an integer that indicates the place where the body part is located , it is mainly used to sort the spaces in the node editor, and part name and weight are the values that are placed within that place, and get_weight will return a table with the name and weight placed in its place.
Cost: FREE!
The latest roblox updates are . who would want to spend dollars on a roblox plugin?? NOBODY. Thanks to the people who spent 350 robux to buy this addon, seriously… I appreciate it.
Plugin:
Animation-Tree
My Discord Server:
🧬Crypto Lab 🧬
Thank you for purchasing this plugin, if I am missing information let me know on my discord server