Free Function Friday locateMidPoint

Free Function Friday locateMidPoint

Free Function Friday locateMidPoint

Free Function Friday locateMidPoint

Welcome to episode 32 locateMidPoint. The Free Function Friday series has been going strong for thirty two solids weeks. I’d like to thank all of you for participating and sharing in this series, and with After Effects scripting in general.

locateMidPoint is a handy function for when you need to place a null, layer, object, etc… at the mid point between two or more layer locations. Say you have a layer positioned at an X value of 0, and a Y value of 0. You then have another layer at position of X value 10, and Y value of 10. The resulting mid point would be an X value of 5, and a Y value of 5. This is a super simple explanation of what can get progressively more complicated. Imagine having more than six or so layers to do the math on, and the values were more fractional like [249.2485616, 751.9417431]. Let’s let the function do the math for us, shall we. Now this setup will only return the mid point value as a 2D or 3D vector array value, so you can easily use it to set the value of your mid point layer. If you wanted this layer to always stay at the mid point even if the source layers are animated, then you would want more of an expression code to do this. Scripts can apply expressions, but I will not be going over that here. You can use this as an exercise to practice your scripting. For the expression code you can visit an older tutorial I had done back in 2012 here.

If you haven’t done so already there is a Free Function Friday introduction video located here that has some important information pointing to a few resources that will come in handy when scripting for After Effects.

Episode 32 locateMidPoint:

Legal note: The Adobe ExtendScript code talked about in this article and accompanying embedded video(s), and/or graphic images are not guaranteed to be compatible with every version of After Effects. David Torno, ProVideo Coalition, and Moviola will not be held liable for any misuse or incorrect use of the provided ExtendScript code. Use at your own risk.

All of the code I provide in this series, has been created and tested in After Effects CC 2014. Unless otherwise specified in the episode, the code should be compatible with After Effects CS6 through CC 2015. I’ve done my best to avoid depreciated code (code that Adobe removed at some point), and made these functions as compatible as possible. There will however be the occasional piece of code that is brand new as of a certain version of After Effects and therefore will not be backwards compatible from that version. I will mention these if that is the case.

With that said, all the code I provide in this series is open source and free to use in your scripts. I highly encourage you to expand and improve upon the code I provide and start making your own custom functions as well, but please do not repost the code I show in this series as is and claim it as your own. If you use any of the code provided in this series please give credit where credit is due. This series is meant to provide, what I feel is useful code, as well as to hopefully further explain ExtendScript and it’s quirks. While the functions we build throughout this series can perform a task all on their own, they are not meant to be a solo script. How you combine them together and expand upon them is when you will gain the most from these functions.


Was This Post Helpful:

0 votes, 0 avg. rating

David Torno

David Torno is a Visual Effects professional based in Los Angeles, California. His work over the years has included commercials, feature films, music videos, and multimedia projects. During his free time, David enjoys expanding his knowledge in Visual Effects by learning new softwares and techniques that are being used. Along the way he also contributes to the visual effects community by offering helpful tools, and tutorials that creative professionals around the world can benefit from.

Leave a Reply

Be the First to Comment!

Notify of
avatar
wpDiscuz