Page 1 of 1

Jewelry and physics using Blender

PostPosted: Sun Apr 01, 2018 11:46 am
by punkduck
I always have problems when I created jewelry like bracelets and necklaces. In most cases these assets hover above the body and clothes. This tutorial will not help, if you plan an animation but it is suitable if you pose a character for an image. Maybe this is not the best tutorial and we have members who are able to do it better. If so, feel free to add a few lines.

After a member of the forum asked for a chain bracelet, I also created one. My intention was, that I just hoped I will make this thing behave like in reality.

To create one was quite simple. I added a heart-shaped chain link, a "infinity-sign" shaped link, connected these by "normal" chain links. After it I applied an array modifier on this 4 links and in the end I created a clasp. So the chain consists of 42 links now. After this I created the form by using chain simulation, like it is explained in this video:

https://www.youtube.com/watch?v=BKVfhM5f9_E

Instead of using a plane, I used a cylinder as an "arm", put it under the middle of the chain and simulated the chain, when it falls down. Both ends swung to the the middle under the cylinder, I took the frame, when the first link and last link are very near and connected it. I applied this frame of the animation, then decreased the scale, join all links to only one object and assigned it to one vertex group *bracelet. I took 3 vertices on the base mesh and assigned them to the same group. That was rather simple ...

But is it possible to use this bracelet you now can downloaded in the way, that it behaves naturally and slides up or down the arm?

The problem now is, that the chain is only one object and the scale of the links is very small. And in every tutorial people mentioned, that this chain will fall apart.
Well, at least for a non-animated scene in Blender I was able to do that. And you do not have to resize the character to a giant.

How to do it:

In MakeHuman: export your character with skeleton and bracelet in normal "Decimeter" size (non-smoothed), use mhx2 format.

When in Blender:

Import and pose character. If you think, the bracelet deforms, delete all vertex groups of the bracelet except Lowerarm02.L, set this to "1". But that wasn't necessary. For the rest of the workflow, I made screenshots and put it in one demo picture. The numbers (x) correspond to the numbers in this text.

jewelrytutorial.png


  1. put bracelet in a new group called "bracelet"
  2. select the modifier "Armature" of the bracelet and apply it (now no further posing should be made)
  3. open all transform locks of bracelet! Otherwise it will still stick to its position. If you do that in the end, you have to open as many locks as chains links are there ...
  4. select bracelet and select edit mode. Select all vertices (press key "a" one or two times), then select Mesh -> Vertices -> Seperate -> By Loose Parts. Doing this the chain is separated in its links again.
  5. back into object mode now select the group "bracelet". You have to put the origin into the single links. So use Object -> Transform -> Origin To Geometry. Now the origings should be inside the chain links like in the picture.
  6. next point is to add the elements to rigid body physics. With the bracelet group selected, use menu "physics" (left side of Blender), so that "Rigid Body Tools" will appear. Add these chain links as active elements.
  7. now you have to change the setup of the active rigid body elements. Select physics icon, select the bracelet group again, (shift-)select first element, and change "Shape" to "Mesh" and "Sensivity" to a value of 0.0001 like in the screenshot.
  8. use "Copy from Active" from the physics menu to copy the values of the first element to the rest. The group menu should look like in the image.
  9. select the skin of your character, add it as a passive element in the Rigid Body Tools menu.
  10. change passive element according to the screenshot, Shape must be "Mesh", margin is reduced to 0.01.
  11. change your world and put the character on a very small planet. Otherwise the chain will still separate. The trick is to reduce the gravity to -0.05. This makes the scene slow and smooth. I tried the same with friction, but this seemed to be the best method. Also change "Steps Per Second" to 240 and "Solver Iterations" to 40.
  12. start the animation of the chain. Click the "Play Animation" button.
  13. if 250 frames of animation are not enough (like in my picture named Demo1), you have to change the number frames from 250 to e.g. 400. Attention: you have to increase the "End"-value of 250 in the Rigid Body World Cache to the same valu also!
This method will only work for connected chains! Make sure that no chain link disappears in the skin, before start the animation. If you work with a chain directly created in Blender, you may leave out steps 2 - 4, because the jewelry is normally not connected to the character.