This addon adds 4 operators to Blender, available from the pose mode context menu (right click, or W key, depending on keymap). This addon is for Blender 2.8 only. For 2.79 and earlier, see the original addon linked below.
Set and align bone shape
Sets the selected bone’s custom bone shape to the selected object, and transforms the shape object to keep the bone shape in the same position as the shape object is.
Align bone shape
Transforms the bone shape object of the selected bone to keep the bone shape in the same position as the shape object is.
Extract custom shape
Creates a duplicate of the shape object of the selected bone.
Snap to bone
Aligns the origin, rotation and scale of the selected object to the selected bone.
I noticed one inconvenience while using Orient Bone Shapes.
I usually check the axes of bones by activating the Axes option in the armature property to make sure the constraints work properly when rigging.
However, the current commands of Orient Bone Shapes makes the scale of mesh object to 1 and disable the bone size option so that Axes will appear in the wrong place.
Check out the gif below.
2. Fix bone axis display
To correct the incorrect axes display due to the command of Orient Bone Shapes, the following procedure should be performed.
Copy the bone length value
Paste the length value to the scale value of the mesh object
Check the bone size option of this property
3. Optimal operation in the current version
The process above returns the bone axis to the correct position, but changes the scale of the custom shape I created. so I am currently using Orient Bone Shapes in the following order.
Copy the bone length value
Create mash object for custom shape
Select bone, pose mode
Select bone, execute ‘snap to bone’
Paste the length value to the scale of the mesh object (because the snap to bone command scales the mesh object to 1, execute the snap to bone command first in step 4).
Check the custom object eyedropper and bone size in the bone properties
Edit mesh object to get custome bone shape
Conclusion
So my final suggestion is:
Match all bone length to mesh objects scale
and active Bone Size option of bone properties tab when all Orient Bone Shapes commands are executed.
We will enjoy the powerful features of Orient Bone Shapes while the bone axes are in the right place.
Hey, I forked the repo to implement those changes.
The bone’s length is now taken into account.
Let me know how it works out for you.
If all goes well, I’ll send a pull request… although, the repo hasn’t been updated in 9 months.
I tested your revision and found one minor improvement issue for the Snap to Bone command.
The improvement method is to execute ‘Apply (Scale)’ command of ‘Ctrl + A’ shortcut key once before matching the direction between the object and the bone.
I’ll explain more details below.
1. problem
Add a cylinder and change the object transform to create a custom bone shape.
Orient Bone Shapes will align the direction between the mesh and bone, but the transform will be lost.
2. How to Improve
Run Apply (Scale) before executing Orient Bone Shapdes.
Orient Bone Shapes command aligns the orientation and maintains the shape without losing the transform.