Here's a little MEL script I wrote a while back. It creates a series of constraints down a chain of items with a falloff. A simple GUI allows for changing of ordering and falloff ease modes ( Linear, Ease-In, Ease-Out, Ease-In-Out ). Eased modes use S-curve interpolation for a nice smooth gradient.
There's a few things I'd like to add to make this better, but I thought I'd throw up version 1 and see if it's useful to anyone.
Here's a video demonstrating its use:
Download kmFeatherConstraint
A Blog on Rigging and Programming to be used as a helpful resource and a demonstration of my work. Enjoy!
Showing posts with label MEL. Show all posts
Showing posts with label MEL. Show all posts
Wednesday, August 1, 2012
"kmCurveBtwnPts" MEL Script {
Labels:
Maya,
MEL,
Programming,
Rigging
I present a very simple, clean, and useful MEL script that does exactly what the name implies. Given a selection of objects, the script creates a NURBS curve that intersects with each point in the order they were selected. Additionally, the curve is constrained to the selected objects, so it will always go through every point.
This can be useful for a multitude of practical rigging setups, as well as just to add some simple flair to improve the visual interface for a rig. I'm excited to have this in my back pocket!
Here's a video demonstrating its use:
Download kmCurveBtwnPts
After much trial and error, I was able to find a simple and clean way to constrain Edit Points of a NURBS curve, so the curve follows through the control points. Edit Points (EP) are much less accessible than Control Points (CP), as moving any given EP has a much greater influence on the curve than a CP. In data they are just read-only vectors. But it looks much nicer to have the curve actually go through your control point, rather than just be influenced by it.
I used two useful tricks here that I'd like to highlight:
This can be useful for a multitude of practical rigging setups, as well as just to add some simple flair to improve the visual interface for a rig. I'm excited to have this in my back pocket!
Here's a video demonstrating its use:
Download kmCurveBtwnPts
After much trial and error, I was able to find a simple and clean way to constrain Edit Points of a NURBS curve, so the curve follows through the control points. Edit Points (EP) are much less accessible than Control Points (CP), as moving any given EP has a much greater influence on the curve than a CP. In data they are just read-only vectors. But it looks much nicer to have the curve actually go through your control point, rather than just be influenced by it.
I used two useful tricks here that I'd like to highlight:
- MEL command "eval()" interprets a given string as a command and executes that command. This allows me to iterative-ly compile my curve command, since a single curve command requires all the points to be known. Once I loop through objects, obtain my points, and add it to my command string, I can use "eval( $curveCommand )" to run it!
- "pointCurveConstraint" is a very useful constraint that cleanly constrains a curve to an object. Constraining EPs is not possible, constraining CPs or clusters of them doesn't work either, and binding the curve to joints (my first approach) produces non-smooth and undesirable results. This solved all my problems!
-K
Tuesday, July 17, 2012
"Gauntlet" {
Labels:
Game,
Maya,
MEL,
Programming,
Rigging,
Short Film,
Simulation
An old woodsman possesses an ancient gauntlet with the power to summon armor and weapons at will. This weapon is put to the test as he discovers that his gauntlet is not the only ancient magic in these woods.
Created by Jeff Belgum, Katlan Merrill, and Ben Smith Sound design by Jesse Rope Score by Anthony Ferraro and Zach Johnston
Finally it's done! Here is my thesis short film, entitled "Gauntlet". I had the pleasure of working with two other talented friends of mine, Jeff Belgum and Ben Smith. We all put a couple years of our lives into this project, and many late nights. We wanted to push the envelope of student films with stunning visuals and a dynamic action sequence. Even if we produced nothing, it would have been worth the first-hand knowledge of going through the process of making an animated film from start to finish.
Role {
My roles in the creation of this film were primarily in the pre-production section. I was the Lead Designer, Lead Modeler, and Lead Rigger, so I designed, modeled, and rigged the two characters, the "Hero" and the "Beast", in addition to helping with story, layout, simulations, hair, rendering, and animating. I also managed and automated parts of the pipeline to speed up workflow with MEL scripts, vrscene files, and program integration.Beast {
The Beast proved to be the most complex and time-consuming rig. I got a bit creative with the control scheme, which made my rig unique and intuitive. The back controls are all exposed well above the actual model, allowing the animator to always select them from any camera angle. The custom control spline shapes were created in Illustrator, and each describe the action they perform. My goal with the rigs was to create the most automated, easily animated rigs possible, while maintaining a good amount of control. This led me to the decision, for example, to make the tail fully simulated, requiring no animation at all to look smooth and realistic.
I created my own muscle system for deformation at particular joints, like the shoulders, hips, and biceps. I had experimented with maya muscle, and due to the buggy and uncontrollable nature of them, decided to make my own. It is a simple system, taking 2 points as attachments, and based on the distance between them, bulges or stretches the NURB muscle object using user-created SDKs. Complete with a basic MEL interface, I was able to get decent deformation at all points with full customization and no bugs.
Hero {
Please comment if you'd like me to break down any part of the pipeline! I'd love to hear your input and questions!
-K
Subscribe to:
Posts (Atom)

