A Layer Repeater + Effector for After Effects
Create grid, radial or linear repeaters & control with falloff, random and step effectors.
Super simple, super quick
With a few clicks, React creates a grid, radial or linear repeater for any layer.
Control the repeats with falloff (circular, linear or box), random or step effectors. Or use all three!
Copy React.jsx into the following folder of your After Effects installation:
Windows - Support Files/Scripts/ScriptUI Panels Mac - Scripts/ScriptUI Panels
Start React (via the "Window" menu in After Effects)
To repeat one or more layers, select the layer(s) and click either the linear, grid, honeycomb or radial repeater button.
As well as duplicating the selected layers, a React - Repeater null layer will be created. Use the position, scale and rotation properties on this null to transform your repeated layer.
By default, an effector will also be added - hold Alt whilst clicking the button to prevent an effector being added.
If an effector has been added, a React - Effector null and React - Guide layer will also be added.
If the text box is left blank whilst clicking one of the repeater buttons, the default values will be used. The default values can be changed in the Settings box.
To create a different amount of repeats, enter a value in the text box before clicking the repeater button. Only one number is needed, however for the grid and honeycomb button, you can separate the X and Y values with a space, a comma, or the following - x, -, *. If just one number is entered for grid and honeycomb, the X and Y values will be the same.
The linear repeater will position the repeated layers in a line. Use the spacing controls on the React - Repeater null to position the repeated layers.
The grid repeater will position the repeated layers in a grid. Use the spacing controls on the React - Repeater null to position the repeated layers.
Checking the Honeycomb box will turn the grid into a honeycomb grid. Use the offset slider to offset every other row from it's default 50% value.
The honeycomb grid repeater will position the repeated layers in a honeycomb grid. Use the spacing controls on the React - Repeater null to position the repeated layers.
Clicking the Honeycomb Grid button is the same as clicking the Grid button and checking the Honeycomb box.
The radial repeater will position the repeated layers in a circle. Use the radius controls on the React - Repeater null to position the repeated layers.
The Start & End controls affect where the circle begins and ends.
Once your layers have been repeated, you will notice that each repeated layer has a couple of new effects - React - Object - Index & Position and React - Object - Layer Selector. Most of the time, you will not need to change anything on these two effects as the script sets these up for you.
The index control defines which position that layer takes up in the linear, grid or radial repeater. You may want to swap some your repeated layers around - this is the place to do it.
No need to touch this, the expression on this property defines the layer's position within the repeater.
After you have repeated your layers, you may want to change their position, scale, rotation or opacity, either individually, or all together. Changing scale, rotation or opacity is easily done in the usual way. Also, changing the overall position of all the repeated layers is easily done by moving the React - Repeater null.
However, as React uses expressions on a layer's position, it is perhaps not so obvious how to change an individual layer's position. For example, you may want to apply a wiggle expression to one of the repeated layers. Using Position Adjustment allows you to do this.
These will be set for you, so generally you will not need to touch these. If, for whatever reason, they are set to None or a layer that does not have the correct React effects, you will get expression errors. If you are getting expressions errors, this is the first place to check.
If you are copying and pasting a React system, these dropdowns will default to None. You will need to change one instance of the effect and then copy and paste the effect onto the other repeated layers. This is why there are two separate effects on the repeated layers. If there was one overall effect, the index would then need to be changed after copying/pasting.
This is the magic number between 0 and 1 that determines how much a layer is affected by the React values. You should not modify this at all, but you could perhaps use it to make another property work with the falloff, if you know some basic expressions.
If you have clicked any of the repeater buttons without holding Alt, you will see a few additional control layers - a React - Effector null and a React - Guide layer.
Starting from the top of the effects, Amount controls how much of the inputted effect values are used. By default, 100% is used; turn the value down to 0% for no effect.
Under Falloff, you can control the shape, size, hold, colour and stroke thickness of the falloff and it's guide layer. By selecting Circle, Box or Linear from the Shape dropdown, the React - Guide layer will become visible. Use this to visualise the falloff area. Generally, any repeated layers inside the circle or box, or the correct side of the linear falloff will be affected by the values on the Effector null.
Changing the size of the falloff can be done in two ways - either by the size value on the Effector controls, or by the scale property on the Effector null.
As your repeated layers enter the falloff shape, the transition starts. The Hold value determines where that transition ends. You can visualise the Hold value with the React - Guide layer.
If the value is high, say 90%, the transition will be very quick and more layers will be held at their maximum value inside the falloff shape.
If the value is low, say 10%, the transition will be longer with fewer layers being held at their maximum value.
The Hold value works for the Circle and Box falloff shapes.
Use these values to change the look of the Guide layer.
By default, In is selected. This means the repeated layers will not be affected by the Effector values outside of the falloff, but as they transition into the Hold area, they will reach the desired value.
By selecting In & Out, the layers will reach the desired value half-way through the falloff transition and go back to their original value inside the Hold area.
Invert reverses the process by having those layers outside the falloff shape at the desired value, and those inside at the original value.
You may want to change the easing as layers transition from A to B. By default, Ease In & Out is selected, which works much the same as easing on keyframes.
Other options are Linear, Ease In, Ease Out and Custom.
By selecting Custom and twirling down the Custom Easing dropdown, you have more control over the transition of your layers.
It may be slightly difficult to visualise these settings as there is no graphic interface, however think of it as a graph, similar to the graph editor in After Effects.
Or use this website - https://cubic-bezier.com/ - it works in the same way.
On the React - Effector layer, the position, scale, rotation and opacity effects are turned off by default. This is to ensure expressions are not being used unnecessarily. Turn on the effects to use these properties on the effector.
Make sure each of the repeated layers' 3D switch is turned on if you wish to use any of the 3D functions. They will not work unless each of the layers is a 3D layer.
The position, scale, rotation and opacity effects work in very similar ways, with a few exceptions. They all have the same random, step and sticky modifiers.
Under Random you will find 4 values (2 under the Opacity modifier) - X, Y, Z and random seed. Increasing the values in X, Y and Z will increase the amount of randomness given to that property. Changing the random seed will change the look of the randomness.
The values under Step will be multiplied with the layer's index value under the React - Object - Index & Position effect.
Use the Sticky modifier to round values. Any of the values before it (relative/absolute, random, step, for example) will be rounded to the value, or multiples of it, in this modifier.
As well as the modifiers, there are three main position modes -
With Absolute/Relative selected in the Mode dropdown, use the controls in the relevant dropdown to affect each dimension individually. By default, all dimensions have Relative selected, which means the values are added/subtracted from the layer's current position.
By changing the dimension's dropdown to Absolute, the value will correspond to the position in the composition space. This means all layers can re-position themselves to the same point in the composition. Or you can use a mixture of absolute or relative values.
With Attract/Repel selected in the Mode dropdown, the layers will either be attracted to the selected target (when the Attract/Repel value is negative) or repelled (when it is positive).
By default, the target is set to the Effector null.
There is one main, relative mode for scale, along with the three modifiers mentioned earlier.
The only difference is the option to affect the layer's scale uniformly. By default Uniform Scale is selected. Use the X (Uniform) values to change the scale. The Y and Z values will not function unless Uniform Scale is deselected.
There are two rotation modes - Relative and Look At, along with the three modifiers.
Use the Z rotation to change 2D layers. The X (3D Layers) and Y (3D Layers) values will only work if the layers are 3D layers.
By switching the Mode dropdown to Look At, the layers will look at the default target, the Effector null. Use the offset dial to get the layers facing the correct way.
Only one control, along with the modifiers. Use it to affect the relative opacity of layers.
The React - Guide layer visualises the falloff settings. It will switch from Off to Circle, Box and Linear, with the Shape dropdown on the Effector null.
Changing the position and scale of the falloff can be done quickly by changing the effector null layer's position and scale in the comp viewer.
Quickly rotate the box falloff by pressing W and rotating the effector null.
You can also change the stroke colour and width in the Effector settings.
If you are finding performance slow, try hiding this layer as it can sometimes slow After Effects down.
To attach an effector to your layers without repeating, click the Add Effector button.
This will leave your layers in the same position, without repeating them, however there will be an effector created.
Use this option to add multiple effectors to layers.
From React v1.4, you can now bake the keyframes from the repeater and effector. This speeds up your workflow as it removes all of the expressions.
Select your layers and hit the Delete button. If you have not selected any of the Repeater, Effector and Guide layers, those layers will remain, but will not affect the repeated layers.
To remove React from selected layers without baking keyframes, hold Alt.
By having only one text layer selected before repeating, React will create a guide text layer and add a React - Text effect. The guide layer allows the repeated layers to be updated automatically, including source text and font styles.
From the React - Text effect, choose from Letters, Letters (excluding space), words or lines. Anchor point controls are also included.
If more than one text layer is selected, React will repeat these as normal, with no additional text controls.
The text feature cannot be used with any of the pre-comp settings.
Clicking the Settings button will bring up the settings window. Here, you are able to change default settings, pre-comp settings and enable/disable expressions for certain properties.
React uses a lot of expressions which can slow After Effects down. By disabling certain properties, you can increase performance.
Choose whether you want your selected layers pre-composed before repeating. Instance creates a pre-comp for each of your selected layers. Multiple creates a pre-comp for each of your repeated layers.
React runs on expressions; lots of them! The number of layers in a repeater and the amount each layer is affected has an impact on the speed of After Effects. Please save your work before repeating layers, especially if you are creating a lot of repeats.
If After Effects has issues with performance, try hiding the guide layer and using Adaptive Resolution.
Thanks for purchasing React - we hope you enjoy using it!
Thanks also to the scripting legends Dan Ebberts, Nate Lovell and Tomas Sinkunas. Generously sharing their wealth of knowledge with the world made this script possible.
Version 1.7
Text Layers
Fixed error when adding effector to text layers
Added guidance on how to affect layers/words within a text layer.
Version 1.5
Progress Bar
When duplicating or deleting layers, a progress bar has been included.
Separate Dimensions - Bug Fix
Fixed bug which prevented React working with layers with separate dimensions turned on.
Improved support and better error messaging for online activation
Fixed error in alert to open After Effects preferences to allow scripts to access network
New Feature - Bake Keyframes
Select layers and hit delete to bake the keyframes from your animation. This will remove the expressions and speed up your workflow!
Version 1.3
New Feature - Text Effect
Split a text layer into multiple repeats which updates source text and styles automatically, based off a text guide layer
Text box improvements
Separate X and Y values with x, asterisk , dash, comma or space, not just space.
Expression error help
Expression warning message when empty fields in the React - Object - Layer Selector effect
New and improved README file
Plus general improvements to instructions
Layer naming improvements
React - Effector and React - Repeater nulls are named at source, eliminating need to toggle source/layer name switch in timeline
Bug fixes
Fixed bug when effector size was 0
Fixed Attract/Repel bug when effector was in exact position as layer
Version 1.2.1
Version 1.2
New Feature - Sticky Modifier!
Use the Sticky Modifier to round values to the nearest number.
Speed Enhancements
React now sets up your repeater much faster and is more efficient when using falloff.
Tutorial Button
Quick link for YouTube tutorial on the License Info page.
Bug fixes
Effector Null works properly when parented.
Layer order bug fixed.
Version 1.01
Version 1.0