Skip to content

xpShatter

The xpShatter object is used to break polygon objects into shards using several different algorithms.

The shards can be controlled using X-Particles modifiers and dynamic objects.


This object is built around the concept of source layers each with its own hierarchy.

The xpShatter object must have at least one ‘Source Layer’ which is the source of the shattering and which, by default, is a conventional Voronoi shatter layer.

You can, however, add multiple layers, each with its own distinct hierarchy of settings and options and modify and/or delete the default layer if required.

If you have more than one shatter layer, the first layer will break the object, then the second layer will break the fragments of the object, and so on until all layers have been processed.

xpShatter_Source Layer_v02.PNG

User Interface (UI) settings for the Voronoi layer.

Each source layer must in turn have at least one ‘Point Generator’, which actually generates the fragments of the object.

Again, you can have more than one point generator for each source layer if desired, each with its own settings.

The point generators must be child objects of the source layer.

Each point generator then has its own set of properties, some of which require additional objects such as a texture tag, a special xpPointContainer object, or another mesh object.

Finally, each point generator can also have optional ‘Point Modifier’ layers applied to it, such as Translate or Scale.

Make the object to be shattered a child of the xpShatter object and it will be broken using a single Voronoi source layer and a single Point Generator.

Then, you can add or remove source layers, add point generators, alter the settings etc. until you have the effect you want.

Untitled

xpShatter Object tab menu.

Set as Volume, by default

The alternative is Surface.

The shattering is carried through the volume of the object as though it was a solid object, so produces ‘solid’ fragments.

xpShatter_Mode_Volume_v04.png

With the Mode set as Volume, with a silver material applied to the xpShatter’s inner faces.

Only the surface of the mesh is broken, so produces thin, not solid, fragments.

xpShatter_Mode_Surface_v02.png

Here, the Mode is set as Surface. The silver material has now disappeared as there are no inner faces in Surface mode.

The default setting is Voronoi, select the desired layer type from this menu to add a new source layer.

The other options are: Wood, Glass and Bricks.

xpShatter_Wood_v02.PNG

The Layer settings of Wood,

xpShatter_Glass_v01.PNG

Glass

xpShatter_Bricks_v01.PNG

and Bricks.

Each type will result in a different pattern of shattering.

If you add too many layers, it may slow down the computer very considerably.

Each source layer will be added to the list above the menu.

You can enable and disable individual layers by checking or unchecking each layer in the list.

If you click a source layer to select it, there are several options that can be set for each layer, as explained below.

You can also add more point generators to the layer if desired.

The list of source layers used to shatter the object.

You can add or delete layers from the list and enable/disable them using the check boxes.

There must be at least one layer with at least one point generator in this list to break an object.

xpShatter_Multiple Layers_v01.PNG

Here, a Torus is a child of xpShatter, with two Voronoi layers, both of which have Point Generators. Both point generators have different settings, the first is set to Mesh Bounding Box, and the second is set to Radial with a child Spawn Points layer.

If you increase this value, the created fragments are separated from one another and pushed outwards.

This will increase the size of the bounding box of the object.

Animation to demonstrate the effect of increasing the Explode value.


Set as Translate, by default, this is the type of point modifier.

The alternative options are: Scale and Spawn Points.

This modifier lets you move the shatter points along any of the three axes.

If you select the modifier, there are four additional parameters available.

Adjust these sliders to move the points along the required axis.

xpShatter_Modifiers_Translatev01.PNG

The Translate modifier in this layer system is pushing the effects of the Scale modifier upwards (with the Translate X, Translate Y and Translate Z values all at 50), revealing the unmodified Voronoi distribution at the bottom.

If you enable this, a new link field appears: Custom Object.

You must drag and drop an object into this field then, when you move the object, the generated points will be moved in that direction.

You can use a null object for this; it doesn’t have to be a mesh or spline.

This modifier lets you scale the shatter point distribution up or down on any axis.

This modifier has three additional parameters.

xpShatter_Modifiers_v01.PNG

Here, the Scale modifier is set to significantly reduce the scale on both the X and Y axes (Scale X and Scale Y parameters), resulting in this slim shatter pattern.

Adjust these sliders to scale the points along the required axis.

This modifier produces additional shatter points in the object, so giving greater detail in the shattering.

There are no additional parameters with this modifier setting.

xpShatter_Modifiers_Spawn Points 01_v01.PNG

In this first image, Spawn Points is being selected in the Add Modifier parameter.

xpShatter_Modifiers_Spawn Points 02_v01.PNG

Once added, with Point Generator Type set at Generate Points Around Existing Points, the points are all visible here.

Set as Mesh Bounding Box, by default.

The alternative settings are: Mesh Surface, xpPointContainer, Shader and Radial.

