基于Python的Houdini插件開發(fā)過程詳情
本文以Python開發(fā)為例來進行說明,環(huán)境說明:
- (1) Python 3.x(我用的版本是 3.9 版本)
- (2)IDE開具 PyCharm(我用的版本是 PyCharm Community Edition 2021.3.2)
- (3)Houdini,我安裝的版本是 Houdini 19.0.455
Python相關環(huán)境所在的位置(Shell、Source Editor、Panel Editor)
Shell 就簡單介紹一下。當執(zhí)行 python 代碼時,如果沒有打開 Python Shell,相應的打印會出現(xiàn)在 Houdini Console(桌面右下角)

如果打開了,則打印信息會出現(xiàn)在 shell 窗口

Python Panel Editor,可以創(chuàng)建界面(New Interface),供panel的tab頁簽調用,以及下拉菜單使用

也可以通過先打開Python Panel 后,通過右上角的功能按鈕打開 Python Panel Editor

創(chuàng)建的界面(Interfaces),通過設置便可以在其它tab頁簽中直接調用打開了(按 Apply確認,或者 Accept 確認并關閉窗口)

我們更多需求是在菜單欄上面,自定義很多菜單功能按鈕
比如下面這樣:
(1)創(chuàng)建一個菜單頁簽選項卡(New Shelf)

(2)往選項卡里添加功能按鈕(New Tool)

按鈕被點擊時所執(zhí)行的腳本,在 Script 中進行編寫,常用的還有選項(Options)以及Hotkeys(熱鍵)
(3)我們通過在 Scripts 中重新載入代碼來執(zhí)行 python 文件
一種通過切換 python工程目錄,os.chdir;另外一種方法是通過 sys.path.append追加路徑
import os import sys from imp import reload houdini_tool_path = 'python文件存放的路徑' if houdini_tool_path not in sys.path: ? ? sys.path.append(houdini_tool_path) else: ? ? print(houdini_tool_path + " 存在") import python文件名 reload(python文件名) // todo...(比如執(zhí)行python文件名指定的 run 函數(shù)等)
為了工具更便捷的開發(fā),界面我們采用了 PySide2 進行搭建。
# 升級系統(tǒng)的pip > python –m pip install –upgrade pip # 安裝 PySide2 > ?pip install pyside2
注意創(chuàng)建的是 Widget,以及控件的名稱( Python 代碼通過名稱獲得該控件的引用)

如果想為 Houdini 安裝外部的 python庫,比如pandas,需要用到 get-pip.py文件

弄完UI,我們來看看IDE編碼環(huán)境如何搭建。本文用的是PyCharm編輯器,首先需要設置解釋器路徑為 Houdini 的 Python37目錄

并向解釋器路徑添加以下三個目錄

安裝Houdini Python Support 插件

將新建的 Python 文件保存至指定目錄,以便菜單欄上的按鈕 Script 能加載并執(zhí)行。
剩下主要任務就是編碼,首先找到 ui 界面存放路徑,然后加載界面,綁定界面事件
# coding=utf-8 #
import hou
import os
from PySide2 import QtCore, QtUiTools, QtWidgets
class CreateNodeDemo(QtWidgets.QWidget):
? ? def __init__(self):
? ? ? ? super(CreateNodeDemo, self).__init__()
? ? ? ? # 創(chuàng)建界面
? ? ? ? ui_file_path = 'UI界面存放的路徑'
? ? ? ? self.ui = QtUiTools.QUiLoader().load(ui_file_path, parentWidget=self)
? ? ? ? self.setParent(hou.ui.mainQtWindow(), QtCore.Qt.Window)
? ? ? ? # 綁定界面事件
? ? ? ? self.ui.btn_create.clicked.connect(self.btn_click_handler)
? ? ? ? print('11111111111111111111') ? # 打印日志
? ? def btn_click_handler(self):
? ? ? ? node_name = self.ui.txt_node.text()
? ? ? ? self.create_node(node_name)
? ? def create_node(self, node_name):
? ? ? ? hou.node('/obj/').createNode('geo', node_name)
def run():
? ? win = CreateNodeDemo()
? ? win.show()到此這篇關于基于Python的Houdini插件開發(fā)過程詳情的文章就介紹到這了,更多相關基于Python的Houdini插件開發(fā)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
如何使用?Python為你的在線會議創(chuàng)建一個假的攝像頭
這篇文章主要介紹了使用?Python為你的在線會議創(chuàng)建一個假的攝像頭,在?Python?的幫助下,不再強制開啟攝像頭,將向你展示如何為你的在線會議創(chuàng)建一個假的攝像頭,需要的朋友可以參考下2022-08-08
Python爬蟲的兩套解析方法和四種爬蟲實現(xiàn)過程
本文想針對某一網(wǎng)頁對 python 基礎爬蟲的兩大解析庫( BeautifulSoup 和 lxml )和幾種信息提取實現(xiàn)方法進行分析,及同一網(wǎng)頁爬蟲的四種實現(xiàn)方式,需要的朋友參考下吧2018-07-07

