Recently I commissioned somebody to rebuild the R15 meshes in blender and re import them for a custom character rig. While trying to get the rig to work I came across three bugs that are really dragging down the flexibility of R15 type humanoid characters.
Multiple Neck joints
Unsure of the cause of this one, it used to be a problem with every joint and it’s constantly been a bug that goes away and comes back.
Repro steps are:
to just open a new place in studio, make sure your character is linked to the site and is set to R15, hit play solo and observe a double neck joint in the character’s head.
R15 Humanoids break without “all” Attachment Objects
This one is simple, yet pretty confusing. It’s not stated anywhere that attachment objects are required for characters, and IMO it’s unreasonable requirement given how many of them there are.
Repro steps are:
Create a R15 rig, one with all the OriginalSize values, Motor6D objects, and Attachments. Drag it from Workspace -> Any Storage Bin -> Workspace and observe the joints still existing.
Remove any number of Attachment objects from any of the body parts and repeat the dragging from Workspace -> Any Storage Bin -> Workspace operation and observe all of the Motors in the body parts are now gone.
This happens if any body MeshPart is missing an Attachment, and it happens if the attachments are not present at all. I’ve found that this breaking and removal of joints only happens when a character with a humanoid is placed into the workspace from any other location even if the client/server is running or not running.
R15 humanoids reset C0 and C1 of motor joints
My commissioned rig has the same part and joint names, but the C0 and C1 values differ from a default rig. Once the rig enters the workspace (by any means) the C0 and C1 values are reset to default non packaged C0/C1 values.
Repro steps are:
Create an R15 rig, find any Motor6D joint and set it’s C0 or C1 value to anything (literally anything) and create a visible change. Duplicate the model and observe the joint your just edited the C0/C1 of has now reset to a “default” value.
This is instantly observable if the rig model is already in the workspace, else just parent the model to the workspace after making the C0/C1 change. Just like the last bug it doesn’t matter if the client/server is running or stopped.
These are the lasted 3 bugs I’ve come across when working with R15 rigs. I didn’t supply a repro place file because I felt the bugs were simple enough to repro, but if it’s needed I’ll gladly supply a repro place and more in depths repro steps.
If any of these are intended behavior I’d like to comment that all of these make R15 characters horribly restrictive, and it only encourages workarounds for a notoriously workaround-needed system. R15 typed Humanoids are awesome, but hidden requirements and behaviors really inhibit their usability.