« C4D Python R13 テスト:PythonでXPressoタグを試してみた。#2:ノードのポートを取得 | トップページ | C4D Python R13 テスト:PythonでXPressoタグを試してみた。#4:ポートの変数型を調べる。 »

C4D Python R13 テスト:PythonでXPressoタグを試してみた。#3:ポートの連結

「Python」ノードの記事ではありません…

今回は、ノードのポートを連結してみよう…
C.O.F.F.E.E.ノードを2個で試してみる…

Xpressotag_05

特にC.O.F.F.E.E.ノードでなくても良いんだけどね…

C.O.F.F.E.E.-1の出力とC.O.F.F.E.E.-2の入力1をつなげてみるよ。

GvPortクラスでポートの連結は…

  • Connect(port) #portに連結する。
Python
"""
C4D PythonでXPressoタグを試してみる。
ノードのポートを連結
"""

import c4d
from c4d.modules import graphview


def main():
    #アクティブオブジェクトに取り付けられているXPressoタグの取得
    if not op:return
    xpt = op.GetTag(c4d.Texpresso)
    if not xpt:return
   
    #XPressoタグのノードマスターの取得
    mst = xpt.GetNodeMaster()
    if not mst:return
   
    #ノードの取得
    root_node = mst.GetRoot()
    if not root_node:return
   
    node_1 = root_node.GetDown()
    if not node_1:return
    node_2 = node_1.GetNext()
    if not node_2:return
   
    #node-1の出力とnode-2の入力ポートの取得
    out_port = node_1.GetOutPort(0)
    in_port = node_2.GetInPort(0)
   
    #node-1の出力にnode-2の入力を連結
    out_port.Connect(in_port)


if __name__=='__main__':
    main()
    c4d.EventAdd()

XPressoタグを取り付けたオブジェクトを選択して実行すると、ポートがつながります。

Xpressotag_06

スクリプトを見るとわかりますが、「C.O.F.F.E.E.-1」の0番の出力ポートに「C.O.F.F.E.E.-2」の0番の入力ポートをつないでいます。

試しに、連結されたワイヤーを外し、「C.O.F.F.E.E.-2」の入力ポート「Input1」と「Input2」の順番を入れ替えてみます。

Xpressotag_14

この状態で、同じスクリプトを実行すると…

Xpressotag_15

GUIでのマウス操作で入出力ポートの順番を替えるとPython側でアクセスする順番も素直に変わるようだ…
ポートの追加された順番は関係ないのだろうか…?
たぶん、見た目の順番と同じだろうね…

現在、2個のC.O.F.F.E.E.ノードは追加しただけのプリセットの状態です。
入出力ポートのデータ型は「実数」です。
「C.O.F.F.E.E.-2」の0番目の入力ポートを「マトリックス」データ型に変更します。

Xpressotag_16

「C.O.F.F.E.E.-2」の「Input1」を削除して、新たな「Input1」を「マトリックス」型で追加し順番を入れ替えました。

これで、先ほどと同じスクリプトを実行すると…

Xpressotag_17

「実数」型と「マトリックス」型では、データの受け渡しが出来ないので何も起こらず、連結されません。
GUIでの操作でも、データの受け渡しの出来ないポートは連結が不可能なので、当然の結果と言えるだろう…

つづく…

|

« C4D Python R13 テスト:PythonでXPressoタグを試してみた。#2:ノードのポートを取得 | トップページ | C4D Python R13 テスト:PythonでXPressoタグを試してみた。#4:ポートの変数型を調べる。 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« C4D Python R13 テスト:PythonでXPressoタグを試してみた。#2:ノードのポートを取得 | トップページ | C4D Python R13 テスト:PythonでXPressoタグを試してみた。#4:ポートの変数型を調べる。 »