Go to: Related nodes. Attributes.

This node builds the hair structure required by the hairSystem node. It also holds per hair attributes that can be used to override the global hairSystem simulation attributes. It takes an input start and rest position curve as well as a surface and position on that surface. It generates polylines that are then passed to the hairSystem node. The current position from the hairSystem is then passed back to this node as an array of points. The follicle node then turns this array of points into an output nurbs curve for use by other nodes, such as a paint effects stroke.

Node nameParentsMFn typeCompatible function sets
follicleshapekFolliclekBase
kNamedObject
kDependencyNode
kDagNode
kShape
kFollicle

Related nodes

projectCurve, rebuildCurve, detachCurve, attachCurve, extendCurve, insertKnotCurve, curveShape, nurbsCurve, hairSystem

Attributes (54)

The following quick index only shows top-level attributes (too many attributes to show them all): braid, clumpTwistOffset, clumpWidthMult, collide, color (3), colorBlend, curlMult, currentPosition, damp, degree, densityMult, fixedSegmentLength, flipDirection, hairSysGravity, hairSysStiffness, inputMesh, inputSurface, inputWorldMatrix, lengthFlex, mapSetName, outCurve, outHair, outNormal (3), outRotate (3), outTangent (3), outTranslate (3), overrideDynamics, parameterU, parameterV, pointLock, restPose, restPosition, sampleDensity, segmentLength, simulationMethod, startDirection, startPosition, stiffness, validUv

