Mathematische Ausdrücke

 
 
 

In 3ds Max können Sie Parameterwerte durch mathematische Ausdrücke (statt durch konstante Werte) festlegen. So könnten Sie beispielsweise zur Darstellung der Zahl 144 den Ausdruck "24*6" verwenden.

Sie können mathematische Ausdrücke zur Steuerung der folgenden Objekteigenschaften verwenden:

Die Parametervernetzung, der Ausdruck-Controller und die numerische Ausdrucksauswertung arbeiten alle mit Ausdrücken, die in diesem Thema erläutert werden.

Ein Ausdruck ist eine mathematische Funktion, die einen Wert zurückgibt. Ausdrücke können Sie zur Steuerung der folgenden Szenenelemente verwenden:

Szenenelement Berechenbare Eigenschaft
Erstellungsparameter Jedem numerischen Erstellungsparameter
Transformationen Position [X, Y, Z]

X-Rotation

Y-Rotation

Z-Rotation

Skalierung [X%, Y%, Z%]

Modifikatoren Jedem numerischen Modifikatorparameter (einschließlich Erstellungsparametern)
Materialien Farben [R, G, B]

Jedem numerischen Materialparameter

AnmerkungAusdrücke funktionieren nur mit den einzelnen XYZ-Komponenten der Euler-Rotation. Es ist nicht möglich, der TCB-Rotation oder anderen Rotations-Controllern einen Ausdruck zuzuweisen.

Die folgenden Links führen zu den verschiedenen Abschnitten dieses Themas:

Ausdruck-Rückgabetypen

Welche Art von Wert von einem Ausdruck zurückgegeben wird, hängt von der Art des Controllers ab:

Operatoren

In den folgenden Tabellen stehen p und q für Skalarwerte oder -ausdrücke, während V und W Vektorwerte oder -ausdrücke repräsentieren. (Das Zeichen "x" wird als Operator für das Vektor-Kreuzprodukt verwendet.)

Skalaroperatoren

Hierbei handelt es sich um die arithmetischen Operatoren für Skalarwerte:

Operator Verwendung Verwendung
+ p+q Addition
- p-q Subtraktion
- -p Vorzeichenänderung
* p*q Multiplikation
/ p/q Division
^ p^q Potenz (p hoch q);
** p**q ^ und ** sind die gleiche Rechenoperation

Sie können auch logische (boolesche) Operatoren im Zusammenhang mit Skalarwerten verwenden. Alle diese Operatoren geben 1 zurück (falls wahr) und 0 (falls nicht wahr):

Operator Verwendung Verwendung
= p=q gleich
< p<q kleiner als
> p>q Größer als
<= p<=q kleiner als oder gleich
>= p>=q Größer als oder gleich
| p|q Logisches OR: gibt 1 zurück, falls p oder q ungleich 0 ist; ansonsten gibt es 0 zurück
& p&q Logisches AND: gibt 1 zurück, falls p und q ungleich 0 ist; ansonsten gibt es 0 zurück
TippLogische Operatoren sind nützlich in Verbindung mit der Funktion "if".

Vektoroperatoren

Für Vektoren mit einem variablen Namen können Sie einen speziellen Komponentenoperator (.) verwenden, um die drei Skalarkomponenten des Vektors anzugeben:

Verwendung Verwendung
V.x Erste Komponente (X)
V.y Zweite Komponente (Y)
V.z Dritte Komponente (Z)

Die Operatoren für die Vektorarithmetik lauten wie folgt:

Operator Verwendung Verwendung
+ V+W Addition
- V-W Subtraktion
* p*V Skalarmultiplikation
* V*p Skalarmultiplikation
* V*W Punktprodukt
X VxW Kreuzprodukt
/ V/p Skalardivision

Operatorpriorität

Ausdrücke arbeiten mit acht Prioritätsstufen. Je höher der Operator in der Liste steht, desto früher wird die Auswertung dieses Operators durchgeführt.

Operator Prioritätsstufe
- + Monadische Operatoren wie beispielsweise in -8, +25
. Komponenten-Operator, wie in V.x
** ^  
X Kreuzprodukt
* /  
+ -  
= < > <= >=  
| &  

