[PYTHON] Qu'y a-t-il dans le paramètre? Modifier la chaîne et l'expression

Cet article est le deuxième jour du calendrier de l'Avent Houdini 2016.

Les valeurs ne sont pas les seuls paramètres

Un paramètre n'est-il pas juste une valeur? Je ne sais pas pourquoi il n'a pas de valeur ou il devient vert!

Expression Le vert est l'état où les paramètres sont contrôlés par Expression. ▼ $ F à titre d'exemple 00.png

Immédiatement après avoir saisi l'expression, une couleur gris blanchâtre sera ajoutée après l'étiquette ("Taille" dans la figure ci-dessus). Cela indique que la valeur calculée est passée à l'affichage Expression. Expression → Cliquez sur Étiquette pour en faire une valeur calculée (un clic droit et une expression de bascule sont également possibles) ▼ Gauche: valeur calculée Droite: Expression 1.6.png

▼ En complément ... Toggle Expression est possible même s'il ne s'agit pas d'une expression ou d'une variable. Attention aux erreurs en virgule flottante. 1.7.png

▼ À partir de Houdini 15 environ, @ peut également être utilisé comme paramètre (Cependant, les types d'attributs qui peuvent être utilisés varient en fonction du nœud. Par exemple, seul l'attribut Détail peut être utilisé dans le nœud de transformation. En revanche, pour le nœud de point exécuté pour chaque point, le point tel que @Px l'attribut est disponible) 2s.png

La valeur par défaut est HScript (vert), vous pouvez la changer en Python. Si vous changez la marque H à côté de la marque d'engrenage en Python, elle deviendra rouge au lieu de verte. Je vois, Python est rouge! Ne pense pas. Cela n'a pas encore changé. Vous ne pouvez obtenir Python qu'en cliquant avec le bouton droit sur un paramètre et en effectuant Change Language Python. Oui, le vert et le rouge étaient les couleurs pour trouver la marque HScript affichée en haut à droite, ou celle correspondant à la marque Python. ▼ En python, les variables locales peuvent être utilisées comme lvar ("TX2"). (Exceptionnellement, le préfixe hou. Peut être omis) 5s.png

Modifier l'expression avec plusieurs lignes

Si vous souhaitez placer plusieurs lignes dans le paramètre, entrez-le avec ctrl + E ou cliquez avec le bouton droit et Modifier l'expression. Mais sans réfléchir Si vous entrez ce qui suit, une erreur se produira. ▼ Par exemple, si vous souhaitez donner une valeur de 1 uniquement dans une image

if($F==1){
    return 1;
}

3.1.png

La raison de l'erreur est qu'il n'y a pas de {} pour englober le tout. Donc

{
 if($F==1){
     return 1;
 }
}

Cela fonctionnera.

Edit String Certains paramètres ne nécessitent pas de parenthèses. C'est le paramètre String. Paramètres de chaîne fréquemment utilisés Par exemple, groupe, fichier, Wrangle. 4.1.png

Cependant, il y a des moments où vous souhaitez également utiliser Expression avec String. Dans ce cas, utilisez \ {} \. Même s'il s'agit d'un type String, la partie entourée par \ `(back quote) fonctionne comme Expression. ▼ Zéro remplissage lors de la sortie d'un fichier

$HIP/file_`padzero(4, $F)`.bgeo

▼ Lorsque vous souhaitez générer un groupe (Hello) uniquement à 1 image

`{
 if($F==1){
  string foo = "Hello";
  return foo;
 }
}`

Un dernier. Quand allez-vous l'utiliser! Cela ressemble à, mais une autre conversion est nécessaire pour mettre une valeur dans le paramètre d'expression en utilisant de force des guillemets.

atof("`{return 1;}`")

Fonction d'expression fréquemment utilisée

http://www.andynicholas.com/?p=1344 C'est en rapport avec.

une fonction La description
ch(parameter path) Récupère la valeur actuelle du paramètre
chf(parameter path,flamme) 特定のflammeでパラメータの値を取得します
stamp(copySOP path,Variable de timbre,Valeur par défaut) Variable de timbreの現在の値を取得
point(SOP path,Numéro de point,attribute,index) Obtenir l'attribut de point
prim(SOP path,Numéro de point,attribute,index) Obtenir l'attribut primitif
clamp(value,min,max) Valeur comprise entre les valeurs minimales et maximales
fit(value,min,max,newmin,newmax) Remapper les anciennes valeurs de plage vers la nouvelle plage et la nouvelle pince
fit01(value,newmin,newmax) fit()Identique à, la valeur est de 0 à 1
smooth(value,min,max) Valeur lissée entre 0 et 1 du minimum au maximum
noise(x,y,z) bruit
rand(seed) nombre aléatoire
length(x,y,z) Longueur du vecteur
distance(x1,y1,z1,x2,y2,z2) Distance entre deux points
bbox(SOP path,dimension type) Boîte englobante(dimension type:D_XMIN, D_YMIN, D_ZMIN, D_XMAX, D_YMAX, D_ZMAX, D_XSIZE, D_YSIZE, D_ZSIZE)

Autre sin, cos, tan, asin, acos, atan, atan2, abs, pow, sqrt, ceil, floor, atof, dot, cross, deg, rad, exp, frac, hsv, rgb, min, max, log, log10, round, substr, strreplace

Est disponible.

Variables locales d'expression fréquemment utilisées

variable La description
$PT Numéro de point
$PR Numéro primitif
$CY Numéro de copie actuel
$TX,$TY,$TZ Position du point
$NX,$NY,$NZ point/Normal primitif
$CR,$CG,$CB,$CA point/Couleur primitive
$VX,$VY,$VZ Vitesse du point
$BBX,$BBY,$BBZ Positions normalisées (0-1) des points dans la boîte englobante
$CEX,$CEY,$CEZ Centre de gravité de la géométrie
$AGE Le nombre de secondes pendant lesquelles la particule est vivante
$LIFE Âge normalisé des particules (0-1)
$XMIN,$XMAX,$YMIN,$YMAX,$ZMIN,$ZMAX Gamme de boîtes englobantes
$SIZEX,$SIZEY,$SIZEZ Taille de la boîte englobante
$TX2,$TY2,$TZ2 Position du point provenant de la deuxième entrée

L'expression est pratique, mais les variables locales sont lentes, il est donc préférable d'utiliser VEX si possible. c'est tout

Recommended Posts

Qu'y a-t-il dans le paramètre? Modifier la chaîne et l'expression
Récupérer la chaîne de requête (chaîne de requête) avec Django
Échapper les crochets ondulés dans la chaîne de format
Trouvez-le dans la file d'attente et modifiez-le
Fonction Eval () qui calcule une chaîne de caractères comme expression en python
json.dumping None en python renvoie la chaîne null
Vérifiez si la chaîne est un nombre en python
Décale la chaîne de l'alphabet de N caractères en Python
Extraire l'élément en supprimant la balise contenue dans la chaîne de caractères
Modifier les polices en Python
Expression régulière dans regex.h
Manipulation de chaîne en python
Quoi de neuf dans Python 3.5
Expression régulière en Python
Quoi de neuf dans Python 3.6
J'avais des problèmes car la chaîne de caractères dans le PDF était étrange
Découvrez la largeur apparente d'une chaîne en python
Python --Trouvez le nombre de groupes dans l'expression regex
Trier le tableau de chaînes par ordre de longueur et syllabaire japonais
Découvrez combien de chaque caractère est dans la chaîne.
Dans Django, comment abréger la longue chaîne de caractères affichée au milieu ...
Reproduire l'expression canonique Python r '\ w (? U)' en JavaScript