How does proximity wrap avoid double transform on a rig?

How does proximity wrap avoid double transform on a rig?

experigon
Explorer Explorer
513 Views
3 Replies
Message 1 of 4

How does proximity wrap avoid double transform on a rig?

experigon
Explorer
Explorer

 

Heya, I'm trying to understand how to use the proximity wrap with a character and avoid double transform issues.

 

 

Basically I want to use a simplified mesh to drive part of my rigged model using proximity wrap. I want to use proximity wrap because it has by far the best performance compared to the legacy wrap and mesh to mesh component skinning.

 

My model has quite a lot of complicated deformation across its body/fin so I need to have the simplified mesh follow the deformation of the model

 

1. Here is the model and the simplified mesh for the the fin, I want to either use ncloth or the shrink wrap deformer on the simplified mesh to add additional animation to the fish.

 

2. Here is the simplified mesh affecting the fin using the proximity wrap deformer.

 

3. Here I am moving the character, but the problem is that the simplified mesh doesnt move with it, which is a problem if I want to use ncloth or a shrink wrap deformer on the simplified mesh. I cant have the simplified fin interact with other objects the fish swims into if its in the wrong position and not matching the fish's deformations.

 

4. Here I skinned the simplified mesh fin to the joints of the character rig so the simplified mesh is in the correct position, but this introduces a double transform on the fish model I cant figure out how to avoid.  I'm using the default proximity wrap settings here.

 

5. Frustratingly if I use the snap option on the proximity wrap it solves the double transform issue... but now the fish model is shrink wrapped to the simple fin model which isn't something I want. I want the proximity wrap to work in surface mode but have no double transform.

 

Is there a way of doing this?

 

1.jpg2.jpg3.jpg4.jpg5.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 Likes
514 Views
3 Replies
Replies (3)
Message 2 of 4

mcw0
Advisor
Advisor

As with many things, there are multiple ways to fix this.  Basically as you've pointed out, it's a case of double transformations.  So you need to zero out one of them.  And since you want the proxWrap to affect the fin, then zero out the skinCluster on the fin.

Message 3 of 4

Baboonian
Advocate
Advocate

Use nCloth for the whole fish, and paint the deformable area

0 Likes
Message 4 of 4

experigon
Explorer
Explorer

Editing the skin cluster worked. I added a root joint unattached to the rig controls, moved the rig controls out to extend the double transformed vertices away from the body, selected them and then flooded them with the root joint weight. 

 

I also discovered a second method that is non-destructive to the skinning for those interested. I cut out a copy of the fin from the main body mesh and then instead of having the simplified mesh piece directly drive the body I had it drive the cut out fin. I then used a second proximity wrap using the snap setting and had the cut out fin drive the main body. This seems to get around the double transform issue without being destructive to the skinning.

 

The other flaw to keep in mind with both of these approaches is that using them means the Falloff setting on the proximity node no longer works as expanding or contracting it causes the vertices to jump to the bind pose, which kinda sucks but at least I have it mostly working now.

 

 

 

 

 

 

 

 

 

0 Likes