Walkthrough: Jitter Deformer Node
By Richard | November 19, 2009
Hey all! As promised I will be explaining in my own not-so-technical words how I got a my own python scripted deformer node working in Maya! This is a reeeeeeeeeally beginners’ level post and shouldn’t be read by API expert.
Also, bear in mind this is not the jitter node from the devkit examples. I started with the yTwistNode file and worked my way to a deformer that moves all vertex of a mesh to random directions (controlled by a multiplier value).
Here’s a little screengrab of meshes being deformed with my plug-in. Thanks to my co-worker Paulo Nogueira for the idea of using toon shading with this node to achieve this nice hand-drawn trembling effect!
Jitter Deformer in action! from Riggerman on Vimeo.
Ok, so I’ll explain what I see it’s important in general first and then later concentrate on the actual deformation algorithm.
Read the rest of this entry »
Topics: Maya Python | No Comments »
Node Frenzy!
By Richard | November 17, 2009
Hey all! With some spare time at work lately, I’ve decided to study python scripted plug-ins again!
I’m a real beginner in this area so don’t flame me for my thoughts, I just want to write a little bit about my on-going learning experience.
Maybe this will make justice to the “web log” thingy.
Well, I gotta say that in the very beginning this can be frustratingly hard! But let me tell you something: once you start to get the hang of it and begin to understand how API scripting works in Maya, it gets a lot easier! I promise you. As you probably did when learning MEL or Python scripting, you just gotta get used to its common commands and understand certain rules to access and modify data - then you begin to feel like you can do it! (this feeling that you’re learning and evolving is the most exciting part to me!)
NOTE: If you are a complete python beginner, I suggest you learn it before venturing into API and get a good grasp on object orientation concepts or else it will look like something out of this world to you!
I googled a lot for information while trying to get the scripted devkit examples to work. Then I’d modify something and try to get it to work again… I find this method very fun and rewarding! And usually I learn a lot this way.
Well, I’ll try to share a little on a node I did. It’s really nothing much, just a shape jitter deformer. This is a simple example but a big personal achievement for me because I always thought writing a deformer node was “something-really-hard-that-only-super-intelligent-people-can-do”. In the end, I was able to study, understand and write it in about 3 days in my spare time.
Stay tuned for the walk-through!! And a little teaser for you who got interested on this:
| Jitter Deformer Sample |
Topics: Maya Python | No Comments »
2008 Reel
By Richard | June 19, 2009
Whoops, I forgot to post this little guy at the end of the last year!
It’s been ready for some time already. Expect a new reel with newer stuff soon.
Download my Character TD Reel for the year of 2008 here:
![]() |
| Richard Maegaki's 2008 Rigging Reel |
It’s about 28mb in size and features some professional and personal projects.
I hope you enjoy watching it as much I enjoyed making it!
BG music from Soukaigi!
Topics: Animation, Rigging | 3 Comments »
StickyIt - Automatic Sticky Lips solution script
By Richard | June 4, 2009
Hey everyone! Long time no see!
Sorry about that, I’ve been really busy lately with personal stuff. To be more specific, about two months ago I started dating a really, really nice girl! And I must say, that does change the perspective of everything! It’s a very renewing and profound experience to get to know someone so close - I recommend it to everyone; yes, it’s my first girlfriend. And I’m loving it! I mean, her!
—
Anyhow, let’s get back to business.
I’ve been studying the Sticky Lips effect for about 2 weeks now, after seeing Matt Schiller’s Reel. I’ve seen this a while back but didn’t get motivated enough to try to replicate it. Until now. Because I’ve been studying Topological Navigation of meshes, to achieve mirroring and other crazy stuff without needing the mesh to be world-space symmetrical - that means the script navigates through the actual vertices and edges, it doesn’t check if a point exists in +X and in -X with a margin nor needs the mesh to be on the origin of the scene.
You can check a really nice tutorial on the sticky lips rig by Volker Helzle here.
Motivated with the current studies AND a competition from TD College to get a full free course by showing my most advanced technical piece of work, I made this script in about 4 days. And here’s the result:
StickyIt script demo - Automatic Sticky Lips solution for Maya from Riggerman on Vimeo.
Thanks to Luiz Elias for providing these awesome models for the recording!
The script is still not complete! I’m adding an automatic sticky attribute so you don’t need to animate it everytime. There’s also some weight fixing to do when you add more and more dropoffs. Enjoy!
Topics: Rigging, Maya Python | 4 Comments »
Paint Skin Weights Tool Filter
By Richard | March 1, 2009
Hey all, did you know it’s very easy to change Maya’s user interface?
It’s everything written in MEL (there’s a ton of scripts) and you can find them in a folder that is located somewhere like this: MAYADIR\scripts\others
As a character rigger, I usually do the paint bind skin process a LOT. And since I’m not a math genius to write an automatic-surface-recognition-skin-cluster, I only did a little change to the original Paint Skin Weights Tool and added an influence filter.
That’s right, no new pop-up menus to mess up my workspace. I just added a text field to filter out my influences.
Here’s the full influence list:
![]() |
And here’s the filtered influence list:
![]() |
You can also have multiple filters at the same time, very handy.
![]() |
If you wanna try customizing yours too, it it’s very simple. Try taking a look into artAttrSkinProperties.mel and artAttrSkinCallback.mel files.
For the filtering algorithm, python can be really useful:
filter = ’sometext’
listToBeFiltered = [’notext’, ’sometext_here’, ‘alotoftext’]for eachWord in listToBeFiltered:
if filter in eachWord: print ‘We have a winner!’, eachWord, ‘contains’, filter
I think I’ll be adding some features for locking weights and such. Have fun!
Topics: Rigging | 2 Comments »



