22 October 2010

Silly Questions

So if you've ever been on a forum like CG Talk or the Unofficial Realflow Forum. You'll notice these questions: "I'm new to Maya and am thinking of going into FX, I would like to start by making an explosion. How do you make this effect?" Or "I would like to make the effect of water forming into a shape. I'm new to realflow how should I make this?"

This is like saying, "Hi, I'm thinking of becoming a Doctor; I just bought a few knives.  How do I preform brain surgery?" Now that sounds complete absurd, but it's essentially the same question, just in a different profession. It's the same reason to you should ask an artist to paint you a picture for free, or give you a great deal on web design. I don't ask my contractor friend for free remodeling. That's just common sense.


Don't be that guy.

18 October 2010

Hidden Particle Attributes

So I want to tell you about some particle attributes that you may not know existed. Maya's help docs are lacking in this area. If you want to add a Per Particle Attr, you can look at the built in particle Attrs, like radius. You'll notice some collision attribute, but if you search for them in the documentation you won't find them. It's like autodesk forgot to mention them. Which so irritating since they are so useful. But I'd like to tell you about something that is even more secret. There are 2 attributes that don't appear on this list or in the docs. They are "ageNormalized" and "event". These two are special because not only are they undocumented; they don't even show up in a default particle! You have to force maya to create these attributes for you. So I'll tell what they do and how to make them.

First is ageNormalized. Most of you use this guy without knowing it, but you probably don't script him. Everytime you create a ramp and map it to age Maya actually creates and adds it to the ageNormalized attribute. This attribute shows how long a given particle will live in values between 0 and 1. A normalized age. It's useful any time you want to change something based on age. Like say radius.

The 2nd one is event. This one tells you how many times a particle has collided. So you can use it as a collision counter. You can use this to trigger expressions at specific collisions. To set it up you have to go in the particle menu and create a particle event. Then go ahead and delete the event. Now you have an "event" attribute.

16 October 2010

Noise

So I really need to let you in on a little tip. This is something that I found so amazingly helpful. So you made your sim. You're emitting particles or fluids or whatever; and it looks pretty good. But it's missing something. It just looks a little off or fake. It doesn't feel quite organic. Well, let me tell you about something that will help you solve that problem.

Do a little research, you'll see that everything moves. This might sound self-evident, but it's also important. I'll use fluids as an example, since I've been applying the technique most with them. Say your making a fire. (Yeah, I talk about fire a lot, I like fire; deal with it.) And you've got some nice turbulence and swirl and emission and all that good stuff, but there's something wrong with just playing with the sliders, finding something you like, and simulating. The sliders don't change. Think about it. In nature, fire burns from fuel, which is converted into heat. But the heat being converted is never constant. And the fuel being used up is never constant. It's always changing. Your fluid needs to replicate this behavior.

Enter expressions: These guys are life savers. Now you could keyframe all your attributes, but what you want is randomness, and managing keyframes is sooo incredibly tedious. So I'll teach you a little expression that will save you tons of time. This isn't a make awesome button, it's just a little tweaking that adds character to your already good sim. If you didn't guess from the title: Noise. This function is awesome. Think of it like a sin wave, but with randomness built into it. It's basically like mapping a noise texture to your attribute and animating it over time. The expression works like this:

fluidShape1.attr = currentValue + amountScalar * noise(time * frequencyScalar)

Now this formula might not make sense. Hopefully, you've taking some math classes in college. Really, this is just preCalc level stuff so don't be too scared. Anyway it works like this: Noise generates a wave-like curve. Time tells us where to look on the noise function. The frequencyScalar is a float value that compresses the noise function. Or in layman's terms: makes it go faster. The amountScalar tells you how much you want the noise to effect your attribute. A value of zero means it will do nothing. A value of 1 means it will change your attribute by a range of -1 to 1. The currentValue is the value you want your attribute to be centered on. Here's a diagram of the noise function (or more accurately a sin function but it works the same way):

So here's what it might look like on an attribute:
fluidEmitterShape.heatEmission = 2 + 0.3 * noise(time*10);
So I want my temperature to emit at about 2 and vary by 0.3. So my values for temperature emission will be between 1.7 and 2.3. The noise function will change based on time given in seconds. So at 12 frames, time = 0.5. And time is then multiplied by 10 to speed it up.

So I hope I've explained this well enough. So now you have a new mel function to call and how and where you can use it.

14 October 2010

Fast to track to becoming a better FX artist

So, I know learning FX can be pretty tough. No one really teaches it and there usually little to no documentation. Add to that it's hard to have a good eye for what you are trying to create. But I do have a tip for giving yourself more technical skills. CG Talk. Now this sounds kinda weird but stay with me for a bit. Most people go to CG Talk with their problems. Like "how do I make fire?" Or "maya crashed what do I do?" Which by the way, don't post those questions, they're annoying and show that you haven't done any ground work and want someone to just hold you hand and feed you the answer. Which is not how art works. But there is a much better way to use the forums. Look for posts where people ask legitimate questions or have some problems with their setups and instead of thinking, "Oh, no one has an answer, I'll just move on." Go and find an answer for them. It's not for them, it's for you. Just digging around will teach you so much. I can't tell you how many tricks I've added to my skill set just by looking at some guys crazy weird problem. They may not help you right now, but any knowledge here is good. And if you can't fix the problem the very least you can do is recreate it. Life's not going to hand you a magic skill set when you get out of college. No on in born an artist, you have to work at it. Anyway, thought I would share some exercises that I do with you.

05 October 2010

Windy fluids

So those of you that are new to fluids and fire in particular my have noticed this odd behavior of fluids. If you turn the boundaries of your fluid box off and run the sim your fluid will fall over like it's be pushed by a wind force. Like so:

This might seem really strange and it is. But it's pretty easy to fix. Under the dynamic simulation tap, you'll see a damp slider. Give it a value of something like 0.01. This stabilizes your sim. So now your fire won't be blown over by some crazy non-existent wind storm.