Transcripts
1. Course Introduction: Welcome to the final installment of Maya for Beginners: Dynamic FX, where we're going to cover how to create simulations inside of Maya. We're going to use this final scene to create a bunch of different types of simulations. But first we're going to start simple. We're going to start with rigid body dynamics and doing some destruction. We're going to break a brick wall, we're going to crash this little glass here, and then we're going to move onto more customizable operations like creating a customized shattered effect that we can use in our scene to get a more complex rigid body dynamics simulation for our bones character busting out of the ground here. Then we're going to move on to the MASH toolkit inside of Maya and the dynamic network that we can use to create a bunch of fireflies. Then we're going to use nHair to create a rope like this, and then we're going to use nCloth to attach a banner to that rope. We're also going to use nCloth to create a vest for our bones character. Then we'll learn about Bifrost and we'll start with this liquid simulation and how to avoid some common pitfalls when using Bifrost. Then we'll use Bifrost to create a smoke simulation for our bones character when he's busting out of the ground and how to vary that up and make that look more realistic and appealing and interact with our scene. Finally, we'll do some more texturing work to finish out our scene so we can take our final animation scene from something like this gray shaded render to something like this final, well-lit and textured scene. If this is the first time you're seeing any of these courses, I highly recommend you going back and starting with modeling, and going to texturing, rigging, animation and then this. This is the final section of the course series so you're meant to have some experience in Maya by this stage. I hope you enjoy this final installment of Maya for Beginners. I'm really excited to share it with you and if you like it, please leave a thumbs up review. Also follow me here on Skillshare, and I look forward to seeing the projects that you share with us. Thanks for watching. See you in the course.
2. Scene Scale: In this lesson, we're going to cover one of the most important aspects of any effects of simulation or dynamics simulation, and that is scene scale. Let's take the measuring tool out, and figure out how big this character actually is that we've created. We'll go to measure tools, we'll go down to the distance tool. It doesn't look like anything has changed where we actually have the tool selected. I'm going to go down here, and I'm going to hold on X so that I know I'm going to select the grid, I'm holding X and I'm going to click in the center here, and then I'm going to go up to the top of the character, hold down V and select verb texts on the top of its head. If I look here, it says 33 and 33 means 33 centimeters. If I click the settings over here, this little gear wheel with the person running, pull the preferences, you can also get to preferences from Windows, settings and preferences, preferences. If I go to settings here, you can see that the working units is centimeters. We know that 33 means 33 centimeters, which is not very tall, for people who are more familiar with inches and feet, six feet is 182 centimeters roughly. If this character was to be life-size, then we need to scale it up quite a bit, because the one thing to remember with scale and doing any type of effects work, that's cloth, fluids, fire, smoke, destruction, and whatever it is, Maya always works in meter units. That means that, this thinks that it is 33 meters high. In my head, I like to work in one to 100 scale. I want to get this accurate for the centimeters, and then I'm going to in every effect simulation, use the scale tool for the nucleus and scale it down. That'll make a lot more sense later on, but basically, if we look at it in Photoshop, we have one centimeter equals one meter. Under this condition, the scene scale is set to one, and this will be an attribute, I'll show you where it is later on, but just so you know why we're doing what we're doing. We have this relationship, and so this thinks it's 33 meters tall. If we wanted Maya to think this is actually 33 centimeters tall, we need to divide this scene scale by 100, because there are 100 centimeters in a meter. For that to happen, we need to divide one by 100, which means that the new scene scale would be 0.001. That would make the real-world units make sense to the dynamics. This is our model, and this is the effects that we're going to create. We need those to equal one another, and we do that by setting everything that we want accurately in centimeters, and then we reduce the scene scale to 0.001 or something like it. This is just a guide for how Maya figures that out, how do we scale this guy up? I want to select the locator, and let's say we want the skeleton to be 182 centimeters or six feet tall. I'm just going to drag this up until the distance measure says 182. Then I'm going to take the locator down here, which is the little green locator, and that's actually the measuring locator, which I don't want, I want the bones root locator, and I'm just going to put this at zero so it's all clean. Then when I scale this up, you can see that we forgot one little thing when we're reading this guy, one connection that allows us to scale it up, we're going to fix that right now. If we look at the geometry, if I select it, we can see that if I had F over here in the outliner, we can frame it up, and we can actually just select the head group, and we can see that's where all the constraints live. We have the parent constraint happening there, which we can see right there, so let's add the scale to that group as well. I'm basically just going to select the bones root, and I'm going to command click the head group, and go to constrain, which is under the animation menu, and I'm going to go to scale. Now, when we select the bones root, and we scale it up, the head goes with it. The only little thing that we can do is actually do the same thing for the hat, because the hat's going to want to stay the same size as the head as well, so let's just do that real quick for the hat. I'm actually going to get that back open, and go to the bones root again eventually. Let's scale from the hat control group. I'm going to command click the hat control group and constraints scale. Then I also want to do that to the hat _GEO group. I'm going to select bones root, and then command click hat_GEO, constrain scale. Now the hat should scale as well, so it's always going to fit the skull head. Now we can scale this up to be six feet tall. Now all of our dynamic simulations are going to be ready to use this rig at a 0.001 scene scale, as rough guide, we might do something like 0.05 or something like that. But basically, know that we're modeling and creating everything in centimeters, and no matter what we changed the preferences as, we can't go on here and just say, you know what, use meters now. If we go to settings and say meters, that won't matter to the effects simulation or millimeters, whatever we do, the effects is always going to use meters. That's something when you're learning Maya, you just have to accept and realize that's what's happening. Because a lot of times you're going have simulations that are going to feel really slow, or just not feel right, and it's going to be probably because of the scene scale. I want to have that be in the first lesson, you'll learn about scene scale, It's a little boring, but in technical. But if you've made it this far in the courses, then I think you are beyond beginner now, and you're ready for some more intermediate learning because that's what a lot of effects are, is getting pretty nitty gritty into some attributes in Maya. In the next lesson, we're going to look at creating some shatter effect and destruction with bullet Physics. Thanks for watching.
3. Mash Brick Wall: Before we get started into learning dynamics, I want to set up a scene and introduce you to mash. Mash is the motion graphics setup for Maya, so we're going to use it to actually model a brick wall. Let's create a cube and zoom in on that and I'm going to hold down D, drag the pivot to the bottom while holding V so it snaps to the bottom and then hold X and snap that to the floor of the scene. Then I'm going to increase the scale and let's choose the Z direction by two so that it makes a brick shape. One thing you have to keep in mind about mash is you need to freeze the transformations of everything before you get started because it will not respect this type of pivot moving and all this stuff if it's not frozen. If we were to make a mash network so that we could duplicate all these out and make bricks you would think the center pivot is where we made it originally. We need to freeze transformations first, we're going to modify freeze transformations so that's all set, let's go to mash or hit create mesh network. By default, it just gives you these rules because it has to choose something. Let's open up the mash editor, so we get this single window. In that one you can see there's this mesh, now work and then there's the repro mesh. Basically there's two types of networks you can make. When you open up the option box, you can choose mash or in-sensor. In-sensor is basically an instance. It's not its own independent piece of geometry, whereas mesh creates a mesh. It would look different and if we want to decide is switch later, we could actually go to utilities and switch mash geometry type. We actually have to have the mesh waiter selected as what the thing said. Switch mash geometry types. Now you can see it's an in-sensor it has a different icon. That means a couple of different things for how we're going to use it. But what we need is the geometry so we need to switch back to the repro mash. That's why I didn't go in here because we didn't need that. Now we have Mash, when we click on it in here, we should get to the Mash waiter kind of menu here we have all these different options. We're not going to cover everything right now, but we're going to cover maybe a little bit more later. There is two big things to think about right now. That's the difference between distribute, which is what we're given by default. We're going to increase the amount of objects here and distribute, but the end point doesn't change, and that's controlled by the distance here. It makes it a little harder to keep, let's say me like the distance between these bricks for some reason. I just want to add more of them. Well, that makes it pretty difficult with distributed because let's say we want to add more bricks, sorry, we had more bricks now the spacing is all messed up. Now I'm going to go here and try to figure out the spacing again. Instead of doing that, I like to use the replicator node here. To use that, we need to go to distribute and just get this down to one and then zero that out. We just, don't want to mess with the distribute one. We'll go to mash and then we'll say add the replicator. I'm just left clicking on all this. It adds another node here. You can see there's new tab up here. For the replicator, we want to go in the Z position and let's add replicants. Let's do maybe ten. Now the difference with a replicant verse, the replicator verse distribute, is that we can add as many as we want. Let's say you like this spacing. Same example, we'd like the spacing now and we're going to add more. Well guess what? We can just add as many as we want and we don't have to worry about the spacing changing, so that's super helpful. We know the distance of the brick is two across because we scale it by two. If we say one or like lets say 1.1 or sorry, 2.1. Let's say 2.01 because we want like a tiny little gap. That's based off the fact that we scale it by two so it's going to be two here. The geometries all in one piece and that's okay for now. What we're going to do is add another replicator or let's add another stack of bricks on top of this. I'm clicking this to go back to this little main menu area. I'll add another replicator. Let's go up by one position or one, and we need to add replicants here. We just want one and we can also offset the position as well, and Z. Let's say we want to offset it by one as well so it's right in the like middle of this. We do want to give it a little bit of a gap because when we use this bullet system we're going to use. We need just a tiny little gap so things don't explode. When it is trying to simulate the collisions, if it's already colliding when you start, it's going to blow up and it's not going to be useful. That's what we need to create these little gaps between everything. Now we have one layer and there's a couple of different ways we could duplicate this out to make a wall to get a vertical. I'm actually just going to get super conception if you've seen the movie, you get inception with this stuff. I'm going to click the repro mash and actually make a mesh network of that. This itself is a mesh network. We can make another mesh network of this one because it's geometry we can do that, if this was an instance, we couldn't do it. That's one important reason why we're using the repro mash and the geometry type that we are, so we say create mesh network. We get another mash to it automatically hides the first one. That's just something mashed does. We can again choose to use the replicator instead of distributed here. Now we can see you have tuned and works. We're going to want to work on the second one. Let's add a replicator. Let's make that down to one again. Let's zero the sound is really matter because we only have one, but just to keep it clean, then let's go up. I guess we need to go up and two, because we have two layers we'll, it's going to be like 2 point I forgot what the offset is it that we created. We can just go up a certain amount. I don't know why and on some random ones at hides the bottom one. But luckily for us, if we're trying to make a square wall, it doesn't really matter, doesn't do it there. I haven't spent time troubleshooting that. The other thing we can do is just if we want to get this in the center, we could add a transform node, which is right here. Then we can just command and clicking in the Z channel box here. Just centering this up. Let's double-check the gaps here between it looks like that was pretty those actually accurate, so we have an actual gap here, which works. Now what we can do is duplicate this out. To separate it from the mesh network. Now we're done with all the mash stuff. We have, this is an independent piece of geometry now. Now I hide the original mesh network. But I call this wall, and it actually doesn't really matter that I'm renaming it. Because what I'm going to do now, because this is all one piece for the bold system. For this to work with the bold system, we need to separate all this out. Let's go to modeling, mesh, separate, it's going to separate everything. Then we need to center the pivot of everything. Because if you notice it's all on 00 and we want the both physics to work. It's going to figure out where each of these bricks should spin and rotate around for its mass is going to be based on where its center pivot is. We need all of these center pivots to be accurate to each brick. We can go to modify center pivot. Now moved each one of the sample that's to each of the bricks so that works. Just for fun, I'm also going to edit, delete by type the history. Now we've created a brick wall that we can use in our next lesson to destroy it. I'll see you next lesson where we will smash a ball through this wall. Thanks for watching.
4. Bullet Simulation Intro: In this lesson, we're going to smash a ball through the brick wall that we've modeled. We're going to use that with the bullet system and I should take a step back and say the first lesson we talked about scene scale and how important that was and for the bullet solver, it's a little different. Bullet solver is based on game dynamics, and the scene scale is more specific to the solver in Maya for in cloth, in dynamics, in hair, all that kind of stuff. So we're actually going to not care as much about the scale at the moment, if we didn't like the speed of things, then in the bullet solver, we would mess around with the mass of the objects. For our purposes, right now, this should work pretty well, I think so. Let's just move forward with that. So I'm going to create a ball and I'm also, in a later lesson, going to show you another way to use the bullet solver for our main scene. Let's just position this ball sphere, and we're a little ways in front of the wall and let's select all of the wall, every piece. First we need to load the bullet solver, so let's go to the settings and preferences, plug-in manager and we need to make sure it's loaded, so it's loaded here, auto load. When we go over to effects, we should have an option here that says bullet. Because we want this whole system to act together and basically be a set because it's a wall, we want to choose rigid set. So now we have, in our outliner, a couple of new things. We have the bullet rigid set solved, we have the bullet solver itself, and if we open up the attribute editor here, and we go to the bullet tabs here, we get some interesting new options that will help us set the type of simulation that we want. So again, we want to make sure we right-click on the timeline and go to playback speed, and then it's set to Play Every Frame and that'll make sure that it calculates the simulation correctly. I'm going to extend this out, just so we have a little more time here on our timeline. If I hit Play right now, it's just going to drop to the ground because we haven't chosen to turn on the ground plane, so if we turn that on, I'm going to guess things are going to explode a little bit. This is one thing that I forgot because this brick is out by itself, it's going to fall off. We could delete the bullet solver and delete that little piece. Actually, I think we can exclude it. If we found it in here, you actually exclude it by going to bullet, rigid sets, remove selected, or we could say select bullet solver, and then delete it, delete entire bullet system, and delete this tiny little brick in the corner so it doesn't fall off, and then recreate that, make another rigid set, again, but anyway, if you just want to fix that, that's how you could do it. So let's grab this and let's make a active rigid body, we're going to get an error, which is just a buggy thing, I will admit bullet solver is kind of buggy, it's not perfect for everything, but there's some cases where it works pretty well in these rigid body examples. So now we have the sphere selected, it has its own rigid body attributes. Now, if we wanted to animate the ball ourselves, flying through the wall, we could do that. We could set a key, just like we've set keys in other parts of this series of this course, but we want to make sure that we have the body type set to kinematic. So kinematic means that it will respect any animation you have on an object, and it will not include it in the simulation in the sense that the wall will not affect the ball, but the ball will affect the wall if we animate it into the wall. All I'm going to do is leave it as a dynamic rigid body and then I'm going to give it an initial velocity so that it will fly forward. Forward in this case is going to be negative x, so we can say, we know x, y, and z, and we can see this is initial velocity, so we can use our common sense here and think, "This is maybe what we want," because initial velocity when I initially give it a speed, and we want it to be negative x, which is the first one here, because almost everything in Maya is x, y, z, so x, y, z, same thing down here, x. Well, this is a matrix, so it's a different plane, but same thing with velocity, angular velocity, this would spin it around, if we want it to spin it around. So let's give it a negative, maybe 50, something like that and let's hit Play, things are going to probably explode a little bit, not too bad actually. Let's give it more mass. Instead of increasing the speed, we can just give it more mass. You can see, right now, it has a hard time going through, but if we just increase the mass a little bit, I suspect this will have no problem going through. Cool. So we've created our first simulation in Maya using the bullet solver, the bullet system here. Now, the other thing is we could create a glue system here if we select this and we go to the initial state here, we can say glue shapes and just crank this up, and that's supposed to help keep the bricks together but you can't really tell that big of a difference between what we just did. We might have to crank these values up pretty high but for our case, the way we modeled this, it works pretty well. Because we're using the dynamic simulation, for the ball, it's actually being affected by the wall trying to keep it from moving forward, so it slows down as it hits the wall which is nice. If we try to animate that it might be difficult. One tricky thing, that might be fun, is if you want to use this to start with. Actually, let's leave that where it is and decrease the mass a little bit. We can actually bake the simulation of this ball, so we could go edit, keys, bake simulation and just the defaults are going to bake every frame here. So we have this ball is key framed, its position and everything, but none of that will matter unless we say kinematic rigid body. So now we know it will always use that same animation that we just send to use in the simulation. So it'll actually make the simulation run a little faster because it's not having to dynamically calculate the ball being affected anymore by the wall. So that's one little workflow thing that might speed things up, but in our case, this is a pretty simple scene. So yeah, that's how you break a wall with the bullet system. In the next lesson, we're going to look at shattering objects and I've got a special script that is actually going to help quite a bit with that and we're going to learn how to work around some finicky issues with Maya regarding shattering objects and using the bullet system with them. Thanks for watching.
5. Bullet Shatter: In this lesson we're going to shatter this object and then use the bullet solver system to drop it onto the floor. Just for fun, I'm going to make a floor here and I'm going to save this out actually before I get started. Let's grab this little cylinder and raise it up. We're going to shatter it onto the floor and rotate it at some angle of some kind. We want to delete the history on this thing. The bullet solver needs no history on objects. Even though this is a pretty new object, I just exclude a couple of things, you have to have no history on something. Not for the bullet solver, but for the shattered, rather, it will not let you shatter an object if there's any history. You have to go delete by type history. When you get to the shatter from the effects tab here, let's go to effects and we go to shatter. There's three different types and we want to do a solid shatter because we want solid pieces. Let's just use it and you can see how that works. I'll hit apply and it shatters the object. In the out-liner we have an original object here. We can hide that. Now we have a group of each of the shards of the object. You can notice that if we were to drop this thing on the ground, each one of these shards, it's the same size. We can drop it on the ground and use a bullet solver. Let's just do that first, then I'll show you how to shatter this in a better way later. Let me just delete this and also show you the other settings here. We can hide this. You have to have it on headman to actually use this tool. We can increase the edge jaggedness and hit apply. Each of these shards, I think on object mode, now the edge and the interior also has a lot more texture to it. It's jagged, obviously as the edge jaggedness thing, attribute signifies here, that's behind the original. Now we have our edge jagged cylinder, we need to create another rigid set. I'll go back to the bullet system as we've done before, and will say rigid set and we'll go into the attributes of the bullet solver. If we hit play right now, this should explode because the kind of default settings for the bullet solver is to have a collision shaped margin of 0.04, meaning 0.04 is the margin to start calculating the collision. Because we shattered this, these seams of each shard are right on top of each other. We need to tell that margin to be at zero because these pieces have no gap between them. It'll still probably explode a little bit. That's okay, but that's one of the first things we need to do. The other thing we need to do is instead of using a block box collision type, we will use a hole. I will just show you this in the visualization. You can visualize this, you can try, Maya crashes on me every time I try to do this, but if you click this, it will say collision shape. Basically what it's doing is it's around each shard, let me just unhinge one, imagine this shard with a box around it, like a bounding box. It finds the maximum distance around the object and create a box. That box is what it's using to calculate a collision. Even though there's no object over here, because this point of this side over here, if we can forward, we can see it because this point, you can draw a straight line across and down here. Anything that enters in this area, even though it's not a piece of geometry, because we're using the box collision shape, it will think it's colliding with something even though it isn't. We can change the collision shape of this in the bullet solver for the initial state. We can go to collision shape type and we need to choose hull. Hull will basically wrap around each of these shards, so it will be much better representation of collisions for each shape. When I hit play, it's probably going to be the same thing. Oh, I hit that as why that piece is still there. It's not exploiting as much as you can tell, but there's more we can do to solve for this. We need to turn on the ground first off. Let's go back to the main bullet solver shape here and turn on use ground plane. You can see it is hitting the ground kind of accurately. If we were using the box shape, it wouldn't be as accurate as this, even at this point. You can see how it's actually touching exactly the point at which it's shape is at. But if this was the box, it would be much less accurate. I hope that's making sense and I wish I could visualize it and Maya wouldn't crash when I would do it, but just imagine like a box around this and that's a big no, no, we don't want that. That's why we chose the whole collision shape type. Let's turn on glue shapes and crank this up. That should hold this thing together now. Let's hit play. Now, because we glued the shapes together at a pretty big threshold and we're saying Max constraints per body. That's saying how many other objects am I going to constrain myself to. Six is quite a bit like that wouldn't make sense for like a shot over here to be connected to a shot over here. I'm going to actually just reduce this down to maybe two. Let's just crank the threshold down and just pull this back and we can start increasing or decreasing this threshold. See if we can get this thing to break, how we want it to. Now it's starting to break as you would expect it. These shards are staying together because there's this threshold that's not being met for these other shapes. This also gives me a good time to talk about, unfortunately that bullet is not super accurate every time. You can tell this things just keep playing back. I haven't changed any settings and we're getting a different simulation every time, pretty much. These would have been pretty consistent, but you can tell this is totally different from what just played. We'll get some of these again. Then for whatever reason, now we get a different one. You want to cache these out once you get done and I'm going to show you how to do an Olympic cash later. The only other thing I would say before you'd want to cache this out. The reason why I'm saying you want to cache it because like I just said, every sim is different every time I play this back, it's different. If I get one, I'm like, oh, I like this but I didn't catch it, then I'm just kind of screwed,. I want to cache it and then I get to decide if I want to keep that cash or not. But if I play this and I'm like, I like how this play out and I go to cache it and I just have to cross my fingers that it does something similar to what I just played back. That's a limitation of bullet. Really most dynamics unfortunately in Maya, they can be inconsistent between playbacks. That's something you have to anticipate and start to cache things so that you can save it and then decide whether you like that are not. Another thing I'm going to say about shattering is that if you can tell there's actually these interior pieces here and they are denoted by yellow. What I like to do before I cache something out is let's go to the UV editor here, I can click this icon, I can go to modeling, UV editor. It's all the same thing. What I will do. We're not actually getting these pieces. Here we go. What I will do, see how it's all on top of each other. If I got to UV shell, I should be able to get these big shards. What I want are these interior pieces. It's a little tough because it just automatically makes cuts where it thinks it should cut. You can go through here and select the shell of this interior pieces. I just like to, before I get too far with caching all this stuff out, is to remove all of the interior pieces over to one side of your, zero to one UV space. You can see one is right here and let me move this up, zero's down here, and a one over here. I like to keep everything zero to one and then go through and make sure you have UV shell, because we want to select faces even though it cut it in a way that almost looks like we're selecting faces because it cut it so many different times, but we're actually just selecting the shell of the interior faces. This way when you go to texture, the inside to look different than the outside, all of your UVs will already be where they need to be, so you can do whatever else you want to with them. It's easier to select them without whichever way you want to select them and later on figure out a texture it, that's a way to do that. Anyway, that's how you shatter and objects. In the next lesson, we're going to look closer into using boat solver and our main animation scene. We're going to take a step back and talk a little bit more about Olympic caches and why they're important to simulations and open up the animation scene we're going to be working with. Thanks for watching.
6. Alembic Cache: I want to cover Alembic Caches and why they're important. We have a scene that I've animated for you that we're going to use throughout this section of this course to create some effects. Basically we have a skeleton that pops out of the grave. If you follow along, you've modeled rigged animated texture and all that stuff. You should be familiar with this rig and all that, but anyway, I animated this whole thing for you. You don't have to worry about that. I did provide as a bonus content three hours all that it took to animate this. You can see exactly what I did there's no smoke and mirrors, you can follow along with that. But for this lesson, I want us to talk about Alembic Caches. Alembic Caches are important because when you start to do effects work, you want to lock in your animation and for that reason you can get rid of the rig. There's a lot of nodes, we have a lot of key frames, we have a lot of controls, we have joints hidden here, there are a lot of things going on here that can be very intensive to Maya. Once you start doing simulations, you want to focus the intensity on this simulations. You don't want it to be calculating the rigs while you're playing back for simulation. We want to cache this out, it bakes everything down, and the way to do that is with Alembic Caches. Now there's a couple of little caches here. This scene, you can tell is starting at frame 1001 and that is because we need to pre-roll for all effects work. If you ever worked for a big studio, every scene probably is going to start on frame 101 or 1001 that you have a lot of pre-roll, and if we go back a little bit, let's go to like frame 800. We can see there is actually a lot of animation that happened before frame 1001, which begins our animation. The reason is, because later we're also going to find out we're going to create a vest for him. For the cloth simulation, we want a lot of pre-roll so the cloth can settle and it can be attached to his body in a very default pose, and then it will slowly move into the pose that it will be animated from. But we need this T-pose to help start everything off, and the same is true run up for like smoke or fire or whatever. You want to have smoke on screen. You don't want the animation to just start and the smoke starts the same frame that you're watching. Like the smoke would be already there, you need to pre-roll at least enough so that it gets to the top of the frame. That's why we start so far back. I bring this up now is because when we're going to cache this thing out, we want to make sure that we have all the pre-roll included in that Alembic Cache. To get that we need to unreferenced the bones legs here so we can actually select the geometry. I'm going to also deselect this so we don't get the cons or joints. The other little tricky thing about Alembic Caches is, at least in this version of mine, you will get an error. If you select something that has apparent relationship. If you look here in the head, we can see we have this blackout thing, this little card back here that the inside of the skull as black. If we were to select them that and the head, it will give us an error when we try to Alembic Cache. You want to be sensitive to those relationships and your rig, and for that reason, when I click select everything, if I click drag select everything, it's going to give me an error. I want to shift select that, it deselects it. I have this little script editor open, which you can open up down here, and it will contain the history of everything that you've done. Here you can see select toggle, bone, rig plane, whatever and that's what this is called. We can see this is called plane one. If we select everything, we can see it readout that we select it all this whole long list of stuff. If we go in here and shift select the plane, it's going to toggle a selection, it's going to deselect it. But it's going to look like it's selected because it is a child of something that is selected. It's a little confusing, but you just need to know, don't select something that's a child of something else. For example, in this hat, the gemstones and this little braided rope thing are all children of the hat. All you need to do is select just the parent piece of geometry which is the hat. Now we have the selection that we need to create the Alembic Cache. All you need to do is go to Alembic Cache, export selection to Alembic, will open up this option box. The main things you want to make sure our you have UV light on so that we actually get UVs with Alembic Cache that's going to create new geometry, basically duplicate all this stuff out frame by frame with the animation. We want world space that it's put correctly and based on world position. Again, back to the pre-roll stuff, we want to make sure that we have pre-roll 920 as the first key frame that we have for the pre-roll. Everything before 920 he'll just be in that T-pose. We don't need to cache everything from 0 all the way through. We just need to get the first keyframe, which is on frame 920. We have 920 to 1200, we have these two things checked now we can see Export Selection and already have the name setup here. I export that just want to replace it and it's going to run through the whole animation. Bake this out, and then we're going to reimport it back into the scene, that we can apply the shaders. Because one not convenient thing about Alembic caches is, it's not going to give you the materials and shaders that you've created. Let's go to Cache and import the Alembic cache, and that's the one we just did. Now when we look at the outliner, we have all of this geometry from the rig. Let's just group this so that we can keep this organized and call it the Alembic rig. Now when we solo this, it looks like it has textures, but it's just happens to be around on top of the actual rig, it's still the scene. You can see that this is all not textured properly. What I'm going to spend some time doing in between this lesson and the next is going through and reapplying these things, and how I would suggest applying these textures again is open up the Hypershade. We have the Hypershade open from this little button. We see all of our shaders here listed in materials tab. I can right-click and say Select Object With Material. It's going to select the geometry that has this material. When I look in the scene, let me, on solo everything. We can see that this is the actual hat. I do want to say one little thing about this so we can see it's not the gems, it's not that it back to this parent-child relationship. We know this first thing is going to be applied to the Alembic Cache hat. If I select this, we can see that we're actually getting the gems, the rope. But we know that these have different shaders. We don't want to apply the shader to those pieces of geometry. If we say Assign Material to Selection, it's going to assign it to the gemstone, but this shader is only for the hat. So how we get to that is actually pressing down on the keyboard. I'm going to hit down the keyboard. So it's going to go to these Shape node of this. We're no longer in the parent hierarchy. You can see this in the outliner just to get in the nitty gritty of this since we're already talking about some deep stuff here. You can see when I select the hat, it's like the blue color. When I press down, it looks like I'm selecting something in a hierarchy, but I can't see anything in the hierarchy below this. Well, that's because we don't have the shapes displayed. This is just an organizational thing for Maya. You don't have to worry about this too much. But just know if something is parent to something and you don't want to apply shader to it, just press down on the keyboard and we can right-click on this and say Assign Material to Selection. Now we know that this hat has the right shader. So between this lesson and the next I'm just going to go through here and say Select Objects with Material, see which object it is, and then assign it to it's Alembic Cache counterpart. So I'll see you in the next lesson where we will continue to use this Alembic Cache and get rid of the rig so we can just use the cache and then we will talk about breaking up this ground when he punches through with his fist here. We're going to break this up and have a dynamic simulation for that based on the bullet physics that we've already learned, but with a couple new tools and tricks. Thanks for watching.
7. Particle Ground Shatter: In this lesson, we're going to start to break up and shatter the ground to use in a simulation. Before we do that, I just wanted to follow from the previous lesson where we brought in the Olympic cache and so now we have kind of a duplicate. We have the Olympic and we still have a Reagan scene, so let's get rid of rig. But the catch to that is, because we've used the referenced rig, right we have referenced the Reagan. We can go to file reference editor and we can see that indeed that's a reference rig. We also tell by these little blue dots, that's a referenced rig. A reference, you can reference models, you can reference anything but this is a reference rig. If we were just to remove that now, it's going to take all those shaders with it so our Olympic cache will no longer have that all the shaders that we have applied to it. So the first thing we need to do is to import this, so we can say File Import Objects from reference. So it's no longer referenced. We can see those little blue icons are gone and now we can delete this. When we delete it, it's not going to take the shaders with it. All the shaders down here are going to stay. Let's take a look at breaking up the ground. We've learned how to do this in the Bullet Physics kind of couple of lessons at the beginning but we're going to learn a new way. I'm going to unreference this so we can actually select the ground. What we're going to learn differently in this lesson is how to use particles to shatter this object. Now, we talked about this quickly in the previous lesson where let's take a cube or something for example and if we drop it on some rotate this and let's just, for argument's sake or for learning's sake. Let's say we drop this on its corner right here, smash. Now if we use the Shatter Tool and we can just pop that open, going to the Effects and going to Effects Shatter like we've done previously. Where in this middle tab or Solid Shatter, five pieces and seven Edge jagginess that's all fine. We do need to delete the history if you remember, I need to go to Edit Delete by type history before we use this and so now when we apply, it should break this up into five different pieces. We still have the original cube, so let's just tie that. But so the point of this is just saying, you would expect if this cube fell from a certain height and it hit the ground like this, and this orientation that this corner at first, you'd expect it to shatter, lower at the point of impact and less as you go up. But with this tool, there's no control over that, it just shatters at, in like evenly sized pieces. I mean, it's kind of nice because they are at least pieces. But like it doesn't respect the fact that we want a higher concentration of pieces down here and less at the top. There is a special kind of work around that we can do. Just going to delete these and it doesn't involve this. Well, let me take that back. What you could, do let's say that's the case. You could take this and then keep applying this to it. So we can chunk it down even more. But this tool is very finicky. To be honest, it's kind of terrible. If I hit "Apply", you can see that we're getting there out air. It could be freeze transformations, that could be a history thing like this you have to delete the history every time. But yeah, you get errors and it's super annoying. But in theory, you should be able to keep chunking this down and like break this up and then break up another piece into a smaller five more pieces and that kind of thing, in theory. But it's just, this tool is kind of terrible and there's no another way. It's not super, it's not a built-in way necessarily, but it's kind of a hack. But we also get into introduce to another effects kind of system and that is in particles. You can see up here everything has nhair, nconstraint, ncache and they all share similar components so like each one of these is going to have a nucleus and the nucleus holds important information for like what's gravity like? What framed does this simulation start and stuff like that. It has this n because they used to call this N-dynamics and the tab instead of it saying effects it used to say N-dynamics. So it's kind of a holdover until like the old name. But so basically what we're going to do is use particles to concentrate and use particles to say, wherever these particles are, that should be a piece. If we emit particles from the point that we wanted to shadow from, there will be a higher concentration of shards and fractures at that kind of point where the particle emitter is. Let's just jump right into that so that makes more sense. We'll go to nparticles, create emitter and in the Outliner you can see we have that nucleus that I referred to. We have the actual emitter that's going to do the emitting and then we have the particles themselves. From the nucleus, the one thing we need to look at is the Start frame because we are, let's go back to a frame 101. Because we don't need pre-roll for this we're just kind of using this is like a tool, almost like a modeling tool but you can use it for all different kinds of things. Let's turn to the time attributes around the nucleus and it's got a time attributes and get the Start frame to frame 1,001. So this will actually play back and if we select on the nparticles and just hit "Play", let's hit "For". Actually at least move the emitter where it's going to be useful. The whole point of this is to do it where the guys punching through. So let's go to the frame where his hands punch through. We have the emitter selected so we can actually move the emitter, which is going to be this little dot and this n just stands for the nucleus. It can be anywhere in the scene that position of itself doesn't actually really matter. Basically I just want to position this thing kind of thickness of this piece of ground, right where the hand is punching through. We're going to have a higher concentration of shards right there, right and it kind of makes sense. We have that place correctly and let's hit "Play" and see what we can see what these nparticles but first, we want to go back to the Start frame, which is frame 1,001. So I'll go back to frame 1,001 and I'll hit "Play" and now we can see all these particles emitting. The thing where I'll be careful about this effect that we're going to be doing, is the fact that each one of these particles is going to represent a new shard in this volume, a new fractured piece. The more particles you have, it gets very intense. I just tested this and it took like maybe an hour and a half to do and I had like 300 particles in the scene. It took like an hour and a half to cut up this piece of geometry with these particles. We want to reduce the amount of particles were actually emitting, so let's go to the emitter and we can go to the rate and we just want to take this way down. Maybe to like 10 and by default your speed is probably at one and I cranked mine up to 10. That's the other thing you might want to change because of the scale we're working at one is going to be way too slow. You want to make sure your speed is cranked up and the other thing is, by default we do have gravity working on it. I'm going to try to escape and turn on gravity because we're just trying to get particles emitted in here. We're not trying to like be physically accurate at all. The gravity loads in the nucleus so we can just turn down gravity or we can just turn the direction to zero. So these particles just kind of emit into like a bit just like they're in space basically. Let's let this run for a second and I'm going to hit "Escape" and let's hit "Four" so we can kind of see, and I'm going to select the particle here from that so it kind of highlights some. I can kind of see the concentration here. It's a decent amount and I think it's kind of get us a good starting point so now we need a way to tell Maya to take these particles and use them as the center of new pieces for this piece of geometry here. Before we do that, we need to go through all the cleaning up this piece. We can see that there's some history here that's not frozen transforms so let's go modify freeze transforms. Let's go edit, delete by type history. All right, so now it's all clean. So for this tool to work, it's actually a script I'm going to make it available for you in either a Word document attached as a resource to download with all of these files most likely that's where it's going to be. It's going to be with all the other downloads. That'll be a text document. It's credit goes to Mallik Williams who created this almost 10 years ago and you can see. I've found this in a very obscure, like page 15 on a forum. But Voronoi is a type of shattering effect that he basically made this script. Anytime you're doing MEL scripts, so that's my expression language. You can see down here on the bottom left it says MEL. So I can start typing in all this code in here and run it from this little area. Anytime you're using MEL and it has these two dashes that means this isn't going to run this is just for your information. If you're curious about how this script works, so you can actually just look for these little things and it's going to explain what each section is about. MEL is just because he's friendly guy and took the time to actually write this stuff out to explain what he's doing. He could have easily let this stuff out. You can look at each little section he's kind of explaining what each little piece does and this is how a lot of people learn how to do scripts and learn. Maya is good scripts like this and they kind of break it down and figure out, all right what is each little piece doing. So for us all we need to know is we just going to copy paste this. We don't really need to know how it works. He does have instructions here where he says, "Select nparticles and then the geometry". All right, and then "add zero for crack". All right, so we'll select the particles first, we'll select the geometry and then we can just paste that script here and hit "Enter" and we're going to get this little dialogue box and we want to set the crack to zero. So the distance between the cracks is zero. Now when we look at this thing, we can see that indeed we have this kind of fracture that is going to work with where we actually have an impact on this piece. So we can do this multiple times and that's what I'm going to do because, if we were to do this for this whole piece and what with one particle system in one go, like I said, it would take a very long time. But what we're going to do now is just keep repeating what we just did on each different shard. I can go back and move the emitter to a new location. Somewhere maybe closer to, if I want to break up this piece, but I want it more broken up towards the top than the bottom. I'm going to move the emitter kind of closer to that area and then redo this whole process again. Okay. So we will have a shattered piece of ground ready to simulate. That is going to be specific to the animation that we have, like this punching through this hole here so we're going to have kind of a nice little hole here, hopefully. This is the plan anyways and somehow they'll be ready for the next lesson where we will have this all shattered. Then we're going to actually run a simulation and I'm going to show you some more tips and tricks on how to do that efficiently. Thanks for watching.
8. Ground Bullet Sim: In this lesson, it's going to be a little bit longer because we're going to actually do the destruction for this ground, so that it matches the animation. Before I get started with that, I wanted to finish talking about the particle system we use to break this up. You can see how much I had to break it up, and I wanted to show you why. When I didn't break it up enough, you can see where the chunks were too big, and as I collided the proxy geometry into it, it even started to affect the bottom part of it here, towards its feet. You want to make sure you have enough geometry, and one little trick if you're still working on that, or you can just use this scene as well, that I'm working in. But if you want to do it yourself, one little neat thing I've found too was that, you could actually just simulate the particles for a few frames, and then you can transform them around. If we have the particle selected, [inaudible] four so I can see them. You can see I have maybe four particles, and I could just keep moving these around and running the script that we have here, that we've copied and pasted in. We could transform just the end particles around, and then run the script that I gave you, for each piece that we wanted to do. We'd select the end particles like the piece and then keep going. We're done with that, so I'm going to delete that. I also wanted to mention, of course you can middle mouse drag anything you type in here, like the script that you paste, for the shattering effect. If you hit "Command A" to select everything in this MEL script section, you can then middle mouse drag it into the shelf on your custom shelf and make your own button for it, so you can just click the button instead of having to paste it in every time. Now that we have that done, we want to create the bullet system here, and we've done this before on the other smaller lessons. But I also wanted to mention a couple of things that I noticed with that script. It had some errant pieces of geometry, a little planes that I had to go in and delete by hand, but I think I got all of them, so you just want to look for that. Then there's these random hidden pieces of geometry, that I'm not sure why it would hide it. I'm just command clicking on the hidden pieces and deleting them. Now that we have that done, let's select all of the shards that we've created, and then let's go to the bullet system. Of course we need to make sure that's loaded as always, under settings, plug-in manager and bullet. We also want to make sure that we have the AbcBullet checked as well because we're going to use that here in a second. We have bullet, and we want to create a rigid set like we've done before. It's going to explode, because we're not on the start frame. Let's go back to what our start frame is going to be and you can see it still hasn't fixed itself. We need to click on the bulletSolver and go into the attribute editor here, and we get all of these options that we're starting to get familiar with. We want the start frame to be what our start frame is. Of course, the reason why it's on 1,001, as I've mentioned before is because we wanted some pre-roll for other dynamic effects. The nice thing about bullet is it has a initially sleeping option here. It's under bulletRigidSetInitialState, and we can check that, and basically what that means is until something collides with it, it will stay the way it is. Which is really nice. Let's go back to the bullet solver for a second and talk about the gravity. The gravity is important because it's going to affect how the scale works on this scene. As you remember, Maya thinks one unit is one meter. In our case, our character is now 182 centimeters tall, so bulletSolver is going to think that this is 182 meters long of a piece of ground here that we've made. For that to have the right physics, we can just increase the gravity by 100, so we can just times that by 100 and it'll be 980, instead of 9.8. That will help us get to the correct scale of our scene, so that everything will fall accordingly. Now let me show you what happens when you don't do that, and this is a test I did earlier, and I didn't change the gravity. You can see how everything is moving in slow motion and very slowly, so we don't want that. Now that we have gravity set correctly, it'll work. We don't want to use the ground plane because, our geometry is actually just below the ground plane, just below zero. I've made our own ground plane, I'm here at five so we can see it. It's down here, I'm going to move it just below the geometry here, so it's not starting to collide with it at the very beginning. This is just going to be our ground plane because that's below, zero is this plane, and we wanted one that goes in the ground, so that's why we need to make our own ground plane. With that selected, I can go to bullet and set passive rigid body. You might get an error and that's okay. I'm going to just leave all of this the same, except for I'm going to make this a plane, which means it'll go off in all directions. I am going maybe crank that down just a little bit. Now we can also set this as a passive collider, so I'll use bullet, passive rigid body. Instead of the plane, because this has a doughnut hole in the middle, we can't use any of the ones that we've been using because they are all intact versions. What we want is mesh, and this will respect the fact that there's a hole in the middle, so they won't think it's colliding in the center of this thing. I'll select mesh and then I'll reduce this by a little bit as well. Mass is okay, it's a static body, and just in general know that static rigid bodies are quicker to compute because they're not having to compute changes in position of course, because they're not going anywhere. Now that we have those two things done, I also wanted to introduce this little guy. I'm going to hit "Shift H", and it's basically a container to keep the ground from expanding out. Let me just select those two things and isolate them so you can see what I'm talking about. I isolated selected the shards. Let me select high. Oh, it hit everything because now we're working with the, so when you make bullet, it'll make its own piece of geometry here. That's why it wasn't getting isolated selected, so now it'll work. Basically just keeps it all contained so everything can't expand outward, so that will help it keep it shape, as it's simulating. Let's create another passive rigid body, and like we did for the other ground, we want to make sure that the collider properties is set to mesh, the collider shape, and then when I reduce this down all the way, cool. Let's go back to the bulletSolver and take a look at that, we have our gravity set properly. We have the start frames set properly, and you need to increase the mass as well. If you think about all the physics of this, we're having to increase the gravity by 100 times, we should do that for everything basically. But we can start out with maybe something like 10. Instead of doing a 100 times, let's do like 10 times, and it's initially sleeping. Again we want to change this to hull like we've learned in other lessons, and turn on the glue shapes and let's just crank that all the way up. Because this will also be affected by the scale of the scene, and gravity, and all that. We need to increase the force of this, because gravity is going to be pulling on it 100 times harder than usual. This value might even need to be 1,000 or something, later we'll find out. The next thing I want to do is to mimic the animation of the hand. I don't want to use the actual animation of the skeleton because, it's a lot of geometry in here and a lot of things could get stuck in between the fingers, and in between the bones and all that. What I want to do is actually create a new piece of geometry, and I'm just going to create a sphere. I'm going to move that into place here, and with that selected, I'm going to scale it up and scrub in the timeline to see where the hand is coming through. I'm going to place this in that general area. I'm going to leave it scaled up like this, and just so it has a healthy padding around it. This is basically what's going to be colliding with the rigid set that we've created. I'm going to set that there, and I'm not going to animate anything yet, and this is another little tricky thing with bullet. You would learn, anyways, eventually. But basically if you animate this and you choose it to be a part of bullet, then it'll delete all animation. We need to create an active rigid body first and now we can do the animation. But the other little thing that I mentioned before I believe is that, we want to switch this to kinematics so that it will respect the keyframes that we set. Then also, I want to increase the mass and I want to be much more than the mass we've set for the shards because it needs to overcome that weight, and really push them out of the way, so I'm going to set this to like something like 500. It's five times as much as the shards themselves. For right now I'm going to leave this at box because it's just easier to compute, and I'm going to leave the margin on for a little bit. Now I can start to keyframe this thing, and I hit four just so I can see the animation beneath this. I'm going to step through, this animation and make sure everything is going to be on the right frame, so I'm hitting S to say keyframes. I'm just going to hit five to make sure I'm reading the silhouette correctly here. Maybe push this forward, and then let's take a look under four again to make sure we're following the fist. The other thing we need to know is the fact that with initially sleeping, if anything is intersecting anything, even if it's a static rigid body, and this is kinematic, it will trigger the simulation. We need to make sure that this is not touching the plane. Otherwise initially sleeping would not work for the shard sets and everything would start from this first frame. Currently, what will happen is it will only start the simulation as soon as this sphere that we've created, rams in to the first shard here, so that's pretty cool. The next thing we need to do, is continue this animation because the hand comes down here, and we want to make sure that we're going to be able to see that somewhat. We need to continue this animation. I want to make sure I get the antic of the hand in there as well. I'm going to get the first frame there and set it, a keyframe. Then get the antic in there, in this frame. Then, I'll start this. I'm going to rotate it just a little bit. I don't know why it does this, but it spazzes out. Just some goofy thing that the Bullet does. I will say out of all the sims and solvers you can use in Maya, Bullet can be a little bit wonky sometimes and frustrating, but if you get it done right, it's pretty nice. It's an open source software. Maya doesn't really support, from a technical perspective, it doesn't really support it. If you ask AutoDesk for help, they're not going to really help you that much because it's not their product. But it's an open source dynamic system that's basically meant for games. But Autodesk decided to include it as well because I think it does have some use for just trying to get some basic stuff, simulation and you don't have to go through a ton of crazy steps. There are some finicky things here that we're learning about. But in general, this isn't that bad really as far as dynamics are concerned to set something up that actually works. I'm just going to move that there. The next thing I'm going to do is create another sphere and make it a active rigid body, and turn it back to Kinematic because this is going to be our body busting through. I'm going to increase that so it's much bigger, and, of course, I want it that below the plane again because I don't want it to trigger the initially sleeping thing that we have set. I'm going to position this here and then scrub through, it looks like it snaps back there. Let's set a keyframe here then, man this is super wonky sometimes. You can see how I'm just clicking it, snapping it to another location. Let me hit S and let's see if it's set keyframes. Cool, it did. Now with those keyframes, it's respecting where I'm putting it. Just know that's another little quirk of this system. Now we can start scrubbing forward. Somewhere in here, he's going to start busting through, right in there. Just going to add S here, and one, two. I'm going to push this through. I might get that to happen maybe a little sooner. Because I'm also conscious of the speed of this thing coming through. If it goes through too fast, the sim might not really catch it. I want to make sure it's going through at a speed that the solver can find it and actually solve for that. Now I'm just going to follow this through again. Maybe scale this up so it really rocks the world here. I don't really like how wide that is, that might cause other problems. Let's maybe scale it in a little bit and scale it in a little bit here, cool. Now we have that. Then we just need to finish this animation out tracking, because I think when he's in mid air, we don't want a piece of that shard to be blocking his face or something. I'm going to favor his torso here. Everything else should happen fast enough that it won't. You won't be able to really tell if a piece is going through his arm or something, because it'll all be happening so fast. We use that to our advantage here. Excuse me. It's been a long day at the studio, working on a movie for a studio, and my voice is starting to go now recording these videos. Now we have this done. What we can do is just go ahead and cache it out. Like I said earlier, if I were to hit play on this, we can just go in and do that once just to make sure it's not going to do something totally crazy. But what I like to do when I realize it's working is just go ahead and cache it out because, Bullet will not be consistent with the results. If you play it back and you see that you like what you've got, then you're out of luck if you hit play again and try to cache it because you're not entirely guaranteed the same simulation. Everything looks good so far. It's maybe a little busy. Things are still moving around. It's working though, I'll be honest. The only little goofy thing is that that piece is going to be blocking the hand, but you can art direct this stuff as much as you want, you go back in and reanimate that hand or the sphere that we have for the hand. But in general, I think this is in a good spot. Now we're going to cache it out because basically, every time we're doing some sim, we don't want to have this other thing solving every time that we play back. We want to cache this out, so we save it and bake it down to the geometry. To do that in Bullet, we need to select the set that was made when we make a Bullet solver, there's this little set that gets made. We want to make sure that we do not go into cache. I'm saying we're doing caches. You have to do an Alembic cache through the Bullet menu. Otherwise, you're going to get a bunch of errors, and so this is another got you moment in Maya. Do not use this to cache Bullet. You have to use the Bullet menu to export selection to Alembic. The other little got you moment is you want to switch to the HDF5 file format. That's how Bullet reads that. It doesn't know this file format, so we need that one. We can see our range is correct and all that good stuff. I'm going to choose this name for the Alembic and I'm going to export that and I'll see you in one second. Now that our cache is done, we can actually import it and we want to make sure that we have the shards group selected. With the shards group selected, we can use this Alembic cache, import now. We can use this to import it. Let's go to Import and normally it's set on this Import to scene root, we want to change it to Merge. What it's basically doing is it's going to assign these values to this group because it all has the same names. That's what that rigid set created. Each individual piece has a name associated with it, so when it's caching it out, it addresses that name to that piece. We're reassigning this animation and this simulation, baked down into the original pieces. You could actually use this to use low res geometry, then do the simulation with low res geometry. Then have high res pieces of geometry that you merge it onto so that when you're doing the simulation, it can be much quicker because you're using low-res geometry. But then when you're actually going to use it as a cache in a scene, then you can use the high res pieces and choose that group that would be associated with that. I hope that makes sense. That's more of an advanced feature, but just wanted to mention that's a possibility. Now that we have that set, let's just delete the Bullet system. We don't want to delete it just by selecting it, we want to go to Bullet and then Delete Entire Bullet System. Now we can play back, we just scrub and we should be able to see all of this animation on our original shards here, so that is pretty cool. The only thing left to really say is the fact that we have some inner penetration here on the hat and this. We could turn this into a pass rigid body. We can make some proxy geometry like a sphere or something to guard this piece. Just like we animated this, we could use it as a static rigid body, just like we're using the floor is a static rigid body. All in all, it looks like it worked pretty well. We learned how to create a Bullet sim and then cache it out and then re-import it. It's been a pretty big lesson here. I think this is going to prove pretty helpful down the road when you need to do a big simulation of a lot of things. Yeah, this is just one way to do it. We will carry on in the next lesson with learning some more dynamic simulations in Maya. Thanks for watching.
9. Fix Sim: I want to make a quick little video to show you how you can actually change the simulation after you've already set up all the alembic cache stuff. We have our shards group where the alembic cache is connected to the geometry. I'm going to go my perspective view and I'm going to look at where the hand comes down here. There's some piece in the way of its forearm and I want to move that, but I don't have to redo the whole simulation. I'm going to hit the little button below your backspace or delete key on the keyboard, and that's the 2D pan and zoom tool. If I hold that down, I can manipulate the view without changing the camera. I want this piece to be gone, so we can see the form a little bit better, maybe even that piece. Then yeah, like this piece. This piece, I don't know. Yeah, so anyway. Let's take these two pieces for example, and then we can hit "Command-G", and because if we just have these selected, you can see they are connected to something and that's the alembic cache transformation data that we've imported from the alembic cache. We can get around that by actually grouping things together, I'll hit "Command-G", and now we have a group. We can see down here, and I can go to somewhere in the simulation where we can animate these pieces going out of the way. Let's go somewhere in here, and I'm just going to push these down so they're out of the way, and I might even include this piece on here, so I'm going to command, click in the outliner, hit "Shift-P" but I want to go to a keyframe where the animation hasn't started yet when I start to include other pieces into that group. I'm going to command, click it and then hit "P" sort all apparent to it, and I want to select the group and then go back like keyframe. Yeah, that one should be out of the way as well. I think for these, I want to push these back a little bit, so I'm going to select these, and yeah, I think just those, so I'm going to keep doing this kind of a thing and I had a key here, so I know that's where I want to go away from. Now we see the elbow is visible and these kind of fall on it. I'm just going to push these back, just the touch, and then when I see more pieces like this, I can just select them and then go back in time and then hit "command" and click the "group" and hit "P" to include it as a parent of that group. And now we can see that those have moved out of the way. Now we can actually see the forearm and the handle little bit better, and you can keep going through the simulation and do that. The other thing I want to do is just bring those back later on. I want those to go back to what they originally were doing. I'm going to hit a key here, and then when I hit a key somewhere out here, and I'm just going to zero out all of these values just so that they go back to where they were when the simulation was running properly. I'm going to press the little backspace key under the delete on my keyboard and it gets out of the 2D pen zoom tool, so we can see the full frame here and get a pretty good idea of what we're going to be looking at. It looks like we can see the hand pretty well, and when it comes down, yeah, we can still read it from this distance, so that's good. We have these little pieces that get in the way here, but I'm not too worried about that. But anyway, you get the idea. You can animate this stuff as long as they're in groups. Thanks for watching.
10. Fireflies Dynamics: In this lesson, I want us to cover and create, creating some fireflies, or lightning bugs swarming around in the scene, and then they react to the ground explosion. There's two different ways we could go about doing this. One is using nParticles. We go to FX and we go to the nParticles setting, we could Create Emitters and then we could create different fields to control them over here. But instead, what I'd like to do is use a new feature in Maya, which is the mash network, specifically the dynamics version of mash, which is essentially in an nParticle system, and Maya has repackaged it and is using it with Mash. We've used nParticles a little bit already and we've also used a little bit of mash in prior lessons, so we're going to dig a little deeper into mash now. Let's create a new mash network from a piece of geometry, and for our fireflies, I'm just going to use a little sphere, I'll call that the basefirefly, I'm just doing that on the outline or out of the screen here, you could also change it here. Then we're going to go to Mash, create Mash network, and also open up the option box and we're going to choose an instancer. Let's go ahead and choose a grid formation here, and I'll hit apply and close. I'm going to focus in on the instancer and isolates like that, now we can see that a little bit better. The next thing I'm going to do is open up the mash waiter, so I'm going to go to the attribute editor with the mash connote selected here. I'm just going to go and dock the outliner over here, because I think we're going to keep coming back to that, and then also when I open up the mash editor here, so that will be the outliner for the mash network, so we can keep track of what we're doing. Now we'll see by default what we have created here, and it's pretty basic, it's a grid and we have a long way to go, but not that long. We have a little bit more work to do to make some fireflies here. Let's look at the next thing we're going to do is create a bigger grid, so it's good to distribute. This is basically going to be the base for how many fireflies are going to be in our scene. We need to make this quite large, because if you remember to, the scene scale that we've set this too is a real-world units, so the scale is going to be quite large here. Let's just start with something like this, and that's quite a bit. I might not need that many, let's do maybe like 500. Let's see if that's something appropriate, and I'm checking with this view on the left side too, because that's our renderer can view, that's really going to dictate what we really need. I'm going to turn off isolate select here for one second, so I can see this in perspective mode. It looks like we have too many, maybe vertically, so we can click this down, then we can maybe expand out a little bit more on Z and X. We're going to reduce this even more with some more nodes. It looks like we're covering the entire area now. Now what I want to do is add a visibility node. Let's go click on mash, you can click on it from the mash editor or outliner, and we get back to this in the attribute editor here. You get to attribute editor with this button as well. Let's create a visibility node here. We can just left-click and say add visibility node, it'll take us over that and then we can just reduce the random strength. I'm going to go ahead and add a new shader to this so we can see it a little better. Click on the "basefirefly" the original that we used that as hidden by default when you use mash. Let's just get that selected, isolate it, and I'll just right click in here and say assign new material. For now I'm just going to say a surface shader, and click that to white, so we can see that. Sometimes Maya doesn't want to update this shader stuff, so sometimes opening the hypershade, you can see it fixes that. That's a bug that they probably already fixed by now, but you always have to look for work arounds in Maya. We have the visibility node and that's helping us create a more random pattern of fireflies here and it's something that we can animate. This is what's so powerful about mash is we don't have to go sphere by sphere, and turn them on and off, we just have this one slider that controls all of them. If for some reason we don't like this orientation, we can just change the random seed and that will affect this random strength, it will apply it differently, but keep the same amount of strength. Really we just dial in exactly how much we want to have here, and then the next thing we can do is add a random node, so it'll change this even more. Because even though this is randomly changing the visibility of what we can see, these two are in a line here, you can see there's still two here that are in a line. We want to change that by going into random position and maybe doing something even more drastic, something like that, so they're a little more random. I might bringing back some of these because it looks like the left sides are empty. I'm going to maybe change the seed here as well, that looks a little better filled out. I might increase the distance to the camera, because I don't feel like we're getting any light go right into the foreground of the camera, we can see the cameras here. It'd be nice to get some all the way to the camera. We could add a transform node and just move all of these forward. But instead, I think I'm going to go back to distribute node, and increase the Z distance here. You can see that expand, hopefully you can see that on your screening, you that expand as I do that, we can get the fireflies to go all the way to the camera. I might turn that back and do a transform just so you can see all of it, add of transform node, I'm going to command click middle mouse drag in here, and we can just drag that value up, so it favor everything towards the camera a little bit. Let me go back to the render cam, and now you can see there's a firefly here really close to the camera. We can always go back into this base geometry that we used and it'll scale down all of these. The other thing we could do, is actually use random for scale. So we could say uniform scale, and we can have a random scale value set to these. That's another option. We might just do that just a little bit to add variability, but in general, I think fireflies are pretty similar size. Nothing's moving yet, nothing's animated, but what's really nice about this again, is the fact that we can go back in and adjust this stuff on the fly as we're changing on the fly, no pun intended. As we're changing stuff, we can change the attributes down the stream and everything just updates really fast. This is what's really nice about MASH and the fact that we're not having to really simulate anything here yet. With nParticles, we would have to be simulating all ready to get to this stage. So it's nice we can set up basically the particles, the instances that we're going to be using, and then add dynamics after the fact. Let's go ahead and add some dynamics. I'm going to go over here and say Add Dynamics, and that's going to give us a whole slew of things. You can see it's setting it up, and there's a lot of particles, so I think it takes a minute. Let's look in our outliner. So by this stage of the course, we're very familiar with a bullet solver now, and so, it's the same kind of setup here. You can see the star frame, everything that we've learned up to this point. We probably can just turn off the gravity here because we want these guys floating around in space. We're going to hit zero on that, and then what we want to do and how we want to control this stuff then is by using fields. If we click on Dynamics here, that gives us another option. Let me just turn back on the gravity just so you can see what's happening. I am going to increase that because of the scale factor of the scene. You can see everything just falls down to the ground. The ground by default is actually at negative 20, and you can see that here. We could actually just bring that up if we wanted to see everything hit the ground that we have established here. We should be able to start to see things hit the ground. But of course, we want our fireflies the fly, so that's why I was saying we can just turn off the gravity. But I wanted you to see what happens just out of the box here. I'm going to go back to frame zero here. and yeah, everything's looking good. Now I'm going to go to dynamics tab, and I want to show you that we have this kind of section down here for fields, sorry, that's in the Bullet Solver. So we're back in the Bullet Solver. We have fields here so we can connect them, but we can't create them from an here. What we need to do is go ahead and create them, and we don't want anything selected when we create the fields. Otherwise, we might get an error because it's trying to attach a field to something that we have selected, so we just want to make sure we don't have anything selected. Let's add a Turbulence Field. This is basically going to be a noise, a 3D noise, through our simulation here. With that selected, we're going to really need to crank up the magnitude. Let's start with 500 to 5,000 at some point. But let's hit "Play", and let's go back and make sure we have the gravity turned off here. We have no gravity, we have all of that set fine. But the one thing that we didn't do, is actually add that turbulence field to the Bullet Solver. Also, while we're looking at the Bullet Solver, we do need to change our start frame to 1001 here. We don't really need to do any pre-roll with us because it'll just all be working from the first frame, so there's no pre-roll that we need to worry about. Now, we can go the Bullet Solver and middle mouse drag the Turbulence Field into the fields little window here. So now it's actually connected this field to that Bullet Solver. All right. Now when we press Play, we should get some a little bit of jiggling motion here, and it looks like it's doing a little calculation there. Now it's starting to go, and I think we're going to need to really crank up the Turbulence Field. So let's go back and crank up the magnitude quite a bit. Just for right now, I think I'm going to reduce the grid size, so we don't have as many particles. I'm going to just remember these settings, and I'm just going to reduce them down a little bit because it's making our simulation quite a bit slower. So let me crank up the scale of this guy just so we can see it, and then let's go to the Turbulence Field, and let's just add a zero here and see what that does. Because remember, this scene scale that we're working at is quite large. Yeah, we got some movement here, but not a ton, so I'm going to add another zero. I tend to add zeros until I get closer to what I want. Now you can see, check this out, we are getting all this free animation and everything is moving on its own course here. It's pretty awesome. We're getting all this free animation, essentially. The one thing I want to be aware of though, is the fact that I don't want any fireflies. I mean, they could hit the ground, they're going to end up being much smaller than the size that we're seeing here, so if you don't want them to hit the ground, you can just add another field. You could go to the Field and Solvers and you can add a uniform field and then just say in the y-direction, shoot it up magnitude by like 10,000 or something, and just keep all the particles off of the ground. Let's just go and do that real quick. Let's say uniform. Because I have something selected, it's giving me an error, so make sure you don't have anything selected. Go to Uniform, and then we want to have a huge magnitude here because we're keeping in mind the scene scales is quite large. Then, we can create a volume shape so we can control where it's happening. So let's create a cube and then let's scale it way up, and then let's scale it in these directions. Because we want to keep it low to the ground, basically it's just going to kick any particle that gets close to the ground. It's going to kick it off the ground because I don't want these things landing and sliding around on the ground and looking weird. Now, we just need to connect it to the Bullet Solver. I'll middle mouse drag this rather from that outliner into here, so now those things are connected. We can actually play this back. Let's take a look at this particle right here. It should get shot upward. So I play. Watch this. What's happening is, we didn't set the direction yet. Yeah, all of these particles are going, let's see what direction they're going in. If we hit the Uniform field, the default is x, so again, x, y, z. Let's hit zero, Let's go positive one, we want to go upward, and now let's try that one more time and follow this particle again. Now it should go straight up, which it is. We'll keep these off of the ground, and we can add some drag to the Bullet Solver so that they don't just go for forever or some damping rather. That might help it keep from just going into infinity. We can also add just a touch of gravity. You can just really play and art direct the stuff as much as you want, as soon as you kind of get familiar and comfortable with each of these attributes. With that done right now, I'm going to continue in the next lesson and actually create the animated section of the fields where we will help control the reaction to the groundbreaking up. I want all of these fireflies to scatter like crazy when the ground breaks. In the next lesson, we'll cover that and I will see you there. Thanks for watching.
11. Fireflies Dynamics Animated: In this lesson, we're going to finish up creating the Fireflies and create a couple more fields to animate so that they will scurry away when the grave explodes. There's one other little visibility thing I forgot to mention in the last lesson when I was talking about how slow everything was going. We can actually limit the particles being populated by only what this camera sees. That's something specific to MASH and the visibility node. Let me crank up the distribution that we have back to what we originally had here to make it look a little more full. You can see everything's getting a lot slower. What we can do, let's go back to first frame here. I'm going to lower this down a little bit because it looks like it was shooting everything up maybe too much. I'm just going to maybe reduce this down as well, 2,500 or was that half? Yeah, 2,500. For this visibility thing, if we go to the visibility node and the MASH setup here, we go down to Frustum Filtering. If we enable that, we just need to connect a camera and it will limit which particles are drawn based on that camera. Let's middle mouse drag the renderCam into this camera slot and let go, and then watch this. It should update and get rid of a lot of these particles that we can't see so check that out. It's pretty cool. It should speed everything up quite a bit now. We can leave things at the kind of settings that we wanted. We're going to see, we're starting to get some Firefly motion here and it's looking okay. I think I want to increase the frequency of this first turbulent field so let's just crank that up because I want a little more higher frequency here. Because I want to see them change direction more frequently. I'm just going to continue to play with this frequency and I'll just crank that all the way up to 100. Part of Dynamics, working Dynamics, is things get a little slow as everything is trying to update especially when you're starting to work with these MASH dynamics and this many particles. It looks like things are moving a little quicker. Let me escape. The one other thing I'm seeing is that this uniform field is maybe still way too much so I'm just going to knock a zero off of that, and it's spacebar here, and let's go to Dynamics, and let's go to turbulent field and crank up the frequency to like 300 and see what happens. I'm just going to escape out of this and I am actually going to also reduce the number here even though we're using the Frustrum thing, it's still just so much that it's going so it's hard to tell what actually is happening with the turbulence field, so I'm just going to crank those way down and then go back to turbulence field. I think this is maybe acting on it too much. I think we need more frequency and less motion. Basically what I'm getting at is you can stack on multiple fields. So you could have multiple turbulence fields. It's way too slow. We could have multiple turbulence fields and on top of each other have different magnitudes so we could have a really high frequency one and then a really low frequency one. I hit Enter and escape on that and then go back to Frame 1. Let me just make sure. Sometimes on the BulletSolver, the Start Frame, if you reopen a scene it might not save that Start Frame so always check that as well. We have the turbulence field adjusted now to 15,000 and a really high frequency. It looks like things are moving but it's still pretty slow so I'm cranking up the magnitude again. I think I need to add a zero on this frequency. Let's add a zero to this frequency and see where that gets us. I'm happy with that. We could do a bigger turbulence field if we wanted to but I think, really, this is enough. We could just keep stacking on turbulence fields, but I do want to add one for the kind of moment when the grave breaks so let's crank this way up. Let's look at the first one and do like double that. That's 25,000 and 6,000 so let's do 50,000 and 12,000. Then we just need to attach this again to the BulletSolver so let's go to there and middle mouse drag the turbulence field in and hit Play. I think we can maybe even use another zero here. This turbulence field is going to be animated on so we can use the max distance or we could use a volume as well. I'm just going to crank this up maybe to 80,000 and see if that really makes things erratic because basically what I want to see is these things really starting to move. I think we could go even higher. We're at 100,000, I believe. Let's do like 150. Now these are really starting to move. I think 150 will do us pretty well. Then I want to create us a volume. Let's have something like a sphere. I'll go back to the Perspective mode and scale this guy up. I'm going to introduce it when the animation first happens with the fist, which is early on. We can just animate this on just like everything else so let's figure out, there is where we wanted to come on. I'll just drag this down. Cool. It'll introduce into this area. Then let's go forward, and then when we zoom out right before that happens, I want them to really scatter. I'm just going to scale it up 1, 2, 3. Let's maybe do like six frames. I wanted to cover the whole area here. Then the other thing I want to do, let's just make sure this is working first, but then I'm going to add a radial field so that everything just goes way out, just shoots out with a radial field and away from this grave. Right now everything is pretty calm. I don't even know if we have a particle in there that we can really see this is happening so I might want to increase the distribution again. Let's do 20. Now let's play it back with that turbulence field and these particles kind of increased here and let's see what we can get. It looks like it sped them up enough that they could now go outside of that field which is pretty good. The next thing I want to do is add the radial field so we'll go to Radial, and then let's go to the BulletSolver and middle mouse drag in the radial field, and then let's go to the radial field. We can just double-click it here to get to it. Let's use max distance. It's already where we need it to be so we can just leave it here, and then max distance, we just want to animate that. Let's go to the frame where it really starts to bust out of this thing. Let's start it right in here and we'll key that. Then let's go in here. Let's just increase this distance to, let's say 500 or so. Now I'm playing this back. We should have all of these fireflies scurrying away when the grave busts open. For us to see that a little better, I'm going to turn off the everything basically and just say show polygons and show the GPU cache. We going to see this better. I'm actually just going to Playblast this. Before I do that, I want to turn off everything under show and only turn on polygons and the particle instances. Then I'm going to start a Playblast by right-clicking, go to the Playblast options here, and all that looks fine. I just want to turn off the film gate here so it won't include that. I'll hit Playblast and I'll see you in one second. Now we're back and we can see what we've accomplished here in real time. It looks like we have some okay motion happening here and everything disperses. I think everything could happen a lot quicker, all these are moving pretty slow. I think we just crank up the magnitude on everything and these are moving, not ideally either. You can tell that a lot of this is just playing with the attributes. Yeah, I think we just really need to crank up the radial and then also maybe add a little more frequency and magnitude to the first turbulence. We just get a little more motion on these guys. Let's take a look at that again real quick. Let's just increase the magnitude on the radial field. This really needs to, oh, this is what the problem was. We never increase the magnitude on this, that would be it, that's what's going on. That's why everything is moving so slowly. I was wondering, we animated the max distance, but we didn't increase the magnitude. Let's also just grab this first one and let's increase that 6,000 attenuation, and just for fun, I'm going to add another turbulent field. I'm going to, yeah, again, I don't need anything selected to add one. Then I need to meanwhile, drag it to the fields here, and what this was going to be for me is going to be the same, similar values, maybe even more like 50,000. But the, is that 50,000? The frequency is going to be very low. What that's going to do is move these around a larger area. We'll have like small motion from the first turbulence field. The second one is going to be animated and then this third one is going to just make sure it has big sweeping motion. I'm going to Playblast this again with a more radial field magnitude and more magnitude on both of these. I will see you once that's done. Now let's take a look at this updated Playblast together. We definitely have a lot more motion, which is nice. Yeah, all of those fireflies go away pretty quickly. Might even slow down the motion a little bit on these. But it has really nice erratic look to it. If you look here on the left, before the camera motion really starts, you can see they have their own life and they feel alive and they're all doing their own thing. I can actually like the speed they're running out right now. Almost just wish they were denser around the grave. I might change the seed on them to get more around the grave. Then other than that, I think it's looking pretty good. I'm going to decrease the scale here so that the, here's the last couple of things I'm going to do. I'm going to decrease the scale on the original one. They're all smaller and then I'm going to animate the visibility step here as this happens. They're all flicker out as they get further away. I'm going to add a keyframe here on random strength, and then I'll just go forward a little bit, and then just throw that out to zero or pretty close to zero. If I select that, then I can actually see the keyframes here. Now we have that we've reduced the scale of this. Let's go back to the first frame, it's not updating because it's a simulation now, so we actually have to simulate it every time. Maybe I'm just going to increase the distribution a little bit just to get a few more in here. I think we are at 25 and 25 when we first started. Yeah, that's looking a lot better. Let's just change the seed a little bit to see if we can get more concentrated around the grave area. Now that we have this in a pretty good place, let's cache it out like we've done everything else. Before we do that, we need to switch over this mash network into the mesh type. Let's also just reduce the random scale here a little bit and the scale of the base firefly. Cool. Yeah, so I just want to make it look like it's a hint of activity going on and not so big that we can really tell what these things are actually. They're just going to be these glowing shapes. I'm going to select the MASH network and go to MASH utilities and say switch MASH geometry type. Now we have a MASH Repro mesh and we can cache that with this same Alembic cache we've done before, not for bullet, that was, had its own. But we can export this as a selection to map to Alembic. I'm going to call this 10_Fireflies_01. We have the whole range, and we're going to go back to the normal file format here and will export the selection. Now that we have the repro mesh cached out, we can actually just turn off this MASH network and we can go to cache Alembic, import Alembic and import the fireflies. It looks like it's quite a bit, it's 205 megabytes. Yeah, we might want to wait until the very end to add those, but yeah, here they are, they are the Alembic cache. Now we can scrub Playblast without having to simulate them on every frame. I'm just going to add that surface shader material that we've already chosen from before. Let's down here off our frame a little bit so we can actually see those fireflies a little bit better. Yeah, so in the next lesson we're going to start looking at the cloth simulation for bones. Thanks for watching.
12. nHair Rope: In this lesson, I'm going to introduce nhair, which by its name is associated with hair, but in this case, we're going to use it to create a rope for a decoration. I found this image from some cocoa artwork at the Pixar movie, and I want to recreate this hanging decoration where these squares will be close simulation, and the chord or a rope that holds them up is going to be an nhair simulation. They're going to use the same nucleus so they'll be affected similarly. But the first step we need to do is to create the cord, and then we'll create these little banners. The cutout aspect will happen through a texture. We don't actually model that. So the easiest way to do that would be to apply your own texture, and you would know all about that, if you've watched the texturing section of this course. Let's jump right into it. Let's create a curve, we'll go to the curve shelf here and we'll select Epi Curve tool, and I'm going to go to the perspective view. I'm going to use the grid here or the floor just to draw out our curve. So I'm going to hold down V and click on these two points. I think I need to show nerves curves here so we actually see what we just made. Then I'm going to center the pivot and we can start to place this. This is going to be the rope basically. So I'm going to get two view panel here, layouts, two panes side by side, and I'm going to change this one to the render view, renderCam and hit "Six" here, and turn on little film gate so we can see how we're framing this up. What I haven't envisioned here is that it's going to be hanging in this general area, maybe off of this tree that we've blocked in here roughly. Maybe one end can be behind the tree, so we don't really have to see where it's connecting and we don't have to worry about that too much. Then the other end can just go wrap the frame. So we just want to scroll through all the camera moves to make sure that we don't see it off the edge there. It looks like that's all within the range of where we're going to see the rope or the cord. Now, what we need to do is to add some more CV curves. If we right click and go to control vertex, there's only like a couple of points here, and nhair simulation is going to be based of how many control vertexes. You can see how jagged this curve is, and we want that to be very smooth, so we need to add some more CV's, which we can do after the fact, after we've already made this. All you have to do is go up to the modeling menu and go over to curves and go down to rebuild. I'll open up the option box, and let's say maybe 20, 25, something like that, and I'll just rebuild that. Now, we go to right click and say control vertex. It has a ton of points. When you simulate this, it's going to be a nice smooth curve. Cool. Let's right click back on to object mode, and with this curve selected, I'm just going to call this, let's see the banner cord. Let's just call it a curve because that's really what it is. So Banner curve, and we can go back to the Effects menu and click on in here and scroll down to make selected curves dynamic. Let's just open up that option box, and all these defaults will work exactly how you want them to. So I'll say make curve dynamic, and as soon as I do that, we get a bunch of new stuff over here. We have output curves, we have follicles, you have a nucleus and we have a hair system. Each one of those is going to do something a little different. They're self-explanatory, but basically we're familiar with the nucleus so far. This is going to maybe be the first time we're actually digging in deep here with it. We've learned a little bit from the end particles, but it's the same idea, same nucleus, and we just need to change the start frame. So we want to include the pre-roll here, because as soon as we hit play, this curve is going to sag down, and we don't want it to be just starting to sag down on this frame and be sagging, seeing that animation, we want that to pre-roll and sag before our animation starts with our character. Let's go to some, maybe like 700, and so turn that start frame to 700. The other thing we need to do is change the space scale to be the same as our scene. Remember, it's 0.01 if we are working in centimeters and it's going to think that's meters. So we just need to dial that back with this little thing here. This is a big key. With this, everything should look physically accurate based on the scale of our scene. So when I hit "Play", it should simulate this and you can see it's getting really stretchy and it's stretching out. I'm just going to hit "Escape" to stop that, go back to the first frame. I'm going to select on the curve which should be under here, and we can go to the curved shape over here. Let's see. Under follicle you can see that the point lock is both ends, and that's how we're getting both ends of this thing to be connected. If this was actual hair, we would just say like the base is the only thing that we would want to have connected. But because this is a rope and it's going to go in between two ends, the default works for us with both ends. The other thing we can do is go to the hair system here, and we just need to scroll down to the dynamic properties. We can see that right here, and we can just scroll down and increase the stretch resistance and the compression resistance. You'll see this again when we do the end cloth. A lot of these n dynamic properties are going to be the same between nhair, ncloth, nparticles, allow them share very similar values, and what this says is, it is going to resist stretching, which is going to help us with what we just saw where it was stretching all the way to the ground is going to stop that somewhat. Then compression resistance is going to keep it from getting smaller and going the opposite of stretch basically. So we want to prevent both of those just a little bit. So we're going to increase that, and then let's hit "Play" again, and we can see that our curve should not go all the way down. Let's see, it's springing back up. This is why we have the pre-roll, so that all of this springiness in bounciness can happen during the pre-roll and it'll settle into its final pose well before we get to frame 1001, which is when our animation is actually going to start. The other thing I want to do with this curve is, I want to similarly how we did the fireflies, I want the impact of this groundbreaking to effect this cord and make it swing a little bit. So the easiest way to do that so we can really control it is, to create a passive collider. So I'm going to create a sphere, and I'm going to increase the scale of that. Even though we're working with an inherent and we want the sphere to collide with it. The one little goofy thing is, that the actual passive collider button is under ncloth. So we can say create passive collider, and that's going to work with ncloth, nhair, whatever we choose. So I'm going to say create passive collider, so now we have attributes for this sphere. If we click on it, we can see it says nRigidShape1. All of these work, it's for our purposes. We're just getting this thing and position, so it bumps up against the cord and makes it move a little bit when the bones character jumps out of the ground. Let's figure out the timing of that and should be around towards the end, he's going to bust out of here. Let's do it. Maybe, let's get the sphere, away from the cord and maybe even scale it up just a little bit more, and let's set a key frame here, and then let's just step forward. We can see maybe in here is where it will be at the maximum, pushing up against this. I'm just moving this over into the curve, and it's going to push it once we actually simulate it. We can see if that's far enough, and then I will just middle mouse drag this key frame back over here about uneven distance. So it moves forward and back out of that frame. So now that we have that done, I'm just going to go ahead and cache this out because I think it's a pretty good spot without having to actually see this first before caching. Again, caching is a little different each time you do it for effects. For the end dynamic part, we figured out bullet that's its own system, Alembic. We can export the selection to Alembic here, and then when we do geometry, we can cache Alembic here and export selection there. But when we do in dynamics, that has its own cache and it's called ncache. So with this curve selected, I'm going to go to ncache and say create new cash, and it's going to be an n object because it's not a fluid. Just by common sense, it should be this. So I'm going to open up the option box, and I want one file just to keep it nice and clean, and I'm going to say hair system shape. Let's just call this banner curves so we keep it the same name, banner curve, and I'll just say 01 in case we need to iterate on this. Time slider. Yeah, we want that full range, that looks like that works. So I'm going to hit "Create" and I'll see you in one second. Grades are ncache has completed, and anytime we do an ncache, it'll automatically connected up. Now, we can see there's a new tab up here called banner curves_01cache. If we click on now we can see it's enabled and it has hooked up the name, the correct name that we named it, and the location that it saved in. Again, this is why you need to set your project so that all this stuff goes into the right folders. Now, we're ready to go and see if this actually worked. So I'm just going to hide this sphere for right now. This should play back pretty well. We can actually scrub the timeline and see it. It looks like I set a key on this sphere of visibility. I'll just go over to that and say, Delete selected and then turn that off again, and it should stay off now. Now, when we look at this curve, we can see that it indeed is dropping down and the way that I would expect it to at least, and then we can see how it gets affected by the explosion here. We might be able to see a little bit better in the perspective camera. Now, we can see that get pushed back and then I'll swing forward and then settle back down. So that looks pretty cool. It might be a little bit low for this camera. I think I might want a little bit higher. We should be able to just drag this guy up because I don't really want to break the silhouette of this guy. I want that to be readable and that these will be above that a little bit. That should all be fine. You can see it dropped down. The fact that he explodes out of the ground like a crazy zombie actually affects that rope. That'll look really cool once we get those banners on there, because those are going to have their own motion as well, and then they'll be settling down back here. It'll be a nice little thing that'll catch the eye, I think a little bit in our animation. In the next lesson, I'm going to discuss how to attach those banners and introduced ncloth as a dynamic system as well. So thanks for watching, and I'll see you in the next lesson.
13. nCloth Banner: Welcome back. In this lesson, we're going to finish out this banner here, and we're going to add the banner pieces to the code now with nCloth. I'm going to create a plane and I'm going to scale it up. I'm actually going to go to maybe frame. Let's start with the first frame here. Because we're going to use the same nucleus as in here, the start frame, if you remember, is framed 700. I want to make sure that they are both starting on the same frame when we start to simulate them. It's always good to start everything off together. Right now, this is just about getting these banner pieces to be the right size. What I'm going to show you, you'll do a couple times over because we ought to do it for each banner piece. It's not too complicated. It just takes a little bit of time. I'm just going to try to get this in line here. There should be no z rotation. There should be 90. Really, all we're trying to line up is this z rotation right here. It doesn't have to be perfect but just to get it in the neighborhood. Cool. It looks like we're there. The next thing we want to do is create a Locator. I'm going to go over to Create, Locator, and I'm going to Shift, Select the curve, and then go to the Animation menu and go to Constrain, Motion Paths, Attached to Motion Path, which you should already be familiar with from the Animation section of this course. Now, we have this Locator and we can just call this Banner 1 Locator. You can tell the scene can get pretty messy. In reality, because we've cached-logged this stuff, we could just delete it. Besides the alembic cache, the firefly stuff we could just delete all of this stuff. Then to delete the MASH Network, we would want to use the MASH Editor and I think it's just off the screen here. Because we've even turned that off anyway, but just for the sake of, if we wanted to make those changes later, I'm just going to leave that for now but just know that you could clean this up and delete some of this. Anyway, let's get back to the banner part. Sorry if I get off on tangents like that but I just want you to know all this stuffs possible. We have the Locator. Let's increase the size. We can see it. Then let's go to the motionPath1 input. We see we actually have a keyframe already set and they default. As you can see, there's keyframes down here from 700 to the very end. Basically, the default is that it's going to run as a motion path across this whole curve throughout whatever we have the time slider site too. Just make sure we just delete that because we're not going to use it in that way. We'll just say "Delete Selected." Let's go back to frame 700, the beginning of the simulation. With the U Value selected here, I'm going to middle-mouse drag in the view-port and you can just see I can move that value over to somewhere in the middle of this banner pieces. It doesn't have to be perfect but we can shift like that. Yeah, it looks like it's pretty close to the middle. Now, all we have to do is turn this into an nCloth simulation. I'm going to go back to the FX shelf here or panel menu set and then go over to nCloth. We can just say "Create nCloth". I'm going to open up this option box just to show you that we could create a new solver if we wanted to. But since we already have that nucleus from the inherit system and we already set the correct space scale and just in case if we ever wanted to go back and adjust the cord here, that if we want to adjust the nucleus settings because we could add a wind to this. There can be little fluttery of your wind stuff and we want them both to be affected by that. We want them to have the same nucleus system so the default here is going to work for us. Let me just get back to clicking on that so it will create an nCloth on this. Also, know that the number of subdivisions will affect your simulation because this is going to deform based on the number of subdivisions you have. If this was just like one piece, like if we just went here and just turn this down to one, this would not simulate well. We want those subdivisions. We don't want to go too crazy. It's definitely a balance between having too much and that's just more computational power that you're going to have to wait through and maybe even crash your computer if it's too much. We want to find a happy medium and the default here should work for us. Now, we can create a cloth and we're going to get a new nCloth note here and I'm just going to call this Banner 1 so we can associate it with that Locator, and nCloth1, since we're calling this 1, we all know that this nCloth is associated with that 1. Let's go over to the nCloth settings here and similarly look here. I mentioned this in the last lesson that we'll see this again and, in fact, we are. The stretch resistance and compression resistance, we can just increase because this is not a stretchy piece of material. If we look at our reference, this is most likely a piece of paper of some kind. It shouldn't stretch and compress, but it will fold and move. That's a lot of activity outside. I don't know if you here that. That's why we want to increase those. The next thing we want to do, so if we just had play, this is just going to fall to the ground. We are going to hit play and it's just going to fall the same rate as the cord because they're using the same nCloth solver. It's going to fold up and get a little crazy they're. We don't want that to happen. We want to attach it to the curve here. I'm just going to make that a little smaller so we don't have to see all this stuff. How we connect nCloths to anything really is through nConstraints. They really like that nThing. If you look up here, it says nCloth, nHair nConstraint, nCache, and they used to call this nDynamics. Anyway, they're keeping the nThing there. We need to create nConstraint and that's why we made this Locator, because we're going to constrain just this top row vertices to this Locator. How we do that is just by going to the Edge and I'm going to select one end and then double-click the other and then I'm going to shift "Select" at the Locator. Go up to nConstraint. I'm going to call this a Transform Constraint. There's a bunch of different types of Constraints. Terrible service is obviously specific to nCloth. But there's all these different types, but transform is a pretty solid one. You can see that now we have these little points at each vertices, that is the end constraint. If we go to the attribute editor here, we can see that there's also a new tab and we can increase the glue strength. If you remember the bullet system, glue, they're using the same word here and it means the same thing. They're trying to make sure this stuff attaches. You're going to actually animate this on and off. You can right-click and set a key here, but we just want to make sure that's always connected so I'm just going to crank that all the way up. Now, because we've already cached the curve, that we're not having to simulate the curve anymore, we're only simulating this one piece of the banner. Now I can jump back to frame 700. It's using the same nucleus, so the start frame, down here is already on 700. Now we can hit play and we can watch this thing simulate. It looks like it's working already, and we might not have to do much more than that. You can see it is wavy a little bit, and that looks like that'll work pretty much. What I'm going to do is I'm going to cache this out as well, and then I call that banner 1. It's important to keep track of this stuff as you update. You might have to replace banner 1 cache, and not banner 2 or something. Just want to make sure that you're naming things correctly, so that way you can update if there's any changes that you need to make later, it's not very confusing. To make the nCache, let's just select the piece of geometry here. We'll go to nCache and create new cache, again as an object. We'll just say nCacheShape instead of that, we'll say banner 1. I think it's good that we call the other one banner curve, so that differentiates them. We want one file where the time slider it's going to be fine. I'm going to hit the Cache button and I'll see you in one second to review it. We've cached this banner and we can see that there's actually a little error here. That the geometry is penetrating itself here, intrapenetrating, so we need to fix that. Probably the quickest and easiest way to do that, and it happened when it looks like the curve moved here when on impact. Definitely looks pretty cool and that we're going to get all this motion after that impact. But we need to fix this inner penetration so it stays almost rigid really. There's a couple different things we could do. We could increase the step. If we go to the nucleus, we look at Substeps and Max Collision Iterations, we can just increase these maybe to like, let's just do 12 and 12 just to crank it up. Then we can select this piece and we can go to Collisions, and we can scroll down to Quality Settings, and then just increase the max of self collide iterations. That one is colliding with itself. It won't stop calculating after whatever, let's just say 12 colliding moments here. When we recache this, that should solve that. But the other thing we could do, is take a look at some of these other attributes here. Lift might be a little high. That's how it's floating around a lot so we could maybe reduce the lift just by a touch here, and then we could increase the rigidity. It's not as floppy because this is paper. It's not going to maybe be is floppy. You're just crank that up by a little bit and hopefully see that that gives us a better simulation. I'm going to recache this. I'm going to scroll back to that first 700 frame, and when I go to nCache again and I say create new nCache. I open the option box. I'm going to call it banner 1 again. When I hit Create, it's going to give me an error message and it's going to say add or replace, and we want to replace. That is going to give us another warning. What we want to do is replace existing. We just want to replace all this stuff because we've made these changes in that first one didn't work at all. Now we can now watch this cache completing and see just already that it's a much more rigid than previously. We could hit Escape and stop this and reduce the rigidity. I'm going to let this play all the way through, and let you experiment with this. The last thing that I would say to do, which you already know how to do is to extrude a curve along this curve, if you've watched the modeling section. I will show you how to do that in one second when this cache has done. Thanks for watching. We can see that the rigidity is maybe too much so we can just dial it down and recache it again. But what I wanted to show you real quick, if you've forgotten from a previous lesson, is just how we could extrude something over this. We could do a couple different things. Let's just keep it simple. Yeah, let's just do a cylinder. I've created a cylinder. It's off the screen somewhere. I'm going to hold down C and middle mouse drag here, so it'll get on the curve. Then I'll just in general get this to an okay spot. I'm trying to look at this center point that it's headed in the right direction here down the curve, and then we can select the faces here. Somewhere right-clicking and go down to Face and select the faces, de-select these back ones, and then select the curve and go to Extrude and it's going to be all wonky, so we just increase the divisions. I think we had 25 CVs, so that should be plenty for this. Looks like it is. Yeah. Then we can just dial in the thickness of the cylinder through its first input when it's originally created. We can go over here, go to the polyCylinder, and then should still be able to affect the radius here. Yeah, we can just make that a little smaller and just mess with that later if we want. But yeah, play around with these rigidity settings. I'm going to lower mine a little bit. It has a little more motion back into it, maybe because it was set at zero by default. Let's just maybe say 0.2 or something. But yeah, I will see you in the next lesson where we will continue learning dynamics. Thanks for watching.
14. nCloth Vest: Let's continue learning more about nCloth and the specifics around adding nCloth to characters. So I have brought in the Alembic cache or animation into its own scene because we can work a little quicker with less stuff in the scene. We can just export the vest dynamic out as an Alembic cache once we're done. So it's just kind of nice to work in a scene by itself now. So I've created a vest and you're welcomed to remodel this if you want a bigger neck or something or different design, you can also texture this any way you want. There are UVs on it and that's another thing I'd like to mention as well, the fact that it's very important to have UVs on your cloth because you can actually paint different properties to the UVs and it'll save them in the UV space. So say if you wanted the color to be stiffer or something, you could actually paint that in and that'll be saved according to its UV coordinates. If you don't have UVs, you won't be able to paint that stuff on properly. That's very important. But let's just get started with this. You can notice that we're at frame 800 and if I scroll through here, the animations should start around the frame 920, I guess is where we start it. So just going to bring this to maybe 850 and then we can get a sense of how it's going to settle before the character starts to get into position. Because he's not really interacting with anything else, that's why I don't have any of the set or anything in here. So let's go ahead and create the nCloth. I'm going to go to the Effects menu as we've done before and create nCloth and we get our nucleus as normal. I'm just going to increase the sub-steps. So the quality is higher from the very beginning. I'm going to get the start frame to go to 850. Again, I'm in the nucleus and I want to get the space scale correct, as we've mentioned all throughout this course. That should be point 0.01, so it's physically accurate. Let's scroll up gravity, everything else is fine. Then we can go to the properties of the actual nCloth itself. So let's get the stretch to go up because you don't want this thing to stretch or compress all crazy. I think what we're going to see is the fact that while a, this things will just drop to the ground because we have no constraints, we have no collision properties. I need to make sure that I have my playback speed is every frame it's on 850. Let's make sure that's correct. That is on 850. So this should simulate. Yeah, now it's going. We need to create colliders for it and we need to constrain it to the collarbone basically. So what I'm going to do is only use the kind of torso geometry as colliders and just ignore everything else since that's all it's going to really be colliding with or should be colliding with. So let's create a passive collider for all of these pieces. I'm going to open up nCloth, I'm going to tear this off because we're going to do this multiple times, I'm going to create a passive collider and I can actually shift select things and create a passive collider for all of them at once. So I've already got the spine, so I just need to do the scapula and the clavicle. Yeah. So now we should be good to go, create passive collider. Now we got these in rigid shapes, which again really, there's nothing really to adjust with these. You may run into an issue where you need to adjust the collision thickness and so you can actually see that under Solver display. Let's, for example, go to this clavicle bone and we can see it's in rigid shape too. We can turn on Solver display collision and thickness so we get this kind of visual cue of how far away from the geometry that the collision is going to occur. We can increase that distance, or we can decrease it or even pass where the geometry is. But in general, you want it a little thicker than the geometry. Yeah, that's fine. We can increase the stickiness. Instead of doing constraints, we could make this super sticky to their rigid shapes there. There's all different types of ways you could approach this and to that point, I also want to mention this really nice resource on YouTube. Let's look up, this playlist called nClothshape dynamic properties. There's 30 videos. It's by the account called Discovering Maya. They basically did an awesome thing where they went through each of the attributes of nCloth and they demonstrate exactly what it does. So instead of spending hours showing you that, I just want to show you this resource because these guys already did it. You can go access that. So when we're looking at these nCloth, all of these little attributes here, you can really quickly get that resource and not have to test for yourself every time. Because I even have remind myself sometimes, how does that affect the dynamics? So that's just a learning process, getting familiar with what each one of these things does. Just by the name, they tried to obviously give you some indication of what it does. But yeah, for the most part, you're only going to need the stretch resistance, compression resistance and we're probably going to use some rigidity here or deform resistance to kind of keep it a little stiffer. Then we may increase damping here, which let's just go ahead and do that. I have a feeling we're going to need to do that. But getting familiar with what is 0.005 mean for damp really? It's an arbitrary number. So you have to just play with this stuff and get experience with what really is going on. But I encourage you to find this YouTube playlist here. It's kind of a crazy long name, but yeah, you should find it under Discovering Maya. So anyway, we have our nCloth ready and we need to constrain it as well because the collisions aren't going to be enough. This could just slide right off. We can just play and test it and you can see it slips and slides around a little bit. As soon as this guy starts moving, its probably going to go all kinds of haywire and slide off. We can just get an idea of how much we need to do to help control this thing. I think what I'm going to like to do is just add some rigidity to this so we can actually even do it while it's simulating. We can just increase rigidity or increase deformed resistance. I'll take that back because it looks like we can do it. Well it's simulating. Sometimes you can, but I think this is spased out because there's so many passive colliders to deal with. So anyway, the vest was slipping and sliding. So what we need to do is add constraints to the clavicles. What I am going to choose because if you remember from the rig, this actually can move up and down. I want this to be the vest to be constrained to it. We just need to choose what edges or vertices we want to constrain. So I'm just going to choose the row that is related to that kind of clavicle. Whoops. I think I selected through the geometry there. We can do each side at a time and have be to turn off soft selection was on. So let's go to n constraint and go component to component. You can see that it's trying to stick to that clavicle bone. If we hit play, we should see that this is going to try to stick there. You can see this left side kind of slides off and this right side kind of stays where it was originally meant to stay. So again, we can compare the right and the left side a little bit now, follow this along. Just going to hit escape so we can get our camera in the right spot. I'm going to just hit F here. So you can see where the constraint is working. But we still need some help because everything is collapsing in through the ribs and stuff. So let's increase the rigidity a little bit. It looks like we did have a deformed resistance on, but I'm going to favor rigidity a little bit. Let's just go ahead and make that other constraint while we're at it, instead of comparing this every time. I'm going to select the edges and I'm going to shift select the clavicle, go to End Constraint and say component to component. Then let's hit play and see if we have enough rigidity. I'm going to select nCloth. Let's just call this two and hit play. It shouldn't deform that much yet and we can actually animate that on and off. Once he jumps in the air, we could animate the rigidity to be less. But just to help it get into a good starting pose, we can key frame these attributes to our advantage basically. The other thing I'm looking for is because he's going to start moving a lot quicker. How fast this character moves is going to affect the dynamic constraints that we've made and the Closs simulation. So far so good. Now it starts to tear through. I think that we need to do is increase the sub-steps and if you're not familiar with sub-steps, that basically means, the other thing is the fact that, these are trying to follow the clavicle, but I think it's probably this sub-steps, and the fact that our rigidity is high. I think the passive colliders are fighting the rigidity of this because if this is super rigid, it can't flex around these. You might need to key frame the rigidity a little bit. Let's hit three just to see how this smooths out. It's not terrible and it's going to be moving so quickly. We could probably get away with some inner penetration of the vest. But let's try to troubleshoot this a little more. Let's go to whatever frame. I'm just ignoring how crazy the in cloth is trying to evaluate and just ignoring that for right now. I'm going to key frame the rigidity probably in here. Let's say set a key and select it so I can see it where the key frames are here, and I'm just going to turn this down. It's going to give me a bunch of errors. If I wanted to scrap it and get back at those arrows, I can just disable the nCloth and then we can scrub and it's not going to try to evaluate. Let's turn this down to like 0.25. Then let's also increase the sub steps here and right here. Let's just double all this. It's going to slow everything down. But what sub-steps does basically is say between each frame, how many times am I going to break this down and try to evaluate it. We just need to turn back on nCloth. Let's just go ahead and catch this out so that we can play it back in real time and see where the problems exist and where we need to troubleshoot some more. I'm going to call this vest_01. We're going to have one file. It's going to be the time slider and let's say Create, and I'll see you in one second. Now that the cache is done, let's take a look at where the problem areas currently are and how we can address those. Let's look where we animate the rigidity off here. Everything slides off and crashes through. It looks not gray right now. This is part of nCloth is dealing with these issues and then it gets stuck on itself. But I think at least we solve the issue of it crashing all the way through. For the most part, it looks like it got caught on the spine. I think what happened is it went above the spine and its hooking over the top because the head isn't a passive collider, so it's not preventing it from sliding over the top of the spine. I'm going to just hide that super quick so you can see what I'm saying. I think it's just getting looped over the top of the spine. I'd probably need to include the head here, so it prevents that from happening. That might solve a lot of it because it looks like that's why it got stuck and got hung up there and then got into the rib cages. The other thing that we could do, let's go back and find the head here and unhide it. Then I want to create a rigid or a passive collider for the head, and then create passive collider. Now they head having a passive collider, I'm just going to do these iterative caches so we can see quickly what is actually going on. I'm just going to replace that one and replace existing, and I will see you in a second. All right, now that the cache has done, and we can take a look, see where this is getting caught up. It looks like it did improve a ton. Now it's not longer getting caught on the spine that we included the head. I will say that it looks way too rigid right now. It also looks like there's geometry that got caught on itself here we can see or I fold it over. Let's turn down the rigidity even more, especially towards the end. Let's just get this to hang on this last pose. Let's get this to hang supernaturally, so we'll turn rigidity all the way off by then. Remember the Mac self collide iterations down here from the last examples. Let's just crank that way up and hopefully that should work. There's also these little trap check stuff. I'd actually have to go back into the mind documentation to exactly know what these do. But this helps set the threshold for how geometry should push out from itself. Let me just go to the collision. There's also, just should mention self collision flag- vertex, face. There's these different ways that it can calculate the collisions. Full surface is going to be the most intensive. This would be like a last resort if it's still not working, I might go to full surface. It'll calculate exactly the surface instead of vertex face. I think is a combination of vertices and faces. But anyway, we've increased the max self collisions on this nCloth shape down here. We need to also adjust the rigidity. Let's see. That's a little wonky. It looks like when he goes mid-air. Let's maybe, should we leave the rigidity? I don't know it's hard. You might have to experiment this yourself to get the best results. Let's see. I mean, that's not terrible and we can't see the back anyway, where it's going through this piece, the scapula. I think what the deal is it's going through this piece. What we could do, let's go back here. What we could do, I think this might break everything. But what we could do is just drag this stuff out to make sure that the holes here don't go past it. That constraint follow that all the way out there. I'm hoping that didn't break everything. But I'm pretty sure that's a legitimate thing you can do. We're going find out soon enough, and then by the end we wanted to make sure that we have rigidity all the way off so that this last pose doesn't looks fake. Let's go down to rigidity and just turn this to like 0.001 or something. I don't know. Maybe let's do that sooner while it's all settling down to here. It's a lot of jiggle right there though. I think that might be because of rigidity is so much it can't move independently. Anyway, we're going to find out. But I want this rigidity maybe last a little bit longer here. I'm going to maybe say like a 0.15 here. It favors this rigidity. Let's go back and we've increased the max collisions. We have extended out this part so it will collide hopefully and with that and not go around it. What else have we done? We have animated the rigidity. Let's make an update here, and I'll see you in one second. All that cache is done, let's take another look and it looks like we still have some issues with the max collisions here. We can maybe do with some increase in sub-steps. Let's take a look and see when this actually happens. Because it looks like it's a well before the settle, it looks like it's maybe in the jump on this. We can see these folds are already happening here. I'm just trying to go. Yeah, of course. When it's moving that fast, the chance for it to really screw up. We may need to keep rigidity up there. See it just gets also bunched up. We could also animate the sub-steps is another trick. Let's select this and let's keep the rigidity up for now. Let's see where we can start to crank it down. I think somewhere in here probably is worth cranking it down. Like I said, the other thing that I think what I'm going to do is to animate the sub-steps. When you increase the sub-steps, it takes longer. It increases the calculation time. But sometimes it's necessary to solve for some of these issues that get created. I'm just going to set a key here and increase it to maybe 50. Then let's set a key here and then let's bring this back down to 24. Maybe down in here somewhere. Actually, let's just extend this out through that jump so that we get the most calculation. Because basically where we have the most problem is where are we should be concentrating the highest amount of calculation to resolve it. We've basically increased the sub-steps and we have the rigidity left on. It's basically you can get a sense for what effects' work is. It's a lot of back and forth. It's iterations. It's trying to tweak values so that you get the right physics and art direction of how you want things to flow. The other I thing we could do is create a transform constraint and physically animate constraints to keep the vest on the way that we want to. But I'm trying to avoid that as much as possible and trying to just get it to work based on the physics of the nucleus. I'm going to create a new cache and I'll see you in one second. Real quickly I just want to walk you through what I did to finish this cache correctly. I noticed in here the chin went through the bone in our animation, through the chest bone. Shoving the vest through the clavicle. What I had to do was to select these vertices of the chin and then I just move them up so they were out away so they weren't going to smash the vest through the clavicle because they were always getting stuck under there. We can make adjustments to this alembic cache geometry and not have to make changes in our animation, which would be a much bigger process. That solved that. Then I also loosened up the rigidity during the jump a little bit. You can see it's two. Then I went all the way to 0.01 at the top of the jump, and then 0.04 and then 0.15 to get it to settle back down and then loosen the back up. I could probably maybe even loosen this one up to 0.05 or something or just leave it at 0.04 because it gets a little stiff in here, you can see it moves a little solidly. But anyway, definitely open up this 13_nCloth_Vest_end, same file if you want to see these settings and how I animated rigidity. To take a look at that to compare to your scene if you're running into any problems. Basically this works now and to cache this out, all we need to do is select this geometry and we can go to Cache, Alembic Cache, Export Selection to Alembic. I'm just going to save it under the name of this scene. It's going to be alembic and we have all of our correct stuff selected. I'm going to export that and we can just import that alembic into our main scene now. Then we can just save this one out. If we need to make any updates to it, we can come back into this scene and re-export another alembic. But I will see you in the next lesson. Thanks for watching.
15. Bifrost Liquid: Let's begin looking at Bifrost. Bifrost is a newer dynamics in Maya, you can do basically liquid and arrow which is smoke or clouds or whatever else. You want make sure that you have this loaded under Windows, settings preferences Plug-in manager and you can scroll down. This is towards the bottom is this Bifrost Maya plugins and you want to make sure all this is loaded. That way you will have this option under the effects panel here. In this lesson, we're going to create a little bit of liquid. Let's create a container and an emitter here, go over to poly modeling shelf and create a cube. Now, that we have this, we can see frame up on it, we can see that we needed to take into consideration the scale like we always do with any dynamic effects. With Bifrost, it's no different. Bifrost, like all dynamics thinks that one unit is one meter. Because this cube by default is one by one by one, I thinks this thing is a meter in size. If we're going to simulate like water into a cup for example, we need to scale this way down. Let's just assume maybe a cup is like 10 centimeters, so you can think of these scale as basically 100 meters. Imagine two zeros here. If we wanted to get down to 10 centimeters, we need to take as zero out of this. By taking a zero out, we can just move the decimal place. Now, we're down to 10 centimeters. Now, we can frame up on this and let's create a little cup here, grab this face, and we will extrude it and offset that and then extruded again by hitting g and then just pull that down. Now, we have our rudimentary cup. Want to make another cube and this is going to be our meter, we're going to scale this down to 0.1 and then just hand to scale it from here so that it is small enough to emit down into the cup that we have created. Now, that we have our emitter and our container, we need to make the Bifrost fluid. With the emitter selected, go to Bifrost fluids liquid. Now, you can see that we have all these new things in our out-liner here and to be honest, that's not super well organized. You create one Bifrost simulation we have all these different things. We'll go through each one of them but in general, there's only a couple of things you really need to look at to get started. When we have our attribute editor open, we can see with the Bifrost liquid, we can change the start frame but for us in this lesson, we're going to start in frame one and we want to turn on Scratch cache. What this does is it simulates the dynamics and the fluids, and then it keeps it stored in memory, so we don't have to simulate it every time, unlike in cloth for example, where we had to cache it to disk instead of memory. Scratch caches will cache it to memory and you will see that when we hit play, this will start to turn green. The next thing we need to deal with is the default particle shape. Let's go over to the emitter and we can basically see most every property, even though these are divided here, we can get to all of them from just going through these tabs. We can actually get over to the emitter from here. We want to turn on continuous emission because we just want to see this thing pouring water out from this emitter here. Now, I have selected it switch the tabs up a little bit, but we're selling the emitter tab here, even though we are selecting this. You can see where you can get to both from different things. There's an emitter prompts here, or we can select the emitter itself and we still have the emitter tab here. The next thing we want to look at again is the voxel size, we want to go over to its properties. We could also get to that with this little button here or this little object in the out-liner. Again, you can get to it from having the Bifrost liquid and go to the properties or you can just select the properties as an object and the out-liner. Now, we can see our gravity, we don't need to change because again, we're scaling all of our objects down to accommodate for that one meter scale. We don't need to change the gravity, but we do need to change the master voxel size. This is saying basically, if we look at this container, this is the container of a voxel. When we reduce this down, you'll see that cubed change size. Let's go to something like 0.05, and we'll probably need to go even smaller because when we'll hit play, you can see that nothing's happening really. Also for playback, you want to make sure that your playback speed here is play every frame. You just get to that Right-click, it's off screen, but you can go to playback speed and you can go to play every frame. Why is it not simulating anything? Well, if you think about it, this master voxel size which a voxel is just a three-dimensional pixels, you can basically think of it like this cube here has a ton of cubes in it and that each of those cubes is a voxel. Pixels are an image of voxel is just a three-dimensional pixel basically. If you think about why are we not seeing anything yet? Well, it's because that voxel size is too big for our emitter. Our emitter is smaller than our voxel size, we need to reduce that down even more. Let's reduce that down. Now, you can see that we've reduced it down, we can actually see particles here. If we go over to liquid shape, we get the option to turn on voxels or particles or whatever else, and we can just increase the particle size here so we can see them a little bit better. Basically now that we have this master voxel size set appropriately, it is smaller than our emitter now, now it can actually emit particles. Now when we hit play, we will be able to see it is indeed emitting particles, but let me just escape out of that because we haven't added this as a collider so that's just going through that. The other thing we need to see the green I mentioned earlier, we need to have this thing selected. Now we can see the green and this means we can scrub this now and I will immediately take that back because I clicked on frame one, and so that's the catchy thing about the scratch cache. Is if you go back to frame one with a scratch cache, it will start over. Let me just try to escape this, this is another thing to be wary of is trying to escape out of things sometimes it won't let you. It's smart to bring this down to limit it, how far it can simulate and then also to turn playback to one, so it doesn't continuously loop back and start re-scratch caching over again. Basically the steps are reduce down the range that you really want to see and test. This is the default from looping and turn it to where you have this little one over here. That way it won't go back to the beginning because again, if I was to click on frame one here, it would get rid of all of this scratch cache. Let's say I like this and I want to scrub it. I'm going to save myself the headache and fear of getting back to frame one and just turn the timeline to two, so I can't ever get back to frame one. Now when I scrub, I can actually scrub and see the simulation. Whereas if I accidentally hit on frame one, it's going to delete all of that scratch cache. That's another thing to look out for. There's a lot of these little got you things that it's important to keep in mind. We want to add this container, the collider now that we have are emitter working, so we want to have our Bifrost liquid selected and then the geometry and go up to Bifrost fluids and add a collider. Now, when we hit play we should collide with this object, and we get another problem. You may have these particles that are going outside of the container. Why is that? Why and how? Can we fix it? Let's go into the Bifrost liquid, let's go over to the properties and this is another big one to remember. We basically covered this one, this is an important one and the next one is going to be this one. This is the transport step adaptivity which basically means how accurate is this thing going to be? The higher we go with this number, the more accurate it's going to be, but also the more time-intensive it is going to take to simulate. If we just go to something like 0.5 and let's redo this scratch cache, we can test to see. Now, we do not have those particles that are going outside of the container. I'm going to let that finish and go to that last frame that I had so now I'm not having to like frantically hit escape to get it to stop. Now, we can see that indeed the collider is working, the particles aren't going outside, the emitters is working, gravity is accurate because we've scaled everything down properly, so the last thing we want to do is create a mesh for this. We have everything else working, but now we want to render this as a water or something like that. Let's create a mesh. We want to click Bifrost liquid and have the liquid shape tab selected here, and we can go down to Bifrost meshing. This is pretty cool, we can just click Enable and roll out we have a mesh. When we hit render, we can actually render this thing. Now you know how to do Olympic caches, so you could also actually create an Olympic cache from this which is pretty amazing. That is how to use Bifrost and create a little liquid simulation and we can play this back as well with the geometry mesh working. In the next lesson, we're going to cover how to use Bifrost with creating smoke for our main animation scene. Thanks for watching and I'll see you in the next lesson.
16. Bifrost Emitter: In this lesson, we're going to create the emitter we're going to use in our main animation seen for bifrost smoke. I'm doing this in a blank scene because our animation scene has a lot going on and everything would work a lot slower if we did it in the animation scenes. So I'm just going to do it in a blink scene. We have a torus we've created from the poly modeling shelf. I'm going to increase the subdivisions so we have more geometry and then I'm going to go to deform and go to the texture deformer. Also just real quickly, we're doing this as a customer emitter that weren't going to cache out basically is what we're doing here. The reason we're doing that is because with a texture deformer, you can't scale it. So I'll show you that in a second. But basically what the workflow is, we're going to have an emitter, and like the previous lesson which had a cube, but for smoke, we want the smoke to look more natural and have all this wispy stuff going on and we can get that from the emitter, a lot of that from the emitter. So we want to create something that's very erratic to emit these very natural organic shapes. So I'm going to click on this little checker box over here next to texture, and I'm going to choose a noise and immediately you can see it's wonky. We've covered the texture deformer previously in the texturing section of this course but again, you just have to mess with this stuff and go to normal, we can adjust the offset and then we want to go into the texture itself and then adjust these objects. I can right-click here to get a preview of what that is, but also we can just see it here being represented inside of the geometry. So we can adjust this stuff as needed and basically what we're looking for something very like a freeze frame of an explosion essentially. So we can adjust this as needed and then the next thing that we're going to do is to add an expression here to time. So I'm going to say equals time and what that does, is when we play this back, it will just change the number here according to the frames. So it's a really quick way to get animation but if we're going to do smoke that's exploding, this is too slow. So I can right-click here and say "Edit expression," we get this little new window and we have our expression here. This attribute is where we entered in the equals time. So this is what Maya reads is this little box over here. This time means noise1.time. You can see this is noise 1, and then dot time is this attribute. Then we typed in equals time. So we're going to add to that and just say times like maybe six and hit "Edit," now save our edit and then we can play this back and see if that is fast enough. So it's pretty erratic and we're going to frame through each frame and scroll through and I think that'll give us enough change over time. So let me get to the other reason why we're doing this. Actually let me just add a little more geometry here and see if that helps before I explain a little more why we're doing this. So we can go down to poly torus, let's see if we can just add some more geometry, maybe 40. So we just get a little higher resolution here. So the shapes have a little more volume to them and can do different things. So we can adjust this texture to form or as much as we want by going into that and changing these things but in general, we can actually reuse this thing once we cache it out, we'll be able to reuse this for any number of simulations. Just to increase the timeline to 200 so that it will have the full range of our animation scene, and we can use the alembic node to offset, so even though we're on frame one and we're only going to cache to frame 200, we can offset this by 1000 frames once we import the alembic cache. So again, let me just cover why we're doing it this way. If I was to scale this, it's going to get wonky with the texture deformer, so you see it change shape, it's not holding its shape when I scale it because it's moving through this texture. So we're caching this out, so it bakes down that texture. So when I scale it, it's going to keep this shape when I scale it, and scaling is important because that's how we're going to turn on and off. We're going to scale up from zero, so it's basically going to be nothing, and we can't get down to zero. This is the other thing like check this out. I can't get this thing down to zero So we need to cache this out so that we bake down the geometry so we can scale to zero. So we make this thing disappear and then we can scale up and retain that jaggedness that we have down here, and so that we can basically say kaboom here is our emitter and it's going to make a really nice emitter for our smoke. So let's go to alembic cache, export selection to alembic and I'm going to call this say 15_Bifrost_Emitter and instead of using start I'm going to use the time slider, and we don't really need UVs or whatever, but that's okay. We can just leave it there. I'm just going to change over that back to the original. This is from the other section where we had to change that. But anyway, this is the default. Yeah, let's hit "Export selection," it's going to play through, and then in the next lesson, we can import this into our main animation scene, to create some smoke. Thanks for watching.
17. Bifrost Smoke 01: In this lesson, we're going to take the emitter that we've used and create smoke. Let's go to cache, alembic cache, import alembic and we'll use the Bifrost emitter here and I'll hit "Import". If you remember the torus here, then we are going to rename this to emitter if we like. Let's just call it smoke. It's probably pretty small. But now that it's an Olympic cache, we can scale it and it's going to maintain this shape. Remember when we were scaling it in the previous lesson, that it was changing because the shape was moving through a texture. But now we can scale down to zero if we want. Check that out, or as before we can scale down to zero. That's why we need to do an Olympic cache. Now that we have this, we can place this where we need it and we're going to scale it up. Let's bring it over to basically where, what I want to have happen is the smoke to pop out when the hand comes through and then we can do it again when the guy burst out. It'll be two times that we're going to use this and if you notice when I'm scrubbing through here, the texture of former or all that animation that we had is not actually going through. What we are going to is offset the alembic cache. Let's go into the attribute editor and go over to the alembic node, and we can offset this by 1000. When we scrub through, we should be able to see that it is indeed moving as we expect it to. Let's get this thing to where we want it. Let's get under the ground here. Let's go back to frame Harish. Now we can see it is under the ground that we've created, and then we need to figure out what frame that the animation starts. Let's go to frame 1020, I believe. Let's scale this to zero, so that it starts basically off. I will key select that and then I'm going to go to frame 1023. So pretty quick, it is going to turn on, hit command at the wrong arrow button there. You can see I'm typing up here. So to get off of that, I usually just select somewhere in the view port or something. So now we are on frame 1023. Let's scale this back up to the size that we want it. Just type in a number here and then scale it. I don't want it to be touching the top here because we're going to choose a couple of these pieces for it to collide with, and I don't want it to be intersecting that. I'm just going to choose something that is not intersecting that. I'm also going to bring this timeline down because we're not having to do pre roll for this. Because it's happening after the scene's already going anyways, and then I'm going to go to 1031 and hit a key frame on hit "Shift R" to only key frame the scale, and then go to 1037-ish and scale that back down to zero. Scaling to zero is basically going to turn the emitter off. Now we have this effect where the emitter pops on at the same time that the explosion happens here with this fist. Because we haven't key framed the position, we can move this without having to worry about, affecting key frames negatively. I'm going to go back to the beginning, just to make sure. I want to max out the scale here. It looks like that's pretty good. I might just move this down a little bit so I can scale it. Scale it up a little more here. Cool. Now that we have the emitter done, we can add the Bifrost. Let's go to the Effects tab and go Bifrost Fluids, Aero. Last time we did liquid this time we're going to do aero. Let's click that with the Emitter selected. Now we get all of these things we're somewhat familiar with. Last time we did liquid, now we're doing aero or smoke. It's a little bit different and the other main difference we want to keep in mind is scale, again, something that we keep coming back to. In our liquid example, we created our scene to fit the by frost scale. But in this case, our scale is pretty huge and so we need to adjust Bifrost to fit our scene instead of the other way around which we did in liquid. To do that, we need to adjust the dynamic properties, gravity, what we did in the bullet solver stuff, we just need to do that here. We'll get to that here in a second. But I'm going to hit the "Start" frame, let's say 1020 because that's where our animation starts for the emitter. I'm going to turn on Scratch cache. I'm going to go over to the Aero shape. I want to turn Voxels so we can basically shows the smoke a little bit better and I think that's all we wanted to do in that tab. I'm going to go to the next tab. That's not got what we want so I'm going to go to the emitter and I want to turn up the temperature. This is another thing back to scale and also just how I want this to float up. Temperature is going to affect how quick this rises. Just imagine like a fire or something, the hotter it is, maybe the faster the smoke or the fire's going to go upward. I'm just going to change that to 1500 and then I'm going to go to the Aero tab over here, back to that, and yeah, I've got Voxels selected already. So then I'm going to go to Properties and scroll down Properties. It's deceiving this property tabs, you think it has nothing on it and then you scroll it down and has a million things here. This is where the scale factors in. If you remember on the Bullet Solver, we did the same thing. I'm just going to increase to 980. That's basically taking the centimeter to meter scale and then multiplying it by that. The master voxel size. This is where you can get into a ton of trouble. We talked about a little bit last time about the liquid. But here, for this lesson, I'm never going to go below this. Below means higher resolution. If I take this number down. For us, I want to keep this pretty high so we can actually see the simulation and also another little trick when the Scratch Cache, when you're testing stuff and you hit Play and the Scratch Cache isn't working or isn't letting you stop it. Imagine, it's taking like one minute per frame to calculate, and here we already have the green stuff popping up from the Scratch Cache. Imagine it's taking one minute per frame to calculate and you can't cancel it. You're like, okay, I don't like the way this is going. Let me cancel. You've got like 200 more frames or it's going to be like hours. This is why you want to turn on Playback One and you want to scale down what you're actually viewing so that it doesn't go past where you want it to. The other little trick I found is if you're hitting "Escape" and it's not working to stop Playback. If you switch to another window, at least this is maybe, its a mac thing and we switch to another window and then switch back to Maya and then hit escape. It'll recognize that you're hitting a keystroke in the Maya window. But for some reason, if I hit "Escape" sometimes with Maya, it won't recognize it. I got to go Chrome or some browser window or finder or something and then jump back into Maya and then it will accept any keystroke like Escape. So anyway, that's something to remember. Master voxel size, we're familiar with that now. You want to keep this higher so that we can actually test things. The idea is you want to test at a very low resolution and low doesn't mean number, it actually means a high number for voxel size because if you think about what this is, it's, the three-dimensional pixels. We want a bigger one because we want it to represent a bigger area per pixel, per voxel. We want this to be a bigger number, which will mean lower resolution. That's how we want to test our smoke and then once we like it, we can decrease the voxel size and then cache it out, so it will have a lot finer detail. But let me tell you Just real quick. This might break your all's machines. I don't know what kind of computer you're working with. This is the stuff that's very computer-intensive. Especially if you have this voxel size set too small and too much at higher resolution, instead of at a higher number and a lower resolution. We want to keep this at 1.5, at least for this scene scale, seems to work pretty well. Let's just hit "Play" and see what we get. Now that we have this simulated, we can take a look at the shape of the smoke and you can tell it's very uniform bulb-like, really rounded and it doesn't look super natural. We can affect that with a turbulence field, and Bifrost has their own thing. With it selected, we can go to Bifrost Fluids and it has its own, you can find turbulence field under the motion field. This is where you're going to want to go if you want to add some noise. I'm going to click "Motion Field". Now we have all these different options to affect the bifrost simulation. I'm going to turn off direction and I'm going to turn on a little bit of drag. That just means it's going to have a resistance to whatever motion is going on and of course, that's a physically accurate thing in nature that's what happens. I'm going to turn on turbulence. Because of this scale of our scene, I'm going to crank these way up, I'm going to say something like 5000. These numbers will be different every time depending on your scene and how you want to affect the simulation. I'm going to remember this on frame 1035, and I'm going to redo the scratch cache up to this frame and see if we can't break up this very rounded look and make it a little more disturbed and wispy and more smoke like instead of like this kind of rounded look. I'll see you in 1 second. Now that our scratch caches is done there, we can take a look at frame 1035, and I did a little screenshot here so that we could compare. Take a look at this section here. Now on this section you can see there's a lot more bumps to it, how this was totally smooth. Now, you can see a lot more texture here internally, there's all these little bumps and different things going on. Then same thing with back here. This was just one big mushroom cloud. Now, there's a little more texture to it here. It will just add to the believability. The next thing we can do to add to that believability is to add colliders so that the smoke will have to wrap around things and flow around different things. Let's choose a couple of pieces in here to add as a collider so that it'll add some believability and dynamic interaction to it. I'm going to select the bifrost arrow in the outliner. Then I'm going to go in here and click shift click on a couple of pieces here. I'm going to choose some of the big ones that are going to be in the main area that's going to block the smoke coming up so I'll have to go around it. So I'm go to by frost fluids, add collider. Then I'm going to select the bifrost arrow again and just do that another time here. Just going to select this big piece and choose add collider. I'm going to choose the bifrost simulation again and choose this big piece and say add collider. Of course, every time we're doing this, this is going to increase the computational of time that it's going to take to simulate. But it's going to add a lot of believability of interacting with the scene here. I'm not going to choose every little piece that's in the way, but I just wanted a couple, so it'll give the effect of being affected by the scene and the pieces here. I think I'm just going to choose maybe that one is going to be the last one. Of course you go crazy and choose all of these if you wanted. But I think, it'll be an education and learning limitations of your computer. I'm going to do a scratch cache again and then we can compare again with what we've seen already. Now let's take a look at what we've created here. Now that we've added a few colliders, it's really changing the look of the smoke. Let's take a look at our screenshot here. Now you can really see it's almost totally different now, let's see if I can get in a similar camera position here. It goes maybe down a little bit. In general, I think this thing is just not getting as high as fast. Here you can see it's already up to the point of the flags and here it's definitely not reached there yet. It's creating all this drag and it's changing the shape of it here. Look just how much more jagger these edges are. Everything is much more organic looking and it just looks a lot better than this very simple shape of this smoke. Adding colliders, adding emotion field is really going to change the look of the smoke. Now, we see that our smoke is looking pretty good, let's create one more simulation when he bus out. When I scrub, I don't want to try to be calculating, so I'm just going to disable the bifrost arrow container here. So it's not going to simulate. Now I'm going to scrub and you can see the green stuff isn't trying to catch up. I'm going to grab the emitter smoke and I'm just going to go to frame 1109 here. I'm going to drag this back out. I think this is going to be the first frame here, so I'm going to copy paste these. I'm going to shift drag, select, copy the keyframes here. I'm going to go to something like 1109 I think, and then hit paste. Then we should be getting the emitter coming back on. I might move that in time just a little bit because I want, what we're going to do is create his head and his vest as a collider. We want the head to go straight through the emitter. In so doing, it will take a lot of smoke with it. One option would be you could just make the head and emitter, but what you're going to get, is it's going to be emitting from the volume of this thing. There'll be smoke in the front of the head as opposed to the head pushing through smoke. The way we're going to do it is use the head as a collider, so this can be pushing through smoke. Another way could be to create the head as an emitter, but I think that is going to look too wonky and it would actually be way more time-intensive. Instead, we're going to create, this as a collider. We want to make sure that it's actually going through the emitter so that it can drag some of the smoke with it as it's coming through. Let's just click the emitter again and see if we can probably just turn off the smoke here a lot sooner. I'm going to bring down these keyframes. That looks pretty good. Now, we just need to add the head and the vest as a collider. So with the bifrost era selected, the head selected, I'm going to say collide and then do the same thing for the vest just because these are the two biggest pieces of his body that are passing through and we don't want to go overboard and select every single bone that would take forever for it to collide. We just want to select to the big pieces that are going to be most noticeable. Now, we can cache this out. How do you cache it out? Let's get this thing all the way to the time slider here, we want to turn off scratch cache. Let's enable the simulation again. Let's go back to frame 101. We want to turn off scratch cache because we don't want to cache to disk, meaning saving it to your computer which is the cache cache and scratch cache meaning temporary, we don't, and that happens on memory. We don't want them happening at the same time that your computer will blow up. It wont blow up, you know what I mean. You can turn off scratch cache here. Then you can also, it should already get rid of it but if not, you're going to buy frost fluids and say Flush scratch cache so it'll get everything out of the memory. Now, we can focus on just the caching to disk. Open up bifrost fluids, go to the option box here and we can set all of this stuff and if you have your project set properly, this should look similar, it should be in or the cache folder. It's already populating that for you. Now, we can call this ground smoke. I'm going to say 01 just in case I want to do another simulation later when I say Time Slider. I'm going to hit create. It should run through and create the simulation, but what I've found, and this could just be my version of Maya is it doesn't do that. But it does set up the file structure. We can just use that window here, use this to setup the file structure so that when we go into the bifrost caching, it'll already be set up. Let's go down to arrow cache here. You can see it's this little tab under the properties so I have property selected. I'm down here and an arrow cache and also I found it's nice to set the air temperature higher too, so all the air around the smoke is also going up. I'm just going to add a zero here to temperature. Let's see. I'm also going to have the smoke dissipate. This says how fast the smoke disappears essentially, so I'm going to add a zero to that too and I'm also going to randomize the velocity which is very nice too. It'll also add some texture and noise so that the velocity of the voxels and smoke emitting is going to be randomized a little bit. I'm just going to add a one here. You could do 10. Just play around with these numbers. It really depends on your scene scale, on the look you're going for. This is why it's really important to, again, work with the lowest master voxel size resolution, lowest resolution, meaning high number. Work with that as much as you can because it'll allow you to iterate very quickly. You can play with these numbers, do another scratch cache but keep this number high, meaning the resolution low so you can play with this stuff. Because we're caching, I'm going to maybe take this down whatever a little bit. 1.3 this time is 7.5, so I'll just get a little more detail in the cache. Because we already did the arrow caching from this menu here, compute and cache to disk, this setup all the file structure here but technically it's supposed to run the cache. You can see we have a blue mark here now. The blue means cache to disk, the green means scratch cache. It tried to cache to disk here, but yeah, I didn't do it, so we need to run it again. The main thing to notice here is cache control. There's a number corresponding to each one of these. Let me show you it in a documentation. Cache control zero recomputes the simulation, one which it's already set to reads cached frames because we clicked it, it thought it cached, so it's announced going to read what it cache but only catch this one frame, we can see this blue over here. If we hit play, it's not going to actually cache anything. We need to change this number to two. It says creates user files for each frame. That's what we want to create. When we're done creating the simulation, we want to turn it back to one so that every time we're playing back, it's not overriding our cache and recaching for no reason. We want to do this on two, so we'll set it to two over here. It will actually write in cache this out when we hit play on the play back button here. After it's done, we can turn this back to one and it's going to read the cache files from this location that we've set. I'm going to hit play and it's going to start caching and I'll see you here in a second. Thanks.
18. Bifrost Smoke 02: Now that our cache is done, let's take a look at it. But before we start scrubbing through the timeline, we want to remember that we want to change cache-control back to one. That means it will read the cache files from this location that we've set. Let's change this back to one, and now we can scrub and see the cache. There's one little thing that ended up happening when I copy pasted the frames for the emitter. If we take a look at the graph editor here, we can see that in this section it actually goes scaled into the negative, which I didn't intend for it to do. I meant for it to be flat tangent handles. It would be flat like this, but it was set to spline. In this middle section it actually goes to zero and then comes back out. It has this little bit of a whisper of smoke here, which maybe it's cool. But because also we set the dissipation to be higher, we can see that the smoke dissipates pretty quickly. It rises up and then it goes away. That also helps us because you can see as the simulation continues to go and run, this bounding box gets bigger and bigger because the voxel area which the smoke is covering is getting bigger and bigger. The longer we let that smoke rise, the bigger and larger an area that it has to calculate. When we set the dissipation high and the smoke disappears, we can help limit that very computationally expensive expansion to be smaller, so see how the box now reduces back down. We never really get to a huge size because the smoke dissipates before that happens. We were controlling that through the dissipation here under the properties and we were down here on the air. and we want smoke dissipation and we increase that to 10 from one. That helped us with that. Then we have this little trails of smoke here because the emitter was scaled into the negative because of the tangent handles, and now we can see the smoke from him popping out. You can see where the collider actually worked really well, that it dragged this smoke out with it. We can see as he passes through the smoke, he collects around the vest a little bit. Then it gets dragged and pulled with his motion, which is really nice. It is going to help direct the eye through this fast animation. It's going to help to have that motion of the smoke be centered around him. At this stage of the game, we have a pretty good simulation working. The last thing I want to take a look at is in the rendering of this. I'm just going to create a directional light just so we have some type of light in the scene. I'm just going to create a directional light and I'm a scale that up, and I want to show lights so that we can see that and the direction it's going in. It's going to go to three-quarter angled downward. Now let's go into the by frost container here, and we can go to the mesh. That way we can get over to the arrow material. When we click on that, we can see that the volume material is an AI standard volume. When click this little arrow, we'd get into the material itself, let's turn on the Arnold render view here and just see what we have right out of the box. We can see it's dark. It's basically black but it's looking pretty good. It's doesn't have a ton texture to it. Again, that's because our resolution is still fairly low, but it's looking pretty good. But to make this a little more readable, I want to change the color of this. In the scatter spot over here, I'm just going to increase that color to be a little more white. We could also give it a color. We could give it like a purple color or something like that. But yeah, that's in general how that works. We could also increase the emission. Instead of temperature, we could change that to density. Basically the emission of this color is dependent on the temperature. We can change it to channel, so that should change it. As we do this, you can see it really changes the look. This is more for something like fire or something like that, because temperature obviously is more related to fire type things. We could change the color of that. We could also change this to density so that the density of the smoke is what affects the color in this channel. But it's pretty sensitive as you can tell. I don't really use that one that much, but basically it's going to be between density here. We can increase it, so it's like very smoky thick smoke or we could just reduce it down. It's just a just barely even there, like a magical smoke. That's pretty much it for the smoke. Feel free to mess around with all of these different attributes to get a type of look that you're interested in, and keep playing around with it. Again, we can go values past what's here. This value is on one. But I can just crank that up so that it's a value that I want, so it's a little bit brighter. We could also keep going with that. You can see it changes the edge of this stuff too. Because this is based on just the density of the smoke, these values will change quite a bit the transparency of it. Anyway, just play around with the material a little bit. We're going to light this again later on in the course, but just want to show you how to change basic stuff like color. The next lesson we will continue on and finish up work on finishing up the scene. Thanks for watching.
19. MASH Grass: This next series of lessons of this course, we're going to finish out this scene line, texturing and rendering but basically the dynamics part of this course is pretty much over, but I wanted to show you how to take this image and seen to a final render. Even though we've covered this in previous lessons, I wanted to do a little bit of a wrap up here and combine everything we've learned throughout the course so that we can get a final image that we're proud of. So to begin with, I wanted to address one little issue I found with by frost caching. When you try to render a scene that doesn't have a cache so let's say we go to the bypass arrow and originally I've already cached it a bit, but basically this cash start at frame 1020 and so all the frames before 1020 would give an error. So what I had to do was go back into the cache, so to properties and go back down to the cache and I change this to three which was replace any uncache frames or cache any uncache frames and leave any already existing cache frames alone. So meaning, if I played from 101, it would cache everything up until we had a cached here at 1020. So basically we needed to create a cache here from 101 to 1020 to get around this bag in Maya that wouldn't let you render an Arnold without having cache on every frame. So we can set this back to one because already cached that out, but just wanted to talk about that. In this lesson, we're going to create some grass within the mash network for the ground plane here, we can go ahead and hide this because we've already created that ground. We can hide this as well and I do want to use this now as ground inside of the plane so I'm going to duplicate it and then hide the original. So I'm going to say inside ground here and I'm just going to drag this up to the set so I'm going to middle mouse drag this all the way up to the set to try to keep this a little bit organized. There's a lot of things in this scene now you can see how it gets crazy so let's select this, we're going to hide that one which was the collider so now we can take this inside ground and just scale it down a little bit. Basically I just wanted something to be here for when the ground gets blown away, like back in here and we can see through, we don't want the grass normal texture popping up here we want something darker so that's all that this is going to be used for. So I'm just going to scale this down so that we don't see the edges of it and basically I'm looking at the corners here and so now scale that we can't see it, and I'm going to turn on the ground plane here. So all I need to do is make sure that this inside ground is above that so I'm just need to drag this up. So we could make this more circular here and pull these vertices and this is just, so there's not like hard edges here but basically this is just for visual sake that we don't see the green grass through this, once it is blown up. So just making something reminiscent of ground here or mud or something so we'll use that here later on. So for right now I want to create some grass, so let's create a plane and we're going to create one blade and we're going to make it be used in every blade basically so we're going to use mash to randomize it and why not. So let's get that to 90, let's delete everything below the ground here so let's turn on the ground plane so we can see that. So I'm just going to delete everything that is below that and I'm going to drag these over to be in the center. Now, I already have my non-linear bend former's up, you can get to those from Modelling, Deform Non-linear and I just tore that off there, it's because we're going to use that a couple times so I'm going to select this object and I'm going to go to Twist and I'm going to show all so we can see it, and then I'm going to rotate this up 90 degrees, or I guess 180 really? Then I'm going to twist it so this is base is just to going to give our grass a little bit of a shape here that's not totally flat and move this over just a touch slits in the middle and then I'm going to select this again and go to bend, I'm going to rotate this up. Turn on curvature is so I can see which direction this thing is trying to go in so now I can say negative 90 and then just zero, those other ones out and drag this to the bottom, and turn the curvature up a little bit here and it's like I'm pretty good, I need to get that bound all the way. So the high boundary as you go further and then I'm going to turn the curvature down not as far because we're going to have in mash, we're going to have some random rotations so we don't have to worry about that now. So I'm just going to scale the top end here so it feels like a grass blade, maybe expand this one element and take off the soft selection there so I can have a little more control then I'm just going to scale this whole thing down just to touch to be more grass like little thinner. So now we have our piece of grass, let's delete the history on it so we can just have it by itself and then let's go to the mash network under animation, let's go to mash create mash network and I want to make sure these are instances, I don't want a turn in geometry here so I'm going to hit apply and close. Now it disappears because hides it by default and you create a mash network you can see these blades of grass there. All right, so I want to go to the mash network and go to the mash creators so I can actually see what's in it, and under distribute I want to add this ground as a form of distribution so right now it's linear, it's in a line so I'm going to change this to mesh, so then it says give me a message down here, please connect the mesh. So I need to get to the ground and just middle mouse drag that into input mesh. So now what we have to do is increase the number of points by quite a bit so I'm going to add a couple of zeros here and we can see the grass is away too small as it is. So I'm going to grab that original one, even though it's hidden I can still affect it and I'm just going to scale it up so you can see the grass is starting to get bigger so something like that feels right, you're going to play with that? All right, so then now what I want to do is before we get too far I want to take that visibility thing and use it to our advantage. It's going to add a visibility and then grab the render cam as frustum filtering which we've already talked about before, when I enable that you'll see the grass get deleted. Now we view this triangle based on the camera view so that when we increase the number of grass blades here it's not going to totally exploded, it is going to get quite a bit slower so I'm going to add another zero there, add another zero and cross my fingers, it's going to slow down, gives me the spinning wheel and now you can really see the camera view here and how important that frustum filtering thing is. That's looking pretty good. Now we just need to vary this up a little bit. Let's go back to mash. Let's go to random. At a random node, it's going to slow down. I'm actually going to go back to distribute and take off a couple of zeros while we're randomizing this, so that it's not so slow while we're getting the randomization stuff going. I don't really care about, I mean, I guess position Y we can mess with a little bit. Mainly I want rotation, while I wants to spin around. Now you can see they're all facing different directions and then just give it a little bit in these other rotation axes. Then I want scale in y to be a little bit random, not a ton. She wants some different heights there and then I think that's it for that. When we bring backup the distribution add a couple of zeros here, it should look a lot more random and natural grass there. Another thing I want to do is let's add a fall of object. Let's go to the visibility tab here, and we'll go to the fall of object. We'll say "Create." Take a second. Let's jump into the fall of object and its feels okay. Let's invert the fall off so it goes everywhere but the fall off sphere. Let's create a cube. What I'm looking at is to try to keep the grass off of this dirt section of the grave site here. Some trust scale this up. Again, I think I'm going to go back to the distribute because this is going so slow right now. It's hard to work. I'm going to go back here and take a couple of zeros back off. Now we can work a little faster and scale this up. Just basically try to cover this grave area so that there's no grass in this region. It makes sense the grave bus open that there's not like fresh grass under all this dirt. I'm just going to increase that interior sections so that it's for sure not going to have any grass in there. Then I'm going to turn up distribute amount again. Then we should be able to see that this area is lacking grass here. Now we can see that is working pretty well. May just increase the size of this a little bit again so that it is actually falling off the way I want it to have it. I just always regret when I turn backup distribute because it's so slow with this many pieces, even as an instance here it just gets really bogged down. I'm liking where that set, so I'm going to turn this off for now. I'm going to go to mash editor. I'm just going to turn this off so that we can do other stuff. Now we have the grass and I want to create the ground. Let's texture that. I've given you texture to use. Just click on the ground here and right-click and go to assign new material. Let's use an Arnold standard surface shader. We'll use the color here. I'll go to File and then locate the the grass ground here. We're going to use the diffuse, which just means color. Now if it's six, it should pop up. You can see the grass. The scale of this is wrong. Like it's way too big. An easy way to deal with that is to go into the file here, and then you can find a place 2D texture node here. We can actually just repeat this 10 times and the u and the v to make that a lot smaller. Now, when we go back into this shader, lets get back to it over here. AI standard, we'll call this grass. Or we'll call it ground grass. Now, this also has a normal map. Let's go to geometry bump mapping and hit the little texture thing here add a texture and we need to go to file and pull up the normal map. Because we did the 10 by 10 thing here, we need to do that here as well. We need to repeat this 10 by 10 so that it matches how we did it before. That's working. Then let's go back. Now we have the ground done and we can look at that through the viewport. Let's go to Arnold render view and we have one directional lights so far, it's just going to let us see what we've made so far. We're not really worrying about lighting at this point. It's pretty dark. One thing we could do is crank up the weight a little bit. We could also go to file. I just wanted to a random texture here so that when we have the grass on top of it, the grass was kind of breaks up this or this a little spotty things. I'm just going to keep increasing the exposure on this image file until it's something that I like. I think that's a little too far. I think it's something like that is working. Now we can turn back on the grass from the mash network. I'm just going to turn this off and then I'm going to just going to save this as a whip just in case. Whip means a work in progress just so you know. When I started working there, all these acronyms I didn't understand. We have mashes turn that on. This is our grass, if you remember. It's going to slow down and we need to apply shader to that as well. It's going to turn off the wireframe because it's obnoxious there. Let's grab this grass which we probably need to name that just so you remember it and that might break the mash network because it's depending on that name. It looks like it worked okay, it's still there. With that selected, we can add a shader to that. I'm going to say assign a material, which is going to assign an AI standard surface. Then make this some a green something. Then let's render that under Arnold render view. Let's turn it on. Let's go to the actual render cam view. Make sure that's still looks like it's pulling the perspectives and we get in to render camera, make sure I don't know, it's pretty similar. I'm not really seeing the grass that well. What we can do is crank this up. There we go. There's our grass, so it's a little bright, but want to shade it in a way that you can actually see the stuff. Ideally, I think we'd have a lot more grass in here, but it's pretty render intensive, to be honest. I'm trying to avoid adding a ton of grass. But generally, all you'd have to do is go back to mash and increase this number under distributed if you wanted more right here. But in this lesson we've learned how to create grass. We've shaded the ground. In the next lesson we're going to continue to shade the banners, the mud of the ground tombstone here. We're going to do the tree. We're going to give it a background. I'll see you in the next lesson. Thanks for watching.
20. Texturing: Welcome to this lesson, where we will quickly work on getting some texturing done. You may notice that I have already created a new tree here. I basically created it with a couple lattices and cylindrical UVs, and then combine the mesh to make one tree. Then I duplicated out, rotated around and put it throughout the scene. The other thing I noticed when we were doing the ground, the grass here is that we did not change the bump map to tangent space normals. That was why the exposure had to be get cranked up so much because we left it on bump and we didn't change it to two tangent space normals. That's what we need when we have a normal map, which is what we used for the bump map here for the texture. We need to continue to create these textures here. Let's move on to the ground, the mud part here. Let's find that in the shards and then we can use our handy select high script that we've learned throughout the course. Then let's right-click and say add new material, and we'll choose aStandardSurface shaders as always. It is freaking out. This is fun. I thinks I have the menu selected or something, I guess. That freaked out. Let's get the ground selected again. Now we can go over to the surface, we call it Mud. Now let's go up to the color and map in. The file I provided is a mud color. We can go up to mud and say Mud_Diffuse. We want the color of it. Now all of that has a mud look to it. We can zoom in here and see if it has the right. It looks like we could maybe skill, do some more repetitions here on the 2D texture. Let's just two, maybe three in both directions and get that a little bit small. It looks like that is working somewhat. Let's maybe go one more five. Then let's go back to the shader, select on any of the pieces and we have mud here, so let's go to the bump map and add the normal map into that. Want to make sure we have tangent space normals. Go navigate to the file of the bump map and go to normal. Now that will give some texture to it. The other thing we can just go ahead and kill the specularities on it. I think we need to do the same for the grass here. Just turn specularities all the way off and let's add that mud shader to this little plane that we created. Looks like I'm having difficulty selecting it. I'm just going to select something nearby, frame up on it so now I can rotate it around a little easier. Let's select the ground and let's just bring that up a little bit. It is definitely through the grass part. Let's see if we can assign existing material. Mud is they're, just off the screen. Now we have this mud look that comes through the ground. We're not going to see grass there. Let's keep moving. Let's do the chord. Let's just add something generic and assign the material. Let's do the eye-centered surface and just apply some kind of preset. Whatever you think would work. Let's use rubber and then just turn down the specularities a bit or all the way. Now let's do the flag banner part and I'm just going to do one of these and you can do the rest. I just want to show you some of the important things to consider. When you do n cloth, it adds another shape near to the history here. If we scan over, we still have the banner shape and there's opaque thing that we've learned about in texture and we want to turn off. But after n cloth is created, it actually creates a new shape called nClothShape. I'll get over to it. Let's see, its outputCloth is what it is. We have outputCloth and Banner_Shape. There's basically two of the same thing here and that's because this is an nCloth. We can click the opaque thing here and it will override this one. This one doesn't matter. Now this can be transparent. Let's add a banner shader too. I'm just going down to assign new material. Let's go to aistandard surface and let's choose a blue here. That's maybe more blue than purple. What we can do, is just use a texture under the opacity. Let's map something in there. We'll go to file, and then bring in these textures that I've created. Let's use the blue one, open. Let's test this out. Let's get to a frame where we can actually see it. Play one of the first ones and let's go to Arnold RenderView and then let's start to test this out and make sure that we can in fact see that. Basically the idea is that, that PNG is meant to cut out this shape. It looks like it is working, although it's using the perspective color, which is fine. Then one other thing is, it's looks like it's a little too opaque, like we can see all the way through it. I'm not entirely sure why that is. I think I just need to turn to exposure because we're using this for opacity, it'll crank up that alpha. If we crank that up, it'll get rid of that problem worrying semitransparent. The other thing I want to look at is this banner. I guess it's on there. I'm looking at this black too being here. I'm just call this rope. Let's make this something brown, maybe brown that we actually see it. I'm just going in here and let's crank that up. That's looking good. Basically do that more for each one of these. Then let's move on to another piece. Let's do the tombstone next. I haven't created the UVs for this. We can do that now, let's go to the poly modeling and let's just use the automatic one. Let's see one of the texture window first. You can see it's pretty random here. Let's use this menu. UV, I just want to make sure we're using automatic. I'm going to lay everything out, all nice. Then we can choose to cut and sew pieces together if we want to with this little UV toolkit menu, which is sometimes docked here under the window itself. What we can do is of course, this will depend on the texture. Let's just bring the texture and then we can line it up based on the texture because these UVs won't work right now. Let's right-click and say assign the material, of course, standard surface. Let's call this tombstone. Bring in the diffuse, which again is located in the Course Files here. Tombstone diffuse. You can see I tried to make something that resembles a tombstone and where the UV's are currently laid out, doesn't line up with where we need them. Let's go to the UV shells and let's just select the front one. We can see it light up there red so you know this is the correct one. While we're at it, let's just flip both of these around. I'm going to transform, scroll down, and then just rotate these. It looks like it's taking everything because we have the UV selected. It's this one, scale it up. I'm not too worried about the other UV panels right now, because this is just super rough to be honest. I'm not super worried about how this is going to look, because again, if we've done our job right in the animation, most of the attention should be on the character themselves and not these little details, so as long as it's not totally terrible, it'll do the job. That looks better than nothing. Let's add this bottom piece. If you remember, if we press it down, we can have the tombstone. Even though it's the same material, I just want to remind you, pressing down, we could have added a different material and let me just do an automatic thing there and then we can move these around as needed. Let's get to these shells. Just want to make sure that this front piece is cool. Well, that's wonky. Well, I wonder why it's selecting everything. Lets just go to UVs, because we have soft selection on, that's why. I'll just hit "B" on my keyboard to get rid of soft selection, but now that I'm already in this mode, I'm just going to keep using the UVs component mode there. I think this is actually flipped around like the other one. Let's flip it around and we add it right, because I can see the RIP there in the image. Now we know it's right side-up. The thing with this is it's kind of stretched weird. Just going to stretch that back out and get it somewhere that has some streaky moss and art. We've got the tombstone done, we got the tree done, we've got the banners done, and we've got the grass, we've got the mud. Let's bring in a background image. I'm going to create a plane and I know my background image is 2000 by 1215. I can just go ahead and set that proportional ratio there. If I got 2000 and then 1215, we know that this is going to be the right size. I just want to send that into the background, rotate it 90 degrees. Then now, because I've set this, I know it'll be the right scale if I scale everything uniformly like this. That should work just fine. Now, I can get this oriented towards the camera and push it back far enough in space that it'll kind of make sense with the camera moves, and of course we went behind at least the furthest tree. The parallax of the camera, it will make sense, when it moves around. At least somewhat won't be super accurate, because for this to be accurate, it need to be as far away as the night sky is, which we aren't going to do that, but yeah, just getting in the background, there is going to go a long way. Let's open up the hybrid shade real quick because we're going to use the same texture map to go into two different inputs. I'm going to assign a new material, the standard surface, and in the hybrid shade, I'm going to click this little button to map that out. Under color, I want to map to this night sky file I'm providing you and then we can use that twice. Now we have it in the out color. Let's use it for emission color as well, because we're using this as a background image, it's going to be affected by lighting, which we can turn off, cash shadows, all that stuff and because it's a night sky, I want to have control over how bright it is from the shader and that's going to be a mission. Let's go to the Render Cam. I'm going to go to Frame. I think it was 1126, is what I figured out. I want the the moon to be almost right behind his head to frame him up really nicely, so something like that. Now we can go into the Arnold RenderView and hit "Render" and see if we need to increase the emission, which I'm sure we will need to. Now you can see the background. Like I said, it's really dark, in which that's fine. Another thing that's probably distracting about this scene is just that the gems are a little too bright. I think we could tone that down. Another thing I'm noticing is this firefly right here, because it's an Olympic cache, we can just delete those faces. I can select the Geometry, right-click, and go to Face. Let me just make sure I'm not selecting anything behind it by getting really close to it. Let's see. It's going to be that one and hit "F" over here. I can back up a little bit. Yeah, it's just really close to the camera. Let's just delete that. We just deleted the faces of that, so that works. Let's get back to the background image, select that so we can get to the shader, and we'll just call it BG. Now we can just turn off specular. Let's go to the emission, because, you can see we already have the image mapped in here, we can just crank this up. Now I have control over the brightness of the background, which is pretty cool, pretty handy. Just to get something quickly in there. The other thing I want to do is to add a shader for his vest. I've created a image for his vest as well, which will hopefully make that pop a little bit. Let's go to Assign the Material and go to Arnold, [inaudible] , and then go to Color. It's color for specular. We don't want that. We want color for base and choose the file, and then just navigate to the Vest Color file and hit "Open." Now we have the vest color, which you can do your own. If you've watched the texturing section of the course, you know already how to paint in Maya. Let's just turn down the specular for that. The other thing I want to do in the Render is turn on the Cat Clark stuff. It's subdivides. Let's go down here to Subdivision, throw in Cat Clark, and let's just say like two. It'll just smooth out the hills there in the background. Then the tree is not looking super great, but I think we'll get by with it. Let's figure out what's going on with the gems here because it's just too bright. I think their emission is maybe high. I can't remember how I did this shader. Lets go to gems. Yeah, emission is high, lets crank that off and we can see they just turn off their, they're no longer blue. Let's just turn up just a little bit. We get just a little, even that is maybe too much. Let's just dial that in. I'm going to grab the render area so it's a little quicker. Yeah. I mean, that's okay. Let's see what we get the lower. I just want like a hint of color there. I want it to distract from the action here. That's looking good. I want to make sure that texture is working enough, otherwise, I'll make you guys a new one, but it looks like it's okay. The main thing I think we need to deal with is the lighting here. We need to get these banners done. Then let's deal with their lighting as well. So I have four images for the banners. Every fourth one will be blue, which means this one will be blue. We can go ahead and add that one. I'm not sure if we named that shader here, we didn't. Let's call it Banner Blue. We can find it a lot easier. Blue might not even be the best color because of the background now, we can assign existing material, Banner Blue. We have three more that we can add in here, but so every fourth one will be repeating. Let's for now, turn this yellow. What's nice about this is because we're using the Alpha. We're using the Alpha as a cut-out. Basically, we can change the color of the entire thing and it should work. For some reason I didn't take that. Let's turn that yellow. Yeah, it looks like we need to turn on the opaque thing here. Let me just X out of that and go over to the Output Cloth and then Opaque. Now, that should render transparent. Let's focus on the lighting super quick. Let's bring in a spotlight and let's crank this up. Let's see if we can't get this to highlight our character a little better. Increase the intensity and the cone angle and crank up the penumbra angle, which means the kind of softness as around it. You can see an update here or preview. I want to get this into a place that'll work for the whole scene. I could constrain it to the character, but let's see if we can get away with just setting it up correctly in the first place. If we go over here, let's just drag it from this view port and then do it this way. Then let's make this not yellow, but let's make it a little bit of a color. For the directional light, we can turn this a little bit blue, since it is at night. Now, let's go back into Arnold Renner view and play, and see what we've got. It looks like we're going to need to crank up the spotlight quite a bit. Start at zero here. I think it's just the scale of this scene is so massive. There we go. We're starting to see it now. The scale of this scene is so massive that the values are pretty high here. It looks like it's working okay. Let's scroll through. Maybe increase the directional light just to crank everything up. It really washes out the trees here. Not super stoked on how the trees are looking. I just want to make sure we see that ground here, which I'm not really picking up yet. I think I might bring in another light, specifically for this area to kind of spotlight this area. So let's bring in, why don't we just duplicate the spotlight because I like the settings we already have. Now, let us duplicate. I can move this one. Meanwhile, it look at this update and let's focus in on something. So we get to the light. Now, you see it here, really spotlighting the area. Whereas before we can see the ground, I just want to make sure we're focusing the viewer's attention on what we want them to be looking at. It could also be that the mud texture itself is just too dark. So I've selected something of that and I'm going to go into the file or the diffuse and increase the exposure here. Likewise for the trees, I think I'm going to decrease the exposure on those files. So this is like a quick way to adjust files that you're not super happy with, instead of having to go back and forth between Photoshop. I'm liking this file, but I want to make sure that I include all of the broken pieces here and the view of this spotlight. That's nice. It's really starting to pick up the smoke that we have here too. That's nice. We can also go back into the shade of that thing and tweak that. Let's go over to, I think we need to select the Bifrost. You know what we have. Let's get the Hypershade open and we going to find it pretty quickly. I mean, for the most part, I'm getting pretty happy with this. I mean, to spend 10, 15 minutes and have an image like this is pretty cool. I think I want to bring down the hat. Every time I look at it, I basically find something that I'm not liking. So it's a lot of back and forth. I'm also having to re-learn how I created these shane network. I'm going to Felt image and I think what I bring down the exposure of that hat. I'm trying to figure out how you can see this with me. Let's just bring down the exposure, the Felt. Yeah, that's way better because it's just too bright. I think the tombstone is too bright too, so I can select that here. Click this little button, it'll map that. We can go to the exposure that and just crank that down. I think that's what we wanted. So that's working. Let's now find the Bifrost aero, which we can find in here. Let's select the Bifrost mesh here. That's the one we need to affect the density, basically, is what I'm looking at. I think it needs to be a little more dense. Why didn't you catch this streak here? Which is a little weird. Looks like it's coming out of his butt, which is kind of frustrating because it's definitely not, it's just unfortunate. We could recast this, but I think let's go to another frame and see if it'll really mess with that. This is good. What just happened is, I had the spotlight here as my camera. I was thinking I was moving around with the perspective camera, so let me get out of that. I'm going to hold down "Space Bar" and then get back to my perspective cameras so now I can move around. Let me check this out. This is like a pretty cool image really, like how is that not cool? I don't know. I really like this, especially when we've like the firefly, this should all look pretty, damn cool, I think. Once we get the banner images in here and let's get the grass scaling. Let me just stop this and turn back on the grass, which is the second mesh network recreated here, if I'm not mistaken. It should spaz out for a second, a little spinning wheel, and then we should get a bunch of grass here, or not. "Save as." I'm just going to turn my On and Off, because I'm not sure why it's not updating. We should have that mesh network showing up, one second.
21. Render Setup 01: To pick back up where we left off, basically I'd accidentally made an overt offset mash node in between the lessons and it offset the grass way down. I just deleted that offset node and it was back where should be. In this lesson, I want to cover the render setup in Maya, or what used to be called render layers, and if you're familiar with render layers, you can get to the old system by going to the preferences and rendering and say preferred render setup and say legacy render layers, you will have to restart Maya, but you can get to the old system that way. We're going to use the new way called render setup, and it's a little convoluted. Hopefully, they fix it in later versions, but basically it's up here, it's this little button, and now we have a render setup. Essentially what we need to do, select everything that we want and add it to this collection or this render layer. In this example, what we're going to do is try to separate the fireflies from everything else. That means that when a firefly goes behind the tree, it should disappear, but we don't want to see the tree. When we're compositing, we can just bring in the fireflies on their own so that we can have finer control over how we composite the fireflies if we want to add glows and whatever, we can isolate the fireflies and only glow those and not the rest of the scene. What we need to do is go in here and grab every piece of geometry that's in the scene that we want to include, and then middle mouse drag it into a collection. Let's go through here and select everything from the outline or that we want to include, which is basically all of that, and then we can right-click here and say create new collection or create collection, and we'll just call this scene. Then we can middle mouse drag from the outliner into, it says Add to collection, include [inaudible] mouse drag that in. Now, if we had named everything with a suffix or prefix, we could have just type that in here as an expression and it would include everything with that suffix or prefix. But we didn't, so we just need a middle mouse, drag it in here. What we need to do next is to add a Shader override, and in that Shader override we can add the holdout. Now, holdout just basically means and we're going to use a surface shader for that. Holdout basically means that you can't see it, and there's an Alpha there, so it's totally transparent. We need to turn out Matt opacity all the way to black, and for us to test this in the render, we basically need to turn off rendering the whole scene, which is this little tab here. We need to turn that off and we have this one on, so when we go to Arnold render preview, it should render that layer basically by itself, and what we should see is totally black. We shouldn't actually see anything because the holdout should be completely transparent. That is not what we see. Let me turn that off. Let's turn off the visibility of this. Let's turn on the visibility of that, and now it should work. Let's go to ''Arnold''. Let's go and let's make sure that we have all the shards here are there. Now when we go to Arnold render view, we just needed to have that I turned on. Now, it should be totally black and it should take two seconds to render which it does, and when we test the Alpha, we can see it's totally blank. Cool. We have the holdouts. That's a huge step, so now all we need to do is add the fireflies. I'm going to turn back on the visibility of the whole scene. The whole scene should pop back on, and now we can just select the fireflies. Or we could just find them in the outliner. I must select one of the fireflies, so that should bring up the [inaudible] cash. I'm going to hit F in the outliner to find it, and then now I'm going to make a new collection here. I'm going to say ''Create Collection''. I'm going to call this FireFlies. Cool. Now, all I need to do is just include that in here, and that's it. We just need to view this, and now what we should get is all of the fireflies, and they should all be correctly occluded by anything that's in front of them, if that makes sense. Let's test that. What we get is a totally transparent background and an Alpha. When we check the Alpha, it should look pretty much the exact same, which it does. That's pretty amazing. We have created this render view here and let me just check it in the render cam. All we need to do is to add the renderCam by middle mouse dragging it like we did the renderCash, and then we can go back into the Arnold render preview, and you may need to hit ''Refresh'' for it to update, for us to be able to select the renderCam. We can switch between these two now, and we can render this with the hold out and everything looks correct. If we look at this, compared to this view, we can see that we shouldn't have any fireflies in this quadrant. Because this tree is blocking them, and we can see here that's the case. It looks like everything's working properly, and now we can render this as just the fireflies. Let's go over to the rendering tab here, and let's go to, well, first let's make sure that render settings are correct. These don't really matter because the fireflies are surface shaders anyways. But, we might want to turn on motion blur. Let's just enable that, and let's go and call this FireFlies, and now we can say name.number.extension, and we want to do the 1001-1200. In-frame, we want to make sure we have the renderCam selected and the correct settings here, depending on how you want to render this out, say 720, and now we're ready to export. Now, you could do EXR, it doesn't really matter. But we just want to make sure that we have some file format that has transparency. Now we render and we go to Render, Render Sequence, it will start to render each one of these frames, so I'll see you in a second and we'll pick back up finishing out rendering the actual scene, the rest of the scene besides the fireflies, let me just hold on here for one second because it looks like it's rendering the perspective cam and even though that we told it to render the renderCam, let me just minimize this real quick and show you. It says camera perspective shape. We're correctly rendering the holdout layer. But, mine just decides to not respect what we said here in the render settings, where we said render, the renderCam. It's not doing that. We can delete that or close that out and go to ''Render Sequence'' again and hit this little option box. For some reason, it's choosing to override what we already chose with perspective shape. Let's select our renderCam here and do that again.
22. Render Setup 02: Now that we have the fireflies rendered, we can go back and turn on the visibility for the main scene and make this unrenderable. It'll take a second while it's thinking to reload all the textures and everything. But we can turn off the render section of this and then we can turn on the render section of the main scene. Now we can just leave this behind because what we can do now is just go to the [inaudible] of the fireflies and we can just hide it in our main scene. We're not rendering that at all. Let's take a look at what our render currently looks like in the Arnold RenderView. I'll hit "Play" here. We can see that the motion blur that we turned on in the Render Settings has significantly slowed down my render times. We need to keep that in mind if we want to have motion blur, it does smooth out the render but I do want to check the frames that at the height of his jump because I want to be able to read his face at that point. I want to make sure the motion blur isn't too much for those frames. I'm going to skip all of these and check that. A couple of things to note here it does look like the motion blur is a little too much. The other thing, of course, is it looks like he's farting for not to be crude about it but this is something, the best laid plans thing like you can't really plan for this stuff. What I would do is go back through and read [inaudible] this and adjust the simulation so that it didn't line up with this. For the thumbnail for this course, I was going to use this image. I'm still going to use it, but instead of spending the time to go back through and re-scene everything, I'm just going to Photoshop and take this out. Just know that if I was to actually use this animation for a short film or something, I would make sure that this was cleaner and that I took this out in the render and not in Photoshop. The last thing we can do is set up our [inaudible] and also, let's just look at the motion blur for one second. Couple different things we could do, we could render these few frames without the motion blur on. I could just disable it and then we could in compositing blend the non-motion blurred frames on top of the motion-blurred frames so that we would have more clarity in this moment. That's one option. The other thing we need to do is to add the AOVs here. Like we talked about before, we can use these built-in AOVs, and the main one I usually use is the z depth pass and we can also use other ones, but that's mainly it for me. I'm not trying to get too fancy on the compositing here, especially for the affects. Of course, this is, I want to keep the focus on the effects. Basically, we've created this nice render, and I'm going to leave motion blur off for now. I might go back through and re-render it with motion-blur and then in compositing adjust that. The other thing I wanted to look at was to see how much we could increase the distribution of the grass. I'm going to save this very quickly just in case Maya wants to crash and I do way too many pieces of grass, it's going to save this as a work in progress, and then I'm going to go back to the mash editor here, go to distribute and I'm going to increase this quite a bit. I'm going to increase this and then see how well it handles it and what the view-port update looks like here. I think that does look better, but I just really want this to look pretty thick. I'm going to double that and see where that gets me. Now I'm just going to render preview that little area and see if it's a significant increase in render time, and if it really adds a lot to the scene. If not, I might just turn off the grass and leave that for another time. But in general, you have everything that you need to render the scene out now and all the information to do the dynamics. Just real quickly. We can just now go to the render settings and change the name up here. We just need to call this the main scene and we're ready to render. I'm going to use the render cam and everything's good to go. I did just want to have a couple of final thoughts, just thinking you, it's amazing you've made it this far in the course. I don't know if I've ever finished a course this long. It's a huge accomplishment that you've done this and I'm really impressed that you've made it this far. Please consider giving it a positive rating if you liked the course. It'll help me make more courses and it'll help other students find the course and I hope you really enjoyed this, and I look forward to seeing what you create from what you've learned here. This is what I've been working on for the last seven months of my life, it has taken seven months to make this course. I hope you appreciate it, and I appreciate you taking it and thank you so much and I look forward to seeing you in my other courses. Thank you.