ダークサイドにようこそ!

限界クリエイターのブログ

【TouchDesigner】動的に更新され続けるTable DAT の内容を書き換えたい

Blob Track TOP の下にくっ付いてくるInfo DAT の中身をちょい書き換えたいとなりました。DAT Execute のonTableChange(テーブルの中身が更新されるたびに呼ばれる) でやろうとしたのですが、テーブルの編集はできません的なエラーが出てしまいました。どうやら一部のDAT(他にFile In など)は、編集するテーブルのOPをロック状態(OP左側の鍵マーク)にしないといけないようです。これはPythonで以下のように書けます。

op('table').lock = 1  # 1でロック、0でアンロック

# テーブルの中身を書き換える処理

 

でもテーブルの中身を更新され続けるようにするにはロックを解除しないといけません。ただそうすると、新しく入ってきた値で書き換えた内容も消えてしまいます。そこで、書き換えたいテーブルの中身を他のTable DAT にコピーし、そのDATに対して編集するようにしました(トップ画像のようにtext列の値の先頭に"id_"を付けるみたいな)。これだとロック状態を気にする必要はありませぬ。コピーは以下のようにできます。

def onTableChange(dat):

    op('blob_out2_edited').copy(dat)

    # テーブルの中身を書き換える処理

 

参考。

brendandawes.com

 

その他。

hahaeatora.hateblo.jp