QuickTime • 1:00:59
Motion, Apple's revolutionary software for motion graphics design, is the first to provide real time previews, procedural behavior animation, and full integration with Final Cut Pro HD. This session provides an introduction to Motion, and cover topics such as behavior animation, particle dynamics and simulation design, stylized title animation, bluescreen keying techniques, DVD motion menu design, tablet-driven gesture UI techniques, keyframing, and integration with Final Cut Pro HD and DVD Studio Pro.
Speakers: Aimee Nugent, Kent Oberheu
Unlisted on Apple Developer site
Transcript
This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.
Anyway, I started with Apple back in February working on Motion, and if we could go to the keynote machine please. Motion was developed from the ground up in OS X. It was developed using Cocoa. And as such, it has all the advantages of the Unix architecture and the OpenGL that goes along with that.
But it's been a really great environment to run in and to develop motion graphics software for, for a number of reasons, because we need real time performance in motion graphics. We need to see what we're doing as we're designing it. And it's traditionally been difficult at best to get that type of performance, except on very expensive hardware. So Motion, out of the box, is set to--there we go.
Aimee Nugent's not here. I'm Kent Oberheu, in case we missed that. But Motion is designed out of the box to be a really high end motion graphics application. You can design in real time. You can see what you're doing as you're doing it, which is unprecedented for the desktop environment.
What are Motion Graphics? What are Motion Graphics? What are Motion Graphics used for? Well, they're used for titles for movies, titles for DVD and video, motion titles that you would use in DVD Studio Pro. They're also used for lower thirds, which is a common term used in news graphics and in things like documentaries, and where they, you know, put the person's name and what they do and how they're related. Graphics eye candy for raves and whatnot.
So some of the advantages of why motion is important, and we'll start out, first one here is scalable interface. We have a really scalable interface from basic to advanced. What that means is we sort of unfold the interface as you need to see it. We don't actually force you to see all the controls at once. So to start off we have a really simple toolbar sitting across the top of the canvas which you can't see entirely in this image. Layer view which allows you to stack and composite, and a file browser which is really like the Mac OS X finder built into the application.
On the other side of the screen we have the canvas, which all is in one screen really, which allows you to see your composites as you work. The dashboard which is your on-screen controls, it's a semi-transparent widget that is context sensitive and updates with controls based on what you're currently doing and which object you currently have active. You have a mini timeline which is a little bit more complex. It's collapsible so you don't actually have to see the full on timeline all the time.
It sits across the bottom of your workspace and allows you to see where your object currently is active, is sitting in time. It allows you to scrub as well, controls. And then of course the full on timeline which shows you compositing and layers. Our second key feature is real time design engine.
Well the real time design engine, what that allows you is a dynamic real time design so you can see what you're doing as you're doing it, get instant feedback that accelerates filters so we can see what filters are doing simultaneously. So that's a really cool feature. It even gives us the ability to do live recording of animations.
and of course scalable performance based on whatever your hardware is. So if you've got a faster graphics card you're going to see that much better performance. Next key feature is behaviors. What are behaviors? Well, behaviors are procedural based animation. They're actually objects that connect to another object that say, "You do this over this time," or "You do this over this time." Simple things from fade in, fade out, to spinning, to advanced things like simulation behaviors where we have gravity and wind interacting, collision detection and things like that.
and it allows you to interact with multiple behaviors simultaneously, so you can even stack these behaviors. We'll go through that a little later in the presentation. The next key feature is integration. How do we integrate with the Apple Pro lineup? Well, it's actually really incredible. We have XML export straight from Final Cut Pro that will actually save a motion file from your entire timeline or a portion of your timeline, opens directly in motion, it's not importing, it just is a motion file that opens, allows you to move objects around, add text, add filters, add different composite modes, different translations to these things, and then you can save that, and immediately that is visible in the Final Cut Pro timeline. The same thing works with DVD Studio Pro.
You don't even have to render these things. You can just take a .iomo.tn file and just open that up in DVD Studio Pro, make changes, update it instantly. Of course, you can do your final export to tape or to disk or you're burning your disk, it does the rendering at the same time.
Some of the feature highlights. So I mentioned earlier the user interface design is rather innovative. We've got a dashboard, semi-transparent. You probably saw the Mac OS X Tiger dashboard that comes with widgets. It's a similar type of interface. It's context sensitive. It's floating. It's transparent. You can move it around in your workspace to have it where you need it.
And it changes based on whatever it is you're currently using. So if you're using a scale widget, it changes the scale widget. If you're using a spin behavior, it updates with the spin behavior you see here. Also we have on-screen controls for all the transformation scale and rotation so you can dynamically resize things in the canvas window.
Gestures are fully supported, which is a tablet-based interface. Any of you who have ever seen a flame artist work, they use a tablet and they're constantly going like this on the tablet and you're wondering what in the world they're doing and stuff's happening on screen. We support gestures.
It's using the ink technology. It lets you work in a full screen mode where you can actually have the canvas filling your screen and you're not actually required to have all your tools visible if you don't want to see them and you're working with a client live. It's really great technology. And of course we have the keyframe editor.
Filter effects, of course, are important to any graphics application these days. We use hardware accelerated, actually GPU accelerated filters are very important to motion and they allow you to see things like Gaussian blurs, light rays in real time, which is pretty much unprecedented at 30 Hz in the past.
Light rays support for After Effects plug-ins as well. Particles is an integral part of motion. They're actually built into the motion engine so they're integrated with the whole application. They're not just an add-on. What that means is it's a sprite-based implementation so you actually have things like movies, graphics files, text, anything can be turned into a particle. It's actually a really dynamic system. We also include presets for smoke and sparkles and things like that.
Unlimited layering, and of course in any graphics application, anyone who's ever opened a Photoshop file lately from their graphics house has seen 99 layers of things layered over the top of one another. And of course we support that. We also support nested layers, which is incredibly important these days because blend modes can get very complex, and you can have logos that are made up of 10 layers, and that gets incorporated with a piece of footage or something like that. All of those elements can be independently animated, but in the smallest context we have a layer list that affords you to reposition those in the visual queue.
Templates are, we actually ship with templates, we ship with a number of professionally designed templates for motion. And what templates are, as you can see in the animation that's playing here, is just a basic structure that has a piece of footage that you can import your own and replace. It replaced the text, obviously, that you see coming in here. You can even save and create and save your own templates for use if you're working on some corporate project that you need to do.
So let's go over the system requirements. They're admittedly fairly extensible, so what this grid here shows is what the system, what is actually used by different parts of the system, what is done in the different parts of the system. So the CPU actually handles our text rendering and handles our behaviors.
The graphics processor, the GPU, OpenGL, handles filters and compositing and particle effects. And the RAM, of course, is used for faster and better video playback. So the more RAM you have, the more layers of video you can have streaming live. So with that in mind, the PowerMax system requirements, the minimum requirements, 1.6 GHz PowerPCG 5, best, you know, faster the better.
Dual 2.5 with the 9800 Pro XT and 256 MB of RAM just is like sailing on smooth ice. It's amazing. The minimum system requirements for PowerBook, which we just talked about, is the same as the PowerBook, but it's a little bit different. So the GPU, which you can run on, are 1.33 GHz PowerPCG 4.
Most of this is because of the graphics card. The graphics card, the FXGO 5200, will run the effects and the compositing, the pixel shaders that we actually use in GPU. The recommended system, of course, is the 1.5 GHz because you need the GPU for the processing of those particles with 128 MB of video RAM.
We even run on a G4. The silver door is a cut off, and the reason for that is it has a fast enough AGP bus that allows you to use the video cards that are shown. And before that, the AGP bus wasn't fast enough and those cards weren't supported. So, Motion will be available this summer at the landmark price of $299. So, without any further ado, let's move over to machine number three and dive into our demos.
So, some of you might have seen this before on the web, so I'm going to... Who all has seen this? The KAPL on the website? Has anyone seen KAPL? So, this will be new to some people, good. I'm going to go through that. I'm going to start... As I mentioned earlier, user interface sort of flows from left to right. We have a file browser, library, and inspector, which allows you to see properties, behaviors, filters, and objects. In the file browser, it's really like the finder. So, you can see over here is my hard drive and desktop and the user folder.
So, I'm actually looking at my finder here. I'm going to start by dragging in the background, the Golden Gate Standard Definition movie, and hit play. It instantly starts playing. Now, while this is playing, I'm going to scale it up to my full resolution here. We can, of course, resize it, zoom around it, and adjust it in real time while it's playing and do wacky things to it. We can even go in and take the four-corner pinning so we can actually do distortions in real time as well.
[Transcript missing]
Get this guy going here. I'm going to change the shape to be filled with a gradient, and set my points for that gradient here.
[Transcript missing]
Then of course it starts going around like crazy on my screen, which is not what I wanted to do. So what I'll do is I'll bring in a predefined Channel 8 animation.
The animation is still sitting there, by the way. It's just been disabled so we don't actually have to look at it. I can still position it live on the fly. Very cool feature for anyone who's done massive amounts of keyframing and just wants to turn off the transparency channels so they can see what they're doing at frame one. So in this case, we've got this going here. Well, we can add text. Let's add some text to this. Go back to my inspector for this object.
Hang on a second, I've gotten to a bit of a state. Open my layers list and actually do this properly. Make a new layer for my text. I'm going to hide my layers list again. Go over here and type in KAPL8. It's ready to go. This is still annoying me. Turn off the disable animation. There we go. How about just reset parameters? There we go.
So now that's ready to go. And unfortunately, I appear to have found a bug. Anyone want to file a radar for me? There we go. OK, so I got my object sitting here. So let's bring up the dashboard. And in the dashboard we have controls for our text. Again, semi-transparent, you can see all our objects through it. It's all good and fine. But how do we know which text we want to have? Well, we can pick the font through this dynamic pop-up. Feel free to gasp at any moment.
There we go. So I'm going to go back here and pick Helvetica Noya. Check the regular. I'm going to actually use the bold font. Yeah, we want it bold. Change the size there. We can, of course, change size, tracking, spacing amounts, things like that. So that's ready to go. I'm going to add a simple behavior called fade in and fade out. Closed that a little too early. Now you'll notice we have frames in and frames out that are immediately visible for our object.
Um, down here, again I was saying it was contact sensitive, you can actually sort through the stack of behaviors and filters that are applied to each object in this fashion. So, um, I've got a 35 frame in, a 0 frame out, I'm going to add a behavior called throw, so I can throw this to the right hand side just by clicking and dragging. Um, you can zoom out, get really crazy with it.
Um, zoom back out here, that looks good, it's moving about right. So, I'm going to option click and drag this guy, and I've got two copies here. Um, bring up file browser again, inadvertently close that. Set that to be right justified there. So I've got KPL8. Well, I want to change this text on the fly, so I'm going to type in San Francisco.
Right about now there's a joke about 120 words per minute, but that's someone else's. So I'll take that size down a little bit here, change that to say the light font, navigate back to my throw behavior, and take this on over to this side. Now it's throwing in the opposite direction.
They can even move that and get it right position there at any frame as I go. That back down a bit, because I want it to start right about there. Okay, so now I've got two different behaviors. They both have the same set of behaviors on top of it. I want to bring in one, show one more text behavior, which is a text behavior specific to text that lets you animate text, how it's drawn on and things like that. So I'm going to type in evening news.
Again, dismissed that a little too quickly. So change this to Helvetica. I'm going to select this and change it to Bold Italic. Enter that. So a text behavior, we can add behaviors in two ways. We can either add them through this pull down here in the toolbar, where it says text behaviors. Or we can add them to the library, which is over here, and go to the behaviors tab, and go to text animation.
And whoops, text sequence, sorry. Text zoom at our behind camera. Simply drag and drop it onto our object. Now you notice when I did that, that there's a little purple bar down here. This purple bar is showing me the duration of that behavior, so if I simply make that behavior shorter, it's a lot zippier. If I bring up my dashboard, I can change the spread of the effects so I can sort of smooth out how those characters get landed onto the canvas.
So that being said, let's import our news anchors, because what is a newscast without news anchors? I would say it's a news feed. Anchors SD project, oops, sorry. Anchors SD, I'll bring this over here. This is actually a Photoshop file. You'll notice when I hover for a second, it lets me pick which layers I want to import.
I can import them merged, so it's a single layer, or I can import all layers. In this case, I'll select all layers. We'll see why in a minute. I'm going to scale this guy, these people rather, sorry. So they're ready to go. And I want to actually add a fade in and fade out behavior to these people.
So what I'm going to do is open my layers list and select these three, go to my add behavior, and add a fade in, fade out. Now you'll notice over my layer list that I have a fade in, fade out behavior for each one of these. It's all ready to go.
So if I bring up my dashboard again, I can go up here, take the out behavior, take the out behavior, these three. Now it's all ready to go. I could have actually created it once and duplicated it. We'll get into that a little bit later as I go around.
If I bring up my, I don't want them all to come in at the same time, so I can actually go down here in my timeline and drag the, select Natalie here, and let's put Natalie starting about here. Let's have Gregory coming in second, and Chandra, she'll come in third. And I'm going to bump her up a little bit here. So right now we have these three anchors.
They're just the same. They're just sitting there. All they do is fade in and fade out. I'm going to add a little bit more dynamic to the piece because this is motion graphics after all. So let's go and add a simulation behavior of drift attractor. And what drift attractor does, I'll close these up so we don't have to look at those. Drift attractor is a simulation behavior that allows us to attract objects to the thing that it's applied to.
So if I turn up the strength, she's really attractive, and everywhere she goes, people like to go to her. And so I'll put her here. That's a little--if we wanted to, we could actually go and sometimes, depending on who you're working with, you don't always like those people. She might actually be repulsive to some people. So we could go and add a simulation for repel from--repel, rather, and everyone, whoa.
That's a pretty strong behavior there, a very strong reaction. So as you can see, Monty Python would have loved to have had this back in the day. But that's a really basic way to add-- interest to your projects is to add these things. One last little bit here. I've saved a particle system, which you can see over here, which isn't playing, so I'm not going to import it. But we'll get into particle systems a little bit later and how those get integrated with your project. So let's start--whoops. Don't actually minimize it.
Another great feature of the OS is the fact that you can I actually do that while it's-- do expose while it's playing back. So let's start with the basic file browser. And I'm going to go-- this is not the app you're looking for. Going to go back to Motion here and zoom into our file browser.
When Motion launches, as we've been so gracefully blessed by the demo gods, we're going to start, we can have different options. We can view the quick tours which are available on the web. There's several available now. There's going to be a bunch more in a short period of time because they're already done and just waiting to be published.
You can begin with a new tutorial, so we have tutorial things that ship with the application. You can start with a template which opens a template browser. You can pick the browser template from there. Or start with a new project, which is of course what we want to do by default.
So, we'll start with this and I'll briefly show you what's actually in store in the file browser. So, the file browser again shows you all the different formats that you have. Here we have a PSD file. Here we have a movie file. And you'll notice that it instantly starts playing as we click on it.
I have an emitter here, which is spitting things around. I can grab the emitter and drag it around and you see it's spitting files out. Filters can be stored there. It's a filter icon. You can even have a whole stack of behaviors that can be saved off as one behavior icon, which is an incredibly flexible tool for when you're trying to reuse elements.
I'll go into that later as well. PSD files, transformations can also be saved as well. It's a really great tool. So, I'm going to start by bringing in the I'm going to show you an Adobe Illustrator file here, which is this logo. And this logo is, it's actually an Adobe Illustrator file. Adobe Illustrator's format, native format, lets you save as a PDF. And we import PDF files as one of the supported formats.
So if I go over to my, uh, Oops, if I go to my transformation tab, you'll see here that when I imported it, I imported it with Rasterize on the fly turned off, which is a feature that we support. So what I want to do is go back to my media tab here.
There we go. Go back to my media tab, select that. Over here in my inspector under the media, we can say turn off fixed resolution, and now this is rendering on the fly, so that it will render at the frame rate of your comp, so you can even, you know, in real time animate this, and just to drive the point home, we'll... Sorry about that. So as you can see, we've got crisp, clean, sharp edges anywhere on this brush-stroked PDF file that we've imported. So I'm going to delete that and let's go to show-- oops.
That same principle applies, of course, to how we interpret footage. So if I bring in my race car here, Let this play, turn that off. So right now my race car is selected. You've seen the mini timeline down here that it ran out of road, essentially. So the race car is there, but it's obviously not at that same point in time where the playhead is. It wraps around, it's playing back again.
Close the dashboard for a minute here. So if I go into my media tab, I can adjust that so I can change how it's interpreted over time. The media tab, of course, allows us to change things like the alpha type, whether we invert the alpha, pre-multiplied channels and things like that. But the pixel aspect ratio is field dominance, lower, upper, things of that nature, frame rate.
And the end condition says whether we loop, ping pong, or hold. So we loop, it just keeps repeating, starting at frame one, ping pong goes back and forth. We can even set it to reverse. So I've set this to ping pong, and all that's left to do now is to extend that out through the duration there. Now you'll see it'll play forwards and backwards as it goes.
I'm going to bring over our logo so we can show how composite modes work. So I'll say choose to import all layers. You see my layer list that I have two different layers here. Well, the Channel 8 logo, the actual color part was set to hard light, so I can set that to overlay. These of course were set in Photoshop, they weren't set in the application. It just reads the transfer modes and brings them in. I'll change this to add, and now I've got this logo that maybe looks a bit better in these lighting conditions.
And even, you know, of course support transformation for these independent layers as you go, so I can move these guys around, I can move them around as a group. But if I've done something drastically wrong, or I've done something I liked, and say, well, I've got this thing going, it's ready to go, but this needs the exact same transformation matrix, I can go and select my position, rotation, and scale values, and I can actually drag those over the other object, and it instantly snaps and says, oh yeah, let's just use those. So you can actually take an entire animation. Thank you.
It's a really incredible, important feature that I'll be showing off a couple places. We don't even really talk about that. It's people like you that probably appreciate it, so that's why we show it here. And of course, all of this can be saved off back to the file browser. So, I've got my file browser here. I want to bring this, I'm going to name this "Trash Me".
"Thrash me" in this case. Bring that over here and you'll notice instantly I have this pop-up that says, "By the way, you're going to put it over here now. Thrash me." Now, what's really cool about this, that's a little non-obvious, is when I click on that, it does start playing back in my preview window.
So it knows that even though it's this composite of these things, it's not rendered, it's a .motn file that's sitting on my hard drive right now. It's previewing in this window, which is a very important feature, which is how we preview particles and things like that. So, letting that play for a second. I'm actually going to quit here. I'm getting a little sluggish.
So next we're going to cover some compositing, how transfer modes work with compositing. So to do that, I'm going to start by showing off the layers, showing the layer list here. And I'm going to add a simple square and bring up my parameters for that. In the shape, you'll notice my tab immediately changed to this active object here, and my dashboard also changed to the currently active object. So I'm going to go and right click on the fill color, and I'm going to change this to red.
And if I want, for those of you who don't like picking a color from a gradient, you can go there and change your exact values. So I'm going to option click and drag to duplicate this, scale it up a bit here, because that's not the right size. Scale this up a bit, this one will be set to green, and this one will be set to blue. Right here.
So now I want to add a bit of motion to these, so I'm going to have, put a sort of a dummy layer here that's just going to be, I'm just going to call it null. And it will serve as the pivot point for a orbit behavior, which is a simulation.
So I turn on orbit around, and it's notice over here the behavior tab instantly comes up and it says object none. Well all I have to do is click and drag over the layer, and you'll see this little pop up, the context changes to this arrow. I can drag it to the image well as well.
So drag it in there, and it's ready to go. It instantly starts animating around that null object. So if I select all three rectangles, change the blend mode to add, now you'll see we've got the white, you know, so they're all actually additive there. So next, sorry I need a drink. Drink music.
So, while those are running around, we can go in and add a... I'm going to go back in and I want to add in my composite project here, I'm going to add these four clips of video. And I'm going to drag these into their own private layer. Not the song by the B-52s. Set the out point here. Yes, we get to listen to all those. Set the out point right about-- just for demonstration mode.
So now these will be playing back shortly in real time. So what happens is, as you noticed, we have a little bit of a sluggish hold as we're loading four clips of video into RAM simultaneously. But now, as our frames per second indicator is showing, we're playing back at 30 frames per second once it's already loaded. So I'm going to drag these files around.
I'm going to put these guys here, and I'm going to set another orbit around. I'm actually going to just option drag this onto this layer, and that layer immediately knows that it's supposed to reference the exact same object that it's supposed to orbit around. So now I can go and select different transfer modes for each of these. In this case I'll select--oops. Set this one to multiply. Set this one to, oh, I don't know, add. And set this one to overlay.
So we've got eight objects instantly moving around. Now, since these are orbiting, we're actually updating the simulation in real time. So if I go and I grab one of these objects, I'll just pick something at random here, you'll notice that it's drawing the motion path. You see the faint red line that's being drawn around there.
And I can try and grab it while it's moving and "I'm going to move it around in real time just to show you that it's not actually cached in some sort of hardware render that's completely isolated." So, with that in mind, in case I hadn't mentioned, this is still beta software, so I do have to treat it with kid gloves every now and then, restarting and talking nicely to it. I'll start with a new project here again.
Let's talk about filters. So filters, again, as I mentioned earlier in our intro, filters are GPU accelerated. So I'm going to bring in a golden wheat image here, which is out point of which is right about there. Yeah, that looks good. Actually, let's delete that. Let's bring in our marionettes. Sorry, Barry.
They have our marionettes dancing happily about here. And this was taken somewhere in San Francisco. I don't know. But we can go and simply start adding some filters to this. So let's add a Gaussian Blur. And you'll notice that we've got a kernel size of 64. And it's, I think, slowed down to about 20 frames a second. So pretty decent kernel size for Gaussian Blur. Now let's delete that. Let's add the Colorize filter.
Color eyes: Color eyes allows you to tint your footage. You can choose to use the Apple Color Picker, or the handy-dandy Grab Something from the Gradient. You can even set the intensity of the color. I'm on that. Let's delete that. Let's go and add a light raise.
[Transcript missing]
Not too bad though for LightRays I have to say. And you can even do things like add a filter, a distortion, a black hole.
Okay, cool, huh, first one. Obvious as that. Move that point around in real time. Zoom in a bit here so we can see this. So, behaviors work in several different ways. I'm sort of bouncing in and out of what a behavior is, and which behaviors work in different circumstances.
In this case, I want to go to my inspector and my filter tab, and that center point, as you'll notice, is updating over here in my inspector tab as I drag it around. So, I can actually go and apply what's called the parameter behavior, and apply a randomize to that, and now it just gets kind of crazy.
And if I want to see that move around a lot, I can change it to, oops, change the amount that it is to .5, set it to add and subtract, so that it adds and subtracts the position, maybe take the frequency down because I don't want to have a seizure, and take the noisiness down to like, I don't know, .3, something like that.
So, this is actually... *whispers* Yeah, moving about 22 frames a second, something like that. Not too shabby. So, oops, let's go back to our layers tab here. Delete that guy. So let's add another one here. Let's add a line screen under the stylized filter. So, go down here. Not line art, we've seen enough of that.
Filter. It's ready to go. Speaking of seizures. You can change your angle on the fly, change the scale of these guys, contrast, stretch and skew it, things like that. And I want to actually go back and add a distortion so I can drive the point home that you can stack your filters in a layer order that actually makes a difference. In this case, I have the twirl above the line art, which has a very different effect than if I put the twirl underneath the line screen. So I'm either twirling the line screen and distorting it, or adding a line screen over that.
So of course we give you complete dynamic control for this, and how you can order your projects so that you get the effect you want. And it's non-destructive, so you can go back into a project and reopen it later and adjust all your filters and things. So, let's cover behaviors a little more in depth. I'm going to go through and add a series of behaviors to a single object, just to show you how we can stack these behaviors and they interact with one another.
Go back here. I'm going to start by just using a simple rectangle. And I've got this rectangle here, dashboard updates, go and add a fade in, fade out behavior. So as I hit play, it's fading in, fade out. We've seen that before, nothing new. Let's go back to our throw behavior, let's throw it in a direction. You point and drag, you notice there's the red line that shows you which direction it's going to go. A cool thing about throw behaviors, you can actually duplicate them and run two on the same object.
Back here in my timeline, you see I've trimmed it actually in the mini timeline, but here it is in the main timeline. So if I select that, and I option drag it, now I've got two, and I can actually have it go in a different direction. You notice now it shows two different vectors that the object would be thrown as it goes. So I'll collapse that back up. Let's add a spin behavior to this. I just simply click and drag, start spinning. That's good. Let's go and add a grow shrink behavior. Grow shrink, you can either choose to grow it over time or shrink it over time.
And that's pretty cool. So let's actually do something a little bit more interesting and maybe add an edge collision to this project. Let's close this. Down here, leave this in view. And under simulations we have an edge collision. Edge collision interacts with the edges of your screen. It doesn't actually have alpha collision, which is just not available yet.
So right now, you can see as it's growing, it's running into an edge. And notice my path has changed. It runs into an edge and actually pushes it around. I've actually made trap squares that can't get out of your project. It's kind of crazy. But if I go back to my throw and just really whack this out, you'll see it. You'll see the beach ball. Let's see if it recovers from that. All right. This is motion quitting.
So the point I'm trying to make here though is that you can stack these behaviors. They can interact with one another. They can interact with the project as a whole or things on layers. And we can actually apply them in several different ways that makes it a little bit more interesting. So let's start with that. Anyone remember the game Super Breakout back in the day? Okay, I'm not the only old one here. It's good to know. So I'm going to start with this is motion because it's my favorite phrase I like to type over and over again.
And paste, whoops, paste, paste, paste, paste. Okay, great. We got a Super Breakout block. So of course we need our protagonist which is the Super Breakout block ready to go. Turn off that. Go to the head of my project. I'm going to zoom out just a little bit here and turn off the dashboard because it's in the way at the moment. Go up here, get it ready to go. If I turn on record and just wiggle this object, it's recording the parameters for the position right now because it's the only thing I touched in the project.
Auto record lets you record any parameter that you move at any given time. So you don't have to think, well, did I set a key frame at the beginning of the project or anything like that. It just knows, oh, you want me to record that animation. It's ready to go.
So I've got my position up here and I'm going to go a little bit forward in time. Drag this down here a little bit forward in time and just make a general sort of, whoops, make a general sort of, if I was Super Breakout, where would I be going? Move up here.
And down to here. Set my out point. So now I've got this object moving along. It kind of waits over there for a second, thinking about things. It zips around, comes over here. It's ready to go. So I don't actually want to see my Super Breakout character right now. I'm going to select my This Is Motion Super Breakout block, and go and add a simulation called Repel From.
I'm going to write down here. So when I do that, I go back to my inspector and the behavior is instantly available. Affect objects means that it's going to affect all the objects that it's attached to. It's set to none right now, it doesn't know what it's looking for. The super breakout block is still of course moving around the object that I just turned off. I'm going to set my strength to 1000 because I'm feeling crazy.
I'm going to take my influence and that's the influence is the region of how repulsive am I for how long, how far do I stink. And then that's all set up and ready to go, but it doesn't have anything to repel from until I drag that down there. And then it goes down and it continues to break those things out. So if I had to keyframe this thing, call me in a week.
I mean it really is amazing to see that it's that simple to do something like that. If I want to, driving the car, I'm going to point home again, go back to our behaviors and drag in our friend the striped ball. If I want to use the striped ball instead of our protagonist, the rectangle, because he's been replaced by the next generation of the game, I could go in and bring that ball in and I say, well I've already got my rectangle animated, but the ball now needs the same animation because we're just swapping the character here. So I go to my inspector tab and I grab the position and I drag it onto the ball and the ball is instantly the thing that's now pushing things out of the way.
So, it's actually still referencing the previous rectangle, but we just won't tell our users. Oh, I mean our customers of the game. So that's super break out, but let's do something a little bit more obvious, like I've got to do a title animation for a kids book that's being made into a show and it's a little animated feature and it's called, "Who's Afraid of the Dark?" It's about a little ghost who's playful and it helps this girl get over her fear of the dark. And so I'm going to start this new project and do a little title animation here without harming any keyframes in the process. So start out here and I'm going to bring the ball back into the project.
So the ball's ready to go. I'm going to make a ghost. This is going to be my ghost object here. Don't really care because you can't see a ghost. It's just going to be a square. So I've got the square here and I want the ball to be attracted to the square as if the square is magically dragging it around the canvas. So I've got my square ready to go.
I've got my ball and I'm going to add a simulation behavior called Attracted To. So when I hit play, nothing happens. The reason nothing happens is because it doesn't know what it's attracted to because it has a problem with that. So I drag that and as you can see-- As I drag this object around, what's actually happening is the alignment guides are on, which is why you're seeing the yellow bouncing around, but I just turned that off.
The reason the ball has this jumpy behavior is actually something that's really cool, and it's really non-obvious. For those of you who are programming, it's actually calculating from the beginning of the point in time to that current point in time, what the simulation is on the fly, that fast.
So it's not that impressive right here because it's a single ball, right? But it's actually recaching the simulation. It's even more impressive to see it run on particles because it does it pretty fast. Obviously, the longer it has to cache, the longer it has to figure out all those points. So I'm going to go in here. I don't want to actually harm any keyframes in the process of making my project, so I'm going to go to my project tab, and I'm going to apply a randomized behavior.
You'll notice that parameter behaviors, which is what these are, right click on these objects, you have things like oscillate, ramp, and things like that. But I'll just use a randomize. And you'll notice that instantly it goes into a frenzy. I can make that frenzy even greater by changing this to add and subtract and ramping that up. And now my ghost is going all over the ball, and the ball is kind of sluggish. It doesn't quite know where to go.
So let's do something about that because it's not quite as impressive as I wanted yet. So I'll go back here, change the frequency down to 1.0 and change this to about 0.35, which gives a little bit more of a sane thing. And the reason this is important, the reason procedural animation is important in this case, is that I need a random path that this thing is supposed to go around because I want this ball to look like it's being played with and toyed with. Well, if I had to keyframe an object for it to do all that with, it would take me hours. So I have this randomized behavior already applied to this. By clicking the Generate Seed button, you can see that it instantly has a different path.
[Transcript missing]
So with the randomized behavior there, now I've got a path that I sort of like. My ball is kind of going off, drifting off where it wants to. I don't want it to quite go so far away. I'm going to change the attractiveness to 500. So it's really looking hard for that object. And the influence, I'm going to leave it 1,000. And change the drag to about 1.3. So now it keeps up with the object a little bit more, since I have some drag applied to it. Sorry, I need a drink. Go full screen.
This behavior path, the red path that's being drawn on the fly, is really important of course when you're working with simulations because you need to see where the objects are going to go. So that object is going around. I want to add an edge collision to actually keep this thing inside the frame.
So now if I turn off my ghost so we don't have to see him because we don't have x-ray vision, we have this ball bouncing around the room and it's trying to get out of the room and it looks like it's sort of being thrown around this guy. Well that's pretty cool. Well the ball looks good but it doesn't have much depth yet so I'm going to actually duplicate my randomize.
by option dragging it in the layer list, and you'll notice I have randomized copy here. Well, if I delete this, I'm going to call it Rand Scale, so I'm going to actually apply this to the scale parameter. So over here in my behaviors stack, which is under the behaviors tab, I can go and say, well, instead of being applied to none, why don't you actually do something with your life and get a job, and apply it to the all.
Now immediately what happens is it's bouncing all over the place and looking all crazy because I don't have the X and Y values linked. So I click them and I link them, and now it's just kind of going to town. 530% is a lot to change the scale, so I'm going to change it to 80%, and I'm going to set it to subtract.
So now it's a little bit more sane. It sort of looks like it's going back in space a little bit, bouncing around the frame. I want to give it one more cue, and I'm going to actually add a depth cue, and I'm going to add opacity to the stack.
Rand opacity here and click on that guy. I'm going to go and apply that property to the blending of the opacity. Change its value to 80% so it's subtracting 80% from that. Of course this is against a black frame. I could have picked another way to change it, but this is the fastest way to show. And now as it goes back in the room, it looks a bit more like it's getting darker as it goes back and away from us.
So that's all good and fine. Let's add one more behavior to this because we can. I'm going to say snap alignment to motion, which as you can see here, what it's doing is it's flipping the ball around in the direction that it's heading as it goes that direction. So now I've got five different behaviors applied to an object that are all interacting with one another and contributing to the look of this ball and giving it some character.
So I need to actually stop it at some point because I have to get text. Sorry about that. I need to actually get some text in here and have the-- the ball needs to calm down, the ghost needs to just chill for a bit. So what I'm going to do is apply a stop behavior. I'm going to go over to two seconds and apply a stop behavior. Whoops.
I'm going to apply a stop behavior to my rectangle's position. Go into the property tab and apply a stop. And so what stop does, it just says, stop. Don't do anything. Just stay wherever you are and don't do your thing. It can be applied to any parameter. It sort of stops the simulation in this case. So I want to go to the out point and actually drag this-- excuse me. Let's go to four seconds.
That's ready to go, hit the out point. And so now what happens is, I'll turn this back on and zoom out a bit, you can see, it actually wraps back around here to the beginning. It goes down and it just stops, it just says, "Huh, wait, okay." And the ball still tries to get to it and it goes, "Oh, I'm coming back for you." So, it's a great way to get objects to stop their simulations. So next, let's add some text to our project. So I'm going to go over here, actually add a new layer, because we need a new layer to control our text. Click over here, type in the title of our piece.
That's our piece. I'll go and pick a font. I'm going to pick American typewriter up here at the top. Come on. There we go. Regular weight, size looks good, ready to go. Okay, so I don't want the text coming on at the beginning, so I'm going to go down here to about the two second point, and set the end point by hitting the I key, instantly snaps to that point in time, it's ready to go, but I actually want to bring it in using a behavior. So using a text behavior, as I showed earlier, I'm going to use behind camera because it's the fastest way to show it. Change the duration to about there.
So now my text flies in, looking all groovy, cool. Change the spacing of my behavior. Change the spread parameter. There we go.
[Transcript missing]
Now it's in my stack of behaviors, it's ready to go. But it doesn't have any of the values I need in it. I'm going to change its strength to 1000.
We changed that to 1000, the fall off rate, influence down to about 50. And this is where it's really important to know what your simulation is doing at the end of your frame. So you see right here at the end of my project, there's one letter left standing, and I don't want that letter left standing. So the way to find out how to remedy that is to go to the end of my project.
There we go. OK, so now I know that at the end of my object, it's going to go all the way and it's going to get crazy here. Who's afraid of the irk? Well, we've got to fix that. So in order to fix that-- boom, takes out those last two characters.
In order to fix that, the repel behavior is a point in time. It's set by default to the length of your object. So I actually want to go grab this guy and say, well, where did it mess up? For some reason, when it lands there, those aren't showing up. So maybe if I go and I slide this-- oh, there they go.
They pop back on. So now those are ready to go. Now it goes and it takes out all the characters. Boom, takes those last two out, good. So, I want to keep them in frame. I'm going to apply a simulation edge collision. Now they're just going to bounce off the edges.
Let's add a... Yeah, that's looking good. We can actually go and add a drag if we don't want to see them go quite so far, so I'll add a simulation drag behavior, and change this down to about, I don't know, value of .7. And I can even tell that text so that the simulation aligned the motion so that as they're bounced around the canvas, you'll see here that they actually go to the direction that they're headed as they bounce off the walls and things. So a great way to do a title animation, not a single keyframe.
[Transcript missing]
A little bit of a longer phrase so you can see what we're doing. Our dashboard. So we have a number of different types of text behaviors. Basic sequences in from left, text animation, scrolling up, scrolling down, text tracking, where it just tracks over time, change the rate of how that's applied. Go and add some text glow behaviors, beam out. It's kind of fun. Wait till it gets to the beginning there. There we go.
So those down a bit with blurs. You can add a number of these types of things. I added the behind camera, but there's a number of ways. You can actually build these on your own, actually. I'm going to show you how to build one rather than just talking about them all. So I'm going to go to text animation and add a sequence behavior to this object.
So now by default, again, the sequence behavior is the duration of my object. And since we don't want to sit around for 10 seconds waiting for that to draw, let's go ahead and shorten the duration of our behavior and set our out points so we can see this loop back around as we go.
If I go to my behaviors tab over here in the inspector, you'll see that the sequence behavior doesn't have anything in it. It allows you to add any parameter that's available for your text under the outlines, opacities, the glows, the drop shadows. Any of those can be animated in a sequence. So I'm going to start by adding the position parameter and crank this up to a value of 200.
So right now we have the -- our sequence is moving through the object. It's isolated to a narrow region, which is the character. If I change that spread, you can change it so it's more of a vibrant thing. You can even change it so that it repeats through the duration of that. You can set it to ping pong so it goes back and forth.
So I'll leave it here on ramp and take it back to one. If I change it to all, now it's the type of behavior which is what we saw in the behind camera, which is where the object is ramped through as it goes. So I'm going to take this to a negative 50, and I'm going to add another, whoops, yeah there we go, I'm going to add a scale parameter to this and crank up the scale to 600. So now it looks all nice and ugly at the beginning and oh, suddenly we can read it. But let's add maybe the face opacity so we can see this thing go transparent and land like that.
So that's the basic premise of how this was created, the behind camera parameter. And as you'll notice, the sequence behavior is just, can be dragged in time. We can set the in and the out points so it takes even longer to reveal or even less time to reveal.
We can even add something like, let's add a face blur, just so we can see how that pans out. Nice depth of field look as the text comes in. So that is our basic text sequence behaviors. Is this clock down here right? OK. It's going to be a short demo. Let's move on to particles.
So Particles in Motion, we ship the number of presets that are ready to use straight out of the bag, and those are really easy to apply via the library. We go down to our particle emitters, we click on it, and we instantly see a playback up here. We have different categories, abstract, nature, smoke, and sparkles, sparkles being the most fun of it all because There we go. Because of course we all, you know, like to play in the Magic Kingdom.
So, again, when I drag this in by default, it doesn't have any animation applied to it, so it doesn't know where to go. So if I go to the beginning of my project and turn on record keys, And set it there. Now it's going to go from there to there over my time, and you can see my particle system is being drawn on the fly. Let's make a new project here, and go back to my file browser.
Go to my particles folder and grab some source. So I'm going to grab a, let's grab the pinch grab, and I'll show you how these are built from the start. It's really easy to make a particle. You drag in a piece of footage and you click make particles and you instantly have particles.
So, that's how easy it is to make particles. Of course it gets a lot more sophisticated than that. I'll run over those controls for you. In the emitter control, which there's different cells that can be applied, so you can actually have different types of particles living under the same emitter. The emitter is where you control what type of emitter you have.
You can have a line, so you can have things being emitted from a line, a circle, a fixed circle, geometry, sort of a roto shape. You can have it being emitted from a line on a Bezier spline. And also an image. You can use an image alpha channel as the source for the emitter.
So I'm going to go down here. You see we have a birth rate that controls how many particles come out. You have a birth rate range, so you can have it be sort of erratic. You can take that even to zero, and now it sort of spits particles out when it feels like it. Change the initial number, change the life. The life is the duration of how long a particle lasts. Change the life range so that some particles last longer than others, and some don't last very long at all.
There you go. Things like speed range, so some particles can go faster than others. Particles can go in different directions. It's a really great sort of like star field thing where you have different particles going at different speeds. A scale range, which allows you to change the overall, you know, some particles are big, some are small. Click on generate your random seeds, so you get a random seed variation of all these as you go.
If we want to change our color, we can change our color really simply by going using several different color modes. If we use an over life mode, now as the particles get older, we'll change this to a value of three. So you can see that the particles that are red, it should actually be inverse for those of the astronomy buffs among us.
Start out as a nice blue neutron star and go to a red, you know, whatever. But anyway, you can turn on additive blend mode, which gives you more of a glowy effect. If I go and simply add a... "Driving that point home, they go and add a middle knot here and make that green, now we have this nice sort of glowing star field sort of thing going on. Much more glowy effect. Show how these interact with, uh, Interact with your simulation behaviors. I'm going to go here really fast since we're running out of time and add a, under my properties tab, add a randomize. Go back to behaviors, crank that up.
[Transcript missing]