Soft skinning is feasible in Silverlight with important limitations.
Silverlight has fantastic features and tools for creating and blending animations. This can be leveraged to create more complex animations than it was intended to create.
This is the same technique used to animate most characters in 3D movies and 3D games. I just implemented it in 2D in Silverlight.
You can see my test case below. Yes, it is as ugly or uglier than this webpage.
I'm not an artist and prettiness was not a part of this prototype. The prototype was a Silverlight coding learning exercise and a tech demo of soft skinning.
The input to this Silverlight application is Xaml created entirely in Expression Studio 2, with only one manual step in the Xaml source. This is important because it means that the artists can develop the content largely using existing tools and therefore their skills with those existing tools can be leveraged for this technology. From another perspective, it means that if you needed to hire 5 more artists, you will be able to find artists who are already trained on your tool chain.
The code identifies the skeleton of red Canvas elements by the name of the topmost Panel, "skeletonRoot". All UIElements parented to a Panel underneath that root bone is considered a bone. It similarly identifies the Path's to skin as the children of a named Panel, "shapes". The points of the paths are considered the vertices of the skin.
On initialization, for each vertex the code finds the two closest bones. It determines a per-bone weighting factor based on distance from the vertex to the two closest bones. This can easily be extended to other schemes but should also be persisted (see Future Work below).
As the animation runs, the code updates the transforms for the bones and sends those transforms to the skinning system. The skinning system updates the vertices of the paths based on the bones's transforms and vertex to bone weights.