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 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, and their plan to use it to deprecate R6 entirely, this problem has been amplified. This plugin’s 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 great, but can be very different from the animator’s intentions. Others still are paid plugins.
How To Use
Use the Explorer to select one or more R6 KeyframeSequence
s (Animation
s are representative of an asset on the Roblox CDN and cannot be modified directly), then go to the Plugins tab and click the “Convert R6 animation to R15” button. The plugin will make a copy of each KeyframeSequence
you’ve selected and convert it to an R15 version, then select the resultant KeyframeSequence
s. From there, you may upload the R15 animations as normal.
Issues
For any animation, an Animator
determines which joints to transform for a given Keyframe
based on its Pose
s’ Name
s and their Parent
s’ Name
s. While I have not yet attempted to reproduce the following in testing, it has been brought to my attention by @Fifkee that the Pose
s in a minority of resultant animations may be structured incorrectly as to have joints ignored by the Animator
. To my understanding, most animations are unaffected, but any problem found while I investigate the issue will be fixed.
I have, dare I say, exhaustively tested this plugin before publishing it on the Dev Forum, and I can say that every individual However, the easing animations between Keyframe
produced by the plugin should be 100% faithful to its R6 counterpart.Keyframe
s may be inconsistent to the originals. The most obvious case of this is that by easing a Left Arm from position 0, 0, 0
orientation 0, 0, 0
to position 0, 0, 0
orientation 0, 0, -180
, an R6 left arm will pivot clockwise relative to the head, while the resultant R15 left arm will pivot counterclockwise. This behavior is impossible to change with an animation converter alone due to differences in R6 and R15 rigs, and practically unnoticeable without specially crafted animations to display it, so any fix is outside the scope of this plugin. If you find any other issues with the resultant animations, please contact me.
Download
This plugin is available for free at 6to15: Lossless R6 to R15 Animation Converter - Roblox
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.