3 behavior bugs/annoyances with R15 characters/Humanoids

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.

3 Likes

#s 1 and 3 are the same bug. The R15 character scale code rebuilds the joints every time the scale changes, and also when the character spawns for the first time. As for why they’re duplicated on spawn instead of being replaced, it’s likely that the joints are rebuilt before the original ones get parented to the character. This bug is already known of and IIRC there’s already a fix, but it hasn’t been shipped due to the code freeze.

#2 might be due to the same issue. Perhaps R15 works without attachments so long as you build the joints yourself, but because the joints are rebuilt R15 isn’t finding the attachments it needs to build the joints, causing it to die since the joints aren’t being replaced.

I think these issues should be fixed now, I have enabled a flag (sorry for the delay, I broke something last time it was enabled) that should remove the rebuilding of the joints unless you explicitly create scale values. It will also fix the duplication of joints when copying characters. Let me know if you are still having any issues.

3 Likes

https://gfycat.com/NiftyShowyAsianpiedstarling

In the gif the figure on the (bottom) left is the rig with the “correct” c0 and c1 values, the one on the (bottom) left was duplicated via ctrl d, the one on the (top) left was copied and pasted via ctrl c ctrl v.

As seen, this is still a problem just not as quoted now. My rig still uses all the same default part names, it still uses different C0/C1 values than the default block rig, and it also uses it’s own mesh ids not found in any R15 rig.

I’d rather not publicly upload the rig because since the meshes were paid for, but I’m more than willing to send it privately if needed, just ask.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.