How to apply realistic breasts physics in Unreal Engine 4

Oct 27, 2020 at 02:00 pm by nemirc

Breasts physics in UE4

If you're working on a videogame with a female character, you may find yourself in the need to add breast physics to her.

I say "may" and not "will" is because breast physics are not always required. For example, if your character is a pre-teen or a young girl, the character is wearing an armor, or if the type of game does not need that kind of detail (like a cartoony side-scroller like "Mega Man" or a top-down action RPG with small characters like "Diablo"), you don't need to add those details.

Since one of my mini-studio's current projects, "Just Let Me Go," features a very realistic protagonist (thanks to Reallusion's Character Creator 3), she doesn't look right when she's moving around with a very rigid chest. You can see the video below to see what I mean.

Adding breast physics isn't as difficult in UE4. All you need is your Physics Asset and a bone structure that includes breast bones. Using Character Creator made this very easy, since the skeleton already includes those bones.

First, you need to turn off the physics of all of your colliders. We have to do this because, if we don't, the entire skeleton will react like a ragdoll due to some settings we will activate later. To do this, select all the colliders in your hierarchy and set the physics type to Kinematic.

Next, add sphere colliders to your breast bones, and resize them, so they resemble the size of your character's breasts, and set the physics type as Simulated, activate the MassInKg and then set the values of the linear and angular dampening. In the case of a Character Creator character, the bones you need are the cc_base_l_ribstwist and cc_base_r_ribstwist, and the settings I've found to work just fine are the ones in the image below.

If you simulate them right now, you will get weird results, because the breast spheres will just fly around (and if you had activated gravity, they would just fall to the floor). To keep them in place, we need to add constraints. Add a constraint between each breast and the chest bone (again, for a Character Creator character, look for the bone named spine_02 bone). Selection order is important, and you need to select the chest bone and then constraint to the breast bone (not the other way around), so you get them to work correctly.

The next step is to configure the linear and angular limits. I found the best option is to have a combination of the breasts swinging from side to side, and also up and down, and also "sliding" from side to side, and also up and down. I tried with forward movement too, but they looked like they were stretching forward and that looks horrible (besides, if she is wearing a bra the breasts won't move forward that much). The following image shows the settings I found to be the best. The idea is to have a combination of the movements described above, but also keeping the sliding to a minimum, so it doesn't look like they are being torn off the chest.

Lastly, I also configured the linear and angular motors. The linear and angular motors basically make the sphere collider move and rotate along the configured axes, and they define how bouncy the colliders are. On a side note, keep in mind changed settings show a yellow loop-arrow, so you can know when my settings are just the default settings and when they were changed.

But this is not all. The next step is to actually enable the physics on your character. If you simply play the game now, your physics still won't work. To do activate them, go to your player's Blueprint class (I am assuming you are adding this to a previously-created character). First, select the CapsuleComponent object to set the collisions to custom, and then set the PhysicsBody to overlap. This is important so your PhysicsAsset doesn't go crazy when it collides with your CapsuleComponent.

Next, select your Mesh component, look for the Simulate Physics setting and activate it, and then set your Collision to Ragdoll. This is going to force your PhysicsAsset to simulate. However, since all the colliders, save for the breast colliders, are set to Kinematic, only the breasts will simulate.

I decided to also add jiggle to Amelia's buttocks and thighs using this technique, since she's currently wearing leggings in this version of the character (a future version will wear a dress). The Character Creator skeleton already has a pair of bones that you can use to add this effect to the legs. They are thigh_twist_01_l and thigh_twist_01_r. These are the bones used to improve the leg deformation when it twists. Below you can see the weighting of that bone.

However, you need to add another collider to the buttocks to make them jiggle too. The CC rig doesn't have a separate bone for each one of the buttocks, but I decided to use the cc_base_pelvis since I saw the weighting more or less fit what I needed. If you are working on your custom rig, you can add these extra bones if you want to do something similar.

Using a similar method, I tested some values to reach a look I liked. The video below shows the final result.

And this is it. I hope you found this tutorial useful.

Sign up for our newsletter

This website uses cookies to ensure you get the best experience possible More Info
Got it!