This object allows you to generate vertex maps from the speed of the vertices in a polygon object, or alternatively to produce the vertex map from a texture applied to the object's parent. The vertex weights in the resulting vertex map tag will be updated each frame as vertices move or as the texture changes (e.g. when using an animated texture).
Note also that it will only generate a vertex map for the object dropped into the 'Object' field - that is, object hierarchies are not supported.
When an object is dropped into the link field, it will automatically create a vertex map tag using the name in the 'Vertex Map Name' parameter.
The object's initial interface looks like this:
For the 'Groups Affected' and 'Falloff' tabs, and for the buttons at the bottom of the interface, please see the 'Common interface elements' page.
Vertex Map Name
The object will look for a VertexMap Tag with this name attached to the object's parent. If it doesn't find a tag with this name, the object has no effect.
The default name is 'VMSource'. If you change this before the vertex map tag is created, the tag will be given the new name. If you change it after the tag is created, you will have to change the tag's name manually or the object will not be able to find the tag and will have no effect.
You cannot delete the vertex map tag once created - or at least, you can, but it will be recreated automatically. If you really need to delete the tag, turn the Vertex Map object off in the object manager and then delete the tag.
The object to create and update the vertex map on.
The object for which a vertex map is to be generated must be an editable polygon object. Parametric objects such as primitive objects, the Sweep object, etc. are not supported because vertex map tags cannot be assigned to these objects.
If checked, this switch will invert the vertex map output, so a weight of zero will become 1, and vice versa.
This gives the type of source the object will use. It has these options:
With this option, the map is set from one of several parameters in an Explosia FX object. The map is updated as the Explosia simulation plays but resets to zero on rewinding the scene. See the Explosia options section below for details.
This mode uses one or more Seed objects to specify where the map starts to be generated. It will then grow outwards from that point(s) to set the weight in the rest of the map. See the Seed options section for details.
In this mode, the polygon face is used to generate the map instead of only the vertices. In these images the map on the left was produced using the vertices of a cube ('X-Particles/Vertices' mode), on the right the face made up by these vertices was used in 'Polygons' mode:
See the options section below for details.
In this mode, the whole spline is used, not just its vertices. You can see the difference in these images. On the left, only the vertices of a Star spline are used ('X-Particles/Vertices' mode) and on the right when 'Splines' mode is used:
See the options section below for details.
With this mode, the object samples the colour of the parent object at each vertex and by default calculates the colour brightness in the range 0 to 1. This value is then assigned to the vertex weight. If the colour at each vertex changes as the animation plays, the vertex map will be updated accordingly.
Note that it is colour brightness which matters, not the hue. In other words, a pure red (RGB 255, 0, 0) has the same brightness as pure blue (RGB 0, 0, 255) even though the hue is very different. If you need to use the hue, select one of the other 'Texture Mode' options (see below).
The vertex map weights will be generated by the speed of each vertex as it moves when the animation is played. The vertex speed is assigned a weight from 0 to 1 using a range set with the 'Min. Speed' and 'Max. Speed' parameters. If the speed is lower than the minimum, the vertex weight is zero; if it is greater than the maximum the vertex weight is 1.0. Choose the speed range carefully in order to see the maximum change in weight.
In this mode, the vertex map weight will be set when particles from an X-Particles emitter, or the vertices of another object, come near to a vertex in the object which receives the vertex map. See the options section below for details.
Source: Vertex Speed options
Min. Speed, Max. Speed
The minimum and maximum speed settings for the speed range. Vertex speeds within this range will have a weight value from 0 to 1. Note that the minimum and maximum speed values are per second, not per frame.
This drop-down lets you choose between two spaces for calculating the vertex speed. If you are moving some vertices in a mesh relative to other vertices you might want to use 'Local', and then moving the object as a whole won't affect the weight. However, if you move the entire object you need to use 'World' space to see any change in the weights. The options are:
The vertex speed is relative to the other vertices in the object. With this setting, if you only animate the movement of the object rather than the individual vertices, the vertex weight will always be zero, since the vertices are not moving, relative to other vertices. If you animate some or all of the individual vertices their speed is calculated each frame and the vertex weight generated from that speed.
The vertex speed is relative to the object's position. This is the option to choose if you are animating an entire object (even if some vertices also move independently of the object's position and others do not).
Source: Texture options
These are only available when 'Source' is set to 'Texture':
This is only available when 'Source' is set to 'Texture'. Drag the texture tag you want to use from the parent object into this field.
There are some limitations on textures:
- Only channel shaders can be used, not materials such as Hair, Nukei, etc.
- The texture must use UV projection as it is sampled by UV mapping. If you use a Noise shader, you should set its 'Space' parameter to 'UV (2D)' or what you see in the viewport will not match the rendered result, if you need to see that.
This drop-down controls how the texture colour will be used to generated the vertex map. The default is 'Overall Brightness' which uses the colour brightness to generate the map. This means that a colour of pure red will generate the same vertex map as a pure blue colour, since they have the same brightness but different hue.
To use different colours you can select the 'Red Only', 'Green Only' or 'Blue Only' options. With these, the amount of each colour in the sampled texture will control the vertex map weights.
This drop-down is a list of possible texture channels to sample. You can use any of these channels, so you can use a channel which is not being used to render the material, if you like.
Sometimes the scene may change in some way but this is not reflected in a change in the vertex map. For example, altering the falloff in the VertexMap object might be expected to change the vertex map, but it does not. This is because the object cannot recalculate the scene for every possible change, as this would slow down Cinema itself. It only does so when the current frame changes.
You can force a recalculation by advancing the timeline by 1 frame, or more conveniently by clicking this button. The map is always updated when you play an animation, so this button is only needed when developing your scene. It is not applicable to vertex speed mode since, by definition, the map can only update when the animation plays.
Source: Polygons, Splines or X-Particles/Vertices options
These parameters are only available when 'Source' is set to 'Polygons', 'Splines' or 'X-Particles/Vertices':
Drag the X-Particles emitter(s) or other objects (splines or polygon objects) into this list. These are used to generate the vertex map when the particle or vertex comes close to one of the vertices to be weighted.
Four modes of operation are possible. These are:
The vertex map weight is set and will remain set unless changed by another particle or object vertex changing it. The actual weight set is found in the 'Weight' parameter.
Set Weight Then Fade
As for 'Set Weight', but after being set the vertex map weight will decrease to zero. The rate of fall is controlled by the 'Fade Rate' parameter.
The vertex weight will be incremented by the value found in 'Rate of Change'. For example, if this is set to 0.01, each time a particle or object vertex comes close enough, the vertex weight will be increased by that amount. The final weight cannot exceed a value of 1.
As for 'Increment Weight' but the vertex weight is reduced by the value in 'Rate of Change'. It can never drop below zero.
Only Set if Higher
If this switch is checked, the vertex map weight will only be set if it is higher than the current weight for that vertex. Not available for the increment or decrement modes.
A particle or vertex from another object must come closer than this value to a vertex to be weighted for any change to take place.
The weight value to use if 'Mode' is set to 'Set Weight' or 'Set Weight Then Fade'.
The fade value to use if 'Mode' is set to 'Set Weight Then Fade'. The higher this value, the quicker the fade will take place.
Rate of Change
The value to use if 'Mode' is set to 'Increment Weight' or 'Decrement Weight'.
This spline can be used to alter the weight value (from 'Weight') or the amount to increment or decrement the weight (from 'Rate of Change'). A value between 0 and 1 is obtained from the spline depending on the distance between the weighted vertex and the particle (or vertex of another object). This value is then multiplied with the weight or rate of change value to give the final result.
In the screenshot above, if the distance is zero (left-hand end of the spline) the full weight or rate of change is used. If the distance is equal to or greater than the value in 'Range' (right-hand end of the spline) the weight or rate of change will be zero.
At any time you can click this button to clear the existing vertex map and recalculate it. This can be useful, for example, if you are using the vertices of another object to generate the map and you move the object around, causing the map to be updated. If you then want to clear that map and return to the starting position, you can advance the timeline by one frame and rewind it, forcing an update. To avoid having to do that, simply click this button.
In this example, particles from an emitter set the vertex weight when they approach the Plane object:
You can achieve the same effect with the vertices of a moving object.
Note that when using this mode, the vertex map is only created when the animation is played. Rewinding to the start of the scene will reset the vertex map uniformly to zero. During the animation the map will change as particles and/or vertices of other objects approach the vertices of the object to receive the map.
Source: ExplosiaFX options
As an example, here is a Figure object (made editable) and used as a source for an Explosia solver. The vertex map is generated from the temperature of voxels in the solver:
You can see the vertex map being updated as the solver proceeds (the solver itself has been hidden so you can see the vertex map clearly).
These parameters are only available when 'Source' is set to 'Explosia':
The Explosia FX object to use. In this case the object to be weighted does not need to be an Explosia FX source object, but it must be located within the solver bounds.
The Explosia parameter to use. You can choose between:
- Velocity (X)
- Velocity (Y)
- Velocity (Z)
- Color (R)
- Color (G)
- Color (B)
Min. Value, Max. Value
This is the range of weight values that can be set. The defaults are 0 and 1 respectively, so the parameter from Explosia will be mapped to between those two values. If you increase the minimum value to 0.25, for example, the minimum weight which will be set is 0.25.
This spline can be used to remap the calculated weight value. In its default state (see the above screenshot) it has no effect. But if, for example, you lower the point at the right-hand end of the spline, so that it has a value of less than 1, this will be multiplied with the maximum calculated weight. You can animate this spline to alter the map over time.
Source: From Seed options
To demonstrate how this works, see this animation:
As you can see, from a seed object in the middle of the mesh, the vertex map grows over the surface. In this case, it is controlled by a noise shader which governs where the weight of the map will grow to maximum and how fast.
The parameters for this mode are as follows:
Add New Seed Object
Click this button to create a new X-Particles Seed Object and add it to the scene as a child object of the VertexMap Maker.
Note that without at least one seed object the vertex weights will all remain at their default and will not grow across the object.
There are two possible ways in which this mode can work.
In this mode, the vertex map grows from one vertex to all those connected to it by an edge. This produces a smooth growth but (if the object has many vertices) it is a slow growth. Increasing the 'Search Radius' parameter will cause the change in weight to occur over larger areas of the object. If the 'Search Radius' is too small, however, no growth may occur at all, because the distance between vertices exceeds this value.
Here, the vertex map is revealed as though a mask was being removed. The mask is circular and spreads from the originating vertex with a speed set in the 'Search Radius' parameter.
Min. Map Value, Max. Map Value
These are the minimum and maximum values the vertex weights can have. Normally they are set to a minimum of zero and maximum of 100% but you can vary these if required. The assigned weights will not range outside these limits.
Rate of Change
This is the speed at which the weight changes from the initial value to its final value. With the minimum and maximum map values at their defaults, and this value set to 50%, each vertex will take two frames to reach the final value.
This is only used if 'Mode' is set to 'Reveal'. When a vertex weight reaches its maximum value, it will then search for neighbouring vertices. If any of them have not started to change weight, and are within this distance of the initial vertex, they will start to change. If this value is too low there may be no vertices within that range and no change in the vertex map will occur. If it is too high, the map may change more quickly than desired since a larger number of vertices start to change.
Fade From Max.
If this value is anything other than zero, the vertex weight will start to fade once the time in 'Start Fade At' has elapsed. This will cause the weight to decrease to zero (or increase to maximum if the 'Invert' switch is checked). The higher the value in this setting, the faster the weight will fade.
Start Fade At
This is the time after which a vertex weight will start to fade. The countdown does not begin until a vertex weight starts to grow. This setting is not available if the 'Fade From Max.' value is at zero.
Check Once Only
By default this option is checked. It ensures that, once a vertex has checked for any neighbouring vertices in order to start growing them, that vertex will not search again. This speeds up the process very considerably. If it is unchecked, each vertex is checked each frame, which is time-consuming. The only reason for unchecking this option is when a mesh is animated so that vertices may become closer to one another over time and may come within the 'Search Radius' distance, or when using an animated shader
A link field for a channel shader. This shader will control two things:
- the rate at which a vertex weight increases
- and the maximum value the weight can reach
Using a noise shader for example, the vertex weights will grow faster in areas which are brighter and the maximum weight will also be higher in those areas. Note that the final result is still influenced by the maximum and minimum map values and the rate of change.
Using a shader is not essential. If you don't use one, the values in 'Min. Map Value' and 'Max. Map Value' determine the limits on the vertex weight. It also means that each vertex weight will grow at the same rate.
Scale U, Scale V, Scale W
These three parameters control the size of the shader across the sample space. To put it another way, if the 'Tile' parameter is checked a bitmap will be tiled across the sample space and the number of tiles is controlled by these parameters. If 'Tile' is unchecked, or for procedural shaders, the shader is simply scaled.
Offset U, Offset V, Offset W
The shader will be offset by these amounts in the respective direction.
Mirror U, Mirror V, Mirror W
Checking these switches will mirror the shader across the respective axis.
If a bitmap is used, checking this switch will cause it to be tiled across the sample space. The number of tiles is controlled by the 'Scale U' and 'Scale V' settings. The switch has no effect on procedural shaders.
This is a smoothing control intended to prevent hard changes in weight across neighbouring vertices. It has the effect of smoothing out the vertex map. With a value of zero (the default) no smoothing takes place.
One important point to note about the Blend option is that blending takes place each frame. So if you have a system where the weight is initially set, for example by a particle or the vertex of a nearby object, then each frame that weight will be blended with the weight of the vertices around it. If the particle or vertex moves away, so it is no longer close enough to set the weight, the vertex weight may either increase or decrease, depending on the weights of neighbouring vertices. This won't happen if the weight is refreshed each frame, such as from a texture or a non-moving object, but it may do if the weight is initially set and then not set again in subsequent frames.
If you have used a blend value of above zero and you see your vertex weights mysteriously fading or brightening for no apparent reason, this may be the answer.
Add Vertex Color Tag
If this switch is checked, a Vertex Color Tag (Cinema 4D R18 and higher only) will be added to the object along with the vertex map tag. The colour for each vertex is derived from the 'Gradient' parameter, with the vertex weight acting as an index into the gradient, or from particle colors.
This switch and the following controls are not present in Cinema 4D R17 and below.
Important: do not change the tag from 'Points Only' to 'Polygon Points'. If you do, it will be deleted and recreated.
You can choose the colour source for the vertex color tag here. The choices are:
Colors are chosen from the 'Gradient' parameter.
The vertex colors are set from the particle color. This requires that at least one source object is an emitter. Note that the colour change will only persist as long as the particle is within range of the vertex, as determined by the 'Range' setting.
Only available if the 'Add Vertex Color Tag' switch is checked and 'Color Mode' is set to 'Use Gradient'. The vertex weight is used as an index into the gradient, so a weight of zero will take the colour from the extreme left of the gradient, while a weight of 100% will take the colour from the gradient's extreme right.