Each type has its own parameter options but there are three parameters which are available with all four type settings.

The number of additional shatter points to be generated.

xpShatter_Point Generator_04_v01.png

Number of Points set at 2, in the left-hand image, raised to 100, on the right.

Enabling this will restrict the points to the volume of the source object.

A random seed used when generating the additional points.

The bounding box of the mesh is used to calculate the shatter points.

This type has one additional parameter option available.

xpShatter_Mesh Bounding Box_Use Object Volume Disabled_v01.PNG

A Cube has been used here to give a visual demonstration of the bounding box, with Point Generator Type set to Mesh Bounding Box and points filling the volume of this area.

xpShatter_Mesh Bounding Box_Use Object Volume Enabled_v01.PNG

In this second image, Use Object Volume is enabled, restricting the points to the volume of the source object.

Set as Uniform, by default, these are different algorithms for distributing the additional points.

The alternative is Normal/Gaussian.

Calculation of the shatter points is confined to the mesh surface.

There are no additional parameter options available.

xpShatter_Mesh Bounding Box_Mesh Surface_v01.PNG

With Point Generator Type set as Mesh Surface, the points are generated on the surface of the source object.

When you have a container, the points are generated within the container’s field of effect.

If you move the container around, the shattering effect will follow the container.

There are two additional parameter options available.

xpShatter_Mesh Bounding Box_Point Container_v02.PNG

Above, with Point Generator Type set at xpPointContainer, the points are being generated within the container’s field of effect.

Set as Uniform, by default.

As above, these are different algorithms for distributing the additional points.

The alternative is Normal/Gaussian.

xpShatter_Uniform_v02.PNG

Point Distribution Type set as Uniform.

xpShatter_Gaussian_v01.PNG

In this image, the Point Distribution Type is the alternative setting of Normal/Gaussian.

Click the button to create an xpPointContainer and add it to the link field.

Alternatively, simply drag an existing container into the link field.

A shader is used to generate the shatter points.

There are three additional parameter options available.

xpShatter_Shader_v01.PNG

A shader is being used here, to generate the shatter points, with Point Generator Type set as Shader.

The drop-down arrow reveals the usual Cinema 4D Shader types.

You can drag a texture tag into this link field.

The brightness of a color must exceed this value to be used in the point generation.

Sets the additional points in a radial pattern.

The algorithm generates a series of concentric rings, which resembles the appearance of broken glass.

There are four other parameter options available, plus a drop down arrow, which offers two bias curves.

xpShatter_Radial_v01.PNG

Point Generator Type set as Radial, giving the appearance of broken glass.

If enabled, the seed used for each ring is randomized.

This gives a less regular result than if the seed is not randomized.

This kind of shattering can only take place in one plane, so this menu enables you to select which plane to use.

The choices are the XY, YZ or XZ planes.

The number of rings to generate.

The minimum radius of each ring; it can be greater than this, of course.

The maximum radius of each ring; it can be smaller than this.

This controls how the radius of each ring is set between the minimum and maximum radius values.

For example, with the default spline, the left hand point controls the radius of the innermost ring so, as this value increases from zero, the inner ring will expand and all other rings will expand also, to maintain distance between the rings.

If it is set to the same value as the right hand point, this effectively gives all the rings the same radius (the same as if Min Radius and Max Radius are set to the same value) and the rings disappear, leaving only the center point.

xpShatter_Radial_v02.PNG

Here, the Radius Bias and Number of Points Bias splines have been manipulated to art-direct the shatter pattern above.

This controls how the Num Points setting is used for each ring.

For example, with the default spline the number of points is set to the maximum value for the innermost ring but fewer points are used for the outer rings.

You can load in preset curves or save your customized bias settings, using the Load Preset and Save Preset buttons.


You are not simply restricted to the inbuilt point generator.

You can also add a mesh object, spline, or an xpEmitter into the Layers list as a child of a source layer.

Animation to show xpEmitter being dragged and dropped into the Layers list and the subsequent effect of increasing the Birthrate and Speed parameters.

If enabled, the vertices of the object (if it has some) are used to break the mesh.

If enabled, the vertices of any child objects of the object will also be used to generate shatter points.

Otherwise, child objects are ignored.

If the object is a generator object such as a MoGraph Cloner, enabling this will cause the vertices of the clones to be used to generate shatter points.

Otherwise the cloner will be ignored (since it has no vertices of its own).

For polygon objects there is only one option in this menu, Use Object Points, so this cannot be changed; the vertices of the object are used to generate the shatter points.

For spline objects there is another option, Generate Points Along Spline.

With this setting, there are three additional parameters available.

Untitled

With a Flower spline having been dragged and dropped into the Layers list and Point Type set to Generate Points Along Spline.

Increasing this value will offset the shatter points away from the spline.

