[PYTHON] Utiliser PySide pour l'interface utilisateur HDA

Aperçu

À partir de Houdini 18.0, vous pouvez utiliser PySide pour l'interface utilisateur HDA. Par exemple, il est possible de créer un outil pour lister et affecter des matériaux en utilisant une telle vue de liste. MatBrowser.gif

Méthode

Utilisez l'éditeur de panneaux Python pour créer PySide de l'interface utilisateur HDA. Pour l'éditeur de panneaux Python, la page suivante sera utile.

Ce qui est écrit ci-dessus est d'incorporer l'interface utilisateur PySide dans le panneau Houdini, mais pour l'appliquer à HDA, cochez ** Afficher dans le volet Paramètres ** et entrez le nom de l'opérateur dans la colonne ** Pour les opérateurs **. Est spécifié.

Le nom de l'opérateur doit être ** <nom du type de réseau> / <nom de l'opérateur> ** ou ** <préfixe> :: <nom du type de réseau> / <nom de l'opérateur> ** si HDA est préfixé comme indiqué dans l'image. Je vais.

Après cela, si vous créez un nœud à partir du menu de l'onglet, il sera affiché avec l'interface utilisateur PySide appliquée.

point important

Veuillez noter que ce fichier Python Panel lui-même doit être placé dans un emplacement lisible. En gros, placez-le dans l'un des éléments suivants, et HDA sera chargé automatiquement si vous le placez dans le dossier ** otls ** de la hiérarchie parent.

À propos, le code utilisé pour Python Panel Editor peut également être utilisé avec des outils pris en charge par PySide tels que Maya. Dans le cas de cet outil, il est nécessaire de réécrire la pièce sur laquelle le matériau est appliqué, mais comme les autres pièces peuvent être utilisées en commun, elle peut être réutilisée.

Passer à l'interface utilisateur normale

Vous pouvez basculer l'affichage de l'interface utilisateur sur PySide ou normal en appuyant sur le bouton de la figure.

À propos, l'interface utilisateur normale du navigateur de matériaux est comme ça. C'est aussi simple que le chemin vers le groupe et le matériel. Dans HDA, même si l'interface utilisateur est définie sur PySide, les informations de paramètre ne peuvent généralement être obtenues qu'à partir de l'interface utilisateur, de sorte que la commande exécutée à partir de PySide crée un matériau dans HDA et utilise la face sélectionnée et le chemin du matériau comme paramètres. Nous faisons le processus de réglage.

problème

À l'origine, si vous voulez obtenir le nœud HDA lui-même avec Python, vous utilisez ** hou.pwd () ** et ** kwargs ['node'] **, mais vous ne pouvez pas l'obtenir du côté PySide. Hmm. Si vous ne pouvez pas faire cela, vous ne pourrez pas spécifier le nœud à cibler lors de l'application du matériau.

Je n'ai pas trouvé de solution à ce problème, c'est donc juste la méthode à laquelle j'ai pensé, mais j'ai enregistré les scripts suivants dans ** OnCreated ** et ** OnLoaded ** de HDA.

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

** OnCreated ** est un script qui est exécuté lors de la création d'un HDA, et ** OnLoaded ** est un script qui est exécuté à l'ouverture d'un fichier de scène.

Ici, ** addEventCallback ** définit ce HDA sur le nœud actuel lorsque l'état du nœud (sélection, indicateurs, etc.) change. C'est assez agressif, mais vous pouvez obtenir un nœud HDA de PySide avec ** hou.pwd () **.

Si vous connaissez un meilleur moyen, faites-le moi savoir ...

Résumé

Voici comment utiliser PySide pour l'interface utilisateur HDA.

Nous n'avons pas encore répondu, il n'y a donc presque pas d'informations ou d'exemples d'implémentation, mais la gamme de choses que vous pouvez faire avec HDA augmentera, alors essayez-le.

En passant, je prévois de changer l'interface utilisateur HDA qui publie des modèles de jeux de Houdini à PySide à l'avenir.

Recommended Posts

Utiliser PySide pour l'interface utilisateur HDA
Un pour Maya UI
Pandas / DataFrame Conseils pour une utilisation pratique
Utiliser Jinja2 pour le moteur de modèle PasteScript
Ensuite, utilisez Python (Flask) pour Heroku!
Utilisez numpy.ndarray pour l'évaluation de plusieurs longueurs
Enquête pour l'utilisation pratique de BlockChain
Web scraping pour les débutants en Python (1)
Web scraping pour les débutants en Python (4) -1
Utiliser Azure AD pour l'authentification Linux
Cas d'utilisation de la définition de fonction imbriquée