How do I copy the normal axis orientation from a mesh face to an Empty hooked to the face OR a bone parented to the face? 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.
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.