Left 4 Dead 2
98 valoraciones
Creating Jigglebones For Custom Models Complete Guide For Modders
Por ฿ØⱠ₮Ø₭¹⁷³ึ
With this guide you will learn (almost) everything about jigglebones with examples

Whats a jiggle bone? A jiggle bone is a feature that allows bones to move dynamically, shake and be affected by gravity, allowing "realistic" simulated physics

Tools used:
-Blender 2.79
-Crowbar
-Half Life model viewer

if you already have bones you can start from Fixing the bones

If you came only for the jigglebone codes you can start from Editing the QC
This should work with ANY kind of model in the game ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎‎ ‎ ‎ ‎‎‎ ‎ ‎‎‎
   
Premiar
Favoritos
Favorito
Quitar
Create the bones
First, you need to create bones, I will be using blender, but you can use any other program you know

But before we start, you should take a look to funreal survivor guide, you will learn important things like rigging.
https://steamcommunity.com/sharedfiles/filedetails/?id=2225904754

Lets start
In blender, select your skeleton and go to edit mode, select the bone where you want the jiggle bone to be, I want the hair of my model to have physics so I will select the head bone.


Press E to create a new bone and move it to the mesh you want to make the jiggles, keep adding bones depending on how much flexibility do you want.

More bones = More movement and flexibility.




IMPORTANT STEP

To make the bones usable, export the model and re-import it.

The bones should look like this after re-importing the model.


And not this.


Create bones for newer blender versions:
Once you created your bones like before, in edit mode select the bones you created, press ALT+P and click disconnect bone.


Then select your bones and move them like before, you dont have to re-import the model.

