Data_Channel: モディファイヤ

Data_Channel - superclass: modifier; super-superclass:MAXWrapper - classID: #(e11,0)

[データ チャネル](Data Channel)モディファイヤは、エフェクトを作成して、モデリング操作を自動実行するためのツールです。一連のオペレータを通してオブジェクト チャネル データをパイプ処理し、メッシュにエフェクトを適用します。シーン オブジェクトには、ジオメトリ、頂点カラーの設定、ワールド座標、選択、テクスチャ マッピング情報などのアトリビュートを定義するさまざまなデータ サブカテゴリが含まれています。このデータは個別のチャネルに格納されていて、[データ チャネル](Data Channel)モディファイヤでこれらのデータを処理および修正することができます。3ds Max 2017.1 Update 以降で使用可能です。

データ チャネルはオペランドと呼ばれるコンポーネントで操作します。オペランドは[データ チャネル](Data Channel)モディファイヤのスタックに格納されていて、このオペランド スタック内を通過するときにデータが処理されます。オペランドはオペレータ配列内に保持され、オペランドの処理順番(および UI 内の順序)は operator_order 配列で決定されます。

オペレータのクラスについては、「データ チャネル オペレータのクラス」を参照してください。

コンストラクタ

Data_Channel ...

プロパティ

<Data_Channel>.operators array  

オペレータ スタック内のオペランドを参照する ReferenceTarget オブジェクトからなる配列です。スタック内のオペランドが実際に処理される順番は、operator_order 配列に保持されます。

<Data_Channel>.operator_enabled : boolean array

operators 配列内のオペランドに対応するブール値の配列です。対応するオペランドが有効かどうかなどを示します。実際に処理される順番(および[データ チャネル](Data Channel)モディファイヤの UI 内の順番)は、この配列内のオペランドの順番では決まりません。operator_order 配列によって決まります。

<Data_Channel>.operator_ops : int array

operators 配列内の対応するインデックスにあるオペレータをスタック データにどのように適用するのかを示す、整数の配列です。値は次のとおりです。

<Data_Channel>.operator_order : int array

operands 配列内の対応するインデックスにあるオペレータの順番を示す整数の配列です。

<Data_Channel>.display (Enable_Display) : boolean

モディファイヤの結果をビューポートに表示するかどうかを示します。このプロパティは、[データ チャネル](Data Channel)モディファイヤの UI 内の[表示を有効化](Enable Display)プッシュ ボタンの状態に対応します。

<Data_Channel>.operator_frozen (Frozen) : boolean array

operators 配列内の対応するオペランドがフリーズしているかどうかを示すブール値の配列です。このプロパティは、[データ チャネル](Data Channel)モディファイヤの UI 内の[フリーズ] (Freeze)右クリック コマンドに対応します。

ビューポート表示設定

<Data_Channel>.floatDisplay (Float_Display) : integer

スタック内のデータが浮動小数点の配列である場合のデータの表示方法を取得または設定します。有効な値は次のとおりです。

<Data_Channel>.point3Display (Point3_Display) : integer

スタック内のデータは point3 ポイントの配列である場合のデータの表示方法を取得または設定します。

<Data_Channel>.tickSize (Tick_Size) : integer

ティック表示が選択されている場合は、ティックのサイズを取得または設定します。値は次のとおりです。

<Data_Channel>.normalizeDisplay (Normalize_Display) : Boolean

データをカラーに変換する前に正規化するかどうかを取得または設定します。これは、速度のように、データがカラーベースでない場合に便利です。

このプロパティは、[データ チャネル](Data Channel) UI の[表示] (Display)セクション内の[表示を正規化] (NormalizeDisplay)チェックボックスに対応します。

<Data_Channel>.showNumericData (Numeric_Display) : Boolean

ビューポート内の数値表示を有効または無効にします。

このプロパティは、[データ チャネル](Data Channel) UI の[表示] (Display)セクション内の[数値を表示](Show Numeric)チェックボックスに対応します。

<Data_Channel>.minColor (Min_Color) : RGB color
<Data_Channel>.midColor (Mid_Color) : RGB color
<Data_Channel>.maxColor (Max_Color) : RGB color

ソフト選択グラデーション カラーと同様に、データが浮動小数点配列の場合にグラデーションの形成に使用するカラーを取得または設定します。

<Data_Channel>.numeric_max : integer default : 1000

ビューポートで描画する数値の最大数を取得または設定します。数値を描画すると速度が低下し、画面が乱雑になることがあるため、描画を制限することによりパフォーマンスを高めることができます。

このプロパティは、[データ チャネル](Data Channel) UI では公開されていません。

<Data_Channel>.numeric_drawdist : integer default : 100

これは、ビューの中心に配置された境界矩形です。ビューのエッジで数値を非表示にする場合に使用します。

関連インタフェース

Interface: DataChannelModifier

プロパティ:

