houdini节点网络一键生成代码

 

import hou

def sheng():
shu = hou.pwd().parm('shuliang2').eval()

merge = hou.node('/out/').createNode('merge','yijianxuanran')
# geolist = []
# children = hou.node('/obj/').children()
# for i in children:
# if i.type().name() == 'geo':
# geolist.append(i)
# print(geolist)

for i in range(shu):
#获得参数名----------------------------------------------------
jieming = str('jiedian_' + str(i + 1))
caiming = str('caizhi_' + str(i + 1))
mingming = str('mingzi_' + str(i + 1))
#获得参数值--------------------------------------------------------

d = str(str(hou.pwd().path).split(' ')[-1])#当前路径-----------------------------
e = d.split('/')[:-1]
xiangduizhi = '/'.join(e)

jiezhi = str(hou.pwd().parm(jieming).eval()).replace('..',xiangduizhi)#替换为绝对路径---------------
# print('jiezhi')
caizhi = hou.pwd().parm(caiming).eval()
mingzhi = str(hou.pwd().parm(mingming).eval())
#判定是否重命名-------------------------------------------------------
if hou.pwd().parm(mingming).eval() == '':
jieming = str(jiezhi.split('/')[-1])
else:
jieming = str('OUT_' + mingzhi)
# print(jieming)
#创建节点和赋值--------------------------------------------------------
# for n in geolist:
# if n.name() == jieming:
# n.destroy()
# else:
# pass
geo = hou.node('/obj/').createNode('geo',jieming)
geopath = geo.path()
# print(geopath)
objm = geo.createNode('object_merge',jieming)
mt = hou.node('/out/').createNode('ifd',jieming)
#赋值--------------------------
objm.parm('objpath1').set(jiezhi)
objm.parm('xformtype').set(1)

geo.parm('shop_materialpath').set(caizhi)
mt.parm('vobject').set('')
mt.parm('forceobject').set(geopath)
merge.setInput(i,mt)

#设置节点颜色---------------------------------------------------------------
geo.setColor(hou.Color(0.451,0.369,0.796))

#设置自动关机---------------------------------------------------------
b = hou.node('/out/').createNode('shell')#创建shell节点--------------------------------
nodes = hou.node('/out/').children()#选择节点功能
for n in nodes:#连接-------------------------------------------------------
if n.type().name() == 'merge':
n.setInput(99,b)
b.parm('postrender').set('''import os
os.system("shutdown -s")''')
b.parm('lpostrender').set('python')#设置自动关机功能---------------------------------------
#整理布局------------------------------------------------------------------

hou.node('/obj/').layoutChildren(vertical_spacing=1.5)
hou.node('/out/').layoutChildren(vertical_spacing=1.5)

 

点赞

发表回复

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像