The Data_Channel Modifier uses operators to build its operation stack. These operators all derive from the IDataChannelEngineClass, and are of three types: input, process, and output (although some input operators can be used as process operators). This topic covers the available operator classes.
Input operators query data from the mesh and create a channel to flow down the stack.
Colors the elements of an object based on the stack information, a map, soft selection or vertex colors. Output can be randomized based on hue, luminance and saturation.
Properties:
.inputOption : integerThe color data input, where:
.mapChannel : integerThe map channel, when inputOption = 1.
.map : texturemapThe map, when inputOption = 1.
.vertColorChannel : integerThe Vertex color channel, when inputOption = 0.
.colorOption : integerThe color option, where
.useColors : BooleanIndicates whether to apply colors to luminance.
.color1 : RGB colorThe luminance color 0.
.color2 : RGB colorThe luminance color 1.
.outputChannel : integerThe output VC channel.
.randomize : BooleanIndicates whether to randomize the output.
.unused1 : float.seed : integer.HRand : BooleanIndicates whether the randomizeHPercent value is used.
.SRand : BooleanIndicates whether the randomizeSPercent value is used.
.LRand : BooleanIndicates whether the randomizeLPercent value is used.
.randomizeHPercent : floatThe Hue luminance value.
.randomizeSPercent : floatThe Saturation luminance value.
.randomizeLPercent : floatThe Lightness luminance value.
.useElementCenter : booleanIndicates whether to use the element center when inputOption is 1 (Map).
Copies the geometry’s X, Y, or Z position to the stack to be processed.
.component (Component_Space) : integer
.min : floatThe minimum value.
.max : floatThe maximum value.
.normalize : BooleanIndicates whether to normalize the values.
.space (XYZ_Space) : integerThe space dimension to use, where
.node : nodeThe node from which to take the component space.
Uses the local surface curvature of the mesh to define a float value.
.convex (Convex) : floatThe Curvature convex value.
.flat (Flat) : floatThe Curvature flat value.
.concave (Concave) : floatThe Curvature concave value.
.scale (Scale) : floatThe scale value applied to the convex, flat, and concave values.
.hardEdgesOnly (Hard_Only) : Boolean default: FalseIndicates whether to compute hard edges only.
Uses the mesh's default pose to smooth the mesh when it is deformed while retaining the original detail of the mesh.
.strength : float default: 1.0The strength value.
.iterations : integer default: 10The number of iterations.
.pinBorders : Boolean default: TrueIndicates whether to pin the borders.
.mask : boolean default: FalseIndicates whether to mask with vertex colors.
.maskMapChannel : integer default: 2The map channel to use, if mask is True.
.outputMode : integer default: 0The deform setting, where:
Uses a map to distort the vertex value.
Uses a map to distort the vertex value.
.map (Distort) : texturemapThe map associated with the distort.
.amountBox (Amount) : float default: 1.0The strength value applied to the distort.
.holdTex (Distort) : texturemapInternal and renamed
.holdMat (Distort) : materialInternal and renamed
Adds edge data into the stack.
.input : integerThe Edge Input mode, where:
Adds face data to the stack.
.input : integerSelects the edge input, where:
Uses MAXScript to manipulate a channel's values. Possible return values are float or point3.
.dataType : integerThe output data type, where:
.elementType : integerThe output element type, where:
.script : stringGets or sets the MAXScript file associated with this operator.
Returns a float value based on the distance between a selected node and a mesh vertex or a mesh element.
.node : nodeThe node associated with the operator.
.minRange : float default: 1.0The minimum Radius setting.
.minValue : float default: 1.0The minimum value setting.
.maxRange : float default: 80.0The maximum Radius setting.
.maxValue : float default: 0.0The maximum range value.
.mode : integerThe Influence mode, where:
.hold (Hold_Frames) : integerThe hold time value.
.falloffCurve (Falloff_Curve) : maxObjectThe curve controlling the weight falloff over time. This object is of type CurveControl.
.radiusCurve (Radius_Curve) : maxObject The curve controlling radius over time. This object is of type CurveControl.
.strengthCurve (Strength_Curve) : maxObjectThe curve controlling strength over time. This object is of type CurveControl.
Uses the mesh’s deformation to compute squash and stretch to define a value. These values can be used to drive morph targets within the operator.
.mode : integerThe tension deform mode, where:
.enableDisplay : booleanNot used.
.deformMesh : booleanIndicates whether to deform the mesh.
.stretchColor (Stretch_Color) : colorNot used.
Stretch Adjustment Settings:
.stretch : floatThe stretch value.
.stretchRange (Stretch_Range) : floatThe stretch range
.stretchGrowShrink (Stretch_Grow_Shrink) : floatThe stretch grow/shrink value.
Stretch Deform Settings:
.stretchPush (Stretch_Push) : floatThe stretch deform push value.
.stretchRelax (Stretch_Relax) : integerThe stretch relax value.
.stretchUseMorph : booleanIndicates whether the stretch deform uses a morph target.
.stretchTarget : nodeThe node representing the stretch target.
.stretchMask : booleanIndicates whether to mask with vertex colors.
.stretchMapChannel : integerThe map channel to use for masking when stretchMask is True.
Squash Adjustment Settings:
.squashColor (Squash_Color) : colorNot used.
.squash : floatThe squash amount.
.squashRange (Squash_Range) : floatThe squash range amount.
.squashGrowShrink (Squash_Grow_Shrink) : floatThe squash grow/shrink amount.
Squash Deform Settings:
.squashPush (Squash_Push) : floatThe squash deform push amount.
.squashRelax (Squash_Relax) : integerThe squash relax value.
.squashUseMorph : booleanIndicates whether to use a morph target, indicated by the squashTarget.
.squashTarget : nodeThe squash target, used when squashUseMorph is True.
.squashMask : booleanIndicates whether to mask with vertex colors.
.squashMapChannel : integerThe map channel to use if squashMask is true.
Channel Output Settings:
.outputSquash : booleanIndicates whether to output the squash value.
.outputStretch : booleanIndicates whether to output the stretch value.
Uses channel information from the data channel’s operator stack, soft selection or vertex color to transform the elements’ position, rotation or scale.
.inputChannel : integer default 0Gets or sets the input channel, where:
.transformType : integer default: 3The transform type, where:
Offsets Settings
.XEnable : boolean
.YEnable : boolean
.ZEnable : booleanIndicates whether the x, y, or z offsets are enabled.
.xoffset1 (XOffset) : float
.yoffset1 (YOffset) : float
.zoffset1 (ZOffset) : floatThe minimum x, y or z offset.
.xoffset2 (XOffset) : float
.yoffset2 (YOffset) : float
.zoffset2 (ZOffset) : floatThe maximum x, y, or z offset.
Point at Node Settings
.pointAtNode : booleanIndicates whether to point at a node.
.pointNode : node The node to point to, if pointAtNode is true.
.axisMode : integer The axis mode, where:
.pointElements : boolean Indicates whether to point at individual elements.
Randomize Settings
.randomize : booleanIndicates whether to randomize the data.
.randomize1 (RandomizePercent) : float
.randomize2 (RandomizePercent) : floatThe minimum and maximum randomize settings.
.seed : integer The randomization seed.
.phase : float Controls the speed of the animation of the randomization function.
Allows you to combine an external vector with the stack data.
.space : integer
.dir : integer
.node : node
.x : float
.y : float
.z : float
Uses the mesh's velocity to return a Point3, where the (x,y,z) equates to the motion of the three axes.
.timeOffset (Time_Offset) : integer
.worldSpace (World_Space) : boolean
.noTranslation (No_Translation) : boolean
Uses channel information from the mesh as an input. Channels include, existing map channels, average normal, vertex position and vertex selection values.
.input (Channel) : integer The input type, where:
.internal (Channel_Num) : integer Internal use only, do no use.
.XYZ (Sub_Channel_Num) : integer Indicates the axes to include in the data, where:
.deprecated (Name) : string Deprecated, do not use.
Copies the geometry's position on to the stack to be processed.
.min : float
.max : float The minimum and maximum values to use.
.normalize : boolean Indicates whether to normalize the data.
.space (XYZ_Space) : integer The reference coordinate system to use, where:
.node : node The node to use for the coordinate system, when space = 2.
Process operators modify data by applying operations to the data flowing through the stack.
Limits the value of channel flowing through the stack.
.clampMin (Min) : float
.clampMax (Max) : float
Minimum and maximum clamp values.
Copies the data from one sub object type to another.
.subObject : integer The sub object type to convert to, which corresponds to the selected item position in the Convert To dropdown in the UI, and which depends on the incoming data type. For example, when the incoming data is from the vertex channel, 0 = Edge and 1 = Face.
.vertex : integer When the Convert To target is vertex, this corresponds to the Vertex Channel Type selection, where:
.mapChan : integer When vertex=2 (Map), this indicates the map channel.
Remaps the value of data in the channel based on a curve.
.curve : maxObject The curve object.
.normalize (Normalize) : boolean Engine_Decay (const MAXClass): decay Indicates whether the curve is normalized.
Causes the changes in a channel to persist or decay over time.
Properties:
.decay : float The decay per frame.
.samples : integer The number of record samples.
.smooth : boolean Indicates whether to apply smoothing.
.iterations : integer The number of smoothing iterations, if smooth=true.
.deprecated (Max_Crossing) : integer Deprecated, do not use.
.curve : maxObject The custom decay curve.
.useCurve (Use_Curve) : boolean Indicates whether to apply a custom decay curve.
.resetType : integer The Cache reset type where:
.resetFrame (Reset_Frame) : integer The reset frame, when resetType = 0, "Use Frame For Reset Data".
Interfaces:
DecayProvides access to the Reset() and Record() methods.
Modifies the data based on geometry so that all vertices in an element share the same value.
.mode : integer The data source, where:
Inverts the values in the data channel.
.invert (Invert) : boolean Indicates whether to perform an inversion.
Normalizes the values in a channel to a range.
.normalizeMin (Min) : float
.normalizeMax (Max) : float The minimum and maximum values to normalize to.
.rangeOverride (Use_Range) : boolean
Indicates whether to limit normalization to values in a range.
.rangeMin (Min_Range) : float
.rangeMax (Max_Range) : float
The range minimum and maximum to limit normalization to, if rangeOverride is true.
Converts a Point3 channel to a float channel.
.floatType (Point3_To_Float) : integer
The type of float to convert to, where:
Multiplies a channel by a value.
.scale : floatThe factor by which to scale the channel data.
Smooths the values of a channel based on their neighbor's value.
.iteration : integerThe number of smoothing iterations.
.amount : floatThe smoothing amount to apply.
.deprecated (Geom) : booleanDeprecated parameter, do not use.
Output operators output the stack data back to the mesh.
Outputs the stack data to a specific geometry channel in the mesh.
.output (Channel) : integerThe output data type, where:
.channelNum (Channel_Num) : integerWhen the output type is Map Channel or VData, this is the Channel Number.
.XYZ (Sub_Map_Channel) : integerThe X, Y, or Z setting, when the output type is Position, Vertex Color, Map Channel, or Normals, where:
.deprecated (Channel_Name) : stringDeprecated parameter, do not use.
.replace (Replace_Type) : integerThe replacement method, where:
Outputs the stack face data to the mesh.
.output : integerThe data type to output where:
.type : integerThe type of output operation, where:
Outputs the stack edge data to the mesh.
.output : integerThe data type to output where:
.type : integerThe type of output operation, where: