[PYTHON] Verwenden Sie PySide für die HDA-Benutzeroberfläche

Überblick

Ab Houdini 18.0 können Sie PySide für die HDA-Benutzeroberfläche verwenden. Mit einer solchen Listenansicht ist es beispielsweise möglich, ein Tool zum Auflisten und Zuweisen von Materialien zu erstellen. MatBrowser.gif

Methode

Verwenden Sie den Python Panel Editor, um die HDA-Benutzeroberfläche PySide zu erstellen. Für den Python Panel Editor ist die folgende Seite hilfreich.

Was oben geschrieben wurde, ist, die PySide-Benutzeroberfläche in das Houdini-Bedienfeld zu integrieren. Um sie jedoch auf HDA anzuwenden, aktivieren Sie ** Im Parameterbereich anzeigen ** und geben Sie den Operatornamen in die Spalte ** Für Operatoren ** ein. Angegeben.

Der Betreibername sollte ** / ** oder ** <Präfix> :: / ** sein, wenn HDA wie in der Abbildung gezeigt vorangestellt ist. Ich werde.

Wenn Sie danach einen Knoten über das Registerkartenmenü erstellen, wird dieser mit der angewendeten PySide-Benutzeroberfläche angezeigt.

wichtiger Punkt

Bitte beachten Sie, dass diese Python Panel-Datei selbst an einem lesbaren Ort abgelegt werden muss. Fügen Sie es grundsätzlich in eine der folgenden Optionen ein, und HDA wird automatisch geladen, wenn Sie es in den Ordner ** otls ** der übergeordneten Hierarchie einfügen.

Der für Python Panel Editor verwendete Code kann übrigens auch mit von PySide unterstützten Tools wie Maya verwendet werden. Bei diesem Werkzeug muss das Teil, auf das das Material aufgetragen wird, neu geschrieben werden. Da die anderen Teile jedoch gemeinsam verwendet werden können, kann es wiederverwendet werden.

Wechseln Sie zur normalen Benutzeroberfläche

Sie können die UI-Anzeige auf PySide oder normal umschalten, indem Sie die Taste in der Abbildung drücken.

Übrigens ist die normale Benutzeroberfläche von Material Browser so. Es ist so einfach wie der Weg zur Gruppe und zum Material. In HDA können Parameterinformationen normalerweise nur von der Benutzeroberfläche abgerufen werden, selbst wenn die Benutzeroberfläche auf PySide eingestellt ist. Daher erstellt der von PySide ausgeführte Befehl ein Material in HDA und verwendet die ausgewählte Fläche und den ausgewählten Materialpfad als Parameter. Wir machen den Prozess des Einstellens.

Problem

Wenn Sie den HDA-Knoten selbst mit Python abrufen möchten, verwenden Sie ursprünglich ** hou.pwd () ** und ** kwargs ['node'] **, aber Sie können ihn nicht auf der PySide-Seite abrufen. Hmm. Wenn Sie dies nicht tun können, können Sie beim Anwenden des Materials nicht angeben, auf welchen Knoten Sie abzielen möchten.

Ich habe keine Lösung für dieses Problem gefunden, daher ist dies nur die Methode, an die ich gedacht habe, aber ich habe die folgenden Skripte in ** OnCreated ** und ** OnLoaded ** von HDA registriert.

def set_current_node(node, event_type, **kwargs):
    hou.setPwd(node)
node = kwargs['node']
node.addEventCallback((hou.nodeEventType.AppearanceChanged, ), set_current_node)

** OnCreated ** ist ein Skript, das ausgeführt wird, wenn ein HDA erstellt wird, und ** OnLoaded ** ist ein Skript, das ausgeführt wird, wenn eine Szenendatei geöffnet wird.

Hier setzt ** addEventCallback ** diesen HDA auf den aktuellen Knoten, wenn sich der Status des Knotens (Auswahl, Flags usw.) ändert. Es ist ziemlich aggressiv, aber Sie können mit ** hou.pwd () ** einen HDA-Knoten von PySide erhalten.

Wenn Sie einen besseren Weg kennen, lassen Sie es mich bitte wissen ...

Zusammenfassung

So verwenden Sie PySide für die HDA-Benutzeroberfläche.

Wir haben noch nicht geantwortet, daher gibt es fast keine Informationen oder Implementierungsbeispiele, aber die Auswahl an Dingen, die Sie mit HDA tun können, wird zunehmen. Probieren Sie es also aus.

Übrigens plane ich, die HDA-Benutzeroberfläche, die Modelle für Spiele von Houdini auf PySide veröffentlicht, in Zukunft zu ändern.

Recommended Posts

Verwenden Sie PySide für die HDA-Benutzeroberfläche
Eine für Maya UI
Pandas / DataFrame-Tipps für den praktischen Gebrauch
Verwenden Sie Jinja2 für die PasteScript-Vorlagen-Engine
Verwenden Sie als nächstes Python (Flask) für Heroku!
Verwenden Sie numpy.ndarray für die Auswertung mehrerer Längen
Untersuchung zur praktischen Anwendung von BlockChain
Web Scraping für Anfänger in Python (1)
Web Scraping für Anfänger in Python (4) -1
Verwenden Sie Azure AD für die Linux-Authentifizierung
Anwendungsfälle für die Definition verschachtelter Funktionen