Copy link to clipboard
Copied
Scale is what... the 2nd or 3rd most used form of motion?
So why do I need an expression (and a shit tonne of googling) to find out how to link the X or Y scale of an object independently to a slider?
Why doesn't each of the two scales (X/Y) have the ability to simply be pickWhipped to a Slider or any other form of controller?
Would make sense, surely. And save newcomers a world of time.
UPDATE: Part 2 of this question:
If this works:
[temp, temp]
then why can't this work?
[temp, value]
Would this also make too much sense?
Surely it would be far more logical than this nonsense:
[temp[0], value[1]]
Copy link to clipboard
Copied
Which version of AE are you using?
Copy link to clipboard
Copied
Does it make a difference? Are they actually improving these things?
I'm in CC.
Copy link to clipboard
Copied
Part 3 to this question:
Having hooked up a Slider to the X axis Scaling of an object... how do I slide that slider and see the updates/changes dynamically in the Composition View if the controls are in another Composition?
Is there a keyboard shortcut or something that makes changes dynamic, so I'm not guessing the impact?
The entire reason I'm using sliders is so that I can more easily (and dynamically) experiment with scaling and positioning to get/find the ideal. I don't want to be guessing with a slider.
Copy link to clipboard
Copied
The reason [temp, temp] works is because (presumably) temp is single numerical value. [temp, value] doesn't work because "value" (for the scale property) is a two-dimensional array (I'm assuming this is on a 2D layer in this example). You are trying to plug both the x and y into a hole that is only designed for the y.
I'm not sure how you ended up with [temp[0], value[1]], since "temp", which is again presumably one-demensional shouldn't be addressed with an index. It should read [temp, value[1]], which makes perfect sense, since that is taking temp (whatever that is) and the original y value (i.e. value[1], the second element of the zero-indexed array named "value") and plugging each into the x and y respectively.
Trying to get a value out of an array without providing an index is like trying to get to someone's house when you only have the street name, not the house number. For a 2-dimensional property like scale, AE expects the last statement evaluated in the expression to be a 2-dimensional array, with a single numerical value in each of its two elements.
Does that help explain it?
Copy link to clipboard
Copied
Scale is at minimum a two number array so if you want to split that array you have to use an expression. I just posted an answer to a very similar question on another thread.
Copy link to clipboard
Copied
I've done a terrible job of asking this question.
It should be that pick whipping works for individual X/Y scaling, at all levels where scale exists as a property. I don't think I'm asking too much of Adobe's engineers to do this. It is, however, asking a lot of their UI "experts" to consider the user.
Really don't know why I bother with AE, it's a truly atrocious piece of "design", in and of itself. I just picked it up again, to animate the properties of a rectangle, to find that it's horrid at even this. It's like nobody actually uses this software that they made, and nobody thinks about how to make it better.
And if someone does, they say "send in a bug report/feature request"... like those are the same thing, and should be hidden away from the public. And the public accepts this. Amazing.
I know its an array. This scale property. In Swift this would be Tuple.
If you look at my pseudo code above, in Update Part 2 of the first post of this thread, I'm demonstrating the awareness of Adobe's scripting language of certain variable names being representative of an effort to inject information into the array at certain locations by virtue of their position in the script. The AE Script parser demonstrates more than sufficient capability to permit simpler scripting... that's even more logical than the current approach.
But that "naming convention" and use of awareness is inconsistent. Also. This would have to be done deliberately. I don't think you could accidentally or otherwise make it this contrived unless you tried.
The question still remains... why not permit pick whipping of individual scale properties? These are scale properties, and I mean properties in the classic OOP sense of the word. They're values, stored as a variable, and have a known location in the scripting parser when being referenced and defined.
It's inconceivable that someone hasn't looked at this process and thought "gee, we could make this better if we just did this...." And added pick whipping of these properties.
So... that leaves only one logical conclusion. And it's not a nice one. They don't care about the user experience of their software. Or the design of it. This, despite it being design software.
Copy link to clipboard
Copied
Expressions are based on Java and the arrangement of an array is very easy to figure out. I write PHP, Java, scripting and expressions almost every day and I find no inconsistencies. You just have to learn the syntax. It was a lot easier for me to figure out expressions than to switch from MySQL to MySQLI.
You can drag the pickwhip to one property in the array, but then you need to complete the array of for the property so that it is usable. For example: Add an expression slider to a layer then reveal the Position and Scale properties of that layer, add an expression to the Position property and you get this: transform.position The only thing that annoys me about that is the addition of transform. position is all that is needed.
To expand the .position to an array you have to change .position to [value[0], value[1]]. There's nothing complicated about that.
To tie the X value of the position to the scale of the layer simply select value[0] and drag the pickwhip to the x value of scale and get this: [transform.scale[0], value[1]] or [scale[0], value[1]]
To make a slider control the X value just select value[0] and drag the pickwhip to the slider and get this: [effect("Slider Control")("Slider"), value[1]]
To make the slider control follow the x value of scale drag the pickwhip to the x value of scale and get this: transform.scale[0]
To give you the ability to animate the slider just add this to the expression: value+transform.scale[0]. You can even simplify that by removing the transform so the expression reads value+scale[0]
Your logical conclusion is based on inexperience with the software and inexperience with expressions. I've spent 20 years using After Effects and the Adobe team takes user feedback very seriously. They have created a product that is used on a huge percentage of feature films, television shows, commercials and other very high budget and high end productions every day by production houses that can afford very high end software. Just because you haven't figured out the interface doesn't mean they don't consider the user experience. Try using C4D, or Maya, or Nuke, or Fusion, or something like AutoCad Civil Engineering Bundle without going through a bunch of training. MS movie maker or iMovie even requires just a bit of research to use effectively. Not much, but a bit....
As for Edit This Look at that, that is also very easy to figure out if you spend 5 minutes looking at the description of how to do that by adding a viewer and customizing your workspace. Read this: After Effects Help | Workspaces, panels, and viewers or find other tutorials by typing "edit this look at that" in the search help field at the top right corner of AE. I've been at this for a long time and I use the search help field almost every time I'm trying something I haven't done before. Here's what comes up: Adobe - Search: edit this look at that
It's also easy to tie an expression control in one comp to a value in another by simply naming the comp in the expression. The comp doesn't even have to be open or nested in the main comp. You do it by setting up ELAT like this and dragging the pickwhip between comps to pick the property you want to control. I do this all the time.
Copy link to clipboard
Copied
Which only leaves one question.
Why hasn't Adobe hired you to write for them?
Find more inspiration, events, and resources on the new Adobe Community
Explore Now