3 個の投稿 / 0 new
最終投稿
#1 2016-11-08 17:55

How to make butt physics using Blender

This tutorial assumes that you already know what you're doing with regards to bones and physics, and that you've played around with Blender enough to understand the interface.

So, I recently discovered that making butt physics with blender is really easy, and I believe it's a way to improve all models, not just pornographic models, because butt physics can be used to make up for some of the volume collapse that you get with BDEF2 hip rotation.

The main reason why butt physics are hard is because you're dealing with an area of the mesh that is probably already weighted to two different bones. That means that you've usually got to move to BDEF4 weights, and PMXE makes it incredibly painful to deal with BDEF4. But via blender and mmd_tools ( https://github.com/powroupi/blender_mmd_tools ), you can create BDEF4 weights relatively painlessly.

So the first thing to do is just to set up your bones and physics in PMXE, where it's easier than it is in Blender. You don't need anything complicated, but you can tweak to your heart's content later if you want. It's handy to have a base for your physics, which allows you to adjust your butt in the transformation window or in MMD. Start by creating two base butt bones, parented to your lower body bone. Each should get a small rigid body. This is just an anchor, so make it small, and make it non-collision with everything. Then add your actual butts. Two bones, parented to the appropriate butt base bone. They should be move bones for now, just for testing purposes. A physics or bone+physics spherical rigid body for each. These can have collision or not, and should probably be a little off-center of your bone. The further your butt bone is from the center of these bodies, the more extreme your physics are going to be. Finally, a joint for each butt, placed on the location of the butt bone (not the butt base bone). Default settings for joints and rigid bodies are probably fine to start.

Save and take into Blender for weighting those bones. Select your model and switch to properties window/data/vertex groups. Delete mmd_edge and mmd_vertex_order groups. These will interfere with weight normalization. Select your mesh, ctrl-tab in 3D window to enter weight paint mode.

Here's the deal-- since the butt base is parented to the lower body, it'll already be moving roughly the same as your lower body. So what we want to do is take some of the weights from the lower body without taking any of the weights from the hips. To make sure we don't take any weights from the hips, we have to lock those vertex groups. Find your hip groups in the vertex group panel and hit the little lock icon to their right. That way, our later normalization won't affect those values, and any auto-normalized painting won't affect those values. (You can still paint manually on locked groups though.)

Since I can't read Japanese, it's hard for me to find those vertex groups. 'n' in 3D view opens the properties shelf, which includes weights, so by right-click selecting a single vertex, it'll show me vertex groups of that vertex in the properties shelf. When I select a group from the shelf, weight paint mode shows me colors making it easy to see what group it is. So I select a hip vertex and use that to select the hip vertex group instead of just scrolling through the list.

Now we'll start weight painting. Actual weight painting will be really easy. Select a butt vertex group-- which will be easy to find, since you named the bone, and since it will be at the bottom of the list. Hit 'v' in 3D view to change to vertex mode weight painting, then 'a' to select all vertices. There's more than one way to do this, but a simple radial gradient will work. I used the 'weight gradient' tool, then changed the operator to radial. You probably want to make sure that you don't draw over your center line-- you don't want your actual pubis to deform with the butts, and you don't want the left butt mesh deforming with the right butt physics.

If you're painting over multiple layers of meshes (like skin and clothes), then you'll need to disable "Limit Selection to Visible" in the bottom row of icons for Weight Paint mode. And then, to prevent your gradient from drawing over your front half, you'll need to limit your vertices appropriately. Ctrl-shift-LMB-drag a lasso around the front vertices of your mesh to deselect them and keep the radial gradient from affecting them. i find it easier to deal with just the skin, and then transfer weights to the clothes from it.

Another way to get decent weights is to just paint 100% on a few center vertices and use the Smooth with a high Expand in its operator box to get the weights how you want. Keep in mind that Smooth won't work over discontinuous meshes-- like UV seams-- so you may need a few base vertices painted, and you may need to remove doubles (which can create some problems with normals, something to keep in mind. Custom normals made from nice quad surfaces can be hard to recover.)

Now we've got to normalize the weights. Since we've added weights, with locked hips' weights, they're now bigger than one. By additionally locking our new butt weights and normalizing, we can basically subtract those butt weights from the only vertex group left-- lower body. So lock your butts' vertex groups. Make sure you have all vertices selected, Normalize All tool, All groups, and unchecked Lock Active (doesn't matter, because your butt is active and locked anyways. ). Now we're normalized. Kind of. (If your butt weights were higher than your LB weights, you'd have unnormalized weights at those vertices. To keep things smooth, unlock your hips and your butts, and Normalize All again.)

Okay, test out your weights. Ctrl-tab back to object mode, make your armature visible (properties shelf has a good way to toggle MMD armature visibility via mmd_tools), select your armature, ctrl-tab into pose mode. Select your butt bone, 'g' to grab and swing it around a bit. Weights look smooth? Sufficient? Adjust weights (multiply via Levels tool is easy), or export.

Back in PMXE. You may notice some problems. Even though we normalized weights, maybe it didn't work quite right-- maybe it's a precision issue, I don't know. If you check PMX validation, you'll probably see some warnings about unnormalized vertices. So edit->vertex->normalize. It won't screw anything up.

Tune the physics. Hide the bones if you want. Load into MMD.

2017-06-29 04:27

hohoho.... this is what im looking for... the explanation so detailed but for "visual" person like me it would be great if someone can make it into a video or make "adding butt physic for dummies" anyway thanks this really help me alot.

2019-05-09 05:05

I'm gonna keep coming back to this and re-reading it until I get it lol.