Description
A UV-based skin sliding deformer. The deformer requires a single UV shell covering the area you wish to slide. This is currently not available for public download.
Node Reference
| Long Name | Type | Default |
|---|---|---|
| handle Locator matrix that drives the sliding. |
matrix | identity |
| uvSet UV set from which to base the sliding deformation. |
string | 0 |
| magnitude Sliding sensitivity. |
float | 0.0 |
| uvPivotU U coordinate of transformation pivot in UV space. |
float | 0.0 |
| uvPivotV V coordinate of transformation pivot in UV space. |
float | 0.0 |
| rigMode Boolean value that can be used to speed up the deformer. When painting weights or adjusting membership, turn this on. When delivering to animation, turn this off. |
boolean | true |
| initialized Internal initialization flag. Should not be set. |
boolean | false |
| numTasks Number of thread tasks. |
int | 16 |
Usage Notes
Opening the UI
Command-line:
import cvUVMeshSlide cvUVMeshSlide.ui()

Create the Deformer
First, create a UV set and create a single shell covering the area that you want to slide. Below, I will be sliding the scapula region of the character.

Type in the name of the UV Set that your shell is on. If it is the default UV Set, you can leave the field empty.
Select the mesh and hit the Create button or in the command-line:
import cvUVMeshSlide
deformer, handle = cvUVMeshSlide.create(mesh=None, uvSet="", name='cvUVMeshSlide#')
"""
Creates an imdMeshSnap deformer.
Parameters:
mesh - Mesh to apply the deformer to. Defaults to selection.
uvSet - UV Set to base the deformation on. Leave blank to use the default UV Set.
name - Name of the deformer to create.
Returns:
The name of the created cvUVMeshSlide node and the name of the created slide handle.
"""
The node will then initialize its internal data structures. This could take a minute or two depending on the density of the mesh and the range of the UV layout.
Once the node is done initializing, you will see a new group node in the outliner. This group node contains the locator that will be used to slide the vertices of the mesh. Place the group node roughly where you would like to animate the handle from. In my example, since I am sliding the character’s back and scapula, I place the group node by the shoulder blades.

Select the handle and hit the Set Pivot button or from the command line:
import cvUVMeshSlide
u, v = cvUVMeshSlide.setPivot(handle=None)
"""
Aligns the handle and sets the transformation pivot in UV space.
Parameters:
handle - Sliding handle. Defaults to selection
Returns:
u and v coordinates of pivot.
"""
This will align the handle with the closest normal and tangent as well as set the transformation pivot in UV space. This allows the handle to deform the points intuitively when the handle is rotated and scaled.
You will need to adjust the magnitude attribute to the desired sensitivity; usually anywhere from 1.0-5.0. Also, you will need to paint the deformer weights to limit the area of influence to the vertices of the UV shell with some extra space buffer. If a vertex moves beyond the shell of the UV layout, it will snap back to its predeformed position. To prevent this, either make the UV shell include extra buffer vertices or paint out a buffer along the edges of the UV shell.



