PDA

View Full Version : Blend Shape Mirroring


clojster
08-11-2003, 05:28 PM
Does anyone knows some tool for Maya 5.0 to mirror blendshape targets? Or any way to do this in Maya's 5.0 with standard tools?

I have problem - duplicating target with X scale set to -1 doesn't work...

I want to create for example Left blink target and then mirror it to have Right blink.

Thanks :beer:

cavetroll
08-12-2003, 09:58 AM
howdy!
there is a mel-script on highend3d called symmetry work. it allows you to partially transfer topology from one mesh to another. with it you can easily transfer geometry to your base mesh even from a mirrored copy.

give it a shot. cheers.

clojster
08-12-2003, 12:48 PM
thanks a lot cavetroll... I'm gonna try this.
I really need it :beer:

clojster
08-12-2003, 12:55 PM
Oooh... I didn't find it there :shrug:
Can you please be more specific on where do I have to look for it? I was looking in animation, polygon and modeling section.

cavetroll
08-12-2003, 01:56 PM
just go to the maya->mel-script section and try a search on "symwork". you should get a hit.
I could send it to you if you don't find it.

clojster
08-12-2003, 02:02 PM
Ok, thanks. I've found it. First - I was looking for "symmetry work" as you told me and didn't get any results ;)
Again - thanks. I hope It'll work on Maya 5.
:beer:

Firas
08-12-2003, 04:00 PM
did u try www.geocities.com/firas3d/smartvtx

its good for lowres mirroring :)

clojster
08-12-2003, 08:08 PM
Thanks Firas. I'll try your (I suppose it's you ;) ) script too :beer:

Gremlin
08-13-2003, 10:47 AM
but wait, whats the problem with just taking the geometry that you used to do the blendshape, group it.... -X scale the group, un group it, now you have a mirrored half, that is still positive X, doesnt that work? :surprised
Cheers,
:beer:

clojster
08-13-2003, 06:59 PM
Originally posted by Gremlin
but wait, whats the problem with just taking the geometry that you used to do the blendshape, group it.... -X scale the group, un group it, now you have a mirrored half, that is still positive X, doesnt that work? :surprised
Cheers,
:beer:

I haven't tried that "grouping" thing. But I will... (Do you mean that I should select that target (low poly model in one piece with only half of it changed to get that target. for ex.: blink of left eye) apply group on this one model, scale it along X and then ungroup it?)
I don't know, but duplicating and +X (I have left side changed) scaling doesn't work. When I add it to blend shape when I move the slider it still deforms left side. not the right side. :shrug:

Akkalis
08-13-2003, 10:59 PM
Grouping just adds an extra transform node on top of the object, and I don't believe you can add multinode objects to a blendshape, and if you add the base object node, underneath the transform node (group) it will be like it was never mirrored.

I just tried it, and it doesn't work. And if you're thinking just delete the group, well its just going to transfer the -1 scale down to the base object. Basically, you need an app that will renumber your vertices, because when you mirror, their numbering remains the same, its why you get the flipping. It should work (by that I mean, Maya should account for that) but it doesn't really.

clojster
08-14-2003, 06:33 PM
Yes - group thing doesn't work.
I tried many MEL scripts for mirroring poly meshes and they work pretty good. The best one I have found is Blend Shape Manager 091 which has a lot more features than only mirroring. But this script mirrors MUCH faster than any other (symWork etc.)

But biggest problem is when you try to mirror non-symmetrical mesh (I mean different position of verticles on left and right side of mesh in relax position). It do weird things with position of verticles :shrug:
And that's my case. I added some details like wrinkles etc after combining both sides of face and of course they aren't symmetrical now.

So... I have to deform both sides of my mesh separately. Unless someone writes script for mirroring non symetrical meshes :buttrock:

Firas
08-14-2003, 07:16 PM
:wip: :wip: :wip:


u can copy/paste vtx possition using smartvtx.. did u see the examples.. u need to load a sym-obj first .. then work on non-sym versions.

clojster
08-14-2003, 10:24 PM
Originally posted by Firas
:wip: :wip: :wip:


u can copy/paste vtx possition using smartvtx.. did u see the examples.. u need to load a sym-obj first .. then work on non-sym versions.

Yes, I know that... but the problem is that the original (which is supposed to be symmetrical) is non-symmetrical. I made that misstake that I added some details to it after combining those two halves and now it isn't sym. :hmm:

Anyway - thanks.

nottoshabi
08-14-2003, 10:41 PM
Ok so let me get this strait.

U modeled half of a face, and want to duplicate and mirror, then combine and have a full face so that you can use as a blend shape with other heads right.

Well thats the case then go to Highend3d and look for something called ReconstructMeshTool and that will give you what you want.

