Python

MASH ネットワークに影響を与える Python スクリプトを作成できます。新しい Python ノードを作成すると、"md" と呼ばれるクラスに MASH ネットワーク データを読み込んだエディタに、既定のスクリプトが自動的に用意されます。

照会に利用可能なアトリビュートのリストは次のとおりです。

たとえば、MASH ネットワークの 5 番目のオブジェクトの位置を照会するには、次のコードを使用できます。
md.position[5]
また、特定の軸を照会することもできます。たとえば、x の値のみを照会するには、次のコードを実行します。
md.position[5].x
注: ID と可視性(Visibility)の配列は、double 値として格納されます。

書き込みに利用可能なアトリビュートのリストは次のとおりです。

たとえば、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

Outputs