6to15: R6 to R15 Animation Converter Plugin

Roblox has been intentionally sabotaging the R6 avatar style for what feels like the time since R15 was originally added to the game. Every new avatar feature Roblox has added bar UGC has been excluded from R6. Sometimes these exclusions are made arbitrarily, like MeshPart heads and accessories, and by extension, dynamic heads. This presents a challenge to the many developers who prefer R6 to R15 as a stylistic choice: the players who prefer their full avatar to a reduced version they had no intention of ever playing as. Ever since Roblox’s reveal of their insultingly bad “R21” rig, as I like to call it, and their plan to use it to deprecate R6 entirely, this problem has been amplified. This plugin’s original goal is to at least partially resolve the issue for R6 developers desiring better favor from players and Roblox itself. Similar plugins exist, but unlike 6to15, which aims to join the old with the new, these plugins are made with the intention of replacing the look and feel of R6 entirely. They include inverse-kinematics, which look fine, but can be very different from the animator’s intentions. Others still are paid plugins. 6to15 also includes features that no other plugin does, like converting between theoretically any two rigs, and Multi Animations that play on several rigs.

How To Use
Click the button in the Plugins tab to open the 6to15 menu. Select the rig your animation was made for in the “Source Rig” category, and the rig you want to convert to in the “Target Rig” category. To use a rig other than R6 or R15, you may select your rig in the explorer and click the third “Select…” option to select it. Toggle “Overwrite Unused Joints” and “Create Multi Animation” based on your use case. Select your AnimationClips in the explorer, and then click convert. If you used any custom rigs in your configuration, you will be presented with the Binding Creator, which allows you to bind limbs on the source rig to limbs on the target rig for conversion. When converting between R6 and R15, these bindings are preset. Once the conversion is complete, your new animations will be selected in the explorer. It is recommended to keep backups of your original animations to avoid precision errors that may arise with converting the same animation over and over again.

Settings
Source Rig: The rig that the animation you are converting was designed for
Target Rig: The rig that you are converting an animation to play on
Overwrite Unused Joints: Joints in the Target Rig with no bindings from the Source Rig will be populated by empty animation data. In the R6 to R15 use case, this means that hands, feet, and lower arms and legs will have their translations overwritten.
Create Multi Animation: Multi Animations are animations that play on both the source and target rigs. They are extremely volatile and should not be opened in any animation editor.

Issues

  • Easing between keyframes will appear different on the target rig than on the source rig. The keyframes themselves appear identical between rigs. This is impossible to fix.

  • Some machines may have a hard time running the plugin and take several minutes to convert particularly heavy animations.

  • Multi Animations will not play correctly when using CurveAnimations. This is due to a Roblox bug that was fixed in 620, but as of the time of writing, the fix is still pending.

If you find any other issues, please report them to me either in a reply to this thread or in my private messages.

Download
This plugin is available for free at https://www.roblox.com/library/14664322242/6to15

Demo

Final Thoughts
I hope there are developers that find this tool useful. Using it, you can make a visually R6 game compatible with layered clothing, facial animations, avatar scaling, emotes, mesh deformation, and whatever else Roblox decides to add to R15 avatars. Most R15 packages playing R6 animations, to the untrained eye, are indistinguishable from their R6 counterparts, except for the 1.0 rig. I recommend using a custom rig for 1.0 avatars if this type of precision is important to you. If I had one, I would share it here. If you plan to modify the default R15 animate script, know that the R15 animate script plays back animations at a different speed than the R6 animate script, so make changes accordingly.

Changelog
5/7/2024: Added --!native to the plugin module on the speculation that it could make the plugin run faster on some devices.

2/3/2024: Rewrote a large portion of the plugin. Added support for CurveAnimations. Added a GUI for ease of use and selecting new options. You may now convert from R15 to R6, or to and from any two arbitrary rigs. Added the “Overwrite Unused Joints” option and the “Create Multi Animation” option.

12/2/2023: Resultant animations are now viewable and editable in Moon Animator 2 (and possibly other third party programs if they had a similar bug). If this is functionality you need, update the plugin and reconvert your KeyframeSequences. Thanks to @Fifkee for reporting.

79 Likes

This plugin feels like somebody cursed your limbs to never be able to bend again and this is what it looks like.

17 Likes

I think this is rather a copy of the r6 animation so you don’t have to recreate it from scratch to edit it for R15 lol

1 Like

Roblox should take notes on this. :rofl:

7 Likes

If they just uploaded an R6 animation pack for R15 nobody would ever complain about the removal of R6 again except for hardcore obby players.

3 Likes

They made the converter to ensure R6 games still function properly, not just look the same. Their converter sucks though. It doesn’t look or work the same at all.

1 Like

this is like, very cursed, but also, very awesome.

2 Likes

pov: you can’t bend your limbs:

2 Likes

I was just in need for an animation converter and stumbled upon your plugin, it was an absolute lifesaver. Your work is amazing, Great job!

1 Like

…yeah.

I don’t think I specially crafted anything for anything, so I’ve no clue what’s going on.

2 Likes

I guess I have about as much nerve as I suspected when I dared to say “exhaustively”. Sorry the plugin did not work for you, and thank you for telling me about it. I believe the problem is caused by the hierarchy of Poses within each Keyframe. More specifically, the Poses are all there, but the Animator cannot resolve the joints to apply them to. I can probably fix this bug on my own, but it would be very helpful if you could send me the source R6 KeyframeSequence used in the video as an rbxm file. If you have other broken animations, feel free to send them, too. I will edit the thread to acknowledge the bug, and I will reply and update the thread once again when I have fixed it.

1 Like

Fixed. Luckily, this only affected playback in Moon Animator 2, and not in-game.

4 Likes

This plugin saved my life. thank you so much

2 Likes

bro, 6 months ago i was searched a lot to find a plugin like this and you made it!, thank you so much!

1 Like

The plugin has been updated! It now has a GUI and acts as a universal animation converter instead of only converting R6 to R15. The full changelog is in the post above.

1 Like

great work… thank you for sharing!! :trophy:

2 Likes

Hey, first of all, thank you for doing a converter you have no idea how much this kind of resources help when you dont have the time or talent to convert all the animations by yourself, but there is a little issue at least for me, I already have the animation and all but after selecting both the source and the target and clicking convert it does nothing, there is nothing being printed in the console and tried waiting after a while and nothing showed up neither, im basically trying to convert a r6 anim to r15 so yeah, any idea what it can be?

1 Like

In addition to selecting a source and target rig, you must select the animation to convert in the explorer window. Animations, KeyframeSequences, and CurveAnimations are supported. If you are converting an Animation and it is not working, try downloading its corresponding AnimationClip (which is the base class of KeyframeSequence and CurveAnimation; you will see one of those Instance.ClassNames instead of AnimationClip) and converting that directly. If you had simply not selected an animation to convert and were able to fix the issue with this information, all is well. If you needed to download an AnimationClip, please send me an rbxm file of the Animation (not the AnimationClip) that would not convert. If neither of these fixes matched your issue, please send me an rbxm file of the Instance you were trying to convert.

2 Likes

Ok i honestly forgot that you need to select the animation for it to work, it worked like a charm, thank you for this cool resource and sorry for the issues lol

2 Likes

Doesn’t Drone’s Plugin have an animation converter?

1 Like