0
$\begingroup$

I intended to use cloth physics to make a bag like this:
a bag with two balls in

the bag and the shpere has cloth and collsion physics modifier, the shpere with internal springs on, and it worked well in the testing file.

but

I found if I gave my cellphone model a cloth physic modifier, and turn "internal springs" on, it exploded

So, instead of giving the phone cloth physic directly, I try to add a cube, give the cube the cloth and collsion physic modifier, then, I add object constrait "Child Of" to the cell phone model, set the "Child Of" target to the cube...like this:
constrait settings

the vertex group, I select three point randomly.

but, it acts weird!! Even use a normal cube mesh instead my cellphone model. It always rotates unexpectly...like this:

normal rotation at beginning
unexpecting rotation suddenly
unexpecting rotation

How this happened? Edit:

the unexpected rotation cube file:

By the way

In fact, I'm trying to make a dancing person with a cellphone in a small transprant bag tied to his arm... I found this is so difficult to me. Even this question is solved, there also many other issues. So despaired. T T

Edit:

The unexpected rotation smartphone model file:

$\endgroup$
3
  • $\begingroup$ are all scales and rotations applied? if yes, please provide blend file $\endgroup$ – Chris Apr 29 at 9:14
  • $\begingroup$ that's why i asked....you didn't apply scales....so select object -> ctrl-a -> apply scale. If you are beginner you should not (!) begin with such a complex animation. Start with something simple so you get addicted to Blender instead of being frustrated. ;) $\endgroup$ – Chris Apr 29 at 11:22
  • $\begingroup$ That's a good advice. thank you. And, I uploaded another file. I applied the scales and rotations according to what you said, but it still not acting correct. $\endgroup$ – Acegrp4 Apr 29 at 12:10
1
$\begingroup$

It's natural to think that when you're using 3 vertices as the target of a constraint, that you're using a face. But you're not, not quite. You're still just using 3 vertices, and vertices don't have full transforms. As zero-dimensional thingies, they don't have rotation or scale. When you use a constraint that tracks a vertex group, you can reliably expect it to acquire the location part of the transform, but not the other parts.

You're using a child-of constraint here, but there are other constraints where this would be a problem as well. Copy rotation, copy scale, copy transforms, etc-- for anything that needs more than a location from its target, vertex groups are unreliable targets.

Blender, bless its heart, sure tries to make it work. It tries well enough that sometimes it works. But it's unreliable.

Here, it's not working. We can use different vertex groups and constraints, constraints that need only locations, to do what you want.

Let's create three vertex groups on Cube.004 (the target of your constraint.) We'll assign all vertices on one face to a group called "face". We'll assign its two topmost verts to a group called "z". And we'll assign two verts on its side to a group called "x".

Then we can replace our constraint. Disable or delete the child of constraint, then create three constraints: a copy location, a damped track, and a locked track. Each of these should target our old child-of target, but give each a different vertex group. Copy location from face; damped track our Z axis to z; and then lock our Z axis to track our X axis to x:

enter image description here

All of our constraints use only the positions of vertices (the weighted average position) in order to define the rotation of our constrained object. We're not acquiring scale, but that is much more complicated, and it doesn't look like it's something you want to acquire anyways.

$\endgroup$

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.