Expressions: pick-whip references to effect properties by index (refs #1072)

In After Effects, holding Alt while dropping the expression pick whip
refers to an effect's property by its index, effect("Color Control")(1),
instead of its name, ("Color").

prop.pickWhip takes byIndex: the effect keeps its name and each
property inside it is selected by its one-based place among its group's
children (nested groups too), which is what an expression's (1) reads.
Other properties, dimensions ([1]), insertion at the cursor and match
names (Compact English off) are as before. An index still reads a
renamed property, but another one if properties are reordered.

Tests: pick_whip_by_index_selects_effect_properties_by_their_index
(engine, the references); effectcraft-host pick_whip (by index and by
name read the same values, nested and per dimension).
This commit is contained in:
tylerjenningsw
2026-10-13 21:57:19 -04:00
parent 549e9d8251
commit f2cdad9edb
4 changed files with 130 additions and 8 deletions
+3 -1
View File
@@ -604,7 +604,9 @@ Extension points and the bundled extensions: [plugins.md](plugins.md).
Display Style between Timecode and Frames: `file.projectSettings {"timeDisplay": "frames"}`.
* `prop.pickWhip {layer, prop, target: {layer, prop, dimension?}}` links a property as its
expression pick whip does; `dimension` picks one of the target's values (`position[0]`), as a
drop on that value field does.
drop on that value field does. `byIndex: true` (an Alt pick whip: Alt held as it drops) refers
to an effect's properties by their index, `effect("Color Control")(1)`: it still reads a
renamed property, but another one if properties are reordered.
* Every property row has a property pick whip in the Parent & Link column
(`timeline.prop.<uid>.propertyPickWhip`; the expression row's is `timeline.prop.<uid>.pickWhip`).
Dragged onto another property's name or value, in the Timeline or Effect Controls