The xpDynamics Tag
This tag adds object dynamics capabilities to X-Particles. Note that this is not a polygon-based system such as Bullet (which is used in the Cinema 4D dynamics engine) but a particle-based system. This means you can use other X-Particles objects such as particle modifiers and collision tag to move an object and implement collisions.
Please see 'How to use the xpDynamics Tag' before using the tag for the first time.
The interface contains the following sections:
For the buttons at the bottom of the interface, please see the 'Common interface elements' page.
Several of the parameters have a little arrow next to them. Clicking this arrow will reveal a link field labelled 'Map', like so:
You can drag a selection tag or a vertex map into this field. This will then be used to alter the corresponding setting for particles on vertices depending on whether the vertex is included in the selection (or on the vertex weight, if a vertex map is used).
This menu controls how the particles are distributed on the object. The options are:
A particle is added to each object vertex.
Vert - Mid
A particle is added to each object vertex plus one in the centre of each polygon.
Particles are distributed over the object surface.
Particles fill the object's volume.
If this switch is checked, child objects of the object with the xpDynamics tag are also included.
This menu determines when the dynamics become active - that is, when the particles required for the dynamics system are generated. The options are:
The particles are generated as soon as the animation plays.
The particles are generated at the time specified in the 'Time' setting.
Only available if 'Trigger' is set to 'At Time', It is the scene time when the particles required for the animation will be generated.
If you drag a particle Group object into this field, the generated particles will belong to this group.
Note that the particles will NOT take on the parameters in the group (editor display type, radius, speed, etc.) other than the colour. The particles will always be drawn in the 'Squares' display type but will use the group's colour.
The purpose of this parameter is again to give more control from modifiers, actions and other objects over the particles used in the dynamics simulation.
Only available if 'Distribution' is set to 'Surface' or 'Volume'. It controls the spacing between particles covering or filling the object. Changing it will affect the rigidity of the object. This value will affect the number of particles which are generated.
The value in the 'Radius' setting is multiplied by this value to determine the spacing. If 'Radius' is 5 scene units, and 'Spacing' is 100%, the space between particles is 5 units. If 'Spacing' is 200%, the space will be 10 units, and so on. This setting enables you to maintain the radius at the required value while independently altering the space between particles.
This parameter moves the particle along the surface normal, either away from the object (positive values) or into the object (negative values).
The value in the 'Radius' setting is multiplied by this value to determine the actual offset. If 'Radius' is 5 scene units, and 'Spacing' is 100%, the offset will be 5 units. If 'Spacing' is 200%, the offset will be 10 units, and so on.
This is normally set at a very low level. Increasing it will reduce the strength of the dynamic constraints, including rigidity strength. Sometimes a constraint can oscillate, so increasing this setting will reduce the constraint strength and help to reduce oscillation.
If this switch is checked, the position, scale and rotation (PSR) of the object will be altered as the particles are updated. If it is unchecked the object will move with the particles but its PSR values will not change from their initial state.
If this switch is checked, the vertices of the object are updated as the particles are updated. If you uncheck it, the particles and the object move but the object does not deform, giving a more rigid look.
This is the radius of the generated particles. It overrides the radius value in any emitter you may supply in the 'Emitter' field.
A value of 100% means that the particles are forced to retain the shape of the object. If the value is less than 100%, they are freer to move from their position and the result appears softer.
Note that rigidity is based upon constraints between the particles and object. The more constraints you have (i.e. the more particles you have) the more iterations are required. You can alter the number of iterations in the X-Particles project settings.
This is the pressure applied to the vertices of an object in the direction of the surface of the object, so it can be used to inflate or deflate an object (if it has a volume).
Increasing this value applies pressure to try to maintain the volume of the object. For example, if an object is squashed between two other objects it will inflate vertically to maintain the volume.
If checked, additional constraints are added to push the particles apart. This can impart a jelly-like movement to the object on collision, for example.
Only available if 'Push' is checked, this is the strength of the effect.
You can drag an emitter into this link field. This is optional, since the tag will create the required particles if an emitter is not given. Adding an emitter to this field gives you greater control over the particles (for example, it would allow you to specify which modifiers in the scene work with this emitter, which you cannot do with the emitter built in to the tag).
Click this button to create a new emitter and add it to the 'Emitter' field.
Mass, Density, Friction, Bounce
These are the corresponding particle properties found in the emitter. They are set by the values in these settings instead of by the emitter itself.
If checked, the particle radius is adjusted according to the size of surrounding polygons, so small polygons give small particle size.
If checked, the particle mass is adjusted according to the size of surrounding polygons, so small polygons give small particle mass.
You can use this parameter to give some initial velocity to the object along any of the desired axes. This doesn't require a particle modifier. The particles are given the required speed and direction; the speed is given in terms of scene units per second. For example, if the X component had a value of 100 scene units and Y and Z were both zero, the particle speed would be 100 units per second with a direction vector of (1, 0, 0) - that is, along the positive X axis.
As with 'Linear Velocity' you can use this parameter to give some initial spin to the object around any of the desired axes. This doesn't require a particle modifier. The values are shown as degrees of rotation per second.
Click this button to set the initial state of the object. To move the object either do so on the starting frame of the scene (before the tag has generated any particles) or disable the tag first, then move the object.
Reset to Initial
Resets the object to its initial state.
This tab enables you to apply certain constraints to the particles which affect the object's rigidity. In each case the 'Strength' parameter is only available if the corresponding switch is checked to enable the constraint, and the 'Strength' value controls the strength of the corresponding constraints.
These constraints can be applied to create a range of softbody and rubber effects and will do very little if 'Rigidity' is set to a high value.
Structure Constraints, Strength
These are constraints between polygon edges or spline vertices.
Shape Constraints, Strength
These constraints are set across polygons or across every other spline point.
Vertex-Volume Constraints, Strength
Only available when 'Distribution' is set to 'Volume'. Constraints are then added between each vertex and the closest particles in the object volume.
Volume Constraints, Strength
Only available when 'Distribution' is set to 'Volume'. These constraints link the entire object together, giving a more rigid volume..
This tab contains a list of particle modifiers acting on the emitter used by the xpDynamics tag. You can use it to prevent certain modifiers from acting on the emitter or specifying that only certain modifiers do so.
Drag any modifiers you want to affect into this list. If the modifier has a yellow tick icon, it will act on the emitter; if it has a blue dash icon, it will not do so.
If this switch is checked, only modifiers which are child objects of the same System object as the emitter used by the tag will be excluded or included.
The list of modifiers to be excluded or included.
This tab enables you to alter the visibility and colour of the particles and/or constraints.
If checked, the dynamics particles are shown in the viewport.
If checked, any constraints are shown in the viewport.
Set Particle Color
Checking this switch will allow you to change the colours used for the particles.
These are three colour settings which control the colours used for particles located at the object's vertices, on the surface, and inside the object volume.
How to use the xpDynamics Tag
Unlike a polygon-based dynamics engine, X-Particles uses a particle-based system. The xpDynamics tag will generate particles - we can call them 'dynamic' particles - which are created on the vertices of an object, on a polygon surface, or in an object's volume. These different modes have different uses, depending on the nature of the simulation.
The particles are just ordinary particles except that they remain stuck to the object they are controlling. Once they are generated they can be affected by modifiers in the usual way. For example, they will fall if a gravity modifier is added to the scene.
Important: if you supply an emitter, note that the dynamic particles will all start with a speed of zero, not the speed apparently given to them in the emitter interface.
This is important if you subsequently test the speed of these particles in some way; you might assume their speed is that shown in the emitter, but that is not the case. Their speed depends on whatever is done to start them moving, such as a gravity or turbulence modifier.
Using the tag
Using the tag is very simple.
1. Add the tag to the object to be moved by the dynamics system. When you play the animation, particles are emitted and attached to the object but nothing else will happen, because there is nothing to move the particles, and you need to move the particles to move the object.
2. Now add a Gravity modifier. When you play the animation, the particles fall downwards, taking the object with it.
3. Optionally, add a collider object to act as a floor and attach a Collider tag. Now when the particles attached to the falling object hit the floor object, they will bounce, and so will the object.
That's all there is to it. There is a lot more you can do with the xpDynamics tag, and tutorials on our website will cover some of these actions.
Note that it is not required that you add an emitter to the scene. The tag will create the required particles if an emitter is not provided. But if you want more control over the particles, you can create an emitter and add it to the 'Emitter' link field.
xpDynamics vs. Keyframes
You should note that you cannot move an object using keyframes and X-Particles dynamics at the same time. Results are unpredictable if you try. You can use keyframes up until the point that the xpDynamics becomes active, but while the dynamics are active.