Static Joints
As a developer, it’s difficult to use Humanoid scaling for rigs with static joints. For static joints, it’s convenient to use Welds/WeldConstraints, but I’m forced to use motors instead since Humanoid scaling does not work with static joints. This complicates something as simple as a WeldConstraint which encapsulates the joint into just Part0/Part1 into:
- Unique names for each static part (so I can uniquely identify the attachments between them)
- Lose the ability to distinguish between static/not joint (no way for me to tell whether to use weld or ballsocketconstraint for generated ragdoll since I can’t know if the joint is static or not)
- Have to write code snippet to generate attachments for each part vs using Create > Weld ribbon tool
local p0 = game.Selection:Get()[1]; for i,p1 in pairs(game.Selection:Get()) do if i > 1 then local attachment0 = Instance.new("Attachment", p0); local attachment1 = Instance.new("Attachment", p1); attachment1.CFrame = p1.CFrame:toObjectSpace(p0.CFrame); local name = p1.Name.."RigAttachment"; attachment0.Name = name; attachment1.Name = name end end
Proposed solution: Humanoid scaling should support Welds/WeldConstraints
Generating Rigging
As a developer, it’s difficult to debug issues with humanoid rigging because BuildRigFromAttachments does not give any feedback when I do something wrong. I’ve encountered a number of issues due to:
- Forgetting to append “RigAttachment” to the attachments in my model
- Forgetting to add a counterpart to the RootRigAttachment which broke everything down the chain because it stopped there
- Weird behavior when I had accidentally created more than two attachments with the same name.
Proposed solution: Add warnings for:
- Calling BuildRigFromAttachments on a model with no attachments ending in RigAttachment
- A rig attachment missing a counterpart
- There being more than two rig attachments with the same name
Modifying Rigging
As a developer, it’s difficult to modify a rig once its OriginalSize and OriginalPosition values have been generated. I have to manually delete each OriginalSize/OriginalPosition value object in the parts I’m modifying, usually I forget one, and then I have to make changes to it again since humanoid scaling reset it to the old values stored in OriginalSize / OriginalPosition.
Proposed solution: Method to re-generate OriginalSize/OriginalPosition values inside model.