P.S. If you decide to use that make sure that your head is all one peace. For example if your eye brows are a different geometry then your forehead, it might not work properly.


Hope that helps. :thumbsup:

clojster
08-19-2003, 01:03 AM
Thanks nottoshabi. I'll try it - it seems that it could be IT :cool:

nottoshabi
08-19-2003, 01:26 AM
Hey no problem let me know how that works out for you.

:beer:

clojster
08-19-2003, 05:16 PM
too baad... this plugin doesn't work with Maya 5.0. It's just for version 4.X :shrug:
If you have some other ideas I really appreciate them :wavey:

nottoshabi
08-19-2003, 07:52 PM
Yes it does just instalet and run it. I use it on 5 and 4.5

clojster
08-19-2003, 10:41 PM
When I try to load it it gives me this message:

Error: Plug-in, "reconstructMesh" was compiled against too old a version of the Maya API and is thus incompatible with the current Maya

fongSaiYuk
08-29-2003, 03:14 AM
Assuming the model is symetrical and a single polygon, there is a very simple way to model both sides simultaneously, which enables mirror blendshapes when some set editing is done as well.
--
Select half of the cvs and create a set for easy selection.

Position the pivot of the selection at the origin or at least on the mirror axis plane for the entire model.

Execute > mel: scale -r -p 0cm 0cm 0cm -1 1 1 ;

[This command will fold *and* unfold the model; no need to change the negative to positive.]

Model should appear folded or halved.

Then model away, selecting both verts which are overlapped. Because they are on the same object, there is no problem in doing so. As well the verts move correctly in unison in all directions, at least using the move tool.

When finished, select the set, postion the pivot for the selected members as before and rerun the same mel command and it will unfold the model, revealing the mirror, already attached.
--
Apologies to all for an erroneous concept, posted earlier and left to languish uselessly forever.

1000101
10-31-2003, 08:29 AM
Hate to drag this up again but I'm having a helluva time trying to get some blend shapes mirrored. I used to use smartVTX unfortunately it doesn't want to behave for me anymore and it only selects one axis correctly. Ussually when I load a symetrical object it barks about some missing vertex.

1000101
10-31-2003, 09:20 AM
Okay I solved it in the stupidest most roundabout way imaginable.

dupe your base object twice
once for the target and once for a wrap.
scale your wrap to -1 in the x direction;

make a blend shape on your wrap object for the target you want; it should make it affect the other side. After your satisfied with the results; set the slider back to zero and create the wrap.

adjust the slider back to 1; the wrap will deform the other object (and maintain correct vert order)

delete history and your temp blend object

you've just created a symetrical blend shape...

alias...
please make a quick button for this or something.

modi
10-31-2003, 06:29 PM
hey that sounds interesting, i cound't get it to work though. The wrap deformer always crashes my machine. Anything i'm missing?

1000101
10-31-2003, 07:32 PM
make sure your objects are in the same location.

To test to make sure its not just the wrap; create to spheres; then select them both and create a wrap

if you move a point of one; it will move a point on the other.

nottoshabi
10-31-2003, 08:52 PM
Ok dude this is the one that I got. Just fallow the instructions and you should be fine. The only thing that got me on this is that in the instructions it says to pick just 3 cv"s then you should be fine, not true. Just keep picking in the same order untill it creates a new one, it takes around 6 to 8 cv" but it will work.

With this plugin you can model anything wich ever way you want then select the cv's with this tool and wallah you got blendable geometry. Its a must have for everybody..


www.finalestudios.com/mike/Reconstruct.rar



Good luck :wavey:

modi
10-31-2003, 09:23 PM
the version does not work for Maya 5, its the same old version in the beginning of the thread.

modi
11-01-2003, 08:04 PM
is there a version for 5.0??

nottoshabi
11-01-2003, 08:31 PM
Sorry about that I just tryit my self... I have emailed the guy yesturday, so as soon as I get an answer I post again....


:wavey:

nottoshabi
11-03-2003, 06:12 PM
Ok guys I have uplodded the Maya 5 version this one should work.


www.finalestudios.com/mike/Reconstruct.rar
:wavey:

modi
11-03-2003, 07:06 PM
Errror "the specified module cannot be found" :shrug:

leet
01-30-2004, 06:32 AM
I am going through this same problem now. I am trying to mirror my low poly face shapes.

notsoshabi, i'm interested in seeing that plugin to mirror, but link doesn't work.

can anyone direct me to something that could help me out?

thanks

leet
01-30-2004, 08:05 AM
Nevermind I found something. Mods, feel free to delete post.
Sorry for any inconvenience.

nottoshabi
01-30-2004, 03:40 PM
I have found symWork from highend3d. It works, it really works.
I have been using it for a previous character. The only problem I have found with it, sometimes it wont copy some cvs but other than that it works fine. The reconstruct mesh plug in is a little over rated. So go get symWork its better.

