Make bone follow a face normal [Solved]

Example file here.
To see what I mean: Take any of the two greenish bones and scale them. Notice the red face of the cube moving.
Problem: How do I make the gray Bone act like the normal of that red Face? Meaning

  • Bone’s root will be always half-buried in the middle of Face
  • and Bone will be always pointing straight away from Face?

Hi Moshanator,

The Location information can be obtained easily enough by creating a vertex group of the face you want to constrain to, then enter it into the Copy Location constraint. But the rotation constraint will always produce wonky results.

I did also try it in a recent build of 2.5, and had the same results. So hopefully this is something that the developers plan to sort out maybe after the initial release (if it doesn’t cause a problem for durian, in which case they would probably fix it quickly).

There are other ways to get orientation information depending on your setup though…

On the suzanne rig I made for example, the bones that are constrained to a seperate face mesh (in the same way as what you are wanting to do here) are copying the rotation from the control bones in the first armature (there are 2 armatures in the character - body and face). For example the bones on the lower lip in the second armature all copy the rotation of the lower lip bone in the first armature (*note that the constrained bones are not the control bones).

Another technique I recently used was to create hooks on both sides of a mesh to determine the direction. You can read more about that setup in this post. This setup takes up quite a bit of processing power though, so use it sparingly.

Notice: You cannot deform the object with the same armature that you use to constain bones to the surface. That will cause a dependency loop, since the whole armature and all its bones are evaluated at once.

If you come up with better solutions, please do let me know :slight_smile:

So I did some searching…
Another and maybe simpler solution would be to parent the bone to the face.
Example here, that was exactly what I needed.

lol… wow. I did not know you could do that, obviously :o

That opens up possibilities :yes:

Thanks!

I have never seen that before, Blender keep amazing me.