Made it so the ragdoll duplicates on death. It runs very well. Thank you Roblox.
If this is released without a fix for the interpolation, I have found a hacky solution for the interpolation which uses a RopeConstraint
with an anchored part connected to a part of the rig that uses physics.
script example
-- service
local Players = game:GetService("Players")
-- PreferedPartName(/Physics part)
local PREFERED_PART_NAME: string = "Torso" -- "Torso" works with R6 so *assumption* is that "LowerTorso" works with R15.
-- RopePart & RopeAttachment
local RopePart = Instance.new("Part") do
RopePart.Transparency = 1
RopePart.Anchored = true
end
local RopeAttachment = Instance.new("Attachment") do
RopeAttachment.Parent = RopePart
end
RopeAttachment.Parent = RopePart
RopePart.Parent = workspace.Terrain -- is this a good place to hide this?
-- functions
function PlayerAdded(player: Player)
player.CharacterAdded:Connect(CharacterAdded)
end
function CharacterAdded(character: Model?)
if character then
local preferedPart = character:FindFirstChild(PREFERED_PART_NAME)
if preferedPart and preferedPart:IsA("BasePart") then
local myAttachment = Instance.new("Attachment") do
myAttachment.Name = "RopeAttachment"
end
myAttachment.Parent = preferedPart
local myRope = Instance.new("RopeConstraint") do
myRope.Length = math.huge
myRope.Attachment0 = RopeAttachment
myRope.Attachment1 = myAttachment
end
myRope.Parent = character
end
end
end
-- events
Players.PlayerAdded:Connect(PlayerAdded)
-- init
for _, player: Player in Players:GetPlayers() do
CharacterAdded(player.Character)
player.CharacterAdded:Connect(CharacterAdded)
end
If your Root → Torso AnimationConstraint
has IsKinematic
set to false
then it should also have good interpolation but that causes physics issues and a lot of jank.
Edit:
This rope fix will cause other issues.
Another odd thing unrelated to the rope fix is that I’ve noticed is that without a BallSocketConstraint
, the limbs may lag behind on the Y position when going up steps.
video
What problem with interpolation are you talking about?
I probably should have worded that better. I meant that it would make the interpolation appear smooth. My problem with interpolation is how it currently works by default, which is really choppy between clients. However, you mentioned that there should be an official solution for it sometime.
R15: Current
I wasn’t able to get my hacky rope solution to work on R15.
Left is a player and the right is the local player.
Custom Rig(R7): Current and Rope fix
I was just providing a really hacky solution in case this gets released without the official fix.
when will this be enabled on games?
from my benchmarks, motor6ds are around 50% faster than animation constraints when IsKinematic is set to true if your manually updating the transform property. is there a reason for this?
it’s because the roblox avatar loads with the animationconstraints, but motor6ds are already defined in the startercharacter
to be more clear, the system does not replace joints, it only loads new joints into avatars
I have a solution for u, uses this inside ur avatar RigSetup.lua (3.5 KB) Not needed Since there's BuildRigFromAttachments
Hey! Can I ask if there is a release date or so for phase 1? I’ve made a fully functioning full-body system including the arms and legs with collision and tool grip animation constraints, and I plan to start implementing this system into my games. I don’t mean to seem in rush, I’m just curious if I can roadmap my game development work to work with the release of this feature.
Showcase In-Studio:
Hey Ovisq,
Thanks for reaching out and for your excitement
We’ve been steadily addressing all the bugs we’ve found and feel pretty good about a mid 2025 timeline. We will let you know once we have a more specific ETA - looking forward to seeing what you and other devs do with this feature once it’s live
Best,
M0bsterLobster
I cant wait for this to be added! So far, I have (attempted) to make a active ragdoll balancing system
All it needs is some tuning.
However, I am wondering if there will be an option to configure the constraint limits of each joint, because some joints bend in ways that I don’t want them to. This could be done with a startercharacter script, but maybe the joints could be configurable in starterplayer?
Calling ReplaceBodyPartR15
seems to break the joints completely, any fix? I get why it’s happening I’m just not sure if it’s intended behaviour or not
when you make the lower torso and uppertorsos waist non kinematic you will start flying
This is actual active ragdoll
But theres a problem that makes it lag when i ragdoll Until 30 seconds
Might be my code dunnomedal video link Also this is my first reply/comment hi )
@randomlletters @PrestigeToken Hey, we just made the steps to convert a R15 character model easier.
- Remove all Motor6Ds
- Call Humanoid:BuildRigFromAttachments()
As long as you have StarterPlayer.AvatarJointUpgrade enabled, you can run this snippet on any character and it will set up Animation + BallSocket Constraints.
local char = workspace.TargetCharacter
for _,m in char:GetDescendants() do
if m:IsA("Motor6D") then
m:Destroy()
end
end
char.Humanoid:BuildRigFromAttachments()
does it add NoCollisionConstraints
too ?
yes it does add NoCollisionConstraints
!
Can this be used with Bones? I want to use this for a FBXRig character
Im actually really concerned with this change, I just rerigged my characters setup for the new joint upgrade and it breaks the VR module (that roblox provides with their avatar gestures btw, its not a custom script).
So uh, really hope this isnt forced on all of us or old games. My game cannot function with this new system.
edit 1: if anyone can ask this and cure my anxiety id really appreciate it, if i use my old setup ( i use a startercharacter custom to be able to setup for my VR game) will it stick with Motor6d and work? like, in the future, will animations still support being played with motor6d rigs?