Dieser Artikel ist der zweite Tag des Houdini-Adventskalenders 2016.
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
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
▼ 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.
▼ 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)
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)
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;
}
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.
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;}`")
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.
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