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.

31 August 2010

New Job

Well, I got a job a Nickelodeon. This is exciting. LA here I come. Going to be working on a show called Robot and Monster. Going to be driving down next week, get settled and then I start. This will be awesome.

17 August 2010

Nickelodeon Test Completed

I finished my test for Nickelodeon. It was fun and amazing. I've never worked with an FX rig before. They really hyped it up like this would be something that would be nearly impossible to finish. I completed all aspects of it as best I could and even add some feature of my own. The feature I added was the functionality to have the geometry land on any surface. From what I saw of their videos, the particle instance had preset rest positions and only worked when they landed on a flat surface. I came up with a way to orient the instance to land on any surface and complex geometry. This gives the rig a much greater flexibility. This was a by product of figuring out how to make the instance ease in to it's resting pose, which proved to be the really difficult part of the exercise. I first went out using a preset position that the instance rotated into, but this seemed pretty unnatural. Zach mentioned that it would be better to find the instance orientation and then rotate that into a predefined vector. He then showed me how he would go about doing that with geometry. It seemed like a workable idea so I adapted it for use with particles. It works almost perfectly with flat surfaces and is pretty darn close with complex surfaces. The premise is that you know your rotation vector. This must be turned into a point relative to a origin. Then you find the axis to rotate said point into a predefined vector, in this case the collision normal. Using the "angle between" command in mel you can get the axis, angle, and euler values of your rotation. Which tells you how far you have to rotate your object to get from where you are to where you want to be. The only thing that would make this effect better is to query the velocity at impact and make sure that the instance always rotates in the direction of the velocity.

At any rate I hope they love what I like what I've done and are impressed with my skills.

11 August 2010

Nickelodeon Test

So my explosion is still rendering. But more importantly I got a call from Nickelodeon and I'm working on an FX test. It's a debris rig with nParticles. Fun times. Very technical with lots of mel scripting. This will be fun. Have a week to work on it and I have most of it down in the 1st day. It's been a really fun challenge so far.

10 August 2010

Rendering

So right now I am rendering the explosion scene. It's taking a long time. 5+ hours per frame. Working on rendering several passes at once into a single exr file. I hope this will streamline the compositing. Once it's out i can working on it in Nuke. So next week... maybe.

19 July 2010

Delays

So, due to circumstances outside my control. I will not be able to finish my explosion project for another couple weeks. Which is unfortunate, as I wanted to put this in my reel for SIGGRAPH. Anyway, I will be at SIGGRAPH. And then will finish this little project.

12 July 2010

Explosion update

Ok, so I've finally played around enough with the settings to start rendering my explosion. Been playing with the opacity and color to get a better look. So it's cooking now; should be done by the end of the week.

07 July 2010

Helicopter Explosion PreVis

I've been working on a little explosion project. Taking all I've learn from maya fluids, particles, and rigid bodies and putting them together into a single shot. Rendering isn't my strong point, so some of this suffers for it. Anyway here is a playblast pumped out today and a test render of the explosion.

Here's link to the playblast

30 June 2010

Insomniac SFX

Well, I've spent the last few days working on an SFX test for Insomniac Games. Had to build a weapon firing sequence with a modeled projectile, muzzle flash, and weapon damage sim. I was limited to 800 particles at any given time, 4 256x256 textures for sprites, and the dynamics sim could have no more than 32 meshes. They wanted not only a realistic sim, but also a stylized sim. So for my realistic sim I created an RPG firing a grenade at a car. I used sprites for the muzzle flash, smoke, and explosion. This is the first time I've ever used sprites. Texturing isn't my thing. I'm used to memory hogging fluids and realflow. My stylized version was a ray gun blowing up the same car. It was pretty fun to do and I learned how to use sprites. I might find a use for these little guys later they make it rather easy to make magical effects. Sorry no video yet.

27 June 2010

Explosion Test 2 / Explinations

So I got a few tips from CG Talk that I'd like to talk about here. More or less talk about the entire explosion technique, or at least my understanding of it.

Fluids run on 4 basic grids: Density, Velocity, Temperature, and Fuel. Density is pretty straight forward so we will start there. Density is basically where you "see" a fluid. At least this is the default way of viewing the fluid shader. Where there is density there is fluid. Velocity is how the grid values are pushed around. Temperature and Fuel are a little more tricky to define in layman's terms. Temperature can be thought of as similar to density. It has most of the same attributes. But think of it as another layer of density that can add velocity vectors to the fluid and add another level of shading: eg incandesce. Temperature is also linked to fuel. Fuel is emitted the same way as temperature and density. Fuel, however, reacts to temperature, converting fuel values into temperature values.

So now that you have a little bit of back ground. I can talk about how my set up works. By the way, that paragraph condenses 6 months of research. So if you're still feeling lost on fluids do yourself a favor and read the flippin documentation in Maya. Then come back. This will make more sense. It will also make more sense if you also do some fluid testing of your own to get a handle on how it all works.

Now my explosion works with 2 emitters and one fluid. The emitters emit fluid values into the grid for about 8 frames then stop. There is a reason why I'm using two of them. One is emitter positive values and the other is emitting negative values. Both emitters also have emission turbulence, one is positive the other negative (inverted if you will). I learned about this from watching and reading some of David Schoneveld's posts. You can see the effect in action here. Anyway this give a nice break up of the fluid emission, the idea is to make sure it doesn't look like a prefect round blob of fluid during the first few frames.