Runde Klammern stellen einen Sonderfall dar. Es handelt sich hierbei um einen Gruppen- oder Unterausdrucks-Operator, der Ihnen das Überschreiben der Prioritätsreihenfolge der anderen Operatoren ermöglicht.

Variablen

In Ausdrücken, die Sie für Ausdruck-Controller schreiben, werden Variablen durch symbolische Namen dargestellt. Sie erstellen diese, um konstante oder variable Werte in Ihre Ausdrücke aufzunehmen. Außerdem werden mehrere vordefinierte Variable bereitgestellt. Einige davon weisen einen konstanten Wert auf, andere können verschiedene Werte annehmen.

In Ausdrücken, die mit der Parametervernetzung und der numerischen Ausdrucksauswertung verwendet werden, können vordefinierte Variablen mit konstanten Werten verwendet werden.

Vordefinierte Variablen mit konstanten Werten

Bei folgenden Variablen handelt es sich um vordefinierte Variable, die einen konstanten Wert haben (bei Variablennamen ist die Groß-/Kleinschreibung zu beachten):

Variablenname Konstanter Wert Verwendung
pi 3.14159 Verhältnis des Kreisumfangs zum Kreisdurchmesser
e 2.71828 Basis von natürlichen Logarithmen
TPS 4800 Ticks pro Sekunde. Ein Tick ist die Grundeinheit der Zeit für Animationen in 3ds Max.

Vordefinierte Variablen mit variablen Werten

Dies sind die vordefinierten Variablen, die einen variablen, zeitbezogenen Wert haben (bei Variablennamen ist die Groß-/Kleinschreibung zu beachten):

Variablenname Verwendung
F Frame-Nummer. F entspricht für jedes Frame der laufenden Frame-Nummer (von null aufwärts). Der Frame-Bereich kann je nach Anzahl von Frames im aktiven Zeitsegment variieren.
NT Normalisierte Zeit. Gemäß Definition bewegt sich die normalisierte Zeit (NT) in einem Bereich von 0 bis 1 über das aktive Zeitsegment, und zwar unabhängig von der Frame-Anzahl im Segment. Wenn Sie einen Ausdruck auf NT basieren, wird sein Effekt genau einmal über den ganzen Bereich angewendet. Sie können NT auch mit einem Faktor multiplizieren, damit der Effekt des Ausdrucks so oft wie durch den Faktor angegeben wiederholt wird (z. B. bewirkt 2*NT, dass der Effekt zweimal auftritt). Auf NT basierende Ausdrücke werden schneller oder langsamer, wenn Sie die Länge des Zeitsegments ändern.
S Sekunden (verstrichene Zeit in Sekunden). Verstrichene Zeit wird vom ersten Frame bis zum aktuellen Frame gemessen. Der Sekundenbereich kann je nach Gesamtzeit des aktiven Zeitsegments variieren.
T Ticks (verstrichene Zeit in Ticks). 4800 Ticks entsprechen einer Sekunde. Verstrichene Zeit wird vom ersten Frame bis zum aktuellen Frame gemessen. Der Tick-Bereich kann je nach Gesamtzeit des aktiven Zeitsegments variieren.

Regeln für Variablennamen

  • Variablennamen können beliebig viele alphanumerische Zeichen enthalten. Ihre Länge ist nicht begrenzt.
  • Variablennamen können keine Leerstellen enthalten.
  • Variablennamen müssen mit einem Buchstaben beginnen. Innerhalb von Variablennamen dürfen Ziffern verwendet werden (wie z. B. in "Pos1" oder "M23").
  • Bei Variablennamen ist die Groß- und Kleinschreibung zu beachten. So bezeichnen "pos", "Pos" und "POS" drei verschiedene Variablen.
  • Sie können keine Variable mit einem Namen erstellen, der mit einem anderen Namen, einschließlich der vordefinierten Variablennamen, identisch ist.

Funktionen

In der folgenden Liste sind die verfügbaren Funktionen für Ausdrücke aufgeführt. In dieser Liste stehen p, q und r für Skalarwerte oder Skalarausdrücke. V und W stehen für Vektorwerte oder Vektorausdrücke.

Zur Verwendung einer Funktion in einem Ausdruck geben Sie den Namen der Funktion und die dafür erforderlichen Argumente ein.

