[PYTHON] Was ist in dem Parameter? String & Ausdruck bearbeiten

Dieser Artikel ist der zweite Tag des Houdini-Adventskalenders 2016.

Werte sind nicht die einzigen Parameter

Ist ein Parameter nicht nur ein Wert? Ich weiß nicht, warum es keinen Wert hat oder grün wird!

Expression Grün ist der Zustand, in dem die Parameter durch Ausdruck gesteuert werden. ▼ $ F als Beispiel 00.png

Unmittelbar nach Eingabe des Ausdrucks wird nach dem Etikett eine weißlich graue Farbe hinzugefügt ("Größe" in der obigen Abbildung). Dies zeigt an, dass der berechnete Wert auf die Ausdrucksanzeige umgeschaltet wurde. Ausdruck → Klicken Sie auf Beschriftung, um einen berechneten Wert festzulegen (Rechtsklick und Ausdruck umschalten sind ebenfalls möglich). ▼ Links: Berechneter Wert Rechts: Ausdruck 1.6.png

▼ Als Ergänzung ... Das Umschalten des Ausdrucks ist auch dann möglich, wenn es sich nicht um einen Ausdruck oder eine Variable handelt. Achten Sie auf Gleitkommafehler. 1.7.png

▼ Ab etwa Houdini 15 kann @ auch als Parameter verwendet werden (Die Arten von Attributen, die verwendet werden können, unterscheiden sich jedoch je nach Knoten. Beispielsweise kann nur das Detailattribut im Transformationsknoten verwendet werden. Für den Punktknoten, der für jeden Punkt ausgeführt wird, hingegen der Punkt wie @Px Attribut ist verfügbar) 2s.png

Der Standardwert ist HScript (grün). Sie können ihn in Python ändern. Wenn Sie die H-Markierung neben der Zahnradmarkierung in Python ändern, wird sie rot statt grün. Ich sehe, Python ist rot! Denk nicht nach. Es hat sich noch nicht geändert. Sie können Python nur erhalten, indem Sie mit der rechten Maustaste auf einen Parameter klicken und Python ändern. Ja, Grün und Rot waren die Farben, um die oben rechts angezeigte HScript-Markierung oder die der Python-Markierung entsprechende zu finden. ▼ In Python können lokale Variablen wie lvar ("TX2") verwendet werden. (Ausnahmsweise kann das hou. Präfix weggelassen werden) 5s.png

Ausdruck mit mehreren Zeilen bearbeiten

Wenn Sie mehrere Zeilen in den Parameter einfügen möchten, geben Sie ihn mit Strg + E ein oder klicken Sie mit der rechten Maustaste und bearbeiten Sie den Ausdruck. Aber ohne nachzudenken Wenn Sie Folgendes eingeben, tritt ein Fehler auf. ▼ Wenn Sie beispielsweise nur in einem Frame den Wert 1 angeben möchten

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

3.1.png

Der Grund für den Fehler ist, dass es kein {} gibt, um das Ganze einzuschließen. Deshalb

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

Das wird funktionieren.

Edit String Einige Parameter erfordern keine Klammern. Das ist der String-Parameter. Häufig verwendete String-Parameter Zum Beispiel Gruppe, Datei, Wrangle. 4.1.png

