Research & Development
Blender Python Script: Unpose Mesh (does the inverse pose transform)
Tested with Blender 2.43 and 2.44
Author: Tal Trachtman
Date: May 2007

This script could be used in cases where you've modeled something in a posed state
and wish to deform it to the rest pose of an armature.

(1) Select a mesh and its armature. Note that
- The mesh must have vertex groups set up for the armature bones to determine the influence of the bones on the vertices for the inverse pose transform deformation.
- The armature must be posed in the same pose as the model you wish to unpose
(2) Run the script (alt-p while your mouse pointer is in the text window)

(1) This script does not work with meshes that have shape keys.
This is because existing shape keys are currently exposed through Python API as read only
(2) Bone envelopes and bbones (bones with multiple segments) are not supported
(3) Workflow isn't ideal. A better workflow would have the mesh unpose non-destructively
so you could fine tune vertex weights and bone placement and see the results on the
rest pose (unposed) mesh interactively.

Use this script at your own risk and back up your work before using the script! I do not accept liabilty for any loss of data or damage to your computer that may result in the running of the script.

This script is completely free for commercial and non-commercial use. If you improve on the script and redistribute the improved script, or if you use the script as a component of your script, please give me credit for my contribution.

Download script
Download test .blend for this script

This website and all its contents are copyright Tal Trachtman 2007 unless otherwise stated. No material herein may be copied or reproduced for any purpose without written consent.