Transférer les valeurs des paramètres en Python

Houdini a une fonctionnalité qui exécute automatiquement des scripts Python lorsque les paramètres d'un nœud sont mis à jour. Si vous écrivez Python dans le script de rappel dans l'interface d'édition des paramètres, ce Python sera exécuté lorsque la valeur change. bandicam 2019-11-16 21-57-31-466.jpg

Méthode

Puisqu'il n'y a qu'une seule ligne d'espace à écrire dans la colonne Callback Script, définissez une fonction à exécuter quelque part et appelez-la.

Le moyen le plus simple de définir est dans le menu Windows> Ouvrez l'éditeur de source Python et écrivez-y la définition de la fonction bandicam 2019-11-20 10-51-42-016.jpg bandicam 2019-11-16 22-06-49-389.jpg

Si vous écrivez une fonction ici, vous pouvez y accéder depuis hou.session

Par exemple

def func():
    pass

Dans le cas de la définition de fonction, vous pouvez l'appeler avec hou.session.func ()

J'écrirai réellement Ce qui suit est un exemple

#Copier en spécifiant des paramètres
def Send(from_path, to_path, params):
    from_path = hou.nodes(from_path.split())
    to_path = hou.nodes(to_path.split())
    params = params.split()
    for f, t in zip(from_path,to_path):
        for p in params:
            t.parm(p).set(f.evalParm(p))

bandicam 2019-11-16 22-32-19-427.jpg C'est un code qui reçoit le chemin source de la copie et le chemin de destination de la copie sous forme de chaîne de caractères (chaîne) et les copies en boucle avec for

Pour faire fonctionner Houdini avec Python, utilisez les classes et fonctions incluses dans hou. ↓ sera utile hou package https://www.sidefx.com/docs/houdini/hom/hou/index.html

Quoi utiliser lors de l'exploitation d'un nœud ↓ hou.node HOM function hou.nodes HOM function hou.Node class

Quoi utiliser lors de la manipulation des paramètres ↓ hou.parm HOM function hou.Parm class

Par exemple, si vous écrivez ʻa = hou.node ('../ null') , vous pouvez utiliser ce ʻa pour faire fonctionner le nœud de '../ null'. Comme une classe qui hérite du type hou.Node est assignée à ʻa`, la classe hou.Node est utilisée pour l'utiliser. (houdini / hom / hou / Node.html) est bon. Il existe diverses fonctions en classe.

Lors de la manipulation des paramètres, si vous écrivez b = a.parm ('tx'), c'est une classe de type hou.Parm qui est assignée à b, et vous pouvez manipuler les paramètres en utilisant bClasse hou.Parm

Les fonctions souvent utilisées dans la classe hou.Parm sont probablement set et ʻeval` L'écriture de «b.set (888)» met à jour «tx» en «888» Vous pouvez attribuer une valeur telle que «888» à «c» avec «c = b.eval ()»

Au fait, il est redondant d'utiliser ʻaetb, donc si vous écrivez hou.node ('../ null'). Parm ('tx'). Set (888)`, ce sera un coup.

Copier de null1 à null2

Créez des nœuds null1 et null2 et copiez les valeurs

Dans le script de rappel null1, écrivez ce qui suit pour appeler la fonction bandicam 2019-11-16 22-53-26-969.jpg hou.session.Send('.','../null2','t2x t2y t2z')

.'` Est une chaîne représentant le nœud appelant (null1 dans ce cas) `t2x t2y`` t2z` est le nom du paramètre

Quand je mets 0,3 dans t2x de null1, t2x de null2 est également passé à 0,3 bandicam 2019-11-16 21-44-42-466.jpg

Exécuter lorsque le bouton est enfoncé

Dans l'exemple ci-dessus, la fonction a été exécutée immédiatement en changeant t2x, mais vous pouvez également créer un bouton et copier la valeur lorsque l'utilisateur appuie sur le bouton.

bandicam 2019-11-20 10-59-43-402.jpg

Dans ce cas, écrivez le script que vous souhaitez exécuter lorsque vous appuyez sur le bouton dans le script de rappel du bouton. bandicam 2019-11-20 11-03-15-849.jpg

Recommended Posts

Transférer les valeurs des paramètres en Python
Échange de valeurs en Python
Utiliser le magasin de paramètres en Python
Optimisation des paramètres de systole FX en Python
Implémentation de l'estimation des paramètres HMM en python
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Python: valeurs Tips-Swap
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Remplissez les valeurs des variables dynamiques avec 0 en Python
Liste triée en Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Modifier les polices en Python
Motif singleton en Python
Opérations sur les fichiers en Python
Lire DXF avec python
Daily AtCoder # 53 en Python
Séquence de touches en Python
Utilisez config.ini avec Python
Daily AtCoder # 33 en Python