An essential part of an explosion sim is having large emission values. As in emission values over "1". Mine are set to values ranging from 4-10. Just play around with them till you get something you like.

I say play with the values and I mean it. It's very easy to pick them and keep them because it's your little explosion and you like it and want to keep it. But you need to get used to the idea of changing lots of settings and running the sim many, many times. This is why it's good to keep things at a low resolution durning this stage. Now if you are new to fluids "low res" may not mean much to you. So I'll spell it out. My fluid container has a size of 20x40x20 and a resolution of 40x80x40. I feel anything lower than this won't be accurate enough to sim and anything higher will probably be wasting your time. So try to keep your res at about twice your container size. This will sim a lot faster than container that has 4 times or 8 times the resolution.

I think the next important factor is detail. You may notice that your sims tend to look blobby. So lets mix that up. There are several ways to make a fluid behave more erratically. Velocity has a nice swirl function, and there is a built in turbulence function as well, but both of these will tend to break up the fluid after 50 frames or so. Temperature has a turbulence setting. It's the only setting that makes it different from density. This will push the temperature values around the grid in a random fashion, but since the temperature should be dissipating rather quickly this turbulence won't be affecting the sim later. So it's how I add the detail in. Don't be afraid to really crank this value.

Fuel plays a big part in this sim. Now if you're like me you probably started out not knowing what the heck fuel is even useful for. Fuel creates temperature; so what I can emit that you say. And you are right. But by playing with the ignition temperature and the reaction speed you can affect the shape of the temperature. In other works you can keep emitter temperature in places the emitter is not present. Say in the cloud of rising smoke that happens to by carrying the burning fuel. To visualise this you will need to view the fuel values by themselves. Bet you always wondered why you would want to view the fluid in any mode other than "full render". You will see you fluid as just fuel, the fuel will start out full and then burn up. Depending on your settings the fuel may all burn up in the first few frames. You want the fuel to rise and burn and be completely spend with in the first half second or so. This is the trick to getting those gasoline like movie explosions.

The last thing I want to talk about is key framing. Some people seem to do this and others do not. Some people prefer to let the sim do its thing. I prefer to keyframe some of the values to make the sim do things. One value I key is the buoyancy. I start with some high values then key in some low values part way through the sim. The makes the fluid rise quickly in the first few frames but allows it to rise gently for the last part of the sim. It's a bit stylized but I think it adds a good look. You can key just about any value. So I'd start looking at values the work at different times in the sim and key them on when they are needed.

Anyway that's my research in a nutshell. I hope this helps. Here is my 2nd explosion test. It is a resolution of 250x400x250 and uses the principles mentioned above.

Explosion Test 2 from Calibrix on Vimeo.

23 June 2010

Test one

So here is my 1st test for an explosion. I'm using both fuel to drive my temperature and my temperature to drive some swirls it works ok. I'm using a texture to help add detail to what is a lower res sim. Anyway enjoy.

Explosion Test 1 from Calibrix on Vimeo.

Hardware woes

So I cannot do anymore 3D work on my laptop. I've now had my macbook pro for nearly 4 years. And it's now about ready to quit. I think the thermal requirements finally got to it. It's common knowledge that these things run hot and those reports are true. It's a shame, I have had a lot of good memories with this laptop, but it's time to get something that can handle my need for extreme processing power. Once I find some money to do that with anyway. Who knows... all it takes is a decent summer job and I might just be able to an i7 iMac. Untill then I'll be trying to run maya on anything that I can. Hopefully I'll be in luck.

21 June 2010

Projects

So here's the new idea. 1 month, 1 project. Seems simple enough right. So where to start. In honor of the FX Wars challenge on CG Talk, I'm going to start with a Nuke. Yeah I know that was over 6 months ago. I'm just a little slow starting. Anyway, things are going to heat up in the kitchen. Maybe when I'm done I'll have a neat little tutorial on Fluids. Or not. You never know.

20 May 2010

Azureus Rising

So, I have some exciting news! The super secret project that I have been working on is finally finished! And for you viewing please is here. So watch it. Right now.


23 April 2010

Demo Reel 2010

So, I've now just finished my new demo reel. Yay for me. Anyway right now I have to keep the video private until some of the content becomes public. So if you are an interested party, please email me for a password.

Demo Reel 2010 from Calibrix on Vimeo.

06 April 2010

Impact

This is one of the two projects I'm working on right now. I'm calling it Impact. Impact is a 4-5 second clip strictly made for my demo reel. It'll cover most of my skills as an effects artist including: explosions, smoke, rigid bodies, sparks, etc. The premis is a tanker truck being hit with a missile. Anyway here is a quick little render I made of the truck and some of the debris.

04 April 2010

FX rebirth

So, FX blog... Not writing... didn't see that coming. Ok here's the deal. Working on two projects right now. One is a couple shots from a school project that I didn't finish, which is required for my diploma. Politics. The other is this cool little fluid test that turned out really cool, that I'm going to make demo reel worthy and post a tutorial on. So yeah that's cool right? Anyway AZ is still waiting. But until then, I'll post the progress on my two current workings. How about that?