View Full Version : What's the deal with wires?

07 July 2007, 09:27 PM
Hi there,

I'm trying to set up a face with wire deformers. My problem is... that as I add more than 1 wire to a face, the interaction with the wires becomes sloooow. I tried parallel deformations, separate deformation sets, but only if I add a new wire to a new mesh, seems the only way to keep the wires fast. it's not a huge deal having a lot of extra copies of the geometry for each wire, and then adding them as blendshapes, but that way is also not the fastest, and it's not very efficient either... is there a better, more elegant solution?

Thanks in advance!

07 July 2007, 09:57 AM
well when you add a wire it tends to include all the verts in that model (lets say a head for example) to the wire set.
I'm sure in the relationship editor you can paint in just the area you want to influence you should be able to lets say.. paint an eyebrow regions verts so they are active and the rest aren't and it'll ignore the rest so if your wire dropoff is set to as high as it can be it'll still only affect the painted area (the eyebrow in this case). I'm pretty sure that speeds up the response on the model and is a bit more elegant.

XSI does the same thing with clusters - you can then add in more to the cluster set or remove.

07 July 2007, 12:42 PM
hey anthony,
I think when 2 wires affect the same vertex maya is quite unhappy... I don't know for sure, but one wire alone can move a lot of vertices in real time, add a second wire and things become extremely slow...
I don't know why I didn't think of the membership... also, I didn't expect it to work, but it does. prune wire memebership also works really nice, and it's automatic, so I can script things. But it looks like I have to automate so that you set up one wire, you paint weights, automatically move the wire, prune, and move it back, and only then set up a second wire... cuz otherwise painting would be very slow...
thank you so much anthony!

07 July 2007, 01:15 PM
ok, I did some more tests. with all the pruning, just because there have to be ares that overlap, and 2 or more wires will affect the same vertex, that control point will move slow... enough... I think separate wires on separate meshes is still faster. I will add some pruning to each mesh though ;)

07 July 2007, 01:36 PM
that sounds interesting VM - some of it lost me and I REALLY REALLY need to get my head around scripting in mel as it just looks like the way to get so much more of the clever stuff done in maya. I remember a chap who a deformBySurface plugin years ago and even wrote me a specific plugin as he hadn't updated it in ages but sat down for an evening and re-wrote it for the version of maya I were on at the time (5 I think) which was darned nice of him.

Anyhow point is he wrote it in mel which was awesome. That kind of tool comes as standard in XSI and I really wish it were in maya :(
anyhow gonna have to do some wire tests myself - never really had two curves effect the same verts as I've only ever really used them on eyebrows. I'm finding wrap deformers to be much more powerful now tho :)

07 July 2007, 07:14 PM
hm, wrap deformers... my experince with them has been not so fortunate, I didn't manage to get smooth deformations... not sure why. but I'm looking right now into this. can you give me a hint of how I could use them instead of wires on a face? just make a nurbs driver or a low poly driver that I could somehow use as a face curve?

07 July 2007, 07:55 PM
ok, so I can attach a curve as a wrap, and I discovered the wrap samples, hihi.

But still, the problem is that a wrap deformer doesn't have a falloff between CVs it affects and CVs it doesn't affect. So it has to affect all the CVs, I guess. Another thing is its behavior - the result looks like the face is sliding along the control curve... and you can't paint weights to control the deformation in more detail

07 July 2007, 07:38 PM
yeah my bad there - I think wrap deformers wouldn't be the greatest tool to be using in your situ

07 July 2007, 01:15 AM
Hi Virgil,
Well don't give up hope, I use wire deformers for pretty much all my facial rigging needs these days (certainly all non photo-real ones anyway), and they do work nicely. But yes, as you've spotted, speed can be a bit of an issue. :)

I tend to animate with two versions of the geometry on any of my characters - one low-res version which has just the skin cluster on (which is great for getting general body animation right, realtime playback in the viewport etc), and then a hi-res version of the geometry that I animate fine-detail stuff on like facials once I've finished the body. I only setup wire deformers on the high-res version. By painting set membership for each facial wire, I'm often able to get the facial rig on the hi-res geometry so it's fast enough to manipulate well in the viewport (5-10fps easily), although never realtime playback. But then, I don't really need realtime playback for facials - by the time I get down to doing facials and fine detail stuff on the hi-res goemetry, I'm normally at the sort of stage where I'm playblasting loads anyway, so the lack of realtime playback doesn't bother me there. Perhaps this sort of setup/workflow is the answer for you?

As for your problems with two wires overlapping, check that you've set the deformer weights correctly for each of your two wires (note that the only way to do this is to have one wire per wire deformer node, rather than all of your wires in one wire deformer node which Maya also allows). Always remember that your weights for each vertex should add up to 1, nothing else! Using the paint wire weights tool will help here, as will using the component editor, although be prepared for a bit of tedium. I pray for the day Maya finally gets a way to spread weights out across wires like it does with joints :)

As regards "separate wires on separate meshes", speaking purely theoretically this shouldn't be any faster because Maya still has to evaluate the wire deformers anyway (and could actually be slower, since you're adding extra blendshape nodes in there). If you really need fast UI responsiveness in your rig, you may want to have a look at this: I experimented with it a while ago and generally found it to be faster than wire deformers (and easier to paint weights for too, hooray!). However your vertices cannot "rotate" with the deformation of the wire like they do with the wire deformer, so bear in mind that the results from this will be different from a wire deformer.

Hope this helps!

CGTalk Moderation
07 July 2007, 01:15 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.