Es gibt jedoch Situationen, in denen Sie Ausdruck auch mit Zeichenfolge verwenden möchten. Verwenden Sie in diesem Fall \ {} \. Selbst wenn es sich um einen String-Typ handelt, fungiert der von \ `(hinteres Anführungszeichen) umgebene Teil als Ausdruck. ▼ Keine Auffüllung bei der Ausgabe einer Datei

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

▼ Wenn Sie eine Gruppe (Hallo) nur bei 1 Frame generieren möchten

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

Ein Letztes. Wann wirst du es benutzen? Es fühlt sich so an, aber eine weitere Konvertierung ist erforderlich, um einen Wert in den Ausdrucksparameter einzufügen, indem zwangsweise Anführungszeichen verwendet werden.

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

Häufig verwendete Ausdrucksfunktion

http://www.andynicholas.com/?p=1344 Wird bezeichnet.

Funktion Erläuterung
ch(parameter path) Ruft den aktuellen Wert des Parameters ab
chf(parameter path,Flamme) 特定のFlammeでパラメータの値を取得します
stamp(copySOP path,Stempel variabel,Standardwert) Stempel variabelの現在の値を取得
point(SOP path,Punktnummer,attribute,index) Punktattribut abrufen
prim(SOP path,Punktnummer,attribute,index) Primitives Attribut abrufen
clamp(value,min,max) Wert im Bereich von Minimal- und Maximalwerten
fit(value,min,max,newmin,newmax) Ordnen Sie alte Bereichswerte dem neuen Bereich zu und klemmen Sie sie fest
fit01(value,newmin,newmax) fit()Gleich wie ist der Wert 0 bis 1
smooth(value,min,max) Wert zwischen 0 und 1 von Minimum auf Maximum geglättet
noise(x,y,z) Lärm
rand(seed) Zufallszahl
length(x,y,z) Vektorlänge
distance(x1,y1,z1,x2,y2,z2) Abstand zwischen zwei Punkten
bbox(SOP path,dimension type) Begrenzungsrahmen(dimension type:D_XMIN, D_YMIN, D_ZMIN, D_XMAX, D_YMAX, D_ZMAX, D_XSIZE, D_YSIZE, D_ZSIZE)

Andere 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

Ist verfügbar.

Häufig verwendete lokale Ausdrucksvariablen

Variable Erläuterung
$PT Punktnummer
$PR Primitive Zahl
$CY Aktuelle Kopiennummer
$TX,$TY,$TZ Punktposition
$NX,$NY,$NZ Punkt/Primitiv normal
$CR,$CG,$CB,$CA Punkt/Primitive Farbe
$VX,$VY,$VZ Punktgeschwindigkeit
$BBX,$BBY,$BBZ Normalisierte (0-1) Positionen von Punkten im Begrenzungsrahmen
$CEX,$CEY,$CEZ Schwerpunkt der Geometrie
$AGE Die Anzahl der Sekunden, in denen das Partikel lebt
$LIFE Normalisiertes Alter der Partikel (0-1)
$XMIN,$XMAX,$YMIN,$YMAX,$ZMIN,$ZMAX Begrenzungsrahmenbereich
$SIZEX,$SIZEY,$SIZEZ Begrenzungsrahmengröße
$TX2,$TY2,$TZ2 Position des Punktes, der vom zweiten Eingang kommt

Der Ausdruck ist praktisch, aber lokale Variablen sind langsam. Daher ist es besser, wenn möglich VEX zu verwenden. das ist alles

Recommended Posts

Was ist in dem Parameter? String & Ausdruck bearbeiten
Holen Sie sich die Abfragezeichenfolge (Abfragezeichenfolge) mit Django
Wellenförmige Klammern in der Formatzeichenfolge maskieren
Suchen Sie es in der Warteschlange und bearbeiten Sie es
Die eval () -Funktion, die eine Zeichenfolge als Ausdruck in Python berechnet
json.dumping Keine in Python gibt die Zeichenfolge null zurück
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
Verschieben Sie die Alphabetzeichenfolge in Python um N Zeichen
Extrahieren Sie das Element, indem Sie das in der Zeichenfolge enthaltene Tag löschen
Bearbeiten Sie Schriftarten in Python
Regulärer Ausdruck in regex.h
String-Manipulation in Python
Was ist neu in Python 3.5?
Regulärer Ausdruck in Python
Was ist neu in Python 3.6?
Ich hatte Probleme, weil die Zeichenfolge im PDF seltsam war
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Python - Ermitteln Sie die Anzahl der Gruppen im regulären Ausdruck
Sortieren Sie das String-Array nach Länge und japanischer Silbe
Finden Sie heraus, wie viele Zeichen sich in der Zeichenfolge befinden.
Wie man in Django die angezeigte lange Zeichenkette in der Mitte abkürzt ....
Reproduzieren Sie den regulären Python-Ausdruck r '\ w (? U)' in JavaScript