Visulie ─ A Novel, All-Purpose Animation, Data, and Effects Suite

Hey, glad you’re enjoying the plugin! Apologies for that bug. It should be fixed if you update the plugin.

Visulie 1.1.2

Bug fixes

1 Like

can i pay u in robux :sob: :heart: :heart: pls donate or some

This looks really cool, I always wonder why roblox doesn’t have some kind of animator for VFX or anything in general, I mean are we supposed to manually animate everything via code?

I wonder of moonlite can be used to play moon2 files for VFX similar to this resource.

1 Like

I cannot say that there are no alternatives to Visulie. However, Visulie is fully integrated with itself and is the only plugin (that I know of) that intentionally supports this kind of playback in a live game.

There are multiple resources that allow you to play MoonAnimator files. Here are some that I see are more prominent:

I’m not too experienced with any of these, as I’ve never used them before. However, from the looks of it, using alternatives like Moonlite is likely to be much less performant. Since your models need to be loaded in advance to play, it might also feel a bit clunky to work with.

That being said, if you prefer to animate using MoonAnimator, these alternatives could be a better fit for you. I created Visulie to improve my own workflow, as I prefer a streamlined experience that doesn’t rely on external workarounds.


I’ve PM’ed you for further details!

1 Like

Visulie 1.1.3

Bug fixes

  • Fixed a bug where dragging a keyframe onto another keyframe in a keyframe strip with only two keyframes would cause the strip to disappear and trigger an error (as shown below).

Visulie 1.1.4

Improvements

  • Deleting keyframes used now immediately updates the animation state. It used to only update after you manually render the animation (such as playing or dragging the marker, shown below).

Loving your plugin a HUGE lot so far. Its much better than the standard animation editor.
Just, uhh, having some troubles.


So, I used animation:Play(true) hoping it would break the parts created for the animtaion but thats clearly not happening. I also used animation.Completed:Destroy(), hoping to achieve a similar effect, but to no success.
Can I play the animation on an already exisiting rig? That way I could skip the deletion all together.
Thanks for making such an awesome plugin tho :slight_smile:

EDIT: Now I understand it. The :Play(true) destroys the animation, not the rig. Instead, you have to wait for the animation to end and then :Destroy(false) it. Still, I can’t figure out how to animate a rig instead of making one

Also a recomendation: Add function details to the renderer functions by adding comments right above them

1 Like

Hey, glad you’re enjoying the plugin!

Quick question first, are you using the latest Visulie version? You insert the latest one under the file dropdown, not the version dropdown!

If you want to animate on an existing rig, use loadAnimation instead of new.

I’ll see if I can make these functions clearer! Thanks.

Oh wow thanks the loadAnimation makes this about 100x better than it already is.

Which version are we talking about? The renderer’s or the plugin’s?

Oh yeah I checked I’m using the latest renderer version (1.0.0)

Ah, sorry for not being clear about that. It’s ironic I’m still getting used to my own plugin’s terminology :sweat_smile:.

I’m talking about the Visulie Renderer version, which you can find using this dropdown:

image

You can find a constructor named loadAnimation:

Essentially, you provide the Visulie data, where you want to play it, as well as the rig you want to play it on. If your rig has multiple distinct sections, you load it as:

local Animation = Visulie.loadAnimation(data, origin, {RigPart1, RigPart2})

But I’m assuming (from the video provided) that you’re animating a hammer, which is contained under a model. In which case, something like this should work:

local Animation = Visulie.loadAnimation(data, origin, {HammerModel})
1 Like

I dont really know any of the terminology but I assume that by “Constructor” you mean the comment under the function? It has to be above the function in order to be displayed in code snippets :slight_smile:

Constructor basically means something that “creates” something. new() and loadAnimation() are constructors because they “create” an animation object that you can interact with. Instance.new() is a constructor, because it creates an instance. A function like math.min() is not a constructor, because it’s not creating anything.

The comments are there to try to explain what the function itself does, which I hope is clear enough for users to understand!

1 Like

Ah yeah
JUST PUT THE ZAM COMMENTS OVER THE FUNCTIONS :anger:

I’m just now seeing this, and the improvement on the plugin as a whole AND the ability to update old modules to the newer version makes me super happy.

There is however a single issue I’m having with Models inside the animation. Anything outside the model is correctly put in whatever CFrame position it’s scripted to do, but Models always default to 0,0,0.

