Data Mapper

Mix[0..100%]

This Mix value can be used to control how strongly the Output Property selected on the modifier should be influenced on the particles. At a value of 0%, the particles retain their property; at a value of 100%, the property is completely replaced by the value selected on the modifier. Intermediate values lead to a corresponding fading of the property values.

Source

Here you can select what should be used to control a particle property:

Information on how the output values are obtained can be found in the discussion of the Minimum Input and Maximum Input parameters.

Property

After selecting Source Property, select the particle property that you want to read out. The following properties are available:

The following three properties can already be queried in a converted form:

Extract

Extract

Extract

Extract

The properties output, which are described by vectors, also offer this menu for reading out individual components or calculating individual angles relative to specific axis directions. The following particle properties are affected:

2026

Range Mode

The following values for Lower In and Upper In are used to define the value range to be converted. This mode defines how these limit values are to be determined or specified:


Here you can see two identical emitters, each of which generates particles modified in radius by a Data Mapper modifier. In both cases, the Z-position of the particles is evaluated in order to assign modified radii. The adaptive Range Mode is used at the top. The specified radii are therefore always distributed exactly between the particles with the smallest and largest Z-position values. Below, the constant Range Mode was used, which here assigns the different radii between the Z positions 0 and 200. As a result, the particles practically fly through the radius variation and only receive the Upper Out radii when the Upper In distance is exceeded.

Snapshot

This button is only available in Adaptive Range Mode and automatically transfers the minimum and maximum values of the particles in the current animation image to the input fields for Lower In and Upper In. The system then automatically switches to Constant Range Mode. This guarantees a fixed value output for the particles, even if the queried value range on the particle flow changes during the simulation.

Lower In[-∞..+∞]

Upper In[-∞..+∞]

This is used to define a value range for the particle properties read out. This allows the Modifier to calculate a percentage value internally, which is then used to calculate the order of magnitude of the value output. Please also note the Range Mode setting described above, which also allows automatically calculated limit values to be used for the Lower In and Upper Int.
The value range specified via Lower Out and Upper Out and the output controlled via Clamp Mode and the Spline also play a role in the result. The connection is as follows:

Let's assume you have the Radius of the particles queried and enter the Lower In as 1 and the Upper In as 5. The particle Radius read out is 2 cm. This results in the calculation (2-1)/(5-1) = 0.25 or 25%.
This percentage value can now be applied to the settings for Lower Out and Upper Out. Let's assume that the values 0 and 100 have been entered there. By calculating 0.25*(100-0)+0 we get the result 25.
However, this only applies to a linear Spline that runs from the bottom left-hand corner to the top right-hand corner. This simple rule of three conversion can be changed by deviating curves. You can imagine the 25% calculated in our example as a value on the horizontal axis of the Spline. The lower edge of the graph represents the Lower Out value, the upper edge represents the Upper Out value. The result now corresponds to the height of the curve above the point marked above our percentage value. The following image illustrates these relationships.

On the left you can see a linear conversion between the input and output values, on the right the evaluation of the standard curve on the Spline

On the left, you can see the limits of the input range on the horizontal axis and the calculated value of the queried parameter (0.25) plotted there. This also leads to the result 0.25 on the vertical axis, i.e., a quarter of the output range between the Lower Out and the Upper Out.
If we use a different curve shape instead, we get a different result (shown on the right). The value from the middle of the value range between the Lower Out and the Upper Out is then output there.

In the Source modes Field and Noise, the evaluation of existing properties and an input value range is omitted. The base values are created in these modes, e.g., by the acceptance functions of the Field objects or via Noise structures, and are usually between 0 and 1. This value then replaces the part of the calculation that led to the calculation of the value 0.25 in our example above. However, the following evaluation via the Spline and the desired output range Lower Out and Upper Out remain identical to the Source mode Property.

Property Out

Here you can select the particle property that you want to change using the Modifier. These selection options largely correspond to those in the Property menu:

The following properties only affect the velocity of the particles:

Property Channel

Property Channel

