This question already has an answer here:

EDIT: Ok, my question/explanation doesn't seem to be clear enough, so I'll try to restate my goal.

The end result I'm trying to achieve is to hook an empty or bone to each separated face, BUT using the face normal orientation so that the faces can be animated by each hooked empty/bone and the rotation will occur with respect to each face's normal.

I'm trying to find a way to rotate faces of a mesh on their normals. Currently it seems one needs to separate the faces to individual objects in order to control rotation from an empty/modifier/constraint. However once the faces are separated, and Transform>Origin to Geometry is called, the orientation is not based on the original normals of the mesh face.

How does one copy the original normal orientation of the mesh face to the separated object data?

Is there another way to control rotation of mesh faces (assuming the faces have first been separated within the mesh object)?

I should also mention that I'm wondering about a non-scripted solution, as I could probably figure out a script to do it, but was looking for simpler solution first. Feel free to post script solutions though if you want.

Ideally, a solution that allows mesh face rotation on the individual normals based on an external input without separating faces to objects would be preferable.

enter image description here


marked as duplicate by gandalf3, ideasman42 Jan 21 '14 at 7:29

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • $\begingroup$ What do you mean by "external input" ? $\endgroup$ – ideasman42 Jan 21 '14 at 7:28
  • $\begingroup$ I mean being able to control the face rotation by another object like an empty, or bone. I want to hook an empty or bone to the face, and then copy the normal orientation from the face to the empty/bone so that animation can be done on the faces from external hooks. $\endgroup$ – Todd McIntosh Jan 24 '14 at 18:09
  • $\begingroup$ So basically turn the orientation of the face into a rotation transform (based on the normal)? $\endgroup$ – gandalf3 Jan 24 '14 at 18:31
  • $\begingroup$ Yes, for the empty/bone that is hooked to the face. $\endgroup$ – Todd McIntosh Jan 24 '14 at 19:15

You don't need to separate faces to different objects, but you have to separate them. One way is add EdgeSplit modifier, set angle to 0 and apply it. When you have separete faces, just set Pivot point to "Individual Origins" (it's where you setting Median, 3D cursor, etc.) and Transform Orientation to "Normal". Now if you press [R] for rotation, you can press x,y or z for locking rotation to one axes in global world, but if you press x,y, or z again, the rotation will be around each individual face normal. Hope it will help.


Yes you can do this, all accessible from interface but included keys

  1. Enter Editmode (Tab)
  2. Change to face-editing (CtrlTab, F)
  3. Select all (A)
  4. Mesh -> Edges -> Edge Split (CtrlE, D)
  5. Change orientation to normal (AltSpace, N)
  6. Change pivot to individual origins (Ctrl.)
  7. Rotate about the Z axis `(R, ZZ) ... move mouse:

enter image description here


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