3D Buzz has been around for a long time. I've not watched their unity tutorials yet b/c they aren't playing on this version of linux for some reason, anywhoo that will soon be fixed. But a great list of tutorials, that I can be sure will be worth the time to watch them. I don't get how they make their money but 3dBuzz is pretty cool for sharing all this.
Check it out.
http://www.3dbuzz.com/
Indie Game Development & Tutorials. Primarily Maya and UE4. Now with a hint of Chinese 5 spice!
Fire 1.5
2d Maya Fluid Fire Settings from destruct007 on Vimeo.
Finally! Fire tutorial
The audio starts to go out of sync half way through but whatevs, that always seems to happen in longer tutorials. But just so you know...
Mel script to mess with
http://www.creativecrash.com/maya/downloads/scripts-plugins/c/cache-fluid-and-playblast
Just posted this for people to check out. Its a somewhat polished somewhat rough cache then playblast script. I've commented it heavily so you can check it out and break it down. Only works on Linux right now, since the "system" call is a linux format. A good simple test is to get it to work on Windows or OSX.
Just posted this for people to check out. Its a somewhat polished somewhat rough cache then playblast script. I've commented it heavily so you can check it out and break it down. Only works on Linux right now, since the "system" call is a linux format. A good simple test is to get it to work on Windows or OSX.
The importance of //Notes
Why do I do this to myself? sometimes I make only a few notes then I come back to my set up and say WTF was I thinking?!?! Its not like I can't read any one thing, I wrote it. But why some numbers are there, what settings were doing what, relating to each other how, why, damn. I hate going back to work on old code, even with notes. Often I feel like screw it just re-write it, easier than fixing what was previously broken.
This is one of a few sparks particle expressions... and my eye glaze over when trying to understand this initially, but I have to cram this back into my head. Honestly its not that much code, but to make this code do what you want artistically with easy is another thing altogether. You have to have the math, connections and settings back in your head working congruently.
//creation
//spark strong %
sparkShape.strongPercent = rand(1);
float $strongPercent = sparkShape.strongPercentage *.01;
if (sparkShape.strongPercent < $strongPercent) {
sparkShape.indexPP = 10;
} else {
sparkShape.indexPP = 0;
}
//short %
float $shortPercent = sparkShape.shortPercent *.01;
sparkShape.shortPercentage = rand(1);
//spark scale
float $length = rand(2.5, 3.5);
float $yScale;
float $zScale = $yScale = gauss(0.55, 1) * sparkShape.widthMult;
if (sparkShape.shortPercentage < $shortPercent) {
float $shortRand = rand(.15, .3);
sparkShape.scalePP = <<($length * $shortRand), $yScale, $zScale>>;
} else {
sparkShape.scalePP = <<$length, $yScale, $zScale>>;
}
//index start value
sparkShape.splitIndexPP = 0;
//split scale
sparkShape.splitScalePP = <<0, 0, 0>>;
//split pop amount
sparkShape.splitPopEmitter_emitterRatePP = rand((sparkShape.splitPop * 0.5), sparkShape.splitPop);
//lifespan
float $life = 24.0 / sparkShape.life;
float $lifeRand = 24.0 / sparkShape.lifeRand;
sparkShape.lifespanPP = $life * (rand(($lifeRand * -1), $lifeRand));
//scale spark on second frame of life
if(sparkShape.age > 0.042 && sparkShape.age < 0.08) {
float $mag = mag(sparkShape.velocity) * sparkShape.lengthVelocityMult;
vector $sclPP = sparkShape.scalePP;
float $velLengthMult = $sclPP.x * $mag;
sparkShape.scalePP = <<$velLengthMult, $sclPP.y, $sclPP.z>>;
}
//runtime
//vary fade out speed
float $randFadeOut = rand(1);
if($randFadeOut < .05) {
sparkShape.indexPP += .4;
sparkShape.splitIndexPP += .4;
} else {
sparkShape.indexPP += .2;
sparkShape.splitIndexPP += .2;
}
This is one of a few sparks particle expressions... and my eye glaze over when trying to understand this initially, but I have to cram this back into my head. Honestly its not that much code, but to make this code do what you want artistically with easy is another thing altogether. You have to have the math, connections and settings back in your head working congruently.
//creation
//spark strong %
sparkShape.strongPercent = rand(1);
float $strongPercent = sparkShape.strongPercentage *.01;
if (sparkShape.strongPercent < $strongPercent) {
sparkShape.indexPP = 10;
} else {
sparkShape.indexPP = 0;
}
//short %
float $shortPercent = sparkShape.shortPercent *.01;
sparkShape.shortPercentage = rand(1);
//spark scale
float $length = rand(2.5, 3.5);
float $yScale;
float $zScale = $yScale = gauss(0.55, 1) * sparkShape.widthMult;
if (sparkShape.shortPercentage < $shortPercent) {
float $shortRand = rand(.15, .3);
sparkShape.scalePP = <<($length * $shortRand), $yScale, $zScale>>;
} else {
sparkShape.scalePP = <<$length, $yScale, $zScale>>;
}
//index start value
sparkShape.splitIndexPP = 0;
//split scale
sparkShape.splitScalePP = <<0, 0, 0>>;
//split pop amount
sparkShape.splitPopEmitter_emitterRatePP = rand((sparkShape.splitPop * 0.5), sparkShape.splitPop);
//lifespan
float $life = 24.0 / sparkShape.life;
float $lifeRand = 24.0 / sparkShape.lifeRand;
sparkShape.lifespanPP = $life * (rand(($lifeRand * -1), $lifeRand));
//scale spark on second frame of life
if(sparkShape.age > 0.042 && sparkShape.age < 0.08) {
float $mag = mag(sparkShape.velocity) * sparkShape.lengthVelocityMult;
vector $sclPP = sparkShape.scalePP;
float $velLengthMult = $sclPP.x * $mag;
sparkShape.scalePP = <<$velLengthMult, $sclPP.y, $sclPP.z>>;
}
//runtime
//vary fade out speed
float $randFadeOut = rand(1);
if($randFadeOut < .05) {
sparkShape.indexPP += .4;
sparkShape.splitIndexPP += .4;
} else {
sparkShape.indexPP += .2;
sparkShape.splitIndexPP += .2;
}
Getting up to speed on Javascript
While most programming languages I've used are similar, MEL, Python, C, Javascript(back in the day for web) Using Javascript for Unity is pretty straight forward once you get the syntax.
For the most part I feel like I "got it" but reading over this in my spare time did solidify my foundation.
http://forum.unity3d.com/viewtopic.php?t=36096
and then this
http://www.unifycommunity.com/wiki/
I think going from MEL to Unity's Javascript with this thread is a leap forward, other than the more codey stuff later, it's a lot of the must know.
Javascript is a huge part of Unity, controls juuust about everything (or C#). So if you were a maya emitter/field tweak fx'er who didn't write a lot of functions to get your job done faster then this might not be a smooth transition.
Currenly I'm working my way through this long tutorial, taking my time to understand what we're doing.
http://unity3d.com/support/resources/tutorials/3d-platform-game
My only critique, if you can call it that, is there's a LOT skipped over in the name making it a doable tutorial (already 122 pages) They can't have you make EVERYTHING otherwise it'd take forever so they skip over a lot. That's cool, just leave big gaps to fill in later.
For the most part I feel like I "got it" but reading over this in my spare time did solidify my foundation.
http://forum.unity3d.com/viewtopic.php?t=36096
and then this
http://www.unifycommunity.com/wiki/
I think going from MEL to Unity's Javascript with this thread is a leap forward, other than the more codey stuff later, it's a lot of the must know.
Javascript is a huge part of Unity, controls juuust about everything (or C#). So if you were a maya emitter/field tweak fx'er who didn't write a lot of functions to get your job done faster then this might not be a smooth transition.
Currenly I'm working my way through this long tutorial, taking my time to understand what we're doing.
http://unity3d.com/support/resources/tutorials/3d-platform-game
My only critique, if you can call it that, is there's a LOT skipped over in the name making it a doable tutorial (already 122 pages) They can't have you make EVERYTHING otherwise it'd take forever so they skip over a lot. That's cool, just leave big gaps to fill in later.
RigidBodies Unity compared to Maya
Playing with the RBD's in Unity, noticed a few attributes that don't exist that maya has and I use.
No Bounce, or Impulse (translates and spin).
Bounce seems to be the tricky one. Tricky b/c even in maya how it loses energy is not as straight forward as a divide, otherwise it vibrates forever. And in Unity it will be adding up force, vs losing the 100% opposite directional force.
If its not built in, I can script something, but I'm surprised to see that missing. I think I'll start making a .js toolset for RBD's to add these as needed.
Side note: I need a laptop at work to play with as Linux and work computer are both reasons I do not to have it here.
No Bounce, or Impulse (translates and spin).
Bounce seems to be the tricky one. Tricky b/c even in maya how it loses energy is not as straight forward as a divide, otherwise it vibrates forever. And in Unity it will be adding up force, vs losing the 100% opposite directional force.
If its not built in, I can script something, but I'm surprised to see that missing. I think I'll start making a .js toolset for RBD's to add these as needed.
Side note: I need a laptop at work to play with as Linux and work computer are both reasons I do not to have it here.
Alec Holowka, from Infinite ammo
Yes another post first day blog is live, WTH? No I won't normally be doing that but at my day job I'm pushing particle counts on a sim with self collision, which gives me lots of time to sit and wait. So... here we are.
When learning FX, inorder to be good at it, you really need to be generally good at just about every other aspect of CG, or gaming in this case. Hence, my plan is to learn to be a master of Unity. It has to be if I want to be good at FX(and make games). So part of that is getting back into javascript, as I touched it basically in collage for internet purposes but now that seems to be the choice for what I want to do in game.
I really am enjoying these video tutorials by http://infiniteammo.ca who's taken the time to break down a lot of stuff, mostly on the developer side (vs artistic/3d side) but really getting me up to speed in a jiffy coming from film fx. Anyway Alec Holowka seems to be an awesome guy, so check him out (if you haven't like for-evar-ago!)
When learning FX, inorder to be good at it, you really need to be generally good at just about every other aspect of CG, or gaming in this case. Hence, my plan is to learn to be a master of Unity. It has to be if I want to be good at FX(and make games). So part of that is getting back into javascript, as I touched it basically in collage for internet purposes but now that seems to be the choice for what I want to do in game.
I really am enjoying these video tutorials by http://infiniteammo.ca who's taken the time to break down a lot of stuff, mostly on the developer side (vs artistic/3d side) but really getting me up to speed in a jiffy coming from film fx. Anyway Alec Holowka seems to be an awesome guy, so check him out (if you haven't like for-evar-ago!)
Subscribe to:
Posts (Atom)
-
I'm just going to make you tube vids. Not going to post here and there b/c its redundant. If you like'a dah posts, subscribe to my y...
-
Overburn technique video tutorial from destruct007 on Vimeo . From Peter Shipkov's Overburn technique (maybe not the first to do it b...
-
The real reason for this post is to start thinking out my to-do list, what to do next. The rigging process is slow and I don't want to j...