Some of the properties to be affected are vectors that can only be changed by the Data Mapper for one component at a time. This applies to these properties:

Lower Out[-∞..+∞m]

Upper Out[-∞..+∞m]

Enter the limit values of the range to be transferred to the selected particle property here. The logic behind the assignment of these values to the particles has already been explained in the explanation of the Lower In and Upper In values.

Please note that the Clamp Mode and the Spline curve also play a major role in the calculation of the final output value.

Fields

This area only appears when Source Field is activated and enables the use of Field objects to assign new particle properties. Fields offer a wide range of shapes and also allow shaders and audio files to be evaluated, for example. In addition, several fields can be combined to use even more complex criteria for value assignment. The following video shows, for example, a Spherical Field through which the Velocity Speeds are varied in the Z direction. The closer the particles get to the dark red center of the sphere, the slower they become.



The operation of this area and the available objects and options correspond to the identical operating elements that you can also find on the Deformers, for example. Follow these links to find out everything you need to know about Fields and how to use them:
If required, you can read all about the various Field objects here.
How to use the Field area is documented here.

Note:

The accuracy of Field sampling can be adjusted via the Field Sampling Variation in the Particle Simulation settings.


Clamp Mode

This setting is only available for Source Property, as only here can you work with an individually adjustable range for the input values. For the Source modes Field and Noise, the input values are automatically limited between 0 and 1.
The value range of the read properties is not always known. You can therefore also use this setting to define what should happen when reading out values that are less than the Lower In or greater than the Upper In. This is best illustrated by the following example.
We read out the Z-position of the particles and define an input range between 50 cm and 100 cm. The X position of the particles should be controlled, for which we define values between -50 cm and + 50 cm. We use the standard curve for spline and the Clamp Mode (see following image).

Data Mapper settings for the following examples.


As can be seen in the video above, the same value that would be used for particles with a Z position of 50 cm is simply output for particles with a Z position of 50 cm in the Clamp Mode Clamp. Similarly, particles with Z positions greater than 100 cm are assigned the same value that would be used for particles with a Z position of 100.

The following video shows the same scene, only this time with Repeat Clamp Mode activated. Particles that have a property that is smaller to the Lower In are all treated equally and receive the output value -50 cm, such as at the Z position 50 cm. This corresponds exactly to the behavior that we have already seen in Clamp Mode Clamp. For particles with a Z position greater than 100 cm, however, the output values are repeated.


Now the third mode remains, In Range Only. This automatically ignores all particles whose read property lies outside the range defined for Lower In and Upper In. The effect corresponds to the additional use of an upstream Condition, which then only lets through the particles that fulfill this entry-level area condition. As can be seen in the following video, the clear advantage here is that we can control more specifically which particles or when the particles should be affected. For example, the particles near the Emitter remain completely unchanged until they reach the Z position 50 cm.


Spline

You can use the course of this curve to affect the conversion of the values, which are then finally transferred back to the particles. The effect of this curve has already been discussed in the discussion of the Lower In and Upper In parameters. The Spline control element used here is also used in many other places in Cinema 4D. If you would like to read about its functions again here, simply open the following section.

Click here to see a description of the Spline control.Closed

In general, you can remember that existing points on the curve can simply be grabbed and moved with the mouse when operating spline control elements. You will also find input fields below the spline for exact positioning if you click on the small arrow to the left of the function graph. The exact Y-position of a point can also be entered directly in the function graph by double-clicking on the point.
In the area below the function graph, you can control the Interpolation for each selected spline point, e.g., to work with tangents or hard interpolated points.
New points can be created by Ctrl-clicking or Cmd-clicking on the curve. Existing points can be selected by clicking on them and then deleted again by pressing the Del key.

You can also select several spline points at the same time by:

  • Dragging a rectangle selection with the left mouse button held down (the keys described in the next point also work here)
  • Adding several points to a selection one after the other by holding down the Shift key. Items that have already been selected can also be deselected again with Ctrl/Cmd clicks.

