Welcome!

Welcome to our community forums, full of great people, ideas and excitement. Please register if you would like to take part.

This is extra text with a test link..

Register Now

Announcement

Collapse
No announcement yet.

A Brief Wrap Deformer Tutorial for Mirroring Blendshapes

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • A Brief Wrap Deformer Tutorial for Mirroring Blendshapes

    OK. Due to popular demand, I'm going to write up this quick tutorial on how to create mirrored blendshapes using the infamous Wrap Deformer method. Take a look....


    Step 1: Model one blendshape for one half of the faceIn this case it is the RSneer blendshape. Notice that the LSneer blendshape (named but unaltered) is right next to it.



    Step 2: Duplicate both the RSneer and LSneer. Leave LSneer1 right on top of LSneer. In order for the wrap deformer to work well, we need to have the wrapping shape (LSneer1) as close to exactly the same shape as the shape it will be deforming as possible. you can Move RSneer1 away if you'd like.



    Step 3: Mirror LSneer1. Select LSneer1 (in the Outliner) and in the Channels Box change the ScaleX to -1 (assuming your character is facing Z.



  • #2
    Step 4: Make RSneer1 a blendshape of LSneer1. Select RSneer1 and then select LSneer1. Choose Animation.Deform>Create Blendshape. This will allow RSneer1 to control LSneer1. Since LSneer1 is a mirrored version of the unaltered LSneer, when the Blenshape is activated, we will see a mirrored shape. For now though, leave the blendshape slider at 0.




    Step 5: Make LSneer1 a Wrap Deformer of LSneer. Select LSneer and then Cntrl-click LSneer1. Choose Animation.Deform>Create Wrap




    Step 6: Open the Blendshape sliders window (Window>Animation Editors>Blend Shape), and turn on the RSneer1 blendshape to 1. This is tricky, but follow me. RSneer1 is blenshaping LSneer1 - LSneer1 a mirrored version of LSneer - LSneer1 is also wrap deforming LSneer. Soooo, when the RSneer1 is activated, it blendshapes the mirrored version of LSneer (LSneer1) resulting in a mirrored version of the original RSneer.




    [b] Step 7: Delete history for final LSneer.[b] Select LSneer, and choose Edit>Delete by Type>History. You want to leave LSneer deformed but you don't want all the garbage history.



    Step 8: Delete LSneer1, RSneer1, and an object called LSneer1Base (which will probably be visible towards the bottom of the Outliner) You want to make sure you're cleaning up as you go. Since you wont' need these construction objects LSneer1 and RSneer1, you want to make sure they're gone.



    So in the end, you'll be left with a mirrored version of your original blenshape. You can see that this is a pretty intensive process, and lots can go wrong; but once you get going, it can move along fairly quickly. Be sure to clean as you go, and remember the order in which things are selected is everything when it comes to deformer functions like Blenshapes and Wrap Deformers. Good luck.

    Comment


    • #3
      that method doesn't seem too bad, I'll try it out on our #2 Character

      Got a gamertag? check out the thread - http://www.cgauiwtalk.com/showthread.php?t=4828

      PS, This is what part of the alphabet would look like if Q and R were eliminated.

      Comment


      • #4
        once you get the hang of it, it's really easy and fast

        it's pretty much:

        duplicate
        mirror
        blendshape
        wrap
        activate blendshape
        delete hitory

        Got a gamertag? check out the thread - http://www.cgauiwtalk.com/showthread.php?t=4828

        PS, This is what part of the alphabet would look like if Q and R were eliminated.

        Comment


        • #5
          I did notice that in your description for assigning the Wrap Deformer, that in the written directions, you say to select LSneer then LSneer1, but in the picture you say to select LSneer1 then LSneer.

          I've been doing it the first way, LSneer then LSneer1, and it's been working for me

          Got a gamertag? check out the thread - http://www.cgauiwtalk.com/showthread.php?t=4828

          PS, This is what part of the alphabet would look like if Q and R were eliminated.

          Comment


          • #6
            Is their a way to "macro", that is set up the operation so that Maya will just go through the motions? Not quite a one button Operation but it would beat repetition.
            Saving the Universe one minute at a time...

            Comment


            • #7
              Yes yes of course, but which came first though, the jello or the mold?:p
              It's only after we've lost everything that we're free to do anything.
              -Tyler Durdan

              Comment


              • #8
                You might want to clarify that. A MAcro is the program going through motions you've set before. So if you follow the above instructions in order, recording for a macro operation, then the program should done exactly the same motions. The only drawback I can see is if Maya can not tell or be told who is "Rt_express" and who is "Lt_express" (Example names) to determine how to carry out the macro properly. Maya can be to me a very obtuse program at times, especially those of relative convenience making this a serious concern if one is to consider using such a function.
                Saving the Universe one minute at a time...

                Comment


                • #9
                  if yer refering to my comment David, that was only an inside joke.:up:

                  Thomas had discovered this method on CGtalk a few Sems ago, but because the person who posted the method lacked basic instructional skills, Thomas had to put it in his own words. Thus the Jello and the Mold. In which the original BS once scaled to -1 becomes the Mold for the New BS, which is the Jello. Get it? Exactly sounds even more confusing. So yall are fortunate to have some nice clear instructions made right here.
                  Last edited by Will; October 22, 2006, 08:55.
                  It's only after we've lost everything that we're free to do anything.
                  -Tyler Durdan

                  Comment


                  • #10
                    David's question still hasn't been answered.

                    Got a gamertag? check out the thread - http://www.cgauiwtalk.com/showthread.php?t=4828

                    PS, This is what part of the alphabet would look like if Q and R were eliminated.

                    Comment


                    • #11
                      This is very possible Kevin, I wrote this tonight real quick because for some reason I'd rather spend 3 hours writing a script and 2 minutes doing this than spend 2 hours just doing it. Don't ask me why... lol

                      Essentially this will prompt the user to enter 2 things, The "source" blendshape, and the "target" blendshape. Then it runs through all the commands. For some reason though, the wrap deformer will not let it self be applied via script. I can't seem to get that part to work. When you do it manually it will copy it just fine and affect the mesh correctly, but when you plugin the script that does the exact same thing, for some reason it doesn't work. I'll have to look into it but I'm not much of a scripter at all so maybe someone else has an idea.

                      string $blendshape_source;
                      string $blendshape_target;
                      string $result1 = `promptDialog
                      -title "Enter Name"
                      -message "Enter Name of Modeled Blendshape"
                      -button "OK"
                      -button "Cancel"
                      -defaultButton "OK"
                      -cancelButton "Cancel"
                      -dismissString "Cancel"`;
                      if ($result1 == "OK") {
                      $blendshape_source = `promptDialog -query -text`;
                      }
                      string $result2 = `promptDialog
                      -title "Enter Name"
                      -message "Enter Name of Blank Blendshape"
                      -button "OK"
                      -button "Cancel"
                      -defaultButton "OK"
                      -cancelButton "Cancel"
                      -dismissString "Cancel"`;
                      if ($result2 == "OK") {
                      $blendshape_target = `promptDialog -query -text`;
                      };

                      select $blendshape_source ;
                      select -tgl $blendshape_target ;
                      duplicate -rr;
                      select ($blendshape_target + "1");
                      scale -r -1 1 1 ;
                      select ($blendshape_source + "1");
                      select -add ($blendshape_target + "1");
                      blendShape;
                      select $blendshape_target ;
                      select -add ($blendshape_target + "1");
                      deformer -type wrap $blendshape_target;
                      select ($blendshape_source + "1")
                      setAttr "blendShape1.(*)" 1;
                      select $blendshape_target ;
                      DeleteHistory;

                      For what it's worth, I was playing around and got the whole process down to like 20 seconds, WITH the bugs... so without the bugs I'm sure you could do 20-30 shapes in about 4minutes or less.

                      Comment


                      • #12
                        Oh yeah, also a problem with the setAttr "blendShape1.(*)" 1; command. What it needs to say is: setAttr "blendShape1.($blendshape_source + "1")" 1; but the quotations cancel it out in the wrong places. I'll have to lookup the correct syntax for that later. For now I just put a wildcard until I find the correct usage.

                        Comment


                        • #13
                          Julian says bump it up. And we always do what Julian says.
                          Algae grows in your sleep, beware.

                          Comment

                          Working...
                          X