If you cant find it on highend3d, post and I will put it on site for download.:bounce:

leet
01-30-2004, 04:51 PM
nottoshabi,

This may be a real stupid question... but how do I get symwork to work. I put the script in my 5.0 script folder and execute it but nothing happens.

From the web doc that came with the script it shows a window or ui that pops up, but it doesn't when I use the script. what am I doing wrong?

thanks for your help.

cheers

nottoshabi
01-31-2004, 10:22 PM
Source the script in the script editor. Or type (symWork) not symWork.mel.

john_homer
02-02-2004, 07:30 PM
I havent been folowing this thraed.. just saw it... but if all you wanna do is get a right blendshape from a left... so that you end up with a left AND a right try the following...

ps. it takes about 10 seconds on 3000 verts... there is no progress bar, as its just waiting for maya to do a wrap...

pps. i write this real quick, so you will need the shapes in the same place.. not all over the scene..

// MIRRORS A POLY SHAPE IN -X
// USAGE: select the shape, then the base (symetrical) shape
// run the script.

string $sel[] = `ls -sl`;
string $base = $sel[1];
string $shape = $sel[0];

string $nShape[] = `duplicate -name "newShape" $base`;
string $temp[] = `duplicate $base`;
string $blendName[] = `blendShape -name "tmpBlend" $shape $temp[0]`;
setAttr -l 0 ($temp[0] + ".scaleX");
setAttr ($temp[0] + ".scaleX") (-1);
string $grp = `group $temp[0] $nShape[0]`;
setAttr ($grp + ".s") 50 50 50;
select -r $nShape[0] $temp[0];
string $wrapName[] = `doWrapArgList "2" { "1","0","0.01" }`;
setAttr ($blendName[0] + "." + $shape) 1;
DeleteHistory;
setAttr ($grp + ".s") 1 1 1;
parent -w $nShape;
delete $grp;

Streetgrime
03-20-2004, 04:27 AM
Originally posted by john_homer
I havent been folowing this thraed.. just saw it... but if all you wanna do is get a right blendshape from a left... so that you end up with a left AND a right try the following...

ps. it takes about 10 seconds on 3000 verts... there is no progress bar, as its just waiting for maya to do a wrap...

pps. i write this real quick, so you will need the shapes in the same place.. not all over the scene..

// MIRRORS A POLY SHAPE IN -X
// USAGE: select the shape, then the base (symetrical) shape
// run the script.

string $sel[] = `ls -sl`;
string $base = $sel[1];
string $shape = $sel[0];

string $nShape[] = `duplicate -name "newShape" $base`;
string $temp[] = `duplicate $base`;
string $blendName[] = `blendShape -name "tmpBlend" $shape $temp[0]`;
setAttr -l 0 ($temp[0] + ".scaleX");
setAttr ($temp[0] + ".scaleX") (-1);
string $grp = `group $temp[0] $nShape[0]`;
setAttr ($grp + ".s") 50 50 50;
select -r $nShape[0] $temp[0];
string $wrapName[] = `doWrapArgList "2" { "1","0","0.01" }`;
setAttr ($blendName[0] + "." + $shape) 1;
DeleteHistory;
setAttr ($grp + ".s") 1 1 1;
parent -w $nShape;
delete $grp;


I dont know which is more Nuts.

The fact that John_Homer wrote this Cool @ss script.. that works awesome by the way.

OR...

The fact that nobody Thanked him for sharing it.


Ofcourse there is the possibility that maybe someone never even tried to use it... oh well....

Anyhow.. thanks a bunch John_Homer


:thumbsup:

Firas
03-20-2004, 06:39 AM
john_homer, thankx for sharing this smart ..
Streetgrime, thankx for your note.

i didnt try this yet.. but from both of u.. i can feel how smart is this mel :)

thankx.

john_homer
03-23-2004, 07:32 PM
Originally posted by Streetgrime
I dont know which is more Nuts.

The fact that John_Homer wrote this Cool @ss script..
OR...
The fact that nobody Thanked him for sharing it.
:thumbsup:

haha... well I guess I'm not in it for the recognition, as I completly forgot about this post... and only just "found" it (again) now... was supprised to find I was already invloved in the thread.... damn my skittish brain...

any way...
there is 1 possible "problem" you *may* have with this technique... it uses a wrap to pull the shape out... maya will give unpredictable results with a wrap if 2 verts are closer than a certain distance (I dont know exactly what the distance is, but its freakin' small) if you get odd results, try scaling your shapes by 20 or so, run the script then scale them back

.j

CGTalk Moderation
01-15-2006, 08:00 PM
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.