なし

メソッド:

<integer> <Data_Channel>.NumberOperators()

使用可能なオペレータの総数を返します。注: これは静的な値です。使用可能なすべてのオペレータを反復する場合に使用できます。

numOps = $.modifiers[#Data_Channel].NumberOperators()
for i = 1 to numOps+1 do
(
name = " "
    info = " "
    tt = " "
    idA = 0L
    idB = 0L
    $.modifiers[#Data_Channel].OperatorName i &name
    $.modifiers[#Data_Channel].OperatorTooltip i &tt
    $.modifiers[#Data_Channel].OperatorInfo i &info
    $.modifiers[#Data_Channel].OperatorID i &idA &idB
    print name
    print tt
    print info
    print idA
    print idB
)
<void> <Data_Channel>.OperatorName <index>index <&string>name
name is Out parameter

指定されたインデックスにあるオペレータの名前を name パラメータに保存します。

<void> <Data_Channel>.OperatorInfo <index>index <&string>info
 info is Out parameter

指定されたインデックスにあるオペレータの情報を示す文字列を info パラメータに保存します。

<void> <Data_Channel>.OperatorTooltip <index>index <&string>toolTip
 toolTip is Out parameter

指定されたインデックスにあるオペレータのツールチップを示す文字列を toolTip パラメータに保存します。

<void> <Data_Channel>.OperatorID <index>index <&integer64>idA <&integer64>idb
idA is Out parameter
idb is Out parameter    

指定されたインデックスにあるオペレータの内部クラス ID を idA (PartA)および idB (PartB)パラメータに保存します。

<void> <Data_Channel>.AddOperator <integer64>idA <integer64>idb <integer>whereat

2 つの部分で構成されたクラス ID (PartA および PartB)で指定されたオペレータを、指定したインデックスにある DataChannelModfier のオペレータ配列に追加します。配列の最後に挿入するには -1 を指定します。クラス ID は 16 進数ではなく、long 型の整数値として渡されます。クラス ID は 2 つの方法で取得できます。1 番目の方法は、OperatorID() メソッドを使用して整数形式のクラス ID を取得することです。showClass() メソッドを使用して、結果を 16 進数から 10 進数に変換することもできます。たとえば、showClass "Operator_DeltaMush" などです。

例:

$.modifiers[#Data_Channel].AddOperator 236108612L 0L -1
$.modifiers[#Data_Channel].AddOperator 283192250L 0L -1
$.modifiers[#Data_Channel].AddOperator 2882382387L 0L -1
$.modifiers[#Data_Channel].AddOperator 99L 0L -1

ct = $.modifiers[#Data_Channel].StackCount()
<integer> <Data_Channel>.StackCount()

現在モディファイヤのスタックに格納されているオペレータの数を返します。

<void> <Data_Channel>.StackOperatorName <index>index <&string>name
name is Out parameter

指定されたインデックスにあるオペレータの名前を name パラメータに保存します。

<void> <Data_Channel>.SelectStackOperator <index>index

モディファイヤ内の指定したインデックスにあるオペレータを選択します。

<void> <Data_Channel>.DeleteStackOperator <index>index

モディファイヤ内の指定したインデックスにあるオペレータを削除します。

<void> <Data_Channel>.ReorderStackOperator <index by value array>indexList

indexList 配列に従ってオペレータ スタックを並べ替えます。たとえば、4 つの項目を含むオペランド スタック内で indexList #(3,2,1,0)を指定すると、オペランドの順序が逆になります。

注: このメソッドを使用する場合は注意が必要です。境界チェックが行われず、オペレータの数を変更することができません。
<void> <Data_Channel>.SavePreset <string>name <string>toolTip

現在のオペランド スタックをプリセットとして保存し、名前および toolTip を指定します。パスを指定する必要はありません。データ チャネルのプリセットは、3ds Max インストール ディレクトリの en-US\plugfcg\DataChannelPresets に保存されます。

<void> <Data_Channel>.LoadPreset <string>name

名前で指定されたプリセットをロードします。たとえば、次のように使用されます。

$.modifiers[#Data_Channel].LoadPreset "Dirt Map"
<void> <Data_Channel>.DeletePreset <string>name

名前で指定されたプリセットを削除します。

<integer> <Data_Channel>.PresetCount()

使用可能なプリセットの数を返します。

<void> PresetName <index>index <&string>name
name is Out parameter

指定されたインデックスにあるプリセットの名前を name パラメータに保存します。

<void> PerfTrackingStart()
<void> PerfTrackingEnd()
<void> PerfTrackingReport()

これらの関数はパフォーマンス トラッキング機能を公開します。PerfTrackingStart() は時間データの記録を開始し、PerfTrackingEnd() は停止します。すべてのタイムスタンプは内部に格納されます。PerfTrackingReport() はタイミング データをリスナー ウィンドウに書き込みます。

アクション:

なし