graymachine 0 Report post Posted May 14, 2007 (edited) Many asked that I announce when the After Effects Expressions training series is up and available. Well, here it is!! One hour of training for $29. What a bargain! Learn expressions from square 1, while enjoying the soothing sounds of my voice. Also, each lesson comes with a reference PDF outlining everything that is covered in the video lesson. Watch the Promo Video Note, the actual training is 1024x768, not 400x300 like the promo is. Size does matter. Edited May 20, 2007 by graymachine Quote Share this post Link to post Share on other sites
a2visual 0 Report post Posted May 14, 2007 Thanks Graymachine...$29 is not that bad btw...have you had a chance to play with expressions in CS3? I've read that you can use pixel sample values to drive expressions...which sounds really handy. Quote Share this post Link to post Share on other sites
graymachine 0 Report post Posted May 14, 2007 Thanks Graymachine...$29 is not that bad btw...have you had a chance to play with expressions in CS3? I've read that you can use pixel sample values to drive expressions...which sounds really handy. I've only read about that, but that is a WELL needed feature. Althought this is only Volume 1. I plan to release Volume 2 soon, and Volume 3 will cover CS3 stuff (as I still need to learn it). Also, apparently marker names are also accesible, which is VERY cool. You'll be able to create event triggers of different kinds. Quote Share this post Link to post Share on other sites
a2visual 0 Report post Posted May 14, 2007 Wow, didn't know about the markers...that opens up a whole world of possibilities. Time to dig into Volume 1 (& 2 when it's released), looks like I have a lot to learn in CS3. Quote Share this post Link to post Share on other sites
jasfish 0 Report post Posted May 16, 2007 I was one of the lucky ones who got to beta-test this .. and all I can say is this is a really great resource. Can't beat it for the money. I've worked in AE for a long time but rarely use expressions .. so this was a good primer. I've already taken some of what I learned and used it in a recent project .. so I would highly recommend these to anyone wanting to learn more about expressions. And no, Harry didn't bribe me to write this Quote Share this post Link to post Share on other sites
seabass 0 Report post Posted May 16, 2007 Watch the Promo Video Uh, my dyslexia made me laugh when I read this. Quote Share this post Link to post Share on other sites
graymachine 0 Report post Posted May 16, 2007 Well, I am kind of whoring myself. Quote Share this post Link to post Share on other sites
monovich 0 Report post Posted May 19, 2007 I'll bite. I want to sharpen my expression skills, which are barely more than pickwhipping values here and there. I'm going to get it now and I'll post a review when I'm done. Quote Share this post Link to post Share on other sites
monovich 0 Report post Posted May 21, 2007 well, I bought, downloaded, and watched the first batch of 3 and learned a ton. I had just finished a prject with birds and flapping wings, and I could have used the very first thing I learned to save a lot of time there. Doh. Definitely worth $30. It's a lot easier watching quicktimes than learning from a book. Looking forward to the 2nd and 3rd installments. Quote Share this post Link to post Share on other sites
monovich 0 Report post Posted May 21, 2007 Thanks Graymachine...$29 is not that bad btw...have you had a chance to play with expressions in CS3? I've read that you can use pixel sample values to drive expressions...which sounds really handy. you probably already read this, but it explains it a bit. seems a hugely useful feature. I'm stoked. http://www.motionscript.com/design-guide/sample-image.html Quote Share this post Link to post Share on other sites
monovich 0 Report post Posted May 21, 2007 Wow, didn't know about the markers...that opens up a whole world of possibilities. Time to dig into Volume 1 (& 2 when it's released), looks like I have a lot to learn in CS3. http://www.motionscript.com/design-guide/marker-sync.html Quote Share this post Link to post Share on other sites
graymachine 0 Report post Posted May 21, 2007 Thanks for the kind words! The next parts are in development, but I am always open to suggestions. Lesson 4 is covering Data Screens, which dives into Source Text expressions, and deeper into programming with things like if/else, for and while loops, random seeds/numbers, and audio to keyframes. This might turn into a double lesson. Lesson 5 is all about event triggering, controlling when and where expressions happen: using markers, using keyframe events, and the deceptively simple "linear" function. And it quickly covers some already over-done material on spring-like motion. Lesson 6 is up in the air. If there is stuff people are dying to know, I'd love to find out. I think it's too soon to dive into vectors. Camera control is one possibility, it just seems like a boring topic, and it's been covered quite a bit in forums and with the Meyers' articles. Perhaps it will just jump into the "CS3" functions. These topics are tough to design, as most expression applications are this "little thing" here and there.. controlling exposure from blur level, creating random motion, making and object invisible based on certain parameters, etc. Turning these into a 20 minute lecture requires a really solid project to base it on. Anway, I plan to have the next ones out before the CS3 release, freelance schedule allowing. Thanks for the review! Quote Share this post Link to post Share on other sites
monovich 0 Report post Posted May 21, 2007 One thing that would be handy for me is more training about how to reference layers in other comps, and how to break out of the current composition and work all over any given project with scripts. I know that that sort of stuff isn't even that advanced, but syntax and useful examples could be cool. A scripting thread that I read but couldn't quite grasp dealt with space transformation (layer, comp, etc) and they were making some cool proof of concept tests and seemed rife with possibility. It was all french, but here's the translated thread: http://translate.google.com/translate?u=ht...Flanguage_tools there are little quicktimes in it that show that they are doing. Not sure what else, but if I think of anything, I'll mention it. thanks! Quote Share this post Link to post Share on other sites
graymachine 0 Report post Posted May 21, 2007 Think of it this way: For "this comp" Global Object: thisComp Sub-Object: layer("My Layer") Attribute: position, rotation, etc Which goes together like this: thisComp.layer("My Layer"). position for "that comp" Global Object: comp("Comp Name") Sub-Object: layer("My Layer") Attribute: position, rotation, etc Which goes together like this: comp("Comp Name").layer("My Layer").position I'd like to visit expression structure more in lesson 5 once folks are more comfortable with them. Quote Share this post Link to post Share on other sites
imcalledandy 0 Report post Posted May 21, 2007 ordered it and watched lesson 1... good stuff harry, looking forward to watching the other 2 lessons - I'll keep an eye on this series.... Quote Share this post Link to post Share on other sites
graymachine 0 Report post Posted May 21, 2007 ordered it and watched lesson 1... good stuff harry, looking forward to watching the other 2 lessons - I'll keep an eye on this series.... Awesome! Thanks! And regarding the script thing.. that's a tricky one. That's just hardcore programming with little instant feedback with what you are doing. Maybe maybe down the road it's worth diving into. Honestly, I don't do much JSX Scripting, though. Quote Share this post Link to post Share on other sites
mazination 0 Report post Posted May 31, 2007 A Minor Collection of Useful Expressions by Michael Natkin, Fred Lewis, and Brian Maffitt "Total Trainning" Circle Fun This generates perfect circular motion centered around the original position of the layer. I recommend that you map the radius and cycle inputs to Expresso sliders, and the phase input to an Expresso angle. Apply this expression to the position of the layer radius = 75; // the radius of the circle cycle = 1; // number of seconds to complete a circle; higher value = slower if(cycle ==0){cycle = 0.001;} //avoids a “divide by zero” error phase = 27; // initial angle in degrees from bottom reverse = 1; // 1 for ccw, -1 for cw x = Math.sin( reverse * degrees_to_radians(time * 360 / cycle + phase)); y = Math.cos(degrees_to_radians(time * 360 / cycle + phase)); add(mul(radius, [x, y]), position) ------------------------------------------------ Track a Child This expression is designed to track the position of a layer that has been parented to one or more layers. Use the expression below on the position property that you wish to animate, changing the name “Child” to match the neame of the layer you wish to track. For instance, if you wat to use write-on to track the position of a layer called “moon”, apply this expression to the “brush position” property of the write-on filter, and change “child” to “moon”. c = this_comp.layer(“child”); c.to_comp(c.anchor_point) ------------------------------------------------ Adjustable Position Wiggle Use this expression as an interactive, keyframeable Wiggler. Apply it to the position of the layer you wish to wiggle. wigfreq = 3; //wiggle frequency wigamt = 30; //wiggle amount wigdetail = 3; //detail of noise position.wiggle(wigfreq, wigamt, wigdetail) ------------------------------------------------ Adjustable Rotation Wiggle Use this expression as an interactive, keyframeable Wiggler. Apply it to the rotation of the layer you wish to wiggle. wigfreq = 5; //wiggle frequency wigangle = 45; //wiggle amplitude wignoise = 3; //octaves of noise rotation.wiggle(wigfreq, wigangle, wignoise) ------------------------------------------------ Oscillate Position Creates an oscillating motion between two specified 2-dimensional positions over a specified period of time (in seconds). Use an adjustment layer with Expresso position controls for “from”, “to”, and an Expresso slider assigned to “period”. Change “linear” to “ease” for smoother interpolation. from = [50, 90]; //one end of your oscillation to = [190, 30]; //the other end of your oscillation period = 1.5; //time between oscillation points (multiply by 2 for a round trip) t = time % (period * 2); if (t > period) t = 2 * period - t; linear(t, 0, period, from, to) ------------------------------------------------ Oscillate Rotation (or any single value) Creates an oscillating motion between two specified values over a specified period of time (in seconds). Use Expresso angles or sliders for “from”, “to”, and an Expresso slider assigned to “period” for fine control. You can apply these to any layer. Change “linear” to “ease” for smoother interpolation. from = -45; //one end of your oscillation to = 45; //the other end of your oscillation period = 1.5; //time between oscillation points (multiply by 2 for a round trip) t = time % (period * 2); if (t > period) t = 2 * period - t; linear(t, 0, period, from, to) ------------------------------------------------ Bounce Creates a bouncing (sine wave) motion between two specified 2-dimensional positions over a specified period of time (in seconds). Useful for creating bouncing balls. Use Expresso position controls for “from”, “to”, and an Expresso slider assigned to “period” for fine control. You can apply these to any layer. surface = [320, 480]; //the position of the “bounce” surface apogee = [320, 50]; //the “apogee” of the bounce period = 1.5; //the length of time from surface to apogee t = time % (period * 2); if (t > period) t = 2 * period - t; linear(Math.sin(t * Math.PI / period), 0, 1, surface, apogee) ------------------------------------------------ Wiggle from Leader These two expressions create a “follow the leader” effect. One works from the top down, the other from the bottom up. Only use one. A follower will tag along after the leader, deviating from the path according to the wiggle properties that are specified in the inputs.Once applied to a single follower, you can duplicate the layer as many times as you like and each subsequent copy will follow along, offset in time from the last and wiggling uniquely. In this expression, the wiggle is based on the position of the leader. Link Expresso sliders to lag (to interactively control how bunched togeher the layers are), winfreq (to control the frequency of the wiggle) and wigamp (to control the amplitude of the wiggle). Apply Expresso effects to the leader only. Change the word “Leader” to match the name of the leading layer. //USE THIS ONE IF THE LAYERS STACK UP FROM BOTTOM LEADER lagtime = .1; wigfreq = 3; //wiggle frequency wigamt = 30; //wiggle amount adj = (this_comp.num_layers - index) * lagtime; this_comp.layer("Leader"....position.wiggle(wigfreq, wigamt, 2, .5,time - adj) //OR... //USE THIS ONE IF THE LAYERS STACK DOWN FROM TOP LEADER lagtime = .1; wigfreq = 3; //wiggle frequency wigamt = 30; //wiggle amount adj = (index - 1) * lagtime; this_comp.layer("Leader"....position.wiggle(wigfreq, wigamt, 2, .5,time - adj) ------------------------------------------------ Wiggle from Previous This creates a “follow the leader” effect that works from the bottom up. A follower will tag along after the previous layer, deviating from the previous path according to the wiggle properties that are specified in the inputs. Once applied to a single follower, you can duplicate the layer as many times as you like and each subsequent copy will follow along, offset from the last in time and wiggling uniquely. In this expression, the wiggle is based on the position of the previous layer. Link Expresso sliders to lag (to interactively control how bunched togeher the layers are), winfreq (to control the frequency of the wiggle) and wigamp (to control the amplitude of the wiggle). Apply Expresso effects to the leader only. Change the word “Leader” to match the name of the leading layer. //USE THIS ONE IF THE LAYERS STACK UP FROM BOTTOM LEADER lagtime = .1; wigfreq = 3; //wiggle frequency wigamt = 30; //wiggle amount adj = (this_comp.num_layers - index) * lagtime; this_comp.layer(this_layer, 1).position.wiggle(wigfreq, wigamt, 2, .5,time - adj) //OR... //USE THIS ONE IF THE LAYERS STACK DOWN FROM TOP LEADER lagtime = .1; wigfreq = 3; //wiggle frequency wigamt = 30; //wiggle amount adj = (index - 1) * lagtime; this_comp.layer(this_layer, -1).position.wiggle(wigfreq, wigamt, 2, .5,time - adj) ------------------------------------------------ 2D Look At Apply this Expression to the Rotation channel of any layer you wish to control, Set LookAt, below, to the name of the layer you wish the layer to look at. If the controlled layer is not initially pointing straight up, enter an offset amount in degrees, below, to adjust the direction it is looking. LookAt = "ball" offset = 0 diffx = position[0] - this_comp.layer(LookAt).position[0]; diffy = position[1] - this_comp.layer(LookAt).position[1]; if (diffx == 0) { diffx = 1 } sign = 1 + (-1 * (diffx / Math.abs(diffx))) * 90; radians_to_degrees(Math.atan(diffy/diffx)) + sign + offset ------------------------------------------------ 3D Look At Apply this expression to the orientation channel of the layer you wish to have look at another layer (the layer being controlled). Enter the name of the layer to look at in LookAt below. If the layer being controlled does not correctly look at other layer, adjust the layer offset by changing the X, Y and Z rotation values (not the orientation values) for the layer being controled. LookAt = "ball" look = look_at(position, this_comp.layer(LookAt).position); [look[0], look[1], look[2]] ------------------------------------------------ Angle of View Zoomer This allows you to control the angle of view of acamera interactively, by scaling a null object on screen. To use: Create a null called "angle_zoomer". Animate the null's scale to control viewing angle in degrees. substitute = this_comp.layer("angle_zoomer"....scale[1]; this_comp.width / (2 * Math.tan(degrees_to_radians(substitute/2))) ------------------------------------------------ Focal Length Zoomer This expression will allow you to zoom a camera in After Effects using real-world focal length values. To use this expression: 1. create a camera in after effects 2. create a null layer called "focal_zoomer" and turn off its visibility switch in the timeline 3. apply the expression below to the Zoom parameter of the camera 4. set the value of hFilmPlane in the expression to the size of your film, in milimeters 5. animate the null's scale to control the focal length of the camera, in milimeters hFilmPlane = 35; FocalLength = this_comp.layer("focal_zoomer"....scale[1]; this_comp.width * (FocalLength/hFilmPlane) ------------------------------------------------ Camera Autofocus Apply this expression to the Focus Distance of your camera, then change the name "Focus Layer" below, to the namer of the layer you wish to keep in focus focuser = "Focus Layer"; cam_to_layer = sub(this_comp.layer(focuser).position, position); length(cam_to_layer) ------------------------------------------------ Quote Share this post Link to post Share on other sites
graymachine 0 Report post Posted June 5, 2007 A Minor Collection ofUseful Expressions by Michael Natkin, Fred Lewis, and Brian Maffitt "Total Trainning" Thank you for posting this 3 times. Edit (govinda): It's the 500 Server Error again. I guarantee you that mazination got the error and resubmitted, and when he finally got the thread loaded, he's got like five replies. I've deleted the extras. Quote Share this post Link to post Share on other sites
foughtthelaw 2 Report post Posted June 5, 2007 Thank you for posting this 3 times. cuz it was that useful. Quote Share this post Link to post Share on other sites
haldeen 0 Report post Posted June 15, 2007 Just finished watching. Totally worth it. I shall now rule the motion graphics world with an expressive fist. Just wanted to expressssss that. der! Thanks Harry, ~tim Quote Share this post Link to post Share on other sites
snakedogman 0 Report post Posted June 25, 2007 Bought it, loved it! Really looking forward to part 2. This stuff is just so useful sometimes. Quote Share this post Link to post Share on other sites
graymachine 0 Report post Posted August 16, 2007 The next AE NY meeting will have several of this bundle to give away among many other great prizes, if anyone is going: http://aeny.org/meetings.html Volume 2 is coming soon! It will hopefully be timed around me giving a nerdly presetation at an October AE NY meeting. Grok. Quote Share this post Link to post Share on other sites
Crusoe 0 Report post Posted January 13, 2008 Hey Harry Hope to see ur After FX Expression Series 3 later.....don't stop ur hardwork ...i already try series 1 and 2..really great!! I have a programming background anyway..so it make me easy to understand Quote Share this post Link to post Share on other sites