How do I create Jiggle Bone physics for Mesh Deformation?

I am really confused about how to create a jiggle bone for mesh deformation. Skinned Mesh with Jiggle Bone as shown here

18 Likes

I think you could do this with a BallSocketConstraint with twist and angle limits applied. This is assuming the thing you are trying to jiggle is an unanchored separate part.

Mesh deformation SHOULD still work as long as there’s a Motor6D chain back to the character’s HumanoidRootPart, but it has to be Motor6D joints or else it won’t work.

The mesh will need to be split into pieces similar to how you would do an R15 rig import with mesh deformation.

14 Likes

Could you explain any further and possibly include images

1 Like

I’ve also been curious as to how R15 → S15 is supposed to work. The only few examples I’ve seen so far talk about using one combined mesh, adding a joint between it and the HumanoidRootPart, and animating the singular mesh part’s bones (I think this is traditionally how it works?). Is there a good demo that shows how to skin together multiple parts?

3 Likes

Upon closer inspection, I think they might just be programmatically tilting the bones based on the part’s velocity. There’s unfortunately no straight forward answer for how to accomplish that. I could probably find a way to do it but it would take me some time to develop a good scalable solution.

The strategy I suggested is one that utilizes Roblox’s physics engine to handle jiggle bone simulation, whereas theirs seems to be more rigidly influenced by some code on the client. It assumes you know how to import mesh deformed rigs and how to split deforming meshes into multiple parts.

1 Like

The trick is to skin it as one mesh first with vertex groups each named after an R15 limb (and/or something custom) then split it into R15 limbs with the vertex groups preserved. The split objects themselves have to be suffixed with _Geo and the skeleton requires this hierarchy as an entry point:

Root
    HumanoidRootNode
        (... child bones named after the vertex groups)

If you’re wondering about the _Geo notation, it’s because you can also define attachments with mesh objects suffixed as _Att. They usually just have a generic low poly sphere mesh to represent these.

10 Likes

I was looking how to create jigglebones too, and this helped but i still can’t stop laughing at the fact thar it says this

3 Likes

The correct term here would actually be descendant bones instead of child bones, since it can branch into trees beyond the 3rd depth layer.

3 Likes

When you find what the script is, can you tell me the code?

The easiest way I’ve found for making any mesh deformation that’s going to have physics (ragdolls, etc) is simply to name each bone the same as the meshparts when rigging the model

If you give a bone the same name as a mesh roblox will automatically make the mesh part also function as a bone allowing you to easily make a ragdoll or any type of contraint physics.

Make sure this is done when your rigging the model. (Don’t try this in Roblox Studio have this already done in blender or something)

I think there might be other ways that are easier

I am mostly thinking there is a script that is doing the physics.

What exactly are you confused about? Is there something you have tried that didn’t work which confuses you, or do you just not know where to start?

IDK where to start. I am thinking though that there is a script doing the physics but I Dont know the code.

Jiggle physics would be done by user-made scripts since it requires the manipulation of bones which Roblox doesn’t have native physics support for. I recommend looking up the different new ways to manipulate bones (for example there is something called .Transform, or something called similar to that) aside from CFrames. These should work in object space instead of world space, but they don’t have much of a difference from CFrames otherwise.

As for the actual method, as CloneTrooper said it more or less bends in the opposite direction of the object’s (or if you want to be really realistic, then each bone’s) velocity. I’ve been trying to achieve cloth/rope physics with mesh deformation for a while now but it’s a bit too complicated for me, so be prepared, it will probably be for you too.
Look up Verlet Integration, EgoMoose has already attempted to do this with normal separated parts. Only difference should be the absence of constraints, and possibly performance improvements due to the lack of separate moving parts.

To add more to this, the clip you posted works because it is a dead fish, and as we all know dead fish can flop around in essentially every direction. For limbs or other objects with actual defined joints you would need to add angular constraints (in your code) to make the bends look correct, instead of having limbs that flop around, looking broken and all that.
So be prepared to make your script even more complicated!

I’m not sure about your knowledge of skinned meshes but you will have to create an armature with a mesh, properly weight painted and etc, and import it with the custom rig tool. This is a really simplified explanation so I recommend you first look into how to properly make meshes and bone armatures first (in Blender preferably).

That’s exactly what I was thinking as well. But I don’t know the code.

I started learning Lua very recently and I only have the basics down so I’ve been reverse engineering EgoMoose’s guide on Verlet Integration. All things considered it’s probably not a very good use of time for me but if you are more of an expert in scripting then you probably have a better shot at making this a reality.
Here is the document:
https://drive.google.com/file/d/0B8NceKcllVYrXzhlaDFWdHp5YTg/view

Even without looking at the example scripts it describes the methodology pretty well.

The last page contains a GitHub link with the place file. It has some examples of cloth and rope physics, although it’s kind of broken and laggy.
(They are disabled by default so you will have to enable them in the script properties window.)
Good luck!

1 Like

I am actually trying to find a way to do hair physics with mesh deformation.

what game is that? It looks dope lol?

Typical Colors 2 by the creators of Arsenal Typical Colors 2 - Roblox

1 Like