I've been trying to understand Unity's physics system. I'm trying to add physics to the breast bones on my model, and having quite a difficult time with it. At first, the physics weren't working at all until I realized that I needed to separate the bones from the parent armature. I added rigidbodies and spring joints and it somewhat works.
The issue, however, comes when I start rotating or spinning my character. The mesh seems to get pretty deformed and I have no idea why that is. I've tried freezing the rotation of the rigids, but that doesn't help at all.
Should also mention that I tried Fishypants' JiggleBone script and could not get it to work at all. I assumed maybe my rig is wrong somehow.
Any suggestions or references I can use would be much appreciated.
Gentlemen, I do believe we have a question about jiggle physics.
OP is referring to the way that human breast will move independently of the chest wall, and act as independent masses.
best example of reference would be Dead or Alive: Extreme Beach Volleyball
My first question about this would be about the JiggleBone, what was not working? Was it giving errors in console?? Or just nothing at all...
Answer by Loius
Dec 31, 2012 at 01:52 AM
You may have more luck with manual adjustment. You could simulate simple physics, and move the breasts according to the difference in their last position versus their current position.
To do any jiggle at all, the breasts need their own skinned bones in Blender (so they affect the mesh), and they may need to be exported with no animation if you want physics control.
The first thing you should try is to move the jiggliness to the LateUpdate function (which runs after animation is applied, but "before objects are rendered"). You should be able to override all animation movement with your own. Just move the booby bones around as desired; apply your own hard limits and/or damping on their movement relative to their 'origin' (where they are, relative to the chest, when at rest).
Unfortunately, Blender's default fbx exporter applies animation to all bones. In Blender 2.49, you can access the export script and make a small change to only export animation for animated bones (it's reasonably clear what change to make, but I don't have access to my files right now so I can't point it out). The file is named fbx_export.py (or export_fbx.py; my memory's fuzzy).
I'm sure it's possible to alter 2.5's exporter as well, but I haven't had occasion to try yet.
I think it may be possible to remove curves from an AnimationClip from within Unity, but it's not well documented and I haven't tried my hand at that either.
Also this is the most serious I've ever talked about boobies.
Hmm, Blender applying keyframes to all bones would explain some of the initial issues I was getting. I'm currently using Blender 2.64, I will see if I can or can't work with that.
I unfortunately couldn't figure out changing the export script, but your answer about animating all the bones was exactly right. I threw in some animations from the Mecanim Starter asset (which obviously don't contain any breast bones) and everything seemed to work fine with just normal spring joints. I did not get the deform issue I was having before.
I still need to figure out how to get my own animations working correctly, and probably create a script so it's a bit more realistic, but this is definitely a step in the right direction. Thank you.
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
To help users navigate the site we have posted a site navigation guide.
If you are a new user to Unity Answers, check out our FAQ for more information.
Make sure to check out our Knowledge Base for commonly asked Unity questions.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
Answers and Comments
12 People are following this question.
increasing knockback of a rigidbody as received damage increases (like super smash)
Is it possible to tell Unity physics to ignore a collision at collision time?
Raycast doesnt detect object in front of rigidbody (player is stuck on wall)
Change bounciness at runtime
AddForce not working