Common curves can be called up directly by right-clicking on the graph and then navigating to the Spline Presets submenu in the context menu. You will also find a Load Preset... button under the spline curve to load previously saved spline curves directly. You can also save your own curves at any time via Save Preset....
In general, you will also find many other helpful functions in the right-click context menu, e.g., for duplicating and mirroring a spline or for activating standard interpolations for individual points (submenu: Point Types).


The Spline Control Element

Each spline point that is using Spline Interpolation offers tangents that can be used to influence the course of the curve in the immediate vicinity of the point. Tangents always start at the spline point and have a handle at the end that can be grabbed and moved with the mouse.

Moving the tangent end points is supported by the following keys:

  • Shift: The moving half of the tangent can be changed independently of the opposite side (i.e., the tangent can be broken). If you want to undo the 'break', deactivate the Break Tangent option below.
  • Ctrl/Cmd: The tangents can only be changed in length, but not in angle. You will also find a Lock Angle option below the graph.

You can find options for each of these functions below, which you can use to set this permanently for each spline point. These options can then be used, for example, to lock an existing angle between broken tangents(Keep Visual Angle) or you can only edit the angle of a tangent, but no longer its length(Lock Length).

Some keyboard shortcuts also work, such as 0 (to set the Y component of the tangents to 0) or L (to set the X component of the tangents to 0).

The curve can also be moved as a whole using the mouse. To do this, simply grab the curve directly with the mouse between the spline points. For this to work, the Move Curves option must be active, which you can access by right-clicking on the function graph in its context menu.
If the option for Min/Max Lines is also active in the context menu just mentioned, the lowest and highest Y value of the curve is displayed with a horizontal dashed line. These dashed lines can then also be moved vertically with the mouse in order to scale the amplitude of the curve as a whole.

Within the graphical spline display, the hotkeys '1' (Move) and '2' (Scale) or the middle mouse button can be used to zoom in on specific areas. If you find the function graph display too small, you can use the button for Show in Separate Window below to open a window that can be scaled as required, where you can then fine-tune the curve to your heart's content.

Let's now take a detailed look at all the parameters of the Function Graph element:

Point X

Point Y

The coordinates of a selected spline point are displayed here. You can also edit this position directly here.

Lock X

Lock Y

This locks the respective coordinate component to prevent unwanted changes to it. These options can be set separately for each spline point.

Interpolation

Here you specify the type of interpolation (curve shape) to the next point for selected points:

  • Spline: The shape of the curve can be customized using tangents. The tangent always appears on the right-hand side of the selected point and on the left-hand side of the neighboring point to the right, e.g., if the first point of a spline is using Linear Interpolation and the second point is using a Spline interpolation, you will only find a right-hand tangent at the second point and a left-hand tangent at the third point.
  • Cubic: Results in a harmonic curve through the spline points without overshoots. No tangents are used.
  • Linear: A linear point always shows a straight connecting line to the following point, regardless of the interpolation used there.

If you right-click in the function graph, you can also choose common curve transitions for selected points in the context menu that opens under Point Types.

Tangent Left X / Left Y

Tangent Right X / Right Y

The tangent end points can be set numerically here.


For each spline point that uses Spline Interpolation, the following four options can be used to lock individual properties of the tangents;

Break Tangent

The left and right tangents can be processed independently of their counterparts.

Keep Visual Angle

The angle between the left and right tangent remains constant when working on one tangent (if possible), i.e., the other tangent moves with it.

Lock Angle

Tangents can only be changed in their length.

Lock Length

Tangents can only be rotated around their origin and remain unchanged in length.

Show in Separate Window

The function graph is opened in a separate, freely scalable window. You can scale it up to screen size and then fine-tune the curve.

Load Preset...

Save Preset...

Spline presets can be saved for later use.

Spline curves can be saved and loaded with these two commands.

Click on Load Preset... to open a small selection window where you can load the corresponding preset by simply double-clicking (see image above).

When the Save Preset... command is executed, a small dialog opens in which the desired name of the spline preset and other information can be entered. This means that your current spline curve can be permanently saved and reloaded at any time wherever comparable Function Curve controls are used in Cinema 4D. All presets are managed via the Asset Browser.