The direction and distance is random and can be changed by altering the Seed value.

The number of shatter points to be generated along the spline.

If the Offset value is greater than 0 (zero) cm, this is the seed value for the random offset of the shatter points.


The following three parameters are common to all four layer types (Voronoi, Wood, Glass and Bricks).

This is very similar to the Explode setting but produces a separation between fragments by reducing fragment size, so the overall size of the object does not increase.

This animation shows the effect of the Offset parameter.

If you are using an emitter you can drag a particle Group object into this field.

All particles emitted by the emitter, when it is in controlled-only mode, will then be in this group, regardless of any groups that may be in the Groups list of the emitter.

Clicking this Point Generator button will add an additional Point Generator to the layer which you have highlighted.

The Bricks layer has the following additional settings.

Sets the minimum size of the bricks on all three axes, dependent on the space available on the child object being shattered.

Sets the maximum size of the bricks on all three axes, dependent on the space available on the child object being shattered.

Increases, or decreases, the global scale of the bricks’ size.

Applies a random pattern to the overall look, dependent on the values set.

Offsets the rows of bricks in the X axis.

Offsets the rows of bricks in the Z axis.


These parameters are only available for the Bricks layer.

They act to split the geometry of the bricks themselves.

The percentage of bricks split on the axis selected.

This animation demonstrates the Splitting parameters.

The minimum and maximum offset of the splitting on the individual brick.

For example, if both of these values are set at 0.5cm, then every brick (subject to the Amount to Split percentage selected) will be split directly in half.

Sets a random split pattern across the entire surface, based on the other settings in this section.

Enable these settings to split the bricks on the axis/axes you require.

The parameters above will have no effect unless at least one of these boxes is ticked.


For each layer, you can use this menu to set when the shattering should take place.

Depending on the Trigger option, a number of other settings become available.

There are five options: Always, Time, Speed, Collision and Volume.

The object is shattered immediately.

There are no parameters for this option.

Shattering will take place after a specified time has elapsed.

The time can be set in the Time field, which becomes available with this option.

With the Trigger set to Time, in this animation, once the Time value of 50 frames is reached, the shatter is triggered.

Set the frame when you want shattering to take place.

Variation can be added to this by using the Time Variation setting.

The Seed value is the seed for the random variation which is added.

The ‘speed’ in this case refers to particle speed.

To use this option, you must have an emitter in your scene and something (such as an xpGravity or xpTurbulence modifier) to give some speed to the particles.

For best results, you could also add an xpDynamics tag to the xpShatter object; if you don’t, the particles will still move and the object will shatter, but will not look as realistic.

As the particles are moved, their speed increases and if they exceed the speed in the Speed parameter, the object will shatter.

You can have more than one layer set to Speed with different shattering speeds, if you need them.

In this animation, an xpSpeed modifier is incrementally adding speed to the movement of the Sphere with each frame. Once it reaches the Speed value of 135cm, the shattering occurs and the fragments are forced away from each other due to the Push settings in the Sphere’s xpDynamics tag.

The Speed setting is the speed which the linked particles must exceed for shattering to occur.

Variation can be added to this by using the Speed Variation setting.

With this option, as with the Speed trigger you need an emitter in your scene.

Fragmentation will then occur on collision between the particles and an object or with other particles.

You should add an xpDynamics tag to the Shatter object for realistic results.

Particle<->Particle, Particle<->Volume, xpBullet, Collision Speed, Speed Variation

Section titled “Particle<->Particle, Particle<->Volume, xpBullet, Collision Speed, Speed Variation”

The first two boxes indicate whether shattering will occur when the linked particles collide with other particles and/or with a scene object.

Animation to demonstrate shattering with Particle <->Particle enabled. xpPPCollisions is present in the scene so that the system registers the collision.

If a scene object is used, it must have an xpCollider tag attached to it.

This animation demonstrates xpShatter with Particle <-> Polygons enabled and an xpDynamics tag attached. The xpCollider tag is ensuring that the collision is registered.

Alternatively, if you have an xpBullet object in your scene, you can enable the third box, xpBullet.

Here, xpBullet is enabled. An xpBullet Rigid Body tag is attached to the xpShatter and there is an xpBullet Collider tag on the collision geometry. The collision is being detected by this xpBullet system.

For shattering to occur the speed of the object, after collision, must exceed the value in Collision Speed.

By default this is set to 0 (zero), so that shattering occurs immediately on collision.

Variation can be added to this by using the Speed Variation setting.

This setting requires an xpVolumeContainer.

When this is present, the object will shatter when it enters the volume of the container.

Click the button to create an xpVolumeContainer and add it to the link field.

Alternatively, simply drag an existing container into the link field.


Untitled

Details tab parameter options.

The Details tab enables a Noise filter to deform the fragmentation.

