0
$\begingroup$

So I want to make string of lamps. The string has cloth physics, and I want lamps follow it. I created empties that have constraint to follow string's assigned vertex groups. And it works ok I guess.

But what if I want to physics to the lamp themselves that they could rotate in the wind while still attached to the string. What physic to use and how to pin them to empties/vertex groups?

enter image description here


EDIT

Thank you for answers. I'm sure they can be very helpful for others trying to figure out this same problem. I actually managed to create one solution for this on my own as well after hours of trying.

I extruded string's vertexes towards the lamp (imagine like another string, which is holding the lamp). So there is two vertexes in lamp's position. For each of these vertex I created on empty. Which I vertex parented to the string's vertex. (This mesh has cloth physics in it)

Then I created armature for lamps(each has separate one, with one bone). And parented this to lamp with automatic weight. Armature has two constraints. Copy Location (target: upper vertex) and Damped Track (target: down vertex).

Now the lamps should be following the string. And you can add wind to make them move.

After this you need separate object for string itself. As the one in the beginning works as a guide and you can't add any form in them. For this I created curve with extrude. Curve has points where the lamps are (same position as the guide string). Then I created hooks for each point of curve. Which I vertex parented again to the guide string.

enter image description here

$\endgroup$
1
  • $\begingroup$ Please post your "EDIT" part as answer. It is OK to create your own answer. You can even mark it as accepted after all :) Thanks, you keep this site organised. $\endgroup$ – vklidu Jan 22 at 17:46
2
$\begingroup$

The ideal physics for your lamps is probably rigid body physics. It is possible to combine these with soft body/cloth physics, but the philosophies and techniques are different.

In order to anchor these lights as rigid bodies to the line, you'll first have to make an "anchor" body to hold them there. Create a cube (or any solid mesh, doesn't matter) at the point where they hang from the line, give it rigid body physics, and then check the "animated" trait in properties/physics/rigid body/settings. "Animated" means it's under your control, so, you'll need to do something to make it move with the cloth physics mesh. One way to do this is via vertex parenting (I parented it vertex triangle to three points in a cloth strip), but if you'd rather, your technique of copying location from vertex groups is fine as well.

Disable rendering on these anchor bodies. I set mine to display as only wireframe as well.

Next, you can give the lamps themselves rigid body physics. Default settings are fine, although you'll want to make sure that the origins of the objects lie somewhere near the middle of their volume (the origin is the center of mass.) Remove any constraints or parenting from these objects if you have any.

Next, you'll need constraints so that your lamps stay attached to the anchors. For each anchor body, create an empty at its location, then give the empty Rigid Body Constraint physics. Set these to "point" type instead of the default "fixed". Then, in the Objects subsection, specify your anchor object as the first body and your lamp object as the second body. These empties should remain unparented and unconstrained; their positions won't make any sense during your animation, because it's their relative orientation at your first physics frame that determines how they work. (As point constraints, they're going to try to keep your lamps on a spherical shell around the anchor, and exert physics forces as needed to do that.)

Here's it after a few frames, with some pinned windows to demonstrate physics settings:

enter image description here

Note: what's happening here is that Blender is running your cloth physics, and only afterwards, running your rigid body physics using the positions provided from the cloth physics. Don't imagine that the hanging lamps will exert force back on the cloth; it doesn't work that way.

$\endgroup$
2
  • $\begingroup$ Thanks, I could learned something new :) Previously I tried to parent Empty (Constraint) directly to string's vertex, that didnt work. My wrong interpretation of this function :) $\endgroup$ – vklidu Jan 22 at 17:55
  • $\begingroup$ @vklidu it is confusing how Blender does RB constraints. It would be a lot less confusing if they were updated with physics.... $\endgroup$ – Nathan Jan 22 at 18:01
1
$\begingroup$

Cloth

  • Use Cloth sim not only for a string, but create a very simple lamp on string
  • Than place your "lamp" object in place of cloth part represented a lamp, add Array modifier

Surface Deform Modifier
To transfer sim to your "lamp" object you can use a simpler Surface Deform modifier, so just a triangle can be use

enter image description here

or

Mesh Deform Modifier
In this case has to be whole "lamp" covered by mesh of cloth sim before Bind

enter image description here

Rigid Body

Try to check also Rigid Body Constraints - Blender Manual or some tuts like here, here or the best - check Nathan's answer :)

$\endgroup$
2
  • $\begingroup$ Wow. I never tried making cloth boxes like this, with so few verts. I always assumed this sort of geometry would collaspe, but it doesn't. This is so useful. $\endgroup$ – Robin Betts Jan 22 at 17:28
  • 1
    $\begingroup$ Familiar with those.. already UV'd them! :) It's the box that surprises me. $\endgroup$ – Robin Betts Jan 22 at 17:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.