General details regarding the Preset System in Cinema 4D can be found there.

However, function curves can also be exchanged between different objects and dialogs without the use of saved presets. To do this, right-click on the term Spline (to the left of the curve) and select Copy in the context menu that pops up. You can then right-click on another Function Curve element and select Paste to transfer the spline curve.

Context menu

Right-click on the function graph to open a context menu with the following entries:

Frame All

If you have zoomed to a specific point, this command will show the complete spline curve including points.

Frame Selected

All selected curve points are displayed in maximum size.

Enable Snap

Spline points snap onto the grid points.

Min/Max Lines

Minimum and maximum values along the Y axis of the curve are displayed as horizontal, dashed lines. These dashed lines can also be moved vertically with the mouse in order to influence the amplitude of the curve without having to move all points separately.

Move Curves

If you click exactly on the spline curve, you can move the entire curve by holding down the mouse button (if this option is activated; otherwise only if all points are selected).

Rolling Curve

If this option is activated, the curve (if it is moved horizontally as a whole) can be moved out over the ends of the function graph on the left and right. Points that leave the graph appear again on the opposite side.

Link End Tangents

Imagine the first and last points overlapping to form a single point. The activated option then ensures an unbroken pair of tangents, i.e., the two tangents lie exactly opposite each other on a straight line. This is often necessary for functions where the beginning and end merge.

Link End Positions

If this option is activated, the spline start and end points are always at the same height.

Zero X (Tangent)

Zero Y (Tangent)

This sets the X or Y component of the tangent to zero. You then have a vertical or horizontal tangent. The shortcuts 0 (for the Y-portion of the tangents at the selected point) and L (for the X-portion of the tangents at the selected point) have the same effect.

Reset

This resets an existing curve to a linearly increasing curve with a start and end point.

Select All

Selects all points on the spline curve.

Spline Presets

You can select a number of predefined spline shapes here, which are then generated by creating several spline points. The previously displayed spline is replaced.

For Custom see Formula.... Spline shapes can be created here according to a formula to be entered.

Point Types

Here you can select a number of common tangent constellations for the selected points.

Set to Maximum

Set to Minimum

This can be used to move selected points either to the upper edge (Set to Maximum) or to the lower edge (Set to Minimum) of the graph. Warning! If no point is selected on the curve, the entire spline curve is moved to the upper or lower edge of the graph. Any existing tangents at the shifted points are automatically aligned horizontally, or the Y component of these tangents is set to 0.

Flip Horizontal

Flip Vertical

These commands mirror the existing curve on a straight line that runs through Y=0.5 (Flip Horizontal) or X=0.5(Flip Vertical) (i.e., a straight line in the middle of the graph in each case). These commands also work with a selection of spline points and can therefore also be used to mirror a curve section.

Double

If no point is selected, use this to compress the entire curve horizontally to half its width and copy this shortened curve to the second half. This results in a doubling of the curve. However, this command can also be executed for a point selection and is then limited to the selected curve section.

Symmetrize

This command works like Double, except that the curve to be copied is first mirrored horizontally. Here too, only a specific section of the curve can be mirrored symmetrically by selecting points beforehand.

Show in Separate Window

The function graph is opened in a separate, freely scalable window. You can scale this to screen size and then fine-tune the curve.


Noise

This area can be used for both Source Property and Source Noise. With Source Property, an activated noise leads to an additional variation of the results. As many noise structures generate rather soft and low-contrast patterns by default, this can lead to the values used for Lower Out and Upper Out no longer being achieved. This can be counteracted by increasing the Contrast on the noise or by adjusting the Clip settings.
When using Source Noise, the selected noise structure is the only basis for calculating new property values for the particles. The brightnesses in the Noise are then interpreted as values between 0 and 1 and thus lead - again in conjunction with the Spline curve- to a value output corresponding to the Lower In and Upper In settings. The calculation principle for this has already been covered in the discussion of the Lower In and Upper In parameters.