IMPORTANT: make sure not to exceed the bone limit, 127 for most source games; 255 for Source Filmmaker (and maybe Garry's Mod).
Fix the bones
After you finished creating your bones, its time to make some adjustments to make it work properly

Go to edit mode, select ONLY the second black point of your bones like in this screenshot.


Move it to the same height of the first black point.
More height will make the jiggles move higher when the character is moving


NOTE: The second black point that we moved should ALWAYS be in the back of the first one or the axis will be inverted, the bone will move forward when the character moves forward and thats not realistic at all.

Like this:


And not this:


Now the bones should look like this:


Second step:
Again select the second black point of the bone
in bone data, change the roll to 180
do this with every single bone, one by one, DO NOT SELECT ALL TOGETHER.


RIGGING
Im not an expert at rigging, im so bad actually, so if you want more info about rigging go to funreal guide that I linked above or watch a youtube video depending on the program you are using, that will help you a lot.

Rig the mesh according to the space between the bones like in this screenshot.



Export your model.
QC Edit
Now I will give you some jiggle bone codes depending on your need,
copy-paste the code you want below the $bonemerge or $proceduralbones

In "your_bone_name", as it says, you have to put the name of your bones in the order you created, if you have 5 bones for the same mesh, then copy the same code 5 times and change the name

Jiggles for tails:
$jigglebone "your_bone_name" { is_flexible { length 6 tip_mass 250 pitch_constraint -80 80 pitch_stiffness 55 pitch_damping 7 yaw_stiffness 35 yaw_damping 7 along_stiffness 100 yaw_constraint -80 80 along_damping 0 angle_constraint 39.999999 } }


Jiggles for coats:
$jigglebone "your_bone_name" { is_rigid { length 20 tip_mass 400 pitch_constraint -79.999998 -5 pitch_friction 2 pitch_bounce 0 yaw_constraint -50 50 yaw_friction 2 yaw_bounce 0 } } $jigglebone "your_bone_name2" { is_flexible { length 6 tip_mass 250 pitch_stiffness 55 pitch_damping 7 yaw_stiffness 35 yaw_damping 7 along_stiffness 100 along_damping 0 angle_constraint 39.999999 } } $jigglebone "your_bone_name3" { is_flexible { length 6 tip_mass 250 pitch_stiffness 54 pitch_damping 7 yaw_stiffness 40 yaw_damping 7 along_stiffness 100 along_damping 0 angle_constraint 50 } } $jigglebone "your_bone_name4" { is_flexible { length 6 tip_mass 250 pitch_stiffness 44 pitch_damping 7 yaw_stiffness 40 yaw_damping 7 along_stiffness 100 along_damping 0 angle_constraint 60.000002 } }


Jiggles for breast:
$jigglebone "your_bone_name" { is_flexible { length 15 tip_mass 2 pitch_stiffness 240 pitch_damping 7 yaw_stiffness 240 yaw_damping 7 along_stiffness 100 along_damping 0 angle_constraint 14 } has_base_spring { base_mass 1 stiffness 250 damping 8 left_constraint -0.15 0.15 left_friction 0.01 up_constraint -0.15 0.15 up_friction 0.01 forward_constraint -0.01 0.01 forward_friction 0.05 } }


Jiggles for items (from cuba jigglebone attachments):
$jigglebone "your_bone_name" { is_flexible { length 100 tip_mass 0 pitch_stiffness 200 pitch_damping 10 yaw_stiffness 200 yaw_damping 10 along_stiffness 100 along_damping 0 angle_constraint 19.999999 } }


Jiggles for long ponytails:
$jigglebone "your_bone_name" { is_flexible { length 10 tip_mass 250 pitch_constraint -30 30 pitch_stiffness 55 pitch_damping 20 yaw_stiffness 35 yaw_damping 20 along_stiffness 100 yaw_constraint -30 30 along_damping 0 angle_constraint 39.999999 } }


You can edit this codes depending of your need, add or remove movement, gravity, mass and angle limits, the next section will be the hardest part, I will explaint everything about this codes.
Jigglebone Edit
WARNING, YOU WILL PROBABLY NOT UNDERSTAND ALL THIS, PLEASE READ SLOW AND TRY IT ON YOUR OWN MODEL

Now after copying the jiggle code you want, i will explain every code line from the jiggles

Types of jiggle bones

-is_rigid:
If a Jiggle Bone is "rigid", a simulated mass is placed at the end of the bone, and the bone acts like a rigid stick. This spring creates rotational motion only, with the center of rotation at the base of the Jiggle Bone.

-is_flexible:
If a Jiggle Bone is "flexible", a simulated mass is placed at a set distance to the bone in the +Z axis, and the bone acts like a springy, flexible rod. This spring creates rotational motion only, with the center of rotation at the base of the Jiggle Bone, usually the most used.

-has_base_spring:
If a Jiggle Bone has a "base spring", a simulated mass is placed on the base of the bone. This spring creates translational motion only, moving the whole Jiggle Bone in X, Y, and Z, this can be used for breast jiggles too.

-is_boing (only in source engine 2013):
Simple squash and stretch sinusoid "boing." Scales the affected bone.

SETTINGS:

-length(you can ignore this):
How far the simulated mass is from the base in inches. This value should match the length of the bone; values larger than the bone length can result in odd and unpredictable movement in the jiggle bone if you don't know what you're doing.

-tip_mass:
How much the simulated mass is affected by gravity. Zero disables gravity effects, whereas 1000 would be a heavy mass.

Angular constraints: this are usually used to make rotation limits to prevent clipping, simulating actual physics with the model like the jacked and dog tag from Johnny Cage Replace Nick, for obvious reasons it cant be perfect.


-angle_constraint:
Specify the maximum angular deflection allowed, creating a conical boundary the jiggle bone cannot penetrate.

-yaw_constraint (min max):

Specify the minimum and maximum angular deflection allowed along the local yaw rotational X axis. Angular values should not exceed +/- 90 degrees (Simplified: defines how much the bone can rotate in the X axis, left and right).

-yaw_friction:

Nonzero values create frictional forces when the jiggle bone is sliding against the plane defined by the yaw limit. Friction should not exceed 20 units.

-pitch_constraint:

Specify the minimum and maximum angular deflection allowed along the local pitch rotational Y axis. Angular values should not exceed +/- 90 degrees (Simplified: defines how much the bone can rotate in the Y axis, front and forward).

-pitch_friction:

Nonzero values create frictional forces when the jiggle bone is sliding against the plane defined by the pitch limit. Friction should not exceed 20 units.

for has_base_spring:

-stiffness:
How stiff the base spring is.

-damping:
The damping of the base spring.

-left_constraint:
The maximum amount the bone is allowed to move along the local X axis.

-left_friction:
The amount of friction applied in the up/forward plane when the spring is rubbing against the left
constraint.

-up_constraint:
The maximum amount the bone is allowed to move along the local Y axis.

-up_friction:
The amount of friction applied in the left/forward plane when the spring is rubbing against the up constraint.

-forward_constraint:
The maximum amount the bone is allowed to move along the local Z axis.

-forward_friction:
The amount of friction applied in the left/up plane when the spring is rubbing against the forward constraint.

-base_mass:
How much the base spring is affected by gravity.




Ending
This can be hard to understand, but once you get the result you wanted everything will be easier.

I recommend using half life model viewer that can be found in crowbar, so you dont have to open your game with every compile.

I hope this guide has been useful to you to make jigglebones more complex and realistic, or anime girls with huge boobs.

A little example of my jigglebones work.



Need more help? join our discord server Dead4Mods [discord.com]


Donations = Paypal [paypal.me]



SPECIAL THANKS:
-ZeqMacaw for creating crowbar and helping to improve this guide
-All the modding and guide community who are a great inspiration




29 comentarios
mikecj9 16 MAY a las 7:50 
@฿ØⱠ₮Ø₭¹⁷³ึ dont ignore me man , where my commissions ?
MURINE 22 MAR a las 19:22 
much appereciated :marten_sip:
Machoboy197 7 MAR a las 12:12 
Oh, well it's a good thing I've done that.
฿ØⱠ₮Ø₭¹⁷³ึ  [autor] 7 MAR a las 11:59 
nope, you have to put 180 on all your jiggle bones
Machoboy197 7 MAR a las 10:07 
Ok, now as for the "Bone Roll" as far as I know I have to put it as "180d" but none (which is 0) is the same thing right?
฿ØⱠ₮Ø₭¹⁷³ึ  [autor] 7 MAR a las 0:21 
you can go for the last coat script, it will give you good movement and gravity
Machoboy197 6 MAR a las 18:57 
Plus is there a good jigglebone script for earrings? Yes because my character model has those.
฿ØⱠ₮Ø₭¹⁷³ึ  [autor] 6 MAR a las 18:09 
I see, you have to modify the model by posing the ponytails down
Machoboy197 6 MAR a las 16:57 
Btw if you're wondering what model I am importing it is this https://www.models-resource.com/wii/mariosupersluggers/model/52991/#comments
฿ØⱠ₮Ø₭¹⁷³ึ  [autor] 6 MAR a las 16:50 
make sure you did everything right in "Fix the bones" section