Example video, it’s set origin is the green part, and 0,0,0 is the red part.

Here’s the old module and updated module if that’s necessary.
BothVersions.rbxm (4.5 KB)

1 Like

Hey, thank you so much for getting back to me.

It seems like I forgot to mark WorldPivot as a relative value, causing it to not be updated correctly! The issue should be fixed in the new Visulie Renderer (make sure to replace the old module!). Let me know if there is still a problem.


Visulie 1.1.5

Bug Fixes

2 Likes

Like I’ve said OFTEN before, this plugin is absolute :fire:
However there are some things that could work more uhh, smoothly? Which is why I’ll post some suggestions here. I’ll add/remove some as I discover new things or you actually add some of these :3

Suggestions


  1. Add multi-selection: Its a pain to have to animate every single child's transparency when working with larger anounts of parts. (or just add union support >:( )

  2. Keyframe optimisation: self explanatory. Make it so that practically un-animated properties can get their tracks removed (optimised) using the press of a singular button :)
    Bossman said this has already been considered (w.i.p.)


List of things that have changed / that have been considered since I made the list:
  1. Proper window scaling (fixed/added)
  2. Union support (technical issues, can't be added)
  3. Replace functions with methods (suggestion wasn't a real suggestion after all)
  4. PascalCase instead of camelCase (camelCase is the norm, I was wrong once more)
  5. Code snippet support (somewhat added, a lot better than before)
  6. Documentation (already present)
  7. Animation priority (won't be added, as it is not really needed. Instead, handle the playing animations by yourself)

Thats enough yapping from me :)
I really enjoy using this plugin and using it has been really fun. Thanks for this awesome resource!

Also a personal note: As a fellow developer I know that these suggestions are just… annoying. Like I understand that this WILL take time, so just know that I don’t want to pressure you into doing all of this in like a day. They are suggestions, not commands :slight_smile:

Bug report

When adding a rig, Parts get not only their own properties, but also those of all of their descendants and siblings.

You can see that multiple parts have multiple CFrame properties as displayed in this video.
Never seen this before, maybe the latest update bugged it?

If this is a bug and not me messing up it requires immediate fixing because it makes Visulie unusable

Additional Debug info:

  • The 100 different properties are displayed even if not a single object is selected. Selecting objects ADDS the objects’ property until it is swapped away from again
  • Only happens when inserting large rigs (many parts)
  • Is unaffected by the part names
  • Has nothing to do with the present UIs
  • Another thing to take note of: Pressing “Select all keyframes” in the prompt menu only selects those that belong to the selected Part, implying that the plugin knows which it should show.

@VegetationBush not to be pushy but pls fix :sob:

I’ve considered that, but, ultimately, due to the nature of the plugin, this cannot work. You can’t instantiate unions during runtime without incurring a large performance overhead, as well as the fact that we cannot know what operations a union has completed. I can “store” union data as an instance under the script, however, that defeats the purpose of being strictly data-driven.


There is documentation inside the Visulie Renderer module. Roblox simply has not yet added support for function description inside the function. However, I am working on this. I have changed this in the new version, though. Take a look at this feature request:


Requiring the Visulie Renderer returns a library. Libraries in Roblox (as well as in Lua itself) have members in “camelCase”. Take a look at the math, Instance, or string libraries. Instance.new(), Instance.fromExisting(), math.max(). It’s actually more consistent to use the dot instead of colon operator in this circumstance.

TweenService only uses a colon to define Tween objects because TweenService is actually an object, not a library. You invoke object methods with colons, and library members with dots. Same thing goes with “PascalCase”. “PascalCase” for object methods, “camelCase” for library members.

I loosely follow the Luau Style Guide, which also uses .new() and not :new().


In the works! :smiley:


Animation priorities were considered in the development of this plugin, however, animation priority is more or less a band-aid solution for bad code structure. You don’t need to play animations over another. Just stop playing the previous animation and start playing the new animation on the same rig. Visulie already does that for you with loadAnimation, which overrides any previously playing animation in favor of the new one.

I don’t use TweenService at all. All the easing is done using a native implementation of different easing styles.

No, don’t feel like it’s annoying! I also use this plugin myself, so anything that can boost your workflow may also boost mine.


Visulie 1.1.6

Bug fixes

Improvements

1 Like