On top of adding much needed variety of controller options in AE, this replaces at least three other buttons on one of my FT-Toolbars. Thank you good sir.
Very useful script but I'm getting some odd results when I have multiple shape layers (on their own layer) selected and CTRL-clicking to get one control layer at the middle — I'm actually getting three controllers. One for each shape layer and then an additional one located at the correct midpoint labelled anonymous CTRL 1. The anonymous controller is located in the correct place but I wasn't expecting additional controllers.
I also cannot get the auto creation of Puppet expressions to occur when selecting Puppet Pins on a Shape Layer and holding CTRL when clicking a controller shape. I'm on CC2014(13.2) and Mac OSX Yosemite 10.10.5 — thanks!
Thanks for the feedback! I actually never built the script for separate shape groups on a single shape layer, but I'll update the script for that purpose.
As far as the puppet pin issue, would you send me an .aep? I'm unable to replicate the issue.
EDIT: sorry I totally misread what you said about having multiple shapes on their own individual layers. It seems as if there may be some unforeseen error that's causing these issues. Just for bug-testing purposes, would you send me an .aep within which you can replicate these problems?
Hey Ryan, this was a total newb developer mistake. It's a Mac compatibility issue, and I'll have a fix out as soon as possible. Thank you for bringing it to my attention!
Just tried out the script as it is a neat utility but I have found some other issues for Mac compatibility. When I use the ControlMaker on a shape layer (or any layer) it imports the file into the project folder and for the faintest of seconds you can see the controller in the comp but then disappears. Using Shift, Ctrl, or Command does not seem to have any effect on this either. Don't know if anyone else has had this issue on the Mac but I am on OS X 10.11 (El Capitan) and Adobe CC 2015.Thanks!
Just tried out the script as it is a neat utility but I have found some other issues for Mac compatibility. When I use the ControlMaker on a shape layer (or any layer) it imports the file into the project folder and for the faintest of seconds you can see the controller in the comp but then disappears. Using Shift, Ctrl, or Command does not seem to have any effect on this either. Don't know if anyone else has had this issue on the Mac but I am on OS X 10.11 (El Capitan) and Adobe CC 2015.Thanks!
Would you believe this is an open beta? Hah. I'll take a look tonight. Thanks for letting me know!
EDIT: Looks like 2015 doesn't like my most recent code. Until I've had a chance to do some additional testing and fixes, I've removed 2015 from the compatibility list. Tonight, I hope I'll have it figured out!
Hey Ben and Alexander, I'm unable to replicate the issue on my Mac at home. I tried on both CC 2014 (13.2) and CC 2015 (13.5.1) and everything seemed to work fine. Are you up-to-date with your installations? Granted, I am still on Yosemite, but I'd be surprised if that was causing the issue. If you're able, please reply and attach a file in which you can replicate the issue on your machines.
Doesn't seem to be anything to do with the project files – though I think there is something going on possibly with Preferences. If I enable Javascript Debugger, the controller will appear but then get hung up at this point:
If I quit out of the Extendscript Toolkit the controller will remain in the comp as desired. It seems like something at that point or later in the script is breaking the insertion of the layer, though it will import the layer no matter what. Don't know if this helps - also if you want to move this offline to email you can get email me at [email protected].
Hi again, Alexander! Please give 1.02 a shot. Ben and I realized there was an issue whereby if you've set your import preferences to import as composition rather than footage, my script broke. 1.02 specifies that the .ai file must be imported as footage, and in Ben's case, this fixes the issue.
Would it be possible to have all the Shape Layers it creates to have locked paths? Sometimes when I click and drag on a Controller I end up dragging the shape layer icon path by accident.
Would it be possible to have all the Shape Layers it creates to have locked paths? Sometimes when I click and drag on a Controller I end up dragging the shape layer icon path by accident.
Hi Ben! I'm so glad you're still using Control Maker. Unfortunately, Shape Layer paths aren't lockable the way Masks are, but here's a document that will explain the various ways you can interact with shape layer paths: https://helpx.adobe.com/after-effects/using/animating-shape-paths-masks.html. Also, I believe you can avoid accidentally editing the path by avoiding double-clicking on the Control layer in the Composition Viewport.
Would it be possible to have all the Shape Layers it creates to have locked paths? Sometimes when I click and drag on a Controller I end up dragging the shape layer icon path by accident.
Hi Ben! I'm so glad you're still using Control Maker. Unfortunately, Shape Layer paths aren't lockable the way Masks are, but here's a document that will explain the various ways you can interact with shape layer paths: https://helpx.adobe.com/after-effects/using/animating-shape-paths-masks.html. Also, I believe you can avoid accidentally editing the path by avoiding double-clicking on the Control layer in the Composition Viewport.
Hi Moses,
Not intending to sound disagreeable, but I know that if I put "value" as an expression on the Shape Path, I'm unable to modify it accidentally.
Can you updated in order to automatic link the selected items to the shape maker ?
Hi Basem! I've left this function out of the script since there are so many ways controllers are used in people's rigs. Soon (hopefully) I will update the script to include some additional functions, and I'll include an auto-parent function as well.
Can you updated in order to automatic link the selected items to the shape maker ?
Hi Basem! I've left this function out of the script since there are so many ways controllers are used in people's rigs. Soon (hopefully) I will update the script to include some additional functions, and I'll include an auto-parent function as well.
I will be waiting for that update , thank you so much
Sure! First let me explain: I'm finding the value of the keyframed property by interpolating from 0-100 (the range of the slider), and remapping that value to a range of time (first keyframe to last keyframe). Note, this expression requires keyframes on the property you're applying the expression to, or you'll have an error.
Here's the expression: valueAtTime( linear( [ Your controller property/slider here ], 0, 100, key(1).time, key(numKeys).time ) )
You can replace "[ Your controller property/slider here ]" by simply pick-whipping your slider/whatever control property you like. Enjoy!
As far as the puppet pin issue, would you send me an .aep? I'm unable to replicate the issue.
EDIT: sorry I totally misread what you said about having multiple shapes on their own individual layers. It seems as if there may be some unforeseen error that's causing these issues. Just for bug-testing purposes, would you send me an .aep within which you can replicate these problems?
OSX 10.9.5 with CC 2014
EDIT: Looks like 2015 doesn't like my most recent code. Until I've had a chance to do some additional testing and fixes, I've removed 2015 from the compatibility list. Tonight, I hope I'll have it figured out!
Thanks so much!
Sometimes when I click and drag on a Controller I end up dragging the shape layer icon path by accident.
Not intending to sound disagreeable, but I know that if I put "value" as an expression on the Shape Path, I'm unable to modify it accidentally.
Could that be done automatically?
Cheers!
Hi Basem! I've left this function out of the script since there are so many ways controllers are used in people's rigs. Soon (hopefully) I will update the script to include some additional functions, and I'll include an auto-parent function as well.
Here's the expression:
valueAtTime( linear( [ Your controller property/slider here ], 0, 100, key(1).time, key(numKeys).time ) )
You can replace "[ Your controller property/slider here ]" by simply pick-whipping your slider/whatever control property you like. Enjoy!