Clump Modifier
Clump Modifier attracts groups of hairs together to produce distinct clumps. You can control how these clumps are generated, where they are placed, and how the hairs are attracted to them. Each clump is defined by it's center stem. When the clump node is first added a few random clumps are automatically generated on the hair.
The clumping is performed on currently visible hair inside the viewport. Any hair which is later added (for example, if you increase input hair count or during rendering) will use the hairs which were present during clump generation as guides. Closest guide clump hairs will be used to determine which clump the final hair belongs to.
Modifying the clumps after changing the viewport hair positions or count will not affect previous clumping, it will merely use the currently visible viewport hair to generate and update the internal clump guide hairs. This process is invisible to the user, however, it is important to understand this because having more hairs in viewport during clump generation and editing will produce more precise and detailed clump borders.
Generating clumps
Clumps need to be generated manually by selecting a method for generation and clicking the Create Clumps button. Once they are generated they will remain until you either edit them or delete them. The generated clump data will remain stored with the modifier.
- If you use the Create Clumps button without selecting clump hairs or clumps then all hair will be clumped using selected clumping method
- If you use the Edit Clump Hairs tool to select some hairs and then press the Create Clumps button then only the selected hairs will be clumped
Deleting clumps
You can delete a part of a clump or whole clumps at once using the Delete Clump(s) button:- If you use the Delete Clumps button without selecting clump hairs or clumps then all clumps on current hair object will be removed
- If you use the Edit Clump Hairs tool to select some hairs and then press the Delete Clumps button then the selected hairs will be de-clumped. This means that the current clump modifier will have no effect on them until you clump them again.
- If you use the Edit Clumps tool to select some clumps and then press the Delete Clumps button then the hairs belonging to selected clumps will be de-clumped. This means that the current clump modifier will have no effect on them until you clump them again.
Once a clump is deleted you can re-clump the de-clumped hairs at any time by selecting them and pressing the Create Clumps button again.
Clumping to guides
You can create clumps based on the guides which were used to generate the hair. For this you need to have a Hair from Guides modifier below Clump modifier in the hair stack. If the hair was not created from guides, for example if Hair from Mesh Strips or Baked Hair modifiers are used, then this method of clump generation will not work.
To clump hairs to guides:- In Create Clumps rollout set Generation Method dropdown to Guides
- Click Create button
When the hair guides change shape (for example, when they are animated) the clumps will automatically follow their shape as long as the Clump Create Method is set to Guides.
If the hair guide count or positions change the clumps will not automatically update. You need to click Create Clump(s) again to manually update clumps when guide count changes.
Clumping to external strands
You can create clumps from another hair or guides shape in the scene. The clumps will be created to match the position and shape of the target "external" strands. This is useful when you want to create a separate set of guides, independent from current hair, to define clumps on your character. This also allows fine control over clump placement and density since you can control these parameters in a separate Guides from Mesh modifier (located in a separate shape).
It is important that the "external" guides or hair shape is located under the same transform as the shape which has the Clump modifier. In other words, the external strands are assumed to be in the same object space as the resulting clumps.
To clump hairs to external strands:- In Modify Panel set Clump Create Method parameter to External Clump Strands
- Under External Clump Strands controls, click the Assign External Clump Strands button
- Click on the strands or hair shape which you want to use for clumps inside a viewport. If everything is correct you will see its name in the field above Assign External Clump Strands button
- Click Create Clump(s) button
When the external strands change shape (for example, when they are animated) the clumps will automatically follow their shape changes as long as the Clump Create Method is set to External Clump Strands.
If the strand count or root positions of external strands change the clumps will not automatically update. You need to click Create Clump(s) again to manually update clumps in that case.
Creating sub-clumps
Through a specially designed workflow Clump modifier allows you to create smaller clumps within larger ones, to create an effect we call "sub-clumping". This may be useful to simulate fur where smaller bits of hair are stuck together inside larger clumps.
To achieve sub-clumping you need to stack two Clump modifiers on top of one another. The modifier on the bottom is responsible for creating the larger clumps, and the one at the top generates smaller clumps within the already clumped hair. Thus the Clump modifier on the bottom needs to generate a small amount of clumps and the one on the top needs to generate a much larger count. It is up to you how the clumps are generated, whether it be randomly, with groups, or through guides, this is not important for this process.
If you do this without any other steps you will notice that the top Clump modifier will generate some clumps such that hairs in them jump between the larger existing clumps. This is not desired because it destroys the clumps formed by the Clump modifier on the bottom.
To combat this a clump region Guide Channel needs to be generated by the modifier on the bottom and used by the modifier on the top. This will ensure that the hair jumping problem described above will not happen.
To create sub-clumps:- Add a Clump modifier and generate a set of clumps, for example using Random clumping method
- In Attribute Editor enable the Add Clump Index Channel option. This will generate a new per-strand channel where each strand is assigned an integer value depending on which clump it belongs to.
- Add another Clump modifier on top of the current one and generate another larger set of clumps. These will be the sub-clumps within the main ones.
- In Attribute Editor select the "ClumpIds" channel in Region Channel drop down
The resulting smaller clumps will now be contained within the larger clumps defined by the modifier on the bottom.
Parameters
Clumping Settings
These parameters control clumping globally. There is also a Selected Clump Settings category (see below) with a sub-set of these parameters which allows customizing individual clumps.
- Strand Group
Strand group pattern to which this modifier will be applied. If empty all strands will be affected. - Random Seed
Controls the randomness of this modifier's results. Change this value to modify the output. - Amount
Specifies the strength of clumping. Hairs will be attracted to the center of their clump more or less based on this value.- Amount Ramp, Multiplier, and Channel
Provides clumping amount control along strand length and distribution surface based on a curve, map, or a guide channel.
- Amount Ramp, Multiplier, and Channel
- Preserve Strand Length
When true the input hair strand lengths will not be modified during clumping. - Attract to Closest Stem Point
When true the closest point on clump stem for each hair point will be used to calculate the clumping amount and other length-varying parameters. Use this option when "Preserve Strand Length" in on for better results. - Set Guide Clump Shapes
When on, the guides shapes will be used to define the clump stems. Otherwise, guides will only be used to define clump roots. This option is only applicable if clump creation mode is set to Guides or External Guides. - Root Blending Position
When this value is non-zero the strand shapes will be linearly blended from root to this position, between their original and clumped shapes. This is done to avoid roots becoming unglued from the distribution mesh when using an option like Round Clumps. - Round Clumps
When on, the clump profiles will be forced to be circular. This is useful when doing braiding to avoid intersections of individual clump stems. - Twist
Controls how much strands are twisted around the clump center. Negative values will twist counter-clockwise, otherwise twisting will be clockwise.- Twist Ramp, Multiplier, and Channel
Provides twisting control along strand length and distribution surface based on a curve, map, or a guide channel.
- Twist Ramp, Multiplier, and Channel
- Flyaway Fraction
Controls the fraction of hairs which will randomly not be clumped - Flyaway Amount
Controls the amount of clumping for flyaway hairs - Set Clump Size
When on, the profile of clumps will be forced to be this size (at places where Amount value is 1). This allows you to precisely control how big clumps are in absolute values to each other and is useful for braid stems. - Clump Size
When Set Clump Size is on, this sets the absolute clump profile diameter.- Clump Size Ramp
Controls the clump size along clump's length
- Clump Size Ramp
- Region Multiplier and Channel
Clump region map or channel provide an explicit way of specifying which hairs should be clumped together. When generating clumps, new clumps will only be formed within the regions of the map or channel having the same values. Map can be color.
This parameter can be used in conjunction with another Clump modifier's Add Clump Index Channel parameter (which generates the region map) to create sub-clumps which are clumps existing entirely within other bigger clumps. - Add Clump Index Channel
When on, a new per-strand channel containing hair clump indices will be added. Useful for sub-clumping. - Clump Pattern Rotation
Specifies the rotation value around a clump's stem for clump patterns
Clumping Space
These parameters determine in which space the clumps will be calculated. The chosen space matters because it will affect the assignment of hairs to their respective clumps. For example, in world space hairs will be assigned to clumps based on physical distance while in UV/surface space they will be assigned based on distance along a character's surface. However, UV space requires your base surface to have well defined texture coordinates.
- Use UV Space
Off by default. When on, UVs will be used to determine clump assignments. This will make clump calculation independent of a character's pose, but it also requires your character to have well defined UVs. - UV Channel
0 by default. Specifies the texture of the UV channel to use when Use UV Space option is on.
Clump Creation
- Clump Create Method
Specifies how clumps will be created when pressing the Create Clump(s) button. - Clump Count
Specifies number of clumps to be created when pressing the Create Clump(s) button. - Create Clumps
Use this button to create or update clumps manually
Clump Patterns
This feature allows you to manually or procedurally design the shape of the clumps. A list of patterns created using Braid Guides Object or any guide object can be used for clumping. In the following image a Braid Guides Object object was used to create a pigtail and assigned to the Clump modifier to create some braiding.
- Global Clump Patterns
A list of currently used clump patterns. The order of patterns in this list matters because any per-clump pattern selections will reference it. - Pattern List
These are the patterns, selected from the global Patterns list, which will actually be used globally on clumps which don't have a per-clump pattern specification (see below).
Selected Clump Settings
These parameters allow specifying parameters which will only apply to currently selected clumps. Use these values to customize individual clumps.
Reset Clumps
If you press this button the settings for currently selected clumps will be reverted back to global values.
Amount Override and Ramp
Specifies per-clump Amount values.
Twist Override and Ramp
Specifies per-clump Twist values.
Pattern Indices Override
Specifies per-clump Patterns. These are selected from the global Patterns list (see above).
MaxScript Access
All of the properties of the Clump modifier can be set via its parameter block in MaxScript. It also exposes the following functions to be able to manage clumps:
-- Generates clumps on all hair or selected hairs using currently specified method
clumpModifier.CreateClumps()
-- Deletes selected or all clumps
clumpModifier.DeleteClumps()
-- Resets any per-clump settings for selected clumps or all clumps
clumpModifier.ResetSelectedClumps()
C++ Access
To access clump management functions of this modifier through our C++ SDK please use the ClumpModifierFPInterface
class found in the Ornatrix SDK.