首先電腦上應該安裝了Python,以至於所寫的Python Script能正確執行。
針對大的Project來說,配置Houdini獨立的項目集成工具架以及otl環境變量已成爲迫切的事。比如我現在做的項目名爲BCX_PRO,有一些項目使用到的自定義的otl工具,我希望打開Houdini軟件Shelf上會有我的項目工具架,以及能加載自定義的otl節點。先看看效果圖,再來逐步分析如何做到的。
首先應該想到的是修改houdini.env文件,一般位於路徑
C:\Users\你的賬戶名\Documents\houdini14.0
然後要想到創建的工具.otl後綴文件與工具架.shelf後綴文件應該放在你方便管理的地方,比如公司網盤的某個位置,項目小組都可以訪問的位置。這裏做測試我放在D:/test/otls和D:/test/shelf文件夾中。
.otl文件怎麼做?在哪裏?
.shelf文件怎麼做?在哪裏?CGWorkshops - Python in Houdini老外教程可作參考
獻上Python Script,大家做參考,無非就是改改文件,具體改哪些文件,爲什麼?是需要你思考的。
import os
#SET houdini.env
path = os.path.expanduser('~') + r'\Documents\houdini14.0\houdini.env'
DDG_env = open(path, 'w')
DDG_env.write('\n\n')
DDG_env.write('OTLSPATH=D:/test/otls\n\n')
DDG_env.write('TOOLPATH=D:/test/shelf\n\n')
DDG_env.write('HOUDINI_OTLSCAN_PATH=$OTLSPATH;&\n\n')
DDG_env.write('HOUDINI_TOOLBAR_PATH=$TOOLPATH;&')
DDG_env.close()
#SET ShelfDefinitions.shelf
DDG_shelf = open(r'C:\Program Files\Side Effects Software\Houdini 14.0.201.13\houdini\toolbar\ShelfDefinitions.shelf')
content = ' <memberToolshelf name="BCX_PRO" TAG="True"/>\n'
linelist = DDG_shelf.readlines()
DDG_shelf.close()
file = open(r'C:\Program Files\Side Effects Software\Houdini 14.0.201.13\houdini\toolbar\ShelfDefinitions.shelf', 'w')
for line in linelist:
if 'Create and Refine' in line:
file.write(line)
file.write(content)
elif 'TAG' in line:
file.write('\n')
else:
file.write(line)
file.close()
print('Houdini shelf and environment for BCX_PRO set success!')
os.system('pause')
將Houdini恢復到默認配置script
import os
#SET houdini.env
path = os.path.expanduser('~') + r'\Documents\houdini14.0\houdini.env'
CLEAR_env = open(path, 'w')
CLEAR_env.write('\n')
CLEAR_env.close()
#SET ShelfDefinitions.shelf
CLEAR_shelf = open(r'C:\Program Files\Side Effects Software\Houdini 14.0.201.13\houdini\toolbar\ShelfDefinitions.shelf')
linelist = CLEAR_shelf.readlines()
CLEAR_shelf.close()
file = open(r'C:\Program Files\Side Effects Software\Houdini 14.0.201.13\houdini\toolbar\ShelfDefinitions.shelf', 'w')
for line in linelist:
if 'TAG' in line:
file.write('\n')
else:
file.write(line)
file.close()
print('Houdini shelf and environment clear success!')
os.system('pause')