Noise Enabled

This option must be enabled so that a noise structure is used, the output values can be varied (Source Property) or the output values can be calculated according to the brightness values of the noise structure (Source Noise).

Seed[-2147483648..2147483647]

The calculation of the noise pattern is based on this value. A change in the Seed value therefore also leads to a recalculation of the selected noise structure.

Noise Type

Here you can choose the right pattern for you. These are three-dimensional structures that can be conimaged with individual scaling along all axis directions. It is also possible to change these patterns automatically:

Octaves[1.00..20.00]

This defines the amount of detail in the noise structure. Larger values create correspondingly more variations in the pattern. Small values lead to a loss of contrast and details, as well as to a softening of the structure. This setting option is not available for the noise types Box, Cell, Mod Noise, Perlin and VL Noise.

Relative Scale[XYZ %]

You can use these values to scale the Noise structure individually along the three spatial directions. Proportional scaling is also possible via the Scale value.

Scale[-∞..+∞%]

This allows the Noise to be scaled proportionally. Individual scaling for each of the three axis directions is also possible via Relative Scale.

Animation Speed[-∞..+∞]

The Noise structures can also be changed over time. Use this value to specify the speed of these changes. By default, 0 is used here, which results in a static structure.

Loop Period[0.00..+∞]

Almost all noise types (exception: Electric and Gas) have this parameter, which causes the noise to loop after the defined time in seconds (Animation Speed must be greater than 0). The noise state is then repeated every second entered. A value of 0 turns this effect off.

Uniform per Channel

This option is irrelevant for the Data Mapper, as only one component, such as the red component of the particle color or the Y component of the airspeed, is output at a time. This is different with the Color Mapper, for example, as this option can be used to activate an additional variation of the calculated noise values for the output red, green, blue and alpha components.

Movement[XYZ m]

Speed[-∞..+∞%]

These two parameters are used to move the noise through the 3D space. Movement is a direction vector that you use to define the direction in which the Noise should move. They then use Speed to regulate the displacement speed of the noise structure.

Low Clip[0..100%]

High Clip[0..100%]

This can be used to limit the brightness values that the noise should provide. By default, Low Clip is 0% and High Clip is 100%. This means that all brightnesses can be output uncropped between 0% and 100% by the Noise. Increasing the Low Clip means that all brightnesses that are lower than defined for Low Clip are already output as black. Similarly, reducing High Clip results in gray values above the brightness of High Clip being output as white

In fact, this mechanism can be used not only to sharpen a Noise structure and to strengthen the contrast, but also to invert the brightness values. To do this, simply reverse the original arrangement of the clipping values. With Low Clip 100% and High Clip 0%, you get an inverted Noise.

Brightness[-100..100%]

This is used to adjust the general brightness value of the noise. Values above 0% increase the brightness, values below 0% reduce it.

Contrast[-100..100%]

This allows us to reduce or increase the contrast of the Noise Brightnesses. Contrast describes the range of brightness values. With a low contrast, the differences between the Noise Brightnesses supplied are therefore smaller. Greater Contrast leads to greater differences in brightness between the noise brightnesses calculated. This often results in the brightness transitions being more abrupt and less smooth compared to using a lower Contrast.

Noise Sampler

Here you specify how the noise is to be read out. There are two options to choose from:

The following video provides examples. The Data Mapper was used to establish a relationship between the Distance Traversed by the particles and their Radius. As a result, the particles become smaller and smaller with increasing distance from the emitter. In addition, the Noise was activated in order to perform random variations of this calculation.
The classic Position sampling can be seen on the left. The particles practically move through the noise structure and are individually varied in radius according to their positions. To the right, a custom property with Vector - Meter data type has been created in the particle simulation settings. Only the X and Y parts of this custom property are filled with the corresponding parts of the particle positions using two Math modifiers. The Z component generally remains 0. If this custom property is now specified as a Noise Sampler, only one 2D level of the spatial noise structure is sampled by the particles. The Radius variations remain correspondingly more homogeneous here.