Forum Replies Created

Page 2 of 6
  • Robert Headrick

    May 14, 2013 at 2:25 pm in reply to: RotoScoping Versus Masking

    If it’s at least close to pure white, you might be able to treat it like a sky replacement and do it with track mattes. Duplicate the layer, convert to black-and-white, adjust contrast to blow out the window, mask out the rest of the shot (masking the window will be infinitely easier than masking the moving arm!), then use this layer as a track matte for the original clip.

    That’s off the top of my head; this may or may not actually be a good technique in this situation. I just got The After Effects Illusionist and was reading about channel effects, color correction, and track mattes the other day, so it’s on my mind. 🙂

  • Robert Headrick

    May 14, 2013 at 2:15 pm in reply to: Linear wipe reveals moving text

    Go with John’s advice first, it does sound like you might not have applied the effect directly to your text layer. Another way you could do this would be to use a feathered mask on the text layer. Depending on what sort of motion is going on, this might be easier or more complicated than using the linear wipe.

  • Robert Headrick

    May 14, 2013 at 2:12 pm in reply to: quick export question

    As far as I know, unfortunately the answer is no. Even with flip4mac, After Effects doesn’t support the ability to export directly into a WMV format. There may be a workaround, and if there is I’d love to know, because I’ve had the same time crunch issue on a handful of projects. But I don’t think it exists.

  • Figured it out. The result of layerName.name is the name with no quote marks, but the expression requires them. So all I need to do was double the quotations in my string to create the following:

    beamEffect(“Starting Point”).expression = ‘thisComp.layer(“‘ + nodeLayer.name + ‘”).transform.position;’;

    It might be hard to see on here, but I changed the double-quotes to single quotes, and added a double-quote immediately after the open-parentheses and immediately before the close-parentheses. This adds quote marks around the layer name inside the expression when it generates the string. And now my expression properly targets the actual layer, rather than referencing a layer index.

  • This sort of works, but I’m having some further issues. I created this line of code:

    beamEffect(“Starting Point”).expression = “thisComp.layer(” + nodeLayer.index + “).transform.position;”;

    This creates a proper expression, but because it’s referencing layers by index value, the expressions start referencing the wrong values if the order of layers changes (which it does, as a part of the script; multiple new layers are being created in the process).

    I tried adjusting it to reference layers by name instead of index, but it didn’t seem to like that. I adjusted the code to read like this:

    beamEffect(“Starting Point”).expression = “thisComp.layer(” + nodeLayer.name + “).transform.position;”;

    But it errors out on that line saying “Class ‘global’ has no property or method named ‘nodeLayer'”, so it doesn’t seem to like that syntax.

  • Here’s another option. This one has the pro of being very easy, but possibly the con of not giving you quite the look you might want. I’ve used it before though, and it’s a nice look.

    Select text layer and choose Layer –> Create Masks from Text
    On the new Solid that gets created, choose Effect –> Generate –> Stroke
    Make sure “All Masks” is checked (by default it’s not)
    Change “Paint Style” to “Reveal Original Image”
    Starting from 0, increase “Brush Size” slowly until your text looks normal again
    Animate “End” from 0 to 100% to make the text draw on
    Unchecking “Stroke Sequentially” will change the look so that all the letters draw on at the same time instead of one-by-one

  • To answer my own question, and hopefully for the benefit of others looking this up, I figured out how to compensate for the issues with parenting. If the Position value for Layer X is linked with an expression to the Position value of Layer Y, and then you parent Layer Y to Layer Z, you just need to modify your expression to add the Position value of Layer Z.

  • That did it! I actually ended up deciding that in this situation, it would be easier in the end to just animate the dots themselves to make the beams grow (with the scale of the dots starting at 0% until the beams reach where I want the dots to be). But, I’m logging this away for future reference because I’ve wanted to do this before and for some reason just couldn’t make my brain see this solution. Thanks!

  • *Sigh* I spoke too quickly, after thinking that I asked too quickly. Posted that on the fly and then actually tried it. Expression yields the wrong values because the Null’s values reflect the fact that it’s parented, rather than it’s absolute position.

    My original question still stands! Will keep mucking around though. Maybe I’ll figure something out that’ll make this thread make me look a little less like a fool. 😉

  • Wow, I think just writing this post made my brain click somehow. I’m going to add a null object that’s parented to the center of the dot, and change my expression for the end point to bind it to the null object’s position value. That way I can simply animate the null.

    Thanks for being my rubber duck! 🙂

Page 2 of 6

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy