Modifiers Animation | Import modifiers animation from Blender to Roblox Studio

INTRODUCTION
I make this because and thinked how to make a new visual effect to make on roblox and I thought in this and I said why not, here is a showcase.

INSTALLATION
You can get blender add-on here and roblox plugin here.

MAKE YOUR FIRST ANIMATION

Export Animation

After create your animation(in blender), click on FileExportRoblox Modifiers Animation (.fbx) and select a file to save keyframes data(50k max tris per file, its done automatically).
export

Here an exported sample animation
rbxmanim1.fbx (1.7 MB)
rbxmanim2.fbx (1.3 MB)

Import and Playing Animation

After plugin installation, click on Import Module and Create Animatable button, and select one per one animation files, when done, press Cancel on the file prompt, this creates an animatable model. Now just Run and enjoy the animation!
import and play

API
Module Functions:
	ModifiersTrack ModifiersAnimation:LoadAnimation(animatable: Model, length: number)
		> class constructor
		> length is animation duration, default is 1, 0.1 -> 999999999

	boolean ModifiersAnimation.Is(obj)
		> returns if object is a ModifiersTrack

	boolean ModifiersAnimation.IsAnimatable(animatable)
		> returns if object is an Animatable

Properties(read-only):
	string ClassName
		> returns the class name

	boolean Reversed -> can set
		> returns or set if animation is reversed
		> if animation is playing, on next play(loop included) the animation is reversed

	boolean Looped -> can set
		> returns or set if animation is in loop

	model Animatable
		> returns the animatable model

	number Length
		> returns animation duration

	boolean IsPlaying
		> returns if animations is playing

	number TimePositionn
		> returns the current time position
		> returns 0 if animation is not playing

	number Speed
		> returns animation offset speed

	number Keyframe
		> returns the current keyframe
		> returns 0 if animation is not playing

	number Keyframes
		> returns the length of keyframes

Methods:
	void AdjustSpeed(speed: number)
		> sets animation offset speed
		> default is 1

	void AdjustLength(length: number)
		> sets animation length(if animation is playing, this sets on next play)
		> default is 1
		> 0.1 -> 999999999

	number GetTimeOfKeyframe(keyframe: number)
		> returns the keyframe time given on param

	void Play()
		> stops if animation is playing and play animation

	void Stop()
		> stops animation on the current keyframe

	void Destroy()
		> destroys and set to first keyframe
		> do this if not using the animation, clear memory leaks

Events:
	RBXScriptSignal DidLoop()
		> fires when animation finishes and is in loop

	RBXScriptSignal KeyframeReached(keyframe: number)
		> fires when a keyframe is reached
		> keyframe is the keyframe reached

	RBXScriptSignal Stopped()
		> fires when animation finishes

FEATURES

  1. Create Animatable, select .fbx files generated by blender add-on, when done, press Cancel on the file prompt.

  2. Reverse Keyframes, reverses keyframes from selected animatables.

  3. Import Module, just import module(it not import if already is imported)

DETAILS

  • The animatable have some attributes, after creation, if u put it in workspace then u can change color and transparency(of animatable’s selected) and this too changes for all keyframes.

  • Clicking Import Module button, searches in Workspace, ServerScriptService, ServerStorage, ReplicatedStorage, ReplicatedStorage.Modules and ReplicatedStorage.modules, if not found, the module is downloaded and placed in ReplicatedStorage(or modules folder).

  • After animatable creation, if module is imported, this creates a demo script on animatable.

  • Blender animation must finish with minium 2 tris, 21k are max tris per frame and when exporting, select an object and export.

  • If have much frames on blender animation and it crashes when exporting, not close it, just is processing frames.

  • If Script Injection is disabled, plugin can’t imports module or creates demo script.

EXTRA

97 Likes

awesome work!! 10/10 :+1: :+1:

3 Likes

UPDATE

  • Now when exporting, select an object to export.
  • Plugin has an interface thats show last file index imported.
  • Added undo and redo support to plugin changes.
5 Likes

Very nice work ! Thanks for the contribution

3 Likes

it is an awesome plugin, but this type of effect is alot heavy. i oppened the example file.
imagine 10 player trowing the same skill or effect at same time.


10x 46,595 for 10 player is 465,95 Triangles into the example effect, this is like a 3d model from ps4 for a complete and decorated room, from like horror games where the use alot of props to decorate the ambient.

i know i could decrease the mesh triangles, but it would not look as good as this one.
besides the ammout of triangles, the plugin is awesome.

5 Likes

You can make a change in the module to only “loads” the frame that is being shown

2 Likes

True, I think on changes module to use Parent instead of Transparency, I believe that this render only 1 object and not all with 1 of Transparency.

2 Likes

the best way of doing this is by using special mesh so you can just swap id of the mesh, but the problem with special mesh is that neon dont work on special mesh.

2 Likes

Yes, my original idea was use special mesh.

2 Likes

What do you mean by select a file to save keyframe data? And is the animation on server or local?

2 Likes

Demo script is on server, but in game, animation should be on local, and select a file to save keyframes data does mean thats just select a file to generate .fbx file(with keyframes data) to import on roblox.

3 Likes

UPDATE

  • Module rework and more optimization(see Activity), before and after.
  • DoubleSided added.
  • New API
3 Likes

MINI UPDATE
Blender add-on now supports AnimAll add-on!

3 Likes

Please help,
I try to export the model I am animating but I get this error

Also, I saved the plugin as a .py file.

1 Like

Hi, probably this happens because you use blender 2.93, add-on was written in blender 2.92.

2 Likes

Right, when I export using blender 2.93 I get the same error, but when I export using blender 2.92 it works.

2 Likes

Ok. I see, will try it later today. Thanks

2 Likes
  • A bug fixed while importing module(update the plugin).
2 Likes

This is really cool. I have blender 2.93 and I was disappointed to find out that this doesn’t work with that version. If you could update it to use the newer version, that would be wonderful.

2 Likes

For some reason I do not have Roblox Modifiers Animation as a Export option in blender why is that?

2 Likes