Long name (short name)TypeDefaultFlags
inputSurface (is) nurbsSurfaceNULLoutputinputconnectable
Input surface
inputMesh (inm) meshNULLoutputinputconnectable
Input mesh
inputWorldMatrix (iwm) matrixidentityoutputinputconnectable
Input matrix from mesh or surface
parameterU (pu) double0.0outputinputconnectablestorablekeyable
U parameter value on surface
parameterV (pv) double0.0outputinputconnectablestorablekeyable
V parameter value on surface
startPosition (sp) nurbsCurveNULLoutputinputconnectable
Input start position curve
restPosition (rp) nurbsCurveNULLoutputinputconnectable
Input rest position curve
currentPosition (crp) vectorArrayemptyoutputinputconnectable
Input poly line from hair system node. This is converted to an output nurbs curve.
restPose (rsp) enum0outputinputconnectablestorablekeyable
This specifies how the rest position of the hair used by dynamic computations is determined. It may be straight, based on the start curve position or a separate input curve may be used. "start minus gravity" attempts to compute a rest position based on gravity and the hair stiffness such that the hair is in dynamic equilibrium at the start of the simulation. If "same as start" is used then the hair will fall at the beginning if there is any gravity and the hair is not totally stiff.
pointLock (ptl) enum1outputinputconnectablestorablekeyable
This specifies where the hair is attached relative to the start position. One may constrain the base( like a normal hair), both ends( like a rope attached at either end ), or with no attachments the hair will fall like a loose string that is dropped. One can animate this parameter to detach a hair during a simulation.
simulationMethod (sim) enum2outputinputconnectablestorablekeyable
This specifies how to apply dynamic motion to the hair. If static then no dynamics are computed for the hair, which will appear totally stiff in the start position. Dynamic computes the hair position based on forces and collisions. Passive moves it by interpolating the motion of neighboring dynamic hairs, which can be an efficient way of simulating masses of hair in self collision.
startDirection (sdr) enum0outputinputconnectablestorablekeyable
This determines the initial direction a hair emits from the follicle. This is used when determining rest deflections, as well as when increasing subsegments on the hairsystem. If the restPose is straight and this is set to start curve, the hair will try to assume a straight line based on the first segment of the start curve. If surface normal is selected then the hair would instead move towards a line coming straight out of the surface. IF this is set to surface normal then subsegments in the hairsystem will refine such that the root of the hair is normal to the surface.
flipDirection (fld) boolfalseoutputinputconnectablestorablekeyable
If true then emit the hair from the opposite side of the input surface.
hairSysGravity (hsg) double1.0outputinputconnectablestorablekeyablehidden
The global gravity value from the simulation node. (used by RestPose )
hairSysStiffness (hss) double0.5outputinputconnectablestorablekeyablehidden
The global hair stiffness value from the simulation node. (used by RestPose )
overrideDynamics (ovd) boolfalseoutputinputconnectablestorablekeyable
If true then use the local hair settings rather then the global hairSystem ones
collide (cld) booltrueoutputinputconnectablestorablekeyable
If true then collide this hair with geometry if the global hairSystem has collisions
damp (dmp) double0.0outputinputconnectablestorablekeyable
This overrides the damp on the hairSystem. It can be used to stablize problem hairs.
stiffness (stf) double0.5outputinputconnectablestorablekeyable
The amount the hair can flex with regard to the rest position.
lengthFlex (lfl) double0.0outputinputconnectablestorablekeyable
The amount the simulated hair can stretch along its length.
clumpWidthMult (cwm) double1.0outputinputconnectablestorablekeyable
This scales the hair clump relative to the global hair clump width on the hair system node. If the hair clump width on the hair system is zero, then this parameter will have no effect, as zero times anything is always zero. Note that this will also affect the overall number of hairs within a clump, such that the density per unit remains roughly constant.
densityMult (dml) double1.0outputinputconnectablestorablekeyable
This scales the number of hairs relative to the global hair per clump on the hair system node. If the hairs per clump on the hair system is zero, then this parameter will have no effect, as zero times anything is always zero.
curlMult (cml) double1.0outputinputconnectablestorablekeyable
This scales the curl rate relative to the global hair curl attribute on the hair system node. If the curl on the hair system is zero, then this parameter will have no effect, as zero times anything is always zero.
clumpTwistOffset (ctf) double0.0outputinputconnectablestorablekeyable
This affects the rotation of the individual hair clump about the central hair axis. This adds onto the global twist defined on the hair system node. If the twist on the hair system is zero, then this parameter will have no effect, as zero times anything is always zero.
braid (brd) boolfalseoutputinputconnectablestorablekeyable
If true then the clump is split into 3 sub groupings that are braided.
colorBlend (cbl) double0.0outputinputconnectablestorablekeyable
This allows one to have a different base color per hair clump. The attribute value determines the proportion the global color is is blended with the local color attribute. If the value is zero than the hair color is determined by the global hair color on the hair system node. If the value is 1.0 then the color is entirely the color attribute on this node. In between values blend between the two values.
color (cl) float3outputinputconnectablestorable
input color
colorR (cr) float0.0outputinputconnectablestorablekeyable
color Red value
colorG (cg) float0.0outputinputconnectablestorablekeyable
color Green value
colorB (cb) float0.0outputinputconnectablestorablekeyable
color Blue value
fixedSegmentLength (fsl) bool0outputinputconnectablestorablekeyable
Toggles how input curves are sampled. When this attribute is on, segmentLength attribute is used to determine the number of CVs sampled on the input curve. When the value is false, sampleDensity is used to compute the number points sampled.
segmentLength (sgl) distance (double)1.0cmoutputinputconnectablestorablekeyable
Specifies how long each segment on the hair should be. This is another way of sampling the input curve, used when fixedSegmentLength is on. Using a fixed segment length can provide more realistic hair simulation when the length of the hair varies across the same hair system. Setting a consistent segment length across all hairs will make longer hai rs have more CVs and shorter hairs have less CVs.
sampleDensity (sdn) double1.0outputinputconnectablestorablekeyable
This controls the number of points to sample along the input start and rest position curves when generating the outHair to pass to the simulation node. A value of one will cause the simulation hair to have the same number of poly line segments as the curve has cvs. A value of 2.0 will will double the number of segments, while a value of 0.0 will result in a single segment. This can dramatically affect the speed and quality of the simulation.
degree (dgr) integer2outputinputconnectablestorablekeyable
The degree of the final generated output curve.
outTranslate (ot) double30.0, 0.0, 0.0outputconnectable
world position of hair base
outTranslateX (otx) distance (double)0.0cmoutputconnectable
X value of outTranslate
outTranslateY (oty) distance (double)0.0cmoutputconnectable
Y value of outTranslate
outTranslateZ (otz) distance (double)0.0cmoutputconnectable
Z value of outTranslate
outRotate (or) double30.0, 0.0, 0.0outputconnectable
world rotation of hair base
outRotateX (orx) angle (double)0.0degoutputconnectable
X value of outRotate
outRotateY (ory) angle (double)0.0degoutputconnectable
Y value of outRotate
outRotateZ (orz) angle (double)0.0degoutputconnectable
Z value of outRotate
outTangent (otn) double31.0, 0.0, 0.0outputconnectable
twist vector at hair base
outTangentX (otnx) distance (double)1.0cmoutputconnectable
X value of outTangent
outTangentY (otny) distance (double)0.0cmoutputconnectable
Y value of outTangent
outTangentZ (otnz) distance (double)0.0cmoutputconnectable
Z value of outTangent
outNormal (onm) double30.0, 0.0, 1.0outputconnectable
normal at hair base with elevation and azimuth applied
outNormalX (onx) distance (double)0.0cmoutputconnectable
X value of outNormal
outNormalY (ony) distance (double)0.0cmoutputconnectable
Y value of outNormal
outNormalZ (onz) distance (double)1.0cmoutputconnectable
Z value of outNormal
outHair (oha) hairCurveNULLoutputconnectable
output hair data for use by hairSystemShape node
outCurve (ocr) nurbsCurveNULLoutputconnectable
output hair data for use by hairSystemShape node
validUv (vuv) booltrueoutputconnectable
If false then the specified uv for input mesh is not currently defined.
mapSetName (msn) stringNULLoutputinputconnectablestorable
The Name of the mapset of the poly on which follicle is present