Instancer
Brief Description
The instancer is a swiss-army knife used to replicate a source image many times. The Dimension Size is useful to give for each dimension the number of instances to create. Note that this is multiplicative: Setting Number of Dimensions to 2 with Dimension 1 Size to 5 and Dimension 2 Size to 3 will create 15 instances. The Number of Dimensions is useful in tandem with the Instance Transform for each dimension. The Accumulate Transform parameter is very important: For each instance the transform is applied one more time than the previous instance. For example, to make a Grid of instances, the Instance Transform 1 can be used to move instances along the X axis and the Instance Transform 2 can be used to move instances along the Y axis.
For a full tutorial on the instancer, please take a look at the dedicated section on the Academy
Controls
Parameter / Script Name | Type | Default | Function |
---|---|---|---|
Enabled / enabled | Boolean | On | |
Instance Mode / instanceMode | Choice | Source | - Source: Instantiate the whole composition. - Source Sub-Layers: Instanciate specific layers of the composition. |
Template / instance_template | Image | - | |
Num. Dimensions / numDimensions | Choice | 1 | - 1 - 2 - 3 - 4 |
Dimension 1 Size / dim0_size | Float | 3 | |
Dimension 2 Size / dim1_size | Float | 1 | |
Dimension 3 Size / dim2_size | Float | 1 | |
Dimension 4 Size / dim3_size | Float | 1 | |
Instance Origin / layersOriginMode | Choice | Global Origin | - Invividual Origins: Each instance transform is relative to its rectangle position selected by Origin - Global Origin: The anchor point is global to all elements |
Instance Origin X / originX | Choice | Center | - Left - Middle Left - Center - Middle Right - Right |
Instance Origin Y / originY | Choice | Center | - Bottom - Middle Bottom - Center - Middle Top - Top |
Instance Transform 1 / transformDim0 | |||
Accumulate Transform 1 / accumTransform | Boolean | Off | When checked, each instance have the transform applied as many times as its instance index + 1 |
Centered Accumulation 1 / accumCentered | Boolean | Off | When checked, the accumulation is centered |
Transform First Instance 1 / appliesToFirstInstance | Boolean | Off | When checked, the instance transform is also applied to the first instance |
Instance Transform 2 / transformDim1 | |||
Accumulate Transform 2 / accumTransform1 | Boolean | Off | When checked, each instance have the transform applied as many times as its instance index + 1 |
Centered Accumulation 2 / accumCentered1 | Boolean | Off | When checked, the accumulation is centered |
Transform First Instance 2 / appliesToFirstInstance1 | Boolean | Off | When checked, the instance transform is also applied to the first instance |
Instance Transform 3 / transformDim2 | |||
Accumulate Transform 3 / accumTransform2 | Boolean | Off | When checked, each instance have the transform applied as many times as its instance index + 1 |
Centered Accumulation 3 / accumCentered2 | Boolean | Off | When checked, the accumulation is centered |
Transform First Instance 3 / appliesToFirstInstance2 | Boolean | Off | When checked, the instance transform is also applied to the first instance |
Instance Transform 4 / transformDim3 | |||
Accumulate Transform 4 / accumTransform3 | Boolean | Off | When checked, each instance have the transform applied as many times as its instance index + 1 |
Centered Accumulation 4 / accumCentered3 | Boolean | Off | When checked, the accumulation is centered |
Transform First Instance 4 / appliesToFirstInstance3 | Boolean | Off | When checked, the instance transform is also applied to the first instance |
Motion-Blur Settings / motionBlurSettings | Choice | Disabled | - Disabled: Disable motion-blur for the instance transform - Use Composition Settings: The motion-blur quality and shutter settings of the Composition are used - Custom Settings: The motion-blur quality and shutter settings are local to this layer |
Motion-Blur Quality Mode / mbQualityMode | Choice | Adaptive | Determines how the number of samples in the motion-blur computation. Adaptive uses a varying number of samples based on the speed of the element. In this mode the Motion-Blur Quality acts as a multiplier on the adaptive number of samples. Samples Count uses a user-supplied number of samples. - Adaptive - Samples Count |
Samples Count / mbSamples | Float | 90 | Number of samples used to process the motion-blur. Higher means higher quality but longer to render. 0 disables motion-blur. |
Motion-Blur Quality / mbQuality | Float | 0.6 | Quality of the adaptive motion-blur sampling. 0 disables motion-blur. This acts as a multiplier on the number of samples determined by the adaptive mode. |
Shutter Angle / shutterAngle | Float | 180 | The shutter angle controls the time period over which light can pass. A wider angle increases motion-blur |
Shutter Phase / shutterPhaseType | Choice | Centered | - Centered: The shutter opens half the shutter duration before the current time and closes half the shutter duration after - Start: The shutter opens at the current time and closes after the shutter duration is elapsed - End: The shutter opens at the current time minus the shutter duration and closes at the current time - Custom: The shutter opens at the time determined by a custom phase: the phase is an offset on the shutter angle, assuming the shutter opens at 0 |
Custom Phase / customPhase | Float | -90 | An offset to the shutter angle, assuming the shutter opens at 0°: A Shutter angle of 180° with a phase of -90° means that the shutter will be opened half a frame, centered around the current time |
Layer Index Mode / layerIndexMode | Choice | Bottom To Top | - Bottom To Top: Source elements are instanciated from the bottom of the list to the top - Top To Bottom: Source elements are instanciated from the top of the list to the bottom - Random: Source elements are instanciated in a pseudo-random fashion, controlled by the seed - Custom: Source elements are controlled by the Layer Instance Index parameter |
Instance Index / layerIndex | Float | 0 | |
Layer Index Start Offset / layerIndexStartOffset | Float | 0 | |
Layer Index Step / layerIndexStep | Float | 1 | |
Layer Index Wrap / layerIndexWrapMode | Choice | Loop | - Clamp - Loop - Mirror - Stop |
Layer Index Seed / layerIndexRandomSeed | Float | 0 | |
Index Mode / instanceIndexMode | Choice | Forward | How to iterate through instances. This affects Accumulate Transform, Accumulate Time Offset , Accumulate Opacity and blending order - Forward: Instances are iterated from 0 to the total number of instances - 1 - Backward: Instances are iterated from the total number of instances -1 to 0 - Shuffle: Instances are spawned in a random order, controlled by Shuffle Seed |
Shuffle Seed / instanceShuffleSeed | Float | 0 | |
Instance Time Offset / timeOffset | Time | 0 | Apply a Time Offset to each instance. It is useful when used in combination with Accumulate Time Offset or with a generator using the Instance Index |
Accumulate Time Offset / accumTimeOffset | Boolean | Off | When checked, each instance have the time offset applied as many times as its instance index + 1 |
Accumulate Time Offset Mode / timeOffsetMode | Choice | Stacking Index | Whether to use the Instance Index or the Stacking Index to accumulate the time offset. Stacking Index is always a distribution between 0 and Number of instances - 1, whereas the Instance Index can be randomized with Index Mode. - Instance Index - Stacking Index |
Apply Time Offset To First Instance / applyTimeOffsetToFirst | Boolean | On | When checked and if Accumulate Time Offset is checked, the Time Offset is also applied to the first instance |
Instance Start Time / instanceStartTime | Time | 0 | Limits the lifetime of each instance in the range from Instance Start Time + Instance Time Offset for a duration of instance Duration. This is useful mostly to optimize the performances when the Instancer has many instances but visually only a few of them are visible at a given time because they are out of the format. A value of 0 will make all instances live forever (except if themselves they have a time range) |
Instance Duration / instanceDuration | Time | 0 | Limits the lifetime of each instance in the range from Instance Start Time + Instance Time Offset for a duration of instance Duration. This is useful mostly to optimize the performances when the Instancer has many instances but visually only a few of them are visible at a given time because they are out of the format. A value of 0 will make all instances live forever (except if themselves they have a time range) |
Instance Opacity / opacity | Float | 1 | |
Accumulate Opacity / accumOpacity | Boolean | Off | When checked, each instance have the opacity applied as many times as its instance index + 1 |
Apply Opacity To First Instance / applyOpacityToFirst | Boolean | Off | When checked and if Accumulate Opacity is checked, the Instance Opacity is also applied to the first instance |
Invert Instance Opacity / invertInstanceOpacity | Boolean | Off | When checked and if Accumulate Opacity is checked, the Instance Opacity is accumulated as 1 - Instance opacity instead |
Instance Blend Mode / blendMode | Choice | Normal | - Add: Ac + Dc |
The source is added to the destination and replaces the destination. This operator is useful for animating a dissolve between two images. - Color Dodge: if Ac < 1 | |||
min(1,Bc / (1 - Ac)) | |||
else | |||
1 | |||
Brightens the backdrop color to reflect the source color. Painting with black produces no changes. - Lighten: max(Ac, Bc) | |||
The resultant color is the lighter of source or destination colors. If the source is lighter, it replaces the destination. Otherwise, the destination is preserved. - Linear Dodge: min(Ac + Bc, 1) | |||
Lightens the source image to reflect the destination image color - Screen: Ac + Bc - Ac * Bc | |||
The source and destination colors are complemented, multiplied and the resultant color replaces the destination. The resultant color is always at least as light as either the source or destination colour. - Hard-light: if Ac <= 0.5 | |||
multiply(Ac) | |||
else | |||
screen(Ac) | |||
The source color is used to determine if the resultant is either a multiplication or screening of the colors. If the source color is lighter than 0.5, the destination is lightened as if it were screened. If the source color is darker than 0.5, the destination is darkened, as if it were multiplied. - Hard Mix: if vivid-light(Ac,Bc) < 0.5 then 0 else 1 - Linear Light: if Ac < 0.5 | |||
linear-burn(2 * Ac, Bc) | |||
else | |||
linear-dodge(2 * (Ac - 0.5), Bc) | |||
Use linear-burn to decrease brightness on dark colors and linear-dodge to increase brightness on lighter colors - Overlay: if Bc <= 0.5 | |||
2 * Ac * Bc | |||
else | |||
1 - 2 * (1 - Bc) * (1 - Sc) | |||
The destination color is used to determine if the resultant is either a multiplication or screening of the colors. Source colors overlay the destination whilst preserving its highlights and shadows - Pin Light: if B >= 0.5 | |||
lighten(Ac, 2 * Bc - 1) | |||
else | |||
darken(Ac, Bc * 2.0) | |||
A mix of full strength Lighten and Darken blend modes: It completely removes all mid tones - Soft Light: if 2 * Ac <= 1 | |||
Bc - (1 - 2 * Ac) * Bc * (1 - Bc) | |||
else if 4 * Bc <= 1 | |||
Bc + (2 * Ac - 1) * (4 * Bc * (4 * Bc + 1) * (Bc - 1) + 7 * Bc | |||
else | |||
Bc + (2 * Ac - 1) * (sqrt(Bc) - Bc) | |||
The source colour is used to determine if the resultant color is darkened or lightened. If the source color is lighter than 0.5, the destination is lightened. If the source color is darker than 0.5, the destination is darkened, as if it were burned in. The degree of darkening or lightening is proportional to the difference between the source color and 0.5. If it is equal to 0.5, the destination is unchanged - Vivid Light: if Ac < 0.5 | |||
color-burn(2 * Ac, Bc) | |||
else | |||
color-dodge(2 * (Ac - 0.5), Bc) | |||
A mix of color dodge and Burn. It’s a more intense and saturated contrast mode and can add more saturation to unsaturated images. - Difference: abs(A - B) | |||
The resultant color is the absolute difference between the source and destination colors - Divide: if Dc > 0 and Ac > 0 | |||
Ac / Bc | |||
else | |||
0 | |||
Divides the values of the image A by the values of the image B. Stops 2 negative values from becoming a positive value - Exclusion: Ac + Bc - 2 * Ac * Bc | |||
The resultant color is similar to that of the difference operation. However, the exclusion resultant color appears as a lower contrast than that of the difference resultant color. - Minus: Ac - Bc | |||
Image B is subtracted from image A - Subtract: Bc - Ac | |||
Subtract the A image values from the B image values. - Color: SetLum(Ac, Lum(Bc)) | |||
Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color. This preserves the gray levels of the backdrop and is useful for coloring monochrome images or tinting color images. - Hue: SetLum(SetSat(Ac, Sat(Bc)), Lum(Bc)) | |||
Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color - Luminosity: SetLum(Bc, Lum(Ac)) | |||
Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color. This produces an inverse effect to that of the Color mode. - Saturation: SetLum(SetSat(Bc, Sat(Ac)), Lum(Bc)) | |||
Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color. Painting with this mode in an area of the backdrop that is a pure gray (no saturation) produces no change. - Replace: Ac | |||
Replace the background image by the foreground image - Destination Atop: Bca × Aa + Aca × (1 - Ba) | |||
The part of the destination lying inside of the source is composited over the source and replaces the destination - Destination Out: Ba * Bc * (1 - Aa) | |||
The part of the destination lying outside of the source replaces the destination. - Destination Over: Aa * (1 - Ba) + Bc | |||
The destination is composited over the source and the result replaces the destination - Destination In: Bc * Aa | |||
The part of the destination lying inside of the source replaces the destination. - Source Atop: Ac * Ba + Bc * (1 - Aa) | |||
The part of the source lying inside of the destination is composited onto the destination - Source Out: Ac * (1 - Ba) | |||
The part of the source lying outside of the destination replaces the destination. - Normal: Ac + Bc * (1 - Aa) | |||
The source is composited over the destination - Source In: Ac * Ba | |||
The part of the source lying inside of the destination replaces the destination. - Xor: Ac * (1 - Ba) + Bc * (1 - Aa) | |||
The part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source. - Average: (Ac + Bc) / 2 | |||
The average of the 2 images - Conjoint Over: if Aa <= Ba | |||
Ac + Bc * (1 - Aa / Da) / b | |||
else | |||
Ac | |||
Same as the normal over mode, except that when partially covered by both A and B, A hides B - Disjoint Over: if Aa + Ba >= 1 | |||
Ac + Bc * (1 - Aa) / Ba | |||
else | |||
Ac + Bc | |||
Same as the normal over operation, except that when partially covered by both A and B, the 2 images do not overlap - Geometric: 2 * Ac * Bc / (Ac + Bc) | |||
Similar to average but only where A and B overlap - Grain-Extract: Bc - Ac + 0.5 | |||
Extracts grain from image A and adds it ontop of the image B - Grain-Merge: Bc + Ac - 0.5 | |||
Merges a grain layer (for example extracted from the Grain-Extract mode) on-top of the B image. This is the opposite of the Grain-extract mode - Hypot: sqrt(Ac * Ac + Bc * Bc) | |||
In-between the Plus and Screen operators - Reflect: Aa * Aa / (1 - Ba) | |||
Darkens the output image using values from the source image. - Color Burn: if Ac > 0 | |||
1 - min(1, (1 - Bc) / Ac) | |||
else | |||
0 | |||
Darkens the backdrop color to reflect the source color. Painting with white produces no change. - Darken: min(Ac, Bc) | |||
The resultant color is the darker of source or destination colors. If the source is darker, it replaces the destination. Otherwise, the destination is preserved. - Linear Burn: Bc + Ac -1 | |||
Darkens the source image and reflects the destination image - Multiply: if Ac < 0 and Bc < 0 | |||
0 | |||
else | |||
Ac * Bc | |||
The source color is multiplied by the destination color and replaces the destination. The resultant color is always at least as dark as either the source or destination color. Stops 2 negative values from becoming a positive value - Multiply (Math): Ac * Bc | |||
The source color is multiplied by the destination color and replaces the destination. Unlike Multiply, 2 negative values become a positive | |||
Use Composition Format / crop_to_comp | Boolean | On | The output image will be set to the composition format. Useful to increase performances when a lot of elements are instanced outside the Composition |