MASH ネットワークに影響を与える Python スクリプトを作成できます。新しい Python ノードを作成すると、"md" と呼ばれるクラスに MASH ネットワーク データを読み込んだエディタに、既定のスクリプトが自動的に用意されます。
照会に利用可能なアトリビュートのリストは次のとおりです。
- position
- scale
- rotation
- id
- visibility
たとえば、MASH ネットワークの 5 番目のオブジェクトの位置を照会するには、次のコードを使用できます。
md.position[5]
また、特定の軸を照会することもできます。たとえば、x の値のみを照会するには、次のコードを実行します。
md.position[5].x
注: ID と可視性(Visibility)の配列は、double 値として格納されます。
書き込みに利用可能なアトリビュートのリストは次のとおりです。
- outPosition
- outScale
- outRotation
- outId
- outVisibility
たとえば、5 番目のオブジェクトの Y 位置を設定するには、たとえば、次のコードを使用できます。
outPosition[5].y = 5
同一オブジェクトを非表示にするには、次のコードを実行します。
outVisibility[5] = 0
値 1 は表示を、値 0 は非表示を表します。
ヘルパー関数
特定のタスクを高速に処理する組み込みのヘルパー関数のリストは次のとおりです。
-
count()
- MASH ポイントの数を返します。
-
getFrame()
- 現在のフレーム番号を返します。
-
getFalloffsCount
- Python ノードに接続された減衰オブジェクトの数を返します。
-
getFalloff(int index)
- 指定された減衰オブジェクトの強度のリストを返します。
たとえば、最初の減衰オブジェクトの強度配列を照会するには、次のコードを使用できます。
fallofs=md.getFalloff(0)
次に、次のコードを使用して、ポイント位置に減衰強度を適用できます。
for i in range(count):
md.outPosition[i].x=md.position[i].x*fallofs[i]
md.outPosition[i].y=md.position[i].y*fallofs[i]
md.outPosition[i].z=md.position[i].z*fallofs[i]
-
getVectorArray(string channelName), getDoubleArray(string channelName), getIntArray(string channelName)
- それぞれのタイプの配列として、引数で指定されたチャネルの値を返します。
-
setVectorArray(string channelName, array), setDoubleArray(string channelName, array), setIntArray(string channelName, array)
- 指定された配列の値を使用して、引数で指定されたチャネルの値を設定します。
-
getMatrix(int id)
- id で指定されたポイントの変換行列を返します。
-
setMatrix(matrix, int id)
- id で指定されたポイントに指定した行列を設定します。
高度な関数
Python ノードには inputPoints と outputPoints のアトリビュートがあるため、Waiter と MASH_Repro ノードとの間に Python ノードを手動で追加できます。これにより、次の配列にアクセスできます。
Inputs
- color
- uvTile
- frame
- isAnimated
- velocity
Outputs
- outColor
- outUvTile
- outFrame
- outIsAnimated
- outVelocity