👆

[TouchDesigner] 共通コードを外部オペレータにまとめる

2020/10/12に公開1

共通するpythonコードをText DATに書いておき、他のオペレータから参照することができる。

外部オペレータに共通コードを記述する方法

Text DATに def を使って関数として記述する。(テキストとして記述)

例:

util (Text DAT)
def print_hoge():
	print('hoge')

共通コードを呼び出す方法

1. modを利用して呼び出す

mod.('外部TextDATのOP名').関数名()で呼び出す。

例:

chopexec1 (CHOP Execute DAT)
def onOffToOn(channel, sampleIndex, val, prev):
	print('Use mod')
	mod('util').print_hoge()
	return

2. importを利用して呼び出す

import 外部TextDATのオペレータ名でインポートし、
外部TextDATのOP名.関数名()で呼び出す。

例:

chopexec2 (CHOP Execute DAT)
import util

def onOffToOn(channel, sampleIndex, val, prev):
	print('Use import')
	util.print_hoge()
	return

注意点

importを使用する方法の場合、Text DATの内容を書き換えても呼び出し側に変更がないと書き換え前のコードが実行されてしまうので注意。
呼び出し側のコードを変更するか、呼び出し側 or Text DAT を一度手動でRunすると反映される。
modを使用した場合、特別な操作なく反映されるため基本的にはmodを使用した方がよさそう。

参考:
https://docs.derivative.ca/Introduction_to_Python_Tutorial#Creating_Internal_Modules_from_DATs

サンプルプロジェクト

https://github.com/poipoi/sample_import

Discussion

waddy_uwaddy_u

トピックを touchdesigne から touchdesigner に修正いただくことを検討ください。