Checking this box enables the filter.

xpShatter_Details_Disabled_v01.PNG

Enable Details is disabled in this image.

xpShatter_Details Enabled_v01.PNG

Enable Details is enabled in this image.

This is the length of edges in the newly generated detail surface.

A lower Edge Length value will generate smaller polygons and, therefore, higher-quality detailing.

xpShatter_Details_Edge Length_10_v01.PNG

Edge Length is set at 10cm here.

xpShatter_Details_Edge Length_4v01.PNG

In this image, Edge Length is lowered to 4cm, generating smaller polygons, resulting in a much higher quality.

When enabled, the fragmentation is displayed on the object’s surface.

xpShatter_Details_Displace Surface_v01.PNG

Displace Surface enabled, with fragmentation visible on the object’s surface.

This option smooths the newly created surface. There are two options for smoothing, Use Point Normals and Angle.

This smoothing method retains the flat look of the shard’s faces, despite the surface being distorted by the detailing.

Not available when Use Point Normals is enabled, this setting adjusts the angle threshold, below which the edge of two adjoining faces is smoothed.


All the standard noise settings are available here.

Set the strength of the noise.

Applies a random look to the settings.

This parameter influences the frequency of the noise, creating more detail.

This parameter controls the overall scale of the noise.

xpShatter_Details_Global Scale_v01.PNG

This image has Global Scale reduced to 40%, as well as a lower Strength setting and a Noise Type of Displaced Voronoi. The reduced global scale has decreased the noise pattern, resulting in finer detail deformation.

By direct comparison to the Global Scale setting, this give you control over the X, Y and Z axes independently, allowing you to reduce the scale on separate axes, which can give way to interesting detailing styles.

This parameter controls the animation speed of the noise used to generate the fragmentation.

If it is set to 0 (zero), no animation occurs and the fragmentation will not appear to move.

Controls the maximum and minimum noise levels.

The Y axis is the strength of the deformation and the X axis is the depth, from the edge of the shattered piece to the middle.

The drop-down arrow reveals additional parameters here.

xpShatter_Details_Strength at Depth 01_v01.PNG

In this image, with the Strength At Depth default setting, there is an immediate increase of strength, with no displacement on the edges.

xpShatter_Details_Strength at Depth 02_v01.PNG

Here, the Strength At Depth spline curve shows a more gentle increase of strength towards the centre of the piece.


Untitled

Transform tab parameter options.

Sets offsets on all three axes.

Offers a degree of variation of the Offset levels.

Set as Relative, by default.

The alternative setting is Absolute.

In Relative mode you can increase or decrease the entire scale with the percentage slider.

You can also add variation to vary the scales if you have multiple child objects.

Absolute scale gives you the per-axis scale control, rather than a single, global scale control.

Sets Scale values on each of the three axes.

Adds a variation to the levels of scale set.

Sets rotation on all three axes.

Gives a degree of variation between rotation levels.


Untitled

Display tab menu.

Activating this parameter, applies a different color to each shard.

xpShatter_Display_Colorize Shards_v01.PNG

Colorize Shards is enabled in the right-hand image.

Enabling this parameter creates Ngons (polygons with five or more edges) on the shatter faces.

xpShatter_Display_Create Ngons_v01.PNG

With Gouraud Shading (Lines) applied to the viewport, there are no Ngons on the left image. The right image has Create Ngons enabled.

If enabled, this will draw the points which are used to generate the fragments in the viewport.

You can then see clearly how the object is shattered.

xpShatter_Display_Draw Shatter Points_v01.PNG

Draw Shatter Points is enabled in the right-hand image, displaying the points as white dots.

If checked, the cut edges are drawn on the object to be shattered.

xpShatter_Display_Draw Cut Edges_v01.PNG

Draw Cut Edges enabled on the right, with Edges Color set as blue.

The color of the shatter points, if Draw Shatter Points is enabled.

The color of the cut edges, if Draw Cut Edges is checked.


Untitled

Selection tab menu.

If enabled, adds a polygon selection tag containing the inner faces of each fragment.

You can use this to assign a material to the inner faces only.

xpShatter_Selections_None_v01.PNG

Inner Faces unticked (disabled).

xpShatter_Selections_Inner Faces_v01.PNG

Here, with Inner Faces ticked and enabled, a blue material can be assigned to those inner faces.

If enabled, adds a polygon selection tag containing the outer faces of each fragment.

You can use this to assign a material to the outer faces only.

If enabled, adds an edge selection tag containing the newly-created cut edges of the fragments.

These are points which are neither cut points nor outer points (all the points other than those which are in the cut and outer points selections).

These are points which were present in the original mesh.

These are the extra points created in order to make the cuts.


Copyright © 2026 INSYDIUM LTD. All rights reserved.