Data_Channel Modifier はオペレータを使用してオペレーション スタックを構築します。これらのすべてのオペレータは IDataChannelEngineClass から取得され、入力、処理、出力の 3 つのタイプのいずれかとなります(ただし、一部の入力オペレータは処理オペレータとして使用できます)。このトピックでは、使用可能なオペレータ クラスについて説明します。
入力オペレータはメッシュからデータをクエリーして、スタックを下方に移動するチャネルを作成します。
スタック情報、マップ、ソフト選択、または頂点カラーに基づいて、オブジェクトの要素に色を付けます。色相、輝度、彩度に基づいて出力をランダム化できます。
プロパティ:
.inputOption : integerカラー データの入力です。値は次のとおりです。
.mapChannel : integerinputOption = 1 の場合は、マップ チャネルです。
.map : texturemapinputOption = 1 の場合は、マップです。
.vertColorChannel : integerinputOption = 0 の場合は、頂点カラー チャネルです。
.colorOption : integerカラーのオプションです。値は次のとおりです。
.useColors : Boolean輝度にカラーを適用するかどうかを示します。
.color1 : RGB color0 の輝度カラーです。
.color2 : RGB color1 の輝度カラーです。
.outputChannel : integer出力の頂点カラー チャネルです。
.randomize : Boolean出力をランダム化するかどうかを示します。
.unused1 : float.seed : integer.HRand : BooleanrandomizeHPercent 値を使用するかどうかを示します。
.SRand : BooleanrandomizeSPercent 値を使用するかどうかを示します。
.LRand : BooleanrandomizeLPercent 値を使用するかどうかを示します。
.randomizeHPercent : float色相の輝度値です。
.randomizeSPercent : float彩度の輝度値です。
.randomizeLPercent : floatライトネスの輝度値です。
.useElementCenter : booleanIndicates whether to use the element center when inputOption is 1 (Map).
処理するスタックにジオメトリの X、Y、または Z の位置をコピーします。
.component (Component_Space) : integer
.min : float最小値です。
.max : float最大値です。
.normalize : Boolean値を正規化するかどうかを示します。
.space (XYZ_Space) : integer使用する空間の寸法です。値は次のとおりです。
.node : nodeコンポーネント空間を取得する元のノードです。
メッシュのローカル サーフェス曲率を使用して、浮動小数値を定義します。
.convex (Convex) : float曲率の凸型値です。
.flat (Flat) : float曲率のフラット値です。
.concave (Concave) : float曲率の凹型値です。
.scale (Scale) : float凸型、フラット、および凹型の値に適用されるスケール値です。
.hardEdgesOnly (Hard_Only) : Boolean default: Falseハード エッジのみを計算するかどうかを示します。
メッシュが変形されたときに、メッシュの既定のポーズを使用して、メッシュの元の詳細を保持しながらメッシュをスムーズにします。
.strength : float default: 1.0強度の値です。
.iterations : integer default: 10反復回数です。
.pinBorders : Boolean default: True境界を固定するかどうかを示します。
.mask : boolean default: False頂点カラーを使用してマスクするかどうかを示します。
.maskMapChannel : integer default: 2マスクが true の場合に使用するマップ チャネルです。
.outputMode : integer default: 0変形の設定です。値は次のとおりです。
マップを使用して頂点の値を歪めます。
マップを使用して頂点の値を歪めます。
.map (Distort) : texturemap変形に関連付けられたマップです。
.amountBox (Amount) : float default: 1.0変形に適用される強度値です。
.holdTex (Distort) : texturemap内部および名前変更済み
.holdMat (Distort) : material内部および名前変更済み
エッジ データをスタックに追加します。
.input : integerエッジ入力モードです。値は次のとおりです。
スタックに面データを追加します。
.input : integerエッジ入力を選択します。値は次のとおりです。
MAXScript を使用してチャネルの値を操作します。有効な戻り値は、浮動小数点または point3 です。
.dataType : integer出力データのタイプです。値は次のとおりです。
.elementType : integer出力要素のタイプです。値は次のとおりです。
.script : stringこのオペレータに関連付けられた MAXScript ファイルを取得または設定します。
選択したノードとメッシュの頂点またはメッシュの要素との間の距離に基づいて、浮動小数値を返します。
.node : nodeオペレータに関連付けられているノードです。
.minRange : float default: 1.0最小半径の設定です。
.minValue : float default: 1.0最小値の設定です。
.maxRange : float default: 80.0最大半径の設定です。
.maxValue : float default: 0.0最大範囲の値です。
.mode : integer影響モードです。値は次のとおりです。
.hold (Hold_Frames) : integer保持時間の値です。
.falloffCurve (Falloff_Curve) : maxObject時間経過に伴うウェイトの減衰をコントロールするカーブです。このオブジェクトのタイプは CurveControl です。
.radiusCurve (Radius_Curve) : maxObject 時間の経過に伴う半径をコントロールするカーブです。このオブジェクトのタイプは CurveControl です。
.strengthCurve (Strength_Curve) : maxObject時間の経過に伴う強度をコントロールするカーブです。このオブジェクトのタイプは CurveControl です。
メッシュの変形を使用して押し潰しとストレッチを計算し、値を定義します。これらの値は、オペレータ内でモーフ ターゲットを駆動する場合に使用できます。
.mode : integerテンション変形モードです。値は次のとおりです。
.enableDisplay : boolean使用されません。
.deformMesh : booleanメッシュを変形するかどうかを示します。
.stretchColor (Stretch_Color) : color使用されません。
ストレッチ調整の設定:
.stretch : floatストレッチの値です。
.stretchRange (Stretch_Range) : floatストレッチの範囲
.stretchGrowShrink (Stretch_Grow_Shrink) : floatストレッチの拡大/縮小値です。
ストレッチの変形の設定:
.stretchPush (Stretch_Push) : floatストレッチの変形のプッシュ値.
.stretchRelax (Stretch_Relax) : integerストレッチのリラックス値.
.stretchUseMorph : booleanストレッチの変形でモーフ ターゲットを使用するかどうかを示します。
.stretchTarget : nodeストレッチのターゲットを表すノードです。
.stretchMask : boolean頂点カラーを使用してマスクするかどうかを示します。
.stretchMapChannel : integerstretchMask が true の場合にマスキングに使用するマップ チャネルです。
押し潰し調整の設定:
.squashColor (Squash_Color) : color使用されません。
.squash : float押し潰しの量です。
.squashRange (Squash_Range) : float押し潰し範囲の量です。
.squashGrowShrink (Squash_Grow_Shrink) : float押し潰しの拡大/縮小量です。
押し潰し変形の設定:
.squashPush (Squash_Push) : float押し潰し変形のプッシュ量です。
.squashRelax (Squash_Relax) : integer押し潰しのリラックス値です。
.squashUseMorph : booleansquashTarget で指定されたモーフ ターゲットを使用するかどうかを示します。
.squashTarget : nodesquashUseMorph が true の場合に使用される押し潰しのターゲット。
.squashMask : boolean頂点カラーを使用してマスクするかどうかを示します。
.squashMapChannel : integersquashMask が true の場合に使用するマップ チャネルです。
チャネル出力の設定:
.outputSquash : boolean押し潰し値を出力するかどうかを示します。
.outputStretch : booleanストレッチ値を出力するかどうかを示します。
データ チャネルのオペレータ スタック、ソフト選択、または頂点カラーのチャネル情報を使用して、要素の位置、回転、またはスケールを変換します。
.inputChannel : integer default 0入力チャネルを取得または設定します。値は次のとおりです。
.transformType : integer default: 3変換タイプ。値は次のとおりです。
オフセットの設定
.XEnable : boolean
.YEnable : boolean
.ZEnable : booleanX、Y、または Z のオフセットが有効かどうかを示します。
.xoffset1 (XOffset) : float
.yoffset1 (YOffset) : float
.zoffset1 (ZOffset) : floatX、Y または Z の最小オフセットです。
.xoffset2 (XOffset) : float
.yoffset2 (YOffset) : float
.zoffset2 (ZOffset) : floatX、Y または Z の最大オフセットです。
ノード上のポイントの設定
.pointAtNode : booleanノード上のポイントを示すかどうかを指定します。
.pointNode : node pointAtNode が true の場合に示すノードです。
.axisMode : integer 軸モードです。値は次のとおりです。
.pointElements : boolean 個々の要素上のポイントを示すかどうかを示します。
ランダム化の設定
.randomize : booleanデータをランダム化するかどうかを示します。
.randomize1 (RandomizePercent) : float
.randomize2 (RandomizePercent) : float最小および最大のランダム化設定です。
.seed : integer ランダム化シードです。
.phase : float ランダム化関数のアニメーション速度をコントロールします。
外部ベクトルとスタック データを結合できます。
.space: 整数
.dir: 整数
.node: ノード
.x: 浮動小数点
.y: 浮動小数点
.z: 浮動小数点
メッシュの速度を使用して Point3 を返します。(x,y,z)は 3 つの軸のモーションと一致します。
.timeOffset (Time_Offset): 整数
.worldSpace (World_Space): ブール
.noTranslation (No_Translation): ブール
メッシュのチャネル情報を入力として使用します。チャネルには既存マップのチャネル、平均法線、頂点位置、および頂点選択値が含まれます。
.input (Channel) : integer 入力タイプです。値は次のとおりです。
.internal (Channel_Num) : integer 内部専用です。使用しないでください。
.XYZ (Sub_Channel_Num) : integer データに含める軸を指定します。値は次のとおりです。
.deprecated (Name) : string 廃止されました。使用しないでください。
処理対象のスタックにジオメトリの位置をコピーします。
.min : float
.max : float 使用する最小値と最大値です。
.normalize : boolean データを正規化するかどうかを示します。
.space (XYZ_Space) : integer 使用する参照座標系です。値は次のとおりです。
.node : node space = 2 = の場合に座標系に使用するノードです。
処理オペレータはスタック内を下に移動するデータにオペレーションを適用して、データを修正します。
スタック内をフローするチャネルの値を制限します
.clampMin (Min) : float
.clampMax (Max) : float
最小および最大のクランプ値
サブ オブジェクト タイプ間でデータをコピーします。
.subObject : integer 変換先のサブ オブジェクト タイプです。UI の[変換](Convert To)ドロップダウンで選択した項目の位置に対応し、受信データ タイプに応じて変化します。たとえば、受信データが頂点チャネルから送信された場合は、0 = エッジ、1 = 面です。
.vertex : integer [変換](Convert To)のターゲットが頂点の場合は、[頂点のチャネル タイプ](Vertex Channel Type)の選択内容に対応します。値は次のとおりです。
.mapChan : integer vertex=2 (マップ)の場合は、マップ チャネルを示します。
カーブに基づいて、チャネル内のデータの値を再マップします。
.curve : maxObject カーブ オブジェクトです。
.normalize (Normalize) : boolean Engine_Decay (const MAXClass): decay カーブを正規化するかどうかを示します。
チャネル内の変化を時間の経過に伴って持続または減衰させます。
プロパティ:
.decay : float フレームごとに減衰します。
.samples : integer レコード サンプルの数です。
.smooth : boolean スムージングを適用するかどうかを示します。
.iterations : integer smooth=true の場合は、スムージングの反復回数です。
.deprecated (Max_Crossing) : integer 廃止されました。使用しないでください。
.curve : maxObject カスタム減衰カーブです。
.useCurve (Use_Curve) : boolean カスタム減衰カーブを適用するかどうかを示します。
.resetType : integer キャッシュのリセット タイプです。値は次のとおりです。
.resetFrame (Reset_Frame) : integer resetType = 0 (データのリセットにフレームを使用)の場合は、リセットされたフレームです。
インタフェース:
DecayReset() および Record() メソッドへのアクセスを可能にします。
ジオメトリに基づいてデータを修正し、要素内のすべての頂点が同じ値になるようにします。
.mode : integer データ ソースです。値は次のとおりです。
データ チャネル内の値を反転します。
.invert (Invert) : boolean 反転を実行するかどうかを指定します。
このオペレータは、MAXScript を使用してメッシュ チャネル データを操作する方法を提供します。他のオペレータでは提供されていない操作を実行する場合に便利です。
概要
Data Channel モディファイヤがオブジェクトを処理する場合は常に、MAXScript の処理オペレータが引数を指定して呼び出され、処理に使用できるデータと希望の出力オプションが反映されます。関数の形式は次のとおりです。
on Process theNode theMesh inputElementType inputIndexChannel inputDataType inputData outputElementType outputIndexChannel outputDataType outputArray theTime do ( return 1 –- 1 == success; 0 = failure )引数は次のようになります。
theNode: 処理されているオブジェクトを含むノード
theMesh: 処理されているポリゴン メッシュ
inputElementType: 処理されている要素タイプ。これは、前のオペレータの出力によって決まります。種類は次のとおりです。
1: 頂点 2: エッジ 3: 面 4: なし 5: 注意しない
inputIndexChannel: 処理されているデータのインデックス チャネルです。これは、前のオペレータの出力によって決まります。種類は次のとおりです。
1: なし 2: 位置 3: 法線 4: マップ チャネル
inputDataType: 処理されているデータのデータ タイプ。これは、前のオペレータの出力によって決まります。種類は次のとおりです。
1: 整数 2: 浮動小数点数 3: Point3 4: Matrix3 5: 整数配列 6: 浮動小数点数配列 7: Point3 配列 8: Matrix3 配列
inputData: 入力データです。inputDataType に一致します。また、前のオペレータの出力によって決まります。たとえば、inputDataType が 7 の場合、inputData は Point3 配列になります。
outputElementType: スクリプトによって生成される出力データの要素タイプです。これは、ユーザ インタフェースの「出力」グループの「要素タイプ」選択によって決定されます。値は、上記の inputElementType の場合と同じです。
outputIndexChannel: スクリプトによって生成される出力データのインデックス チャネルです。これは、ユーザ インタフェースの「出力」グループの「インデックス チャネル」選択によって決定されます。値は、上記の inputElementType の場合と同じです。
outputDataType: スクリプトによって生成される出力のデータ タイプです。これは、ユーザ インタフェースの「出力」グループの「データ タイプ」選択によって決定されます。値は、上記の inputElementType の場合と同じです。
outputArray: 出力データを含む配列です。配列タイプは outputDataType と一致する必要があり、inputElementType に基づいて適切な長さである必要があります(たとえば、要素タイプが Vertex の場合、配列にはメッシュ内の各頂点の値が含まれている必要があります)。
theTime: 評価が行われている時間です。
既定のスクリプト
オペレータに含まれる既定のスクリプトは、処理の簡単な例を示します。試してみるには、ボックスを作成して、データ チャネル モディファイヤを適用します。
Data Channel モディファイヤの UI で、次のオペレータ演算子をこの順序で追加し、[オペレータを追加](Add Operators)ダイアログボックスを閉じます。
Maxscript の処理オペレータを選択し、出力オプションを次のように設定します。
次に、時間スライダを前後に動かします。ボックスが X 軸に沿って移動し、時間スライダの位置に合わせて X 値が増減します。
リスナーを開くと、スクリプトからの出力が表示され、さまざまな値が印刷されます。
プロパティ
.script : stringスクリプト文字列を取得/設定します。チャネル データを例として処理する既定のスクリプトが提供されます。
.outputElementType : integerスクリプトが出力するデータのタイプです。値は次のとおりです。
.outputDataType : integerスクリプトが生成するデータのタイプです。値は次のとおりです。
.outputIndexChannel : integer出力データのチャネルです(存在する場合)。値は次のとおりです。
チャネル内の値を特定の範囲に合わせて正規化します。
.normalizeMin (Min) : float
.normalizeMax (Max) : float 正規化後の最小値および最大値です。
.rangeOverride (Use_Range) : boolean
正規化を特定の範囲内の値に制限するかどうかを示します。
.rangeMin (Min_Range) : float
.rangeMax (Max_Range) : float
rangeOverride が true の場合は、正規化を制限する範囲内の最小値および最大値です。
Point3 チャネルを浮動小数点のチャネルに変換します。
.floatType (Point3_To_Float) : integer
変換先の浮動小数点のタイプです。値は次のとおりです。
チャネルに値を乗算します。
.scale : floatチャネル データのスケール係数。
近隣の値に基づいてデータ チャネルの値をスムーズにします。
.iteration : integerスムージングの反復数です。
.amount : float適用するスムージングの量です。
.deprecated (Geom) : boolean廃止されたパラメータです。使用しないでください。
出力オペレータは、スタック データをメッシュに出力し直します。
スタック データをメッシュ内の特定のジオメトリ チャネルに出力します。
.output (Channel) : integer出力データのタイプです。値は次のとおりです。
.channelNum (Channel_Num) : integer出力タイプがマップ チャネルまたは VData の場合は、チャネル番号です。
.XYZ (Sub_Map_Channel) : integer出力タイプが位置、頂点カラー、マップ チャネル、または法線の場合は、X、Y、または Z の設定です。値は次のとおりです。
.deprecated (Channel_Name) : string廃止されたパラメータです。使用しないでください。
.replace (Replace_Type) : integer置換方法です。値は次のとおりです。
スタック面データをメッシュに出力します。
.output : integer出力するデータ タイプです。値は次のとおりです。
.type : integer出力オペレーションのタイプです。値は次のとおりです。
スタック エッジ データをメッシュに出力します。
.output : integer出力するデータ タイプです。値は次のとおりです。
.type : integer出力オペレーションのタイプです。値は次のとおりです。