Trigonometrische Funktionen

Sinus-, Kosinus- und Tangentenfunktionen nehmen einen Winkel in Grad und geben einen Gleitkommawert zurück. Bogenfunktionen nehmen einen Gleitkommawert und geben einen Wert in Grad zurück.

Funktion Verwendung
sin(p) Sinus
cos(p) Kosinus
tan(p) Tangens
asin(p) Arcussinus
acos(p) Arcuskosinus
atan(p) Arcustangens

Hyperbolische Funktionen

Hyperbolische Funktionen nehmen einen Gleitkommawert und geben einen Gleitkommawert zurück.

Funktion Verwendung
sinh(p) hyperbolischer Sinus
cosh(p) hyperbolischer Kosinus
tanh(p) hyperbolischer Tangens

Konvertierung von Bogenmaß in Grad

Funktion Verwendung
radToDeg(p) Winkel p gemessen als Bogenmaß wird in Grad umgerechnet
degToRad(p) Winkel p gemessen in Grad wird in Bogenmaß umgerechnet

Rundungsfunktionen

Funktion Verwendung
ceil(p) kleinste Ganzzahl, die größer als oder gleich p ist
floor(p) größte Ganzzahl, die kleiner als oder gleich p ist

Standardberechnungen

Funktion Verwendung
ln(p) natürlicher Logarithmus (Basis e)
log(p) allgemeiner Logarithmus (Basis 10)
exp(p) Exponentialfunktion exp(p)=e^p
pow(p,q) p hoch q (p^q)
sqrt(p) Quadratwurzel
abs(p) absoluter Wert
min(p,q) Minimum gibt den jeweils kleineren Wert von p und q zurück
max(p,q) Maximum gibt den jeweils größeren Wert von p und q zurück
mod(p,q) Rest der Teilung von p durch q

Bedingungsfunktionen

Funktion Verwendung
if(p then q else if r then s) Basiert auf der üblichen "if/then/else"-Struktur (wenn/dann/andernfalls). Beispiel:

if (X_Position<0) then 0 else if (X_Position>=0 and X_Position<=10) then X_Position*3 else 100

Dieser Ausdruck gibt 0 zurück, wenn der Wert der X-Position kleiner als 0 ist, sein Dreifaches, wenn er zwischen 0 und einschließlich 10 ist, und 100, wenn er größer als 10 ist.

Die Ausdruckskomponente "else if" ist optional und kann ggfs. wiederholt werden, um mehrere verschiedene Bedingungen festzulegen.

vif(c,V1,V2) "Vektor-If" (wenn c wahr ist, wird V1 zurückgegeben, andernfalls V2).

Vektorfunktionen

Funktion Verwendung
length(V) Länge von V
comp(V,i) i'te Komponente (I=0,1,2): comp([5,6,7],1)=6
unit(V) ergibt einen Einheitsvektor in Richtung V
AnmerkungDie Funktion comp ist eine alternative Schreibweise von V.x, V.y, V.z.

Spezielle Animationsfunktion

Funktion Verwendung
noise(p,q,r) 3D-Rauschen: gibt eine zufällig generierte Position zurück.

Die willkürlich gewählten Werte p, q und r werden als Ausgangszahlen für die Zufallsgenerierung verwendet. Sie können diese Werte erneut verwenden, um sicherzustellen, dass Noise() denselben Wert zurückgibt.

  • Trigonometrische Funktionen

    Dieses Thema soll allen Benutzern, die ihr Wissen in diesem Bereich der Mathematik auffrischen möchten, einen kurzen Überblick geben. Wenn Sie bereits mit Trigonometrie vertraut sind, können Sie dieses Thema überspringen. Sollte sich dieses Thema als zu schwierig erweisen, können Sie ein Buch über mathematische Grundlagen zu Hilfe nehmen.

  • Vektoren

    Dieses Thema soll allen Benutzern, die ihr Wissen über Vektorarithmetik auffrischen möchten, einen kurzen Überblick geben. Wenn Sie bereits mit Vektoren und Vektorberechnungen vertraut sind, können Sie dieses Thema überspringen. Sollte sich dieses Thema als zu schwierig erweisen, können Sie ein Buch über mathematische Grundlagen zu Hilfe nehmen.