Remember my animation priority that you (rightfully) turned down?
You said there’d be no point since the animations override each other. Turns out thats not the case
In this video you can clearly see how only the last part of the “overriding animation” is being played
I also tried ending the other animation with
renderer.getActiveAnimation(...):Destroy(false)
but that didn’t really work. Neither did pausing the animation or waiting until it is done
My recommendation: Add a :Stop() method (cus pause is just pausing it or sum idk)
You can override animations by using loadAnimation() on the rig you’re currently playing.
local Animation = Visulie.new(data)
Animation:Play()
task.wait(0.5)
local rigDepenencies = Animation:GetRigDependencies()
local OverrideAnimation = Visulie.loadAnimation(otherData, someCFrame, rigDependencies)
OverrideAnimation:Play()
I’ve never run into issues with overriding animations. Are you able to provide the code you’re using? I’m not sure what’s wrong from looking at the video, either.
Thanks for the extra information! I believe I have found the underlying issue. This should be fixed now after updating the plugin and replace the Visulie Renderer. Again, Thanks for bringing this up! Let me know if there are still any issues.
custom formula support for example if we would want to use math.cos or something else
step?, i don’t know how i could call this but, a background animation that blends with the others (maybe this already exists), like a spinning animation but it still plays when you try to change the cframe by , up , down or any direction
support for camera animations, as far as i know, moon animator has a way to export camera animations, so if visulie had his own exporting method for camera, or just atleast to preview them would be nice
Also i’ve got a question, is there any way to apply force/Impulse to a part in the animator?
Also I’ve got three more suggestions coming right up:
Animation editor
Support for un-animatable objects
> This is really needed. Instead of deleting the objects, keep them without adding any keyframes. Helps with model hierarchies alot.
> Example: You want to animate a Tool. Because of the deletion of the tool ancestor, you will only be left with the Handle, which can be animated.
Now I get this isn't necessary but it would make animating some things easier. I'd much rather call loadanimation on Tool than on Tool.Handle
Ancestor name variety. Each animated object usually has a common ancestor for all parts. Renaming this makes the animation un-usable. This sucks in a way. I don't know how and if its "fix"-able but it sure would be nice.
> Example: I made some coins the player can collect in my game. I wanted their names to be numerated (1,2,3...) but since the animation would only work on one (called "1"), all of my coins are now called "1"
Animation playback
Now I would assume this is a really, REALLY advanced feature but if you add it you would probably make this plugin stand out even further from all of the others from the competition. Keyframe variables
Let me explain. When animating humanoids, I ran into an issue. I can animate their movement (limbs), but not the location they move to. (or i just suck :sob: ) This is where this suggestion could come in. The animation module is designed in such a way that the Keyframe's values can be changed, allowing for advanced movement / adaptability. This is technically already possible with your current saveable animation-modules but realistically it is too hard (to understand) for an average code editor dweller like me. Let me create a code example of what this could looke like:
local animation = require(path.Animation)
-- You would be able to connect variables to keyframes (the variable would be a reference to a keyfame)
animation.KeyFrameVariables.VariableNameHere.Value = game:GetService("Players").LocalPlayer.Character:GetPivot()
Visuliue.loadAnimation(animation, Enemy.CFrame, {Enemy})
-- This would move the "enemy" to the "localplayer" whilst also animating the limbs (for example with a run animation)
This was a feature I wanted to implement for a long time as well. I was thinking some sort of “property” system where you can adjust a property, and the keyframes will adjust accordingly. However, after tinkering with the code for a while, I decided that this was much too complex and unperformant.
This is not out of the question, though. It is, however, unknown at this time whether this will ever be implemented.
Yes, you can do this by playing the animation and calling :SetOrigin() on the animation to place it somewhere else.
You can technically animate the camera, but you’re going to have to separate the camera animation from the rigged animation (so you create one animation for the camera, a separate animation for the effects, then play them both at the same time). Visulie isn’t meant to be a cutscene plugin. It is meant to create independent animations.
Not yet. Is there a use case for this? Usually, parts are anchored in animations. But I guess this could be useful for unanchored physical assemblies.
There is a similar planned feature that will be released in the future. Although it doesn’t specifically fit your use case, it can help in some instances.
I play a lot of animations on existing rigs, here’s a crude example:
As you can see, the only things that are animated are the model and particles. All the parts in between don’t really matter.
My thoughts on the implementation is to have an option to “ignore” certain instances. Once you ignore an instance, all of its descendants are ignored as well. These instances will also not be exported. Let me know if you have any issues with this behavior!
This is a tricky one. I initially wanted to be able to animate anything regardless of name. This can be achievable, but it does add a level of complexity. I may do this in the future, but it’s not guaranteed.
Yeah, that’s it, it would be great to make physics based animations for parts, i’ve seen it before and they look cool, for example a bouncing part that then resizes or his transparency disappears
Importing rigs where parts are parented to models are no longer bugged in world space, and now are correctly stored in object space.
Methods on the final frame now fire correctly instead of being ignored.
Adjustments
Removed destroyOnCompletion parameter for :Play() and :Resume().
Features
Added new method to the Visulie renderer, PlayThenDestroy(), which plays the animation once (regardless of looping state), then destroys the animation.
While possible, it’s not meant to simulate physics objects (for now, at least).
The module is quite optimized at what it does. It’s up to you to ensure that you’re playing animations effectively across a map (for example, pausing animations that cannot be seen). If you have, say, 10000 animations running, it will lag regardless.
It’s purely client-sided (but you can also play it serverside, but there is no custom replication). If you want animations to replicate, you must design a replication system yourself (which is standard for custom scripted animations).
Again, it’s up to you to decide how to play/not play animations depending on visibility.
It’s very simple, actually. Here’s a short video tutorial:
After you export your animation, you can play the animation using the Visulie Renderer module:
local Visulie = require() --> path to the visulie renderer
local Animation = Visulie.new(yourAnimationData, CFrame.identity, YourScreenGui)
Animation:Play()
Sometimes, you have instances with many, many properties. However, you also realize that these properties only have one keyframe. This is annoying, as all the keyframe strips clutter up what is actually useful (the properties that have multiple keyframes). Here’s a demo of this new feature: