当前位置: 首页 > 工具软件 > TouchTime > 使用案例 >

TouchDesigner常用python语句表达

宦文柏
2023-12-01

Derivative TouchDesigner 是一款基于3D动画和VFX的实时节点的图形生成器。它是一种基于节点的可视化编程语言,它以节点形式构建视觉网络,并集成了许多交互设备组件。TouchDesigner特别擅长实时渲染和交互式项目,它还能够处理生成数字艺术视觉效果。数字艺术有两种不同形式 。一种形式使用Photoshop,sketch,3D建模等数字工具来创作相对传统的艺术作品。另一种形式本质上是计算性的,它涉及到编程算法的,并且通常是互动的。像Casey ReasRefael Lozano-HemmerJim Campbell这样的艺术家创作了没有传统模拟的艺术作品 ,他们常用的工具是ProcessingOpenFrameworksMax / MSP,TouchDesignerVVVV

TouchDesigner最常用表达:

变量:
         me.time.absTime
         root.setVar('variable') #设置一个全局变量
         me.var('variable')#引用一个全局变量
         me.digits
         me.parent().digits
表:
        op('table1')[3,4] = 'hello'
        op('table')[“row”,”col”]
        op('table').numRows
CHOP:
        expression chop ------>me.inputVal >=1
        op('noise')[“chan1”] #设置参数值
        op('noise')[“chan1”].eval()#获取参数值
        op('noise').numSamples #chop样本数
text script:
        op('text1').par.text = “AAA”
        或获取表中数值写入text newText = op(“user_input”)[0,0]. op('text1').par.text = newText
 

TouchDesigner常见命令:

  • 创建OP op('/project1').create(sphereSOP)
  • 创建一个命名的OP op('/project1').create(sphereSOP, 'mysphere')
  • 复制OP节点 op('/project1').copy(op('out1'), 'out2')
  • 删除OP op('mysphere').destroy()
  • 重命名OP op('mysphere').name = 'thesphere'
  • 更改OP的类型 op('mysphere').changeType(boxSOP)
  • 更改多参数OP的参数 s = op('mysphere') s.par.tx = 1 s.par.ty = 2
  • 脉冲参数值 op('moviein1').par.cue.pulse()
  • 执行op op('mysphere').cook()
  • 将OP的数据保存到文件中 op('mysphere').save('sphere.tog')
  • 改变一个OP的渲染显示s = op('mysphere') s.render = True s.display = True
  • .tox文件加载到COMP中 op('/project1').loadTox('geo1.tox')
  • 点击小工具(面板组件) op('slider1').click(.6, .7)
  • 时间线播放/暂停 me.time.play = True/False

TD常见表达式:

  • 获取常数数值,如获取chop→constant—>s中常数speed数值:op(“s”)[“speed”].eval()
  • 修改文字颜色值 op(“text1”).par.fontcolorr = .5 op(“text1”).par.fontcolorg = .1
  • 查询或更改另一个OP的参数,op('mysphere').par.frequency = 10;节点参数要加par,如op("moviefilein1").par.speed = 3
  • 查询同一OP中的参数,me.par.tx
  • 获得OP的上级(父母) parent()
  • 获得OP的上上级(祖父母) parent(2)
  • 获得OP的名字 me.name
  • 获得OP的父母的名字 parent().name
  • 获得OP的类型 type(op('moviein1'))
  • 每帧获得一个唯一的随机数 tdu.rand(absTime.frame+.1)
  • 获得每个编号运算符的唯一随机数 tdu.rand(me.digits+.1)
  • 检查OP是否存在 if op('moviein1'):
  • 获取多输入OP的输入数量 len(op('switch1').inputs)
  • 从OP 获取CHOP通道参数 op('moviein1').width
  • chan1当前帧数值:op('wave1')['chan1'].eval() 或者如果在参数中,只需: op('wave1')['chan1']
  • 获取频道的样本8 op('wave1')['chan1'].eval(8)
  • 获取CHOP频道的数量 op('wave1').numChans
  • 获得CHOP长度 op('wave1').numSamples
  • 从第一个频道获取第三个样本 op('wave1')[0][2]
  • 获取第二个频道的名称 op('wave1')[1].name
  • 获取频道的频道索引 op('wave1')['chan1'].index

TD中常见时间语法:

“绝对时间”是您启动TouchDesigner过程后的时间,不计算电源按钮何时关闭

  • 检索节点的本地帧编号 me.time.frame
  • 以秒为单位检索节点的本地时间 me.time.seconds
  • 检索帧中的绝对时间 absTime.frame
  • 以秒为单位检索绝对时间 absTime.seconds 

TD中持久性全局数据存储与获取:

  • 设置组件存储的值 n.store('keyname', 0.0)
  • 从存储中获取价值 n.fetch('keyname') 

TD中DAT表达:

  • 按索引获取单元格值 op('table1')[2,3]
  • 按标签获取单元格值 op('table1')['r1', 'c1']
  • 按行索引,列标签获取单元格值 op('table1')[2, 'product']
  • 将单元格转换为整数或浮点数 int(op('table1')['month', 3]) float(op('table1')['speed', 4])
  • 获取表行数 op('table1').numRows 
  • 获取表列数 op('table1').numCols
  • 设置单元格值 op('table1')[3,4] = 'hello'
  • op('table1')[2, 'answer'] = 'hello'
  • op('table1')['month', 3] = 'july'
  • op('table1')['r1', 'c1'] = 'abc'
  • 将表复制到另一个表 op('table1').copy(op('fromTable'))
  • 在表中添加一行 op('table1').appendRow(['s1','s2', num])
  • 在表中添加一列 op('table1').appendCol(['s1','s2', num])

 

 

 类似资料: