How can i skin a model to a pose other than the Rest Pose? I want to skin a character that was modeled for a different rest pose. The following example is just a mockup for demonstrating the problem:



So in this example the Rest Pose (T-Pose) does not match the Model's pose (A-Pose). Hence i can not bind the mesh to the Rest Pose here. But when i adjust the Pose to the Model and then bind the mesh using:

Pose -&gt; Parent -&gt; Armature deform -&gt; with Automatic weights


I get this (and as far as i understand the procedure, this is expected behavior)



So, Blender apparently can only bind to Rest pose, hence the Binding function assumes that the rig is in rest pose. Thus as soon as the binding has happened, the current pose is applied to the mesh and thus it gets distorted (and i expect this to happen).

The obvious solution to fix this problem seems to be: modify the model so that it matches up with the Rest Pose. Then bind the mesh to the armature. But i do not want to modify the mesh, but use Blender to find a better solution.

My current workflow to solve the above problem.

Currently i solve the problem as follows (which works nicely, but i still find it to be a tedious workflow):


Make a copy of my rig.
Modify the rest pose of the copied rig to match the Mesh Model (Apply pose as rest pose).
Skin the model to the copied Rig.
Manually Pose the copied Rig into the Rest Pose of the original Rig.
Apply the Armature Modifier.
Delete the copied Rig.
Attach the mesh to the original Rig (keeping the weight groups).


Anticipated workflow (could be achieved by using an Addon)

I would like to optimize the above mentioned workflow by merging steps 4. - 7. into one step "restore rest pose". Then eventually change the workflow like this:


Save the Original Rest Pose.
Modify the rest pose to match the mesh model.
Skin the model.
Restore the original Rest Pose without destroying my skinned mesh.


For this i need to save/restore Rest Poses. I know how i could achieve that by creating an Addon. However before i do that i want to be absolutely sure that i do not miss something. So i ask if "Save a rest pose" is implemented already (as far as i can tell the pose library won't work for this).

Ideal workflow (would probably need a change in Blender)

I wonder if Blender could add some support as well. So here is the "ideal workflow":


Pose the Armature to match the Mesh
Parent to Armature as usual
Add an option in the Operator panel of the Parent operator: "Transform to Rest Pose"


This new option would then calculate the reverse transform such that the mesh would keep its original shape when the armature is posed into the pose from where the mesh was bound. OK, i agree this needs to be read more than once ;-/

Optimal Workflow

Now the best solution (imho) would be to add full support for binding to arbitrary poses.
Then Blender would need to support a Bind Pose matrix which allows to bind a mesh to an arbitrary pose.

Questions:


Does Blender support my "Anticipated Workflow" ? 
Or is there a better workflow for "rigging a model to a different Rest Pose" ?
Does the "Ideal Workflow" as described above make sense ?
Is there any chance to get the "Optimal Workflow" accepted for implementation ?
I would suggest this: in the rig tab of your armature, create a pose library, and next a pose wich will hold the rest pose of your rig.

Next pose the rig as you like, make it the rest pose, work, and when you're done, restore the rest pose from the library.

BTW, maybe you can even make simpler: in the mesh object, modifiers tab, you can activate the 'Edit' button of the Armature modifier. Then you can pose your model and work on it, not only in 'Edit' mode, but 'Weight paint' too.

EDIT For instance, to rig a character already posed (i.e. being not standing straight), you can:


create a standard rig.
In pose mode, move the skeleton to fit the character body and limbs as accurately as you can.
Still in pose mode, parent mesh to armature with 'automatic weights'.
Then, if you return to rest pose, the mesh will follow.


Hope this helps