Running Animations without Uploading

I’m prototyping a few game ideas. I’m currently working on some basic animations, but realized something: you can’t play an animation without uploading it to roblox.

Since I’m prototyping, these animations will probably be never used again. Why am I uploading something that I’ll never use after the prototype is over? I really don’t want to clutter my inventory with useless animations along with my 20-30 places that I can’t remove. My point is, we should be able to run keyframe sequences directly in studio and online without having to upload them to roblox first.

What’s the point of uploading animations to roblox anyway? This might have been an okay method when animations used to cost robux, but these things are now free. It would make more sense to have animations saved on the game itself. Uploading animations would be fine when you have multiple games with the same animation.

tl;dr: Humanoid:LoadAnimation(<Animation, KeyframeSequence> animation) – allowing the humaniod to play keyframe sequences in studio and online instead of uploading to roblox first.

36 Likes

I love the idea of being able to load animations without having to publish it but one thing ran through my mind while I was nodding in agreement. Would that end up being a bypass to moderation if it could run online? Does ROBLOX even moderate animations? (I would believe they do since users could upload very questionable animations.)

But how do you moderate an animation without the rig to view it on?

1 Like

You actually can:

(EDIT: Only offline :stuck_out_tongue: )

8 Likes

Ah, you got me there :T Good observation!

I saw this a while back. Very close to what I want, but sadly only for offline.

It would usually be fine, but I’d like to upload my prototype place and have other players try it and gather their thoughts and opinions.

2 Likes

I requested this in the past for production-level animations – IMO uploading animations as assets instead of publishing them within the game as instances is awful. Apparently this is done for performance reasons: already encoded = less data sent across network, and encoding instances on the client takes time.

That doesn’t change the fact how awful animation assets are though:

  1. Have to manually publish each change because due to security reasons we can’t have an API to autopublish
  2. Animations are sometimes neither related to games (Game Assets) or my personal assets (e.g. an animation for a free model I make), so they don’t fit well
  3. Can’t dynamically create animations at runtime (e.g. variable bolt pullback length by model)
  4. Clutters inventory
  5. Can’t share

It’d be nice if Roblox allowed us to manually encode animation instances, in which case I could publish a zombie with a custom walk animation, and when someone plays a game that uses the zombie,the animation is already encoded from when I made it. If I need to dynamically create animations, I can use a Lua API to encode a keyframe sequence before anyone needs to use the animation. Ideal behavior is including animation instances with the creations that use them.

9 Likes

One thing I’d like to point out is that, although it would be annoying to implement, it is perfectly possible to emulate Roblox’s Animation system in Lua via the Transform property: Documentation - Roblox Creator Hub

Basic rundown of what would need to be done:

  • Get the Pose Descendants of each Keyframe
  • Find the Motor6D descendant in the character whose Part1 shares the same name as the Pose.
  • Generate some Tweens that apply the Transform of the Motor6D based on the Pose’s CFrame, EasingDirection, and EasingStyle.
  • Create some sort of complicated playback system that can pass instructions to the clients for replication and playback on any character in the scene.

That last part would be the tricky thing, considering factors like how multiple animations stack on each other, how priority comes into play, animation weights, etc.

10 Likes

I’ve made many animation systems in the past. This time around, I’d rather not to save me a lot of time. I’m pretty sure I also read from an admin how bad it is to make your own animation system cause it’s super slow.

Even though there is this minor annoyance, I’m still going to go through the pain of uploading animations. In the end, it’s probably a better decision.

If I ever need more flexibility, it’s not too late to make my own animation system. I can always transfer roblox animations to my system (I’ve transferred mine to robloxs in the past.) It would only take me a day or two to make a full animation system considering how many times I’ve done it. qq

3 Likes

this was 7 years ago damn, i would like this so much dude i have like 10000 animations

I don’t think Roblox moderates animations at all because some animations use custom rigs and unless you have the exact rig, it’s nearly impossible to know what the animation actually would look like.

Anything that isn’t a default R6 or R15 rig is practically useless to moderate if you can’t even recreate the rig.

That being said, playing animations that are stored in the game itself would actually be a massive upgrade because animations sometimes fail to load if loaded from the website which is problematic for scripts that specifically depend on a animation keyframe or time stamp.

OH another cool thing!
Playing animation keyframe sequences would also allow for modifying animations in real-time.

You could use a script that automatically generates variations and randomized animations per-character if you wanted.
Could make your own blending system and everything which would actually be extremely useful too and is currently not possible with uploaded animations.

You don’t think they cannot visualize Motor6D and bones connection and their relative offset and playback? Animations published to the site have a report feature. I think it is safe to say, they can visualize animations without a visual rig and do a much deeper dive in your assets and the elements in your game to figure it out… It’s a black box, so it being nearly impossible sounds more like a speculation than anything else.

I can tell with visualization that this is a spider rig and there are Anthropomorphic rigs With visualizations alone.


image

1 Like

Oh that’s actually pretty smart, I guess they do store a basic representation of the rig along with the animation asset.

Now I did say that without the rig it would be really hard to moderate, but I suppose they did do some thinking-ahead to so that animations are still moderatable.

Either way, you could just use CFrame animations or interpret a KeyFrameSequence yourself and that’ll technically “bypass moderation” when you think about it. What would an officially implemented way to do this change at all?