Sliding Skin is a set of ICE compounds that enables sliding the one mesh along surface of another, underlying mesh. Here I've used it for skin sliding, but it can be used anywhere where you need the sliding effect. Instead of well known approaches, such as shrink wrapping or constraining envelope's deformers to NURBS surface, it using UVs of underlying mesh. Transformation offset between nulls is sampled to UVs, then it's projected back to point positions. Which means, that just one pair of controllers can slide the mesh along whole surface of underlying mesh, without stretching. Also, there is no need for enveloping, so you can use it together with Softimage's envelope or any other deformation operator. Whole setup is connected to mesh only by applying the ICE tree.
Performance rely on mesh resolution, cutoff distances, viewport display.... what you see there, is running in real time on Quad Core machine.
Of course, movie is there only to show ICE operator - it's not complete face rig.
As it is for now, it using pairs of nulls. Weighting is performed automatically by UV distance to parent null, local transformation of child null is used for deformation. Moving the parent will move "center of deformation". One SlidingSkin compound can take a group of parents/controllers, then all weights can be modulated by weight map. It's possible to use multiple SlidingSkin compounds, connected to multiple overlapping groups, each with different weighting - I've used that a lot in the movie. In that case, groups are blended in additive fashion, just like Softimage Shape Keys.
For setup procedure, I've added detailed description in download. It's "common" ICE setup with a few intermediate objects, carefully selected nulls for their proper indexes in groups, taking attributes between objects, referencing to UVs.... setup is configured mainly for better performance, for allowing multiple groups of controllers, allowing weighmaps directly on performance mesh...
I would say, it really isn't for a first day of using ICE, but it should be easy to do after a few weeks of positive approach to ICE stuff.
As an side effect, there are samples for taking point positions or another ICE attributes, from UVs of mesh. That is: moving the mesh along surface of another mesh (as deformation), creating a custom particle distribution by using mesh's UVs, projecting strands along mesh UVs. I didn't sow ICE samples of this kind until now - if I reinvented the wheel here, just forget them
. Actually, method is amazingly simple. For SkinSliding compounds, it's much faster to use UVs form mesh than using NURBS surfaces.
Use it at your own risk, and...
Link to setups, compounds... here