[Plugin] Lazy Animator - A custom animation editor with schema support

Quick Disclaimer

This plugin was developed using a collaborative human-AI workflow. If you are strictly opposed to AI-assisted development, this tool might not be for you. I kindly ask that replies keep the discussion focused on the plugin’s utility, features, and constructive feedback rather than debating the use of AI.

Plugin Description:

Lazy Animator is a custom animation editor designed to generate your R15 animation draft workflow by bridging the gap between Large Language Models (LLMs) and Roblox’s native kinematics. Using a mathematically precise JSON protocol, the plugin allows developers to generate foundational animation drafts with AI and import them directly into Studio. Lazy Animator eliminates the tedious manual block-out phase so you can focus entirely on polishing and bringing your NPCs to life.

Why I Built This:

I am currently creating my own MMORPG, I wanted every single NPC in my world to feel alive and dynamic. Manually animating dozens of characters is an incredibly tedious task. So, I created Lazy Animator to drastically speed up that pipeline and get my game moving faster.

The Purpose:

Lazy Animator is not meant to completely replace the art of manual animation. It acts as a powerful drafting tool, letting the AI generate the heavy mathematical lifting and block-outs, so you can step in, use the timeline, and polish the final result to perfection.

The Grand Vision (Why Share This?)

While I originally built this to compensate my laziness I realized that I need more data to produce stable results, so I am releasing this here in the DevForum with a much larger goal in mind:

  • Prompt Optimization: I would love the community’s help! If there are any prompt engineers or technical animators out there, your input on refining and optimizing the Master System Prompt would be incredibly valuable.
  • Ecosystem Growth: By getting this tool into the hands of more developers, we can spread the concept of the “Lazy Animator Schema” across the internet.
  • Training the Future: As more users experiment, share prompts, and post their JSON outputs on forums, Large Language Models will naturally absorb this formatting into their training data. Over time, this collective community effort will inherently teach AI models to generate R15 animations with incredible out-of-the-box precision and stability.

Known Limitations:

  • The AI system prompt is still actively being refined and optimized.
  • Euler angle consistency varies heavily across different AI models, so expect occasional quirky movements or rotations that require manual cleanup.
  • The plugin scope is currently locked strictly to the R15 rig.
  • Because this is a highly experimental workflow, the AI might occasionally hallucinate poses.
  • Generation is currently limited to 1-to-1 character animation (no multi-character synchronization yet).
  • Cached metadata for published animations is saved locally per machine. Importing a cloud animation via Asset ID on a different computer will still recover the keyframes, but it will lack your custom plugin metadata. Always rely on your local AnimationSchema module if you need to collaborate or switch computers.

Quick Guide & Workflow:

  • All exported local outputs are automatically categorized and stored inside ServerStorage.LazyAnimator_Outputs.
  • When saving your work locally, you must execute in this exact order: First, click GENERATE KEYFRAMESEQUENCE, then click EXPORT AS ANIMATIONSCHEMA.
  • Importing is highly flexible. For local files, simply select the target AnimationSchema (ModuleScript) or KeyframeSequence in the Explorer and click the corresponding “Link” button.
  • You can also download and edit animations directly from the cloud. Just open the Import menu, paste any valid Animation Asset ID, and the plugin will automatically fetch and decompile the keyframes for you.
  • To upload your final animation to Roblox, simply click the PUBLISH TO ROBLOX button directly inside LazyAnimator. You can choose to publish as a brand new asset or overwrite an existing animation straight from the plugin interface.
  • While you can import animations previously uploaded to Roblox back into the plugin via Asset ID, Roblox’s cloud serialization inherently strips custom plugin-specific metadata (such as your per-limb easing baselines and thresholds). Always keep your locally generated AnimationSchema objects safe to retain 100% editability!

Get the plugin here (Initial release, expecting possible takedowns)

can we normalize not posting resources if the resource isnt available

4 Likes

Sorry, I need to finalize the devforum first as placeholder due to I need to embed the link on the plugin’s header of the generated schema object.

Is the llm run locally or do you use an api key? How do the inner systems work? This is interesting. I might need to do something like this for R6.

The plugin is simply just a compiler. The idea here is that everything is mapped out in a custom schema(JSON Protocol) that controls how the animation flows, the AI is teached how to use the JSON, it will then make the animation through the use of JSON, feed it to the plugin and then the plugin will interpret the JSON, figure out the animation and build the physical KeyframeSequence which then be is the animation we can use. The plugin produces 2 output, the KeyframeSequence object and the interpreted JSON schema(modulescript). I didnt support R6 because R6 is simple enough to deligate the work to AI.

Anyone, plugin is now available.