Dans 3ds Max, vous pouvez utiliser des expressions mathématiques (au lieu de nombres constants) pour exprimer des valeurs de paramètres. Par exemple, vous pourriez utiliser l'expression 24*6 pour représenter le nombre 144.
Vous pouvez utiliser des expressions mathématiques pour contrôler les propriétés suivantes d'un objet :
La mise en relation des paramètres, le contrôleur d'expressions et l'évaluateur d'expressions numériques utilisent tous des expressions présentées dans cette rubrique.
Une expression est une fonction mathématique qui renvoie une valeur. Vous pouvez utiliser des expressions pour contrôler les éléments suivants de la scène :
Elément de scène | Propriété de calcul |
---|---|
Paramètres de création | Tout paramètre de création numérique |
Transformations | Position [X, Y, Z] Rotation X Rotation Y Rotation Z Echelle [X%, Y%, Z%] |
Modificateurs | Tout paramètre modificateur numérique (y compris les paramètres de création) |
Matériaux | Couleurs [R, V, B] Tout paramètre de matériau numérique |
Les liens suivants permettent d'accéder directement aux sections de cette rubrique :
Le type de valeur renvoyé par une expression dépend du type de contrôleur :
Si le paramètre à une valeur entière, l'expression arrondit la valeur en virgule flottante à l'entier le plus proche.
Dans les tableaux ci-dessous, p et q correspondent à une valeur ou expression scalaire, et V et W à une expression ou valeur vectorielle (le symbole " x " représente le produit en croix de deux vecteurs).
Voici les opérateurs arithmétiques des valeurs scalaires :
Opérateur | Utilisez | Signification |
---|---|---|
+ | p+q | Addition |
- | p-q | Soustraction |
- | -p | Additif inverse |
* | p*q | Multiplication |
/ | p/q | Division |
^ | p^q | puissance (p à la puissance q) |
** | p**q | ^ et ** sont identiques. |
Vous pouvez aussi appliquer des opérateurs logiques (booléens) aux valeurs scalaires. Les opérateurs ci-dessous renvoient tous la valeur 1 s'ils sont vérifiés, et 0 s'ils ne le sont pas :
Opérateur | Utilisez | Signification |
---|---|---|
= | p=q | Egal à |
< | p<q | Inférieur à |
> | p>q | Supérieur à |
<= | p<=q | Inférieur ou égal à |
>= | p>=q | Supérieur ou égal à |
| | p|q | OU logique, renvoie 1 si p ou q est non nul ; sinon, renvoie 0. |
& | p&q | ET logique, renvoie 1 si p et q sont non nuls ; sinon, renvoie 0. |
Pour les vecteurs possédant un nom de variable, utilisez un opérateur de composant spécial (.) pour vous référer aux trois composants scalaires du vecteur :
Utilisez | Signification |
---|---|
V.x | Première composante (X) |
V.y | Deuxième composante (Y) |
V.z | Troisième composante (Z) |
Voici les opérateurs d'arithmétique vectorielle :
Opérateur | Utilisez | Signification |
---|---|---|
+ | V+W | Addition |
- | V-W | Soustraction |
* | p*V | Multiplication scalaire |
* | V*p | Multiplication scalaire |
* | V*W | Produit scalaire |
X | VxW | Produit vectoriel |
/ | V/p | Division scalaire |
Les expressions respectent huit niveaux de priorité. Plus la priorité de l'opérateur est élevée, plus tôt il sera évalué.
Opérateur | Niveau de priorité |
---|---|
- + | Comme les opérateurs entiers (par ex., -8, +25) |
. | Opérateur composante, par ex., dans V.x |
** ^ | |
X | Produit vectoriel |
* / | |
+ - | |
= < > <= >= | |
| & |
Les parenthèses sont des opérateurs spéciaux. Elles permettent de regrouper des sous-expressions et sont fournies pour contourner la priorité de certains opérateurs.
Dans les expressions destinées aux contrôleurs d'expressions, les variables sont représentées par des noms symboliques. Elles définissent les valeurs constantes ou variables de vos expressions. Plusieurs variables prédéfinies sont également fournies. Certaines possèdent une valeur constante, les autres peuvent varier.
Dans les expressions utilisées pour la mise en relation des paramètres et dans l'évaluateur d'expressions numériques, vous pouvez utiliser des variables prédéfinies possédant des valeurs constantes.
Voici les variables prédéfinies qui ont une valeur constante (les noms de variables sont sensibles à la casse) :
Nom de variable | Valeur constante | Utilisez |
---|---|---|
pi | 3.14159 | Rapport de la circonférence d'un cercle à son diamètre |
e | 2.71828 | Base des logarithmes naturels |
TPS | 4800 | Nombre de repères par seconde, Unité de temps de base des animations 3ds Max. |
Voici les variables prédéfinies qui ont une valeur variable dans le temps (les noms des variables sont sensibles à la casse).
Nom de variable | Signification |
---|---|
F | Numéro d'image. Pour chaque image, F est égal au numéro de l'image actuelle, en partant de zéro. Cette valeur peut varier en fonction du nombre d'images présentes dans le segment de temps actif. |
NT | Temps normalisé. Par définition, les valeurs de temps normalisé (NT) sont toujours comprises entre 0 et 1 dans le segment de temps actif, quel que soit le nombre d'images dans le segment. Si vous utilisez une expression sur NT, les effets se font ressentir dès que l'intervalle est dépassé. Vous pouvez également multiplier NT par un facteur pour que l'effet d'expression se produise un certain nombre de fois (par exemple, 2*NT signifie que l'effet d'expression se produit deux fois). Les expressions basées sur NT accélèrent ou ralentissent si vous modifiez la longueur du segment de temps. |
S | Secondes (temps écoulé en secondes). La durée écoulée est mesurée entre la première image et l'image actuelle. Cette valeur peut varier en fonction de la durée totale du segment de temps actif. |
T | Repères (temps écoulé en repères). Il existe 4800 repères par seconde. La durée écoulée est mesurée entre la première image et l'image actuelle. Cette valeur peut varier en fonction de la durée totale du segment de temps actif. |
Cette section répertorie les fonctions que vous pouvez utiliser dans les expressions. Dans cette liste, p, q et r représentent des valeurs ou des expressions scalaires. V et W correspondent à des valeurs ou des expressions vectorielles.
Pour utiliser une fonction dans une expression, entrez le nom de la fonction et les arguments appropriés.
Les fonctions sinus, cosinus et tangente renvoient une valeur en virgule flottante à partir d'angles exprimés en degrés. Les fonctions inverses (arc) renvoient une valeur en degrés pour une valeur de départ en virgule flottante.
Fonction | Signification |
---|---|
sin(p) | sinus |
cos(p) | cosinus |
tan(p) | tangente |
asin(p) | arc sinus |
acos(p) | arc cosinus |
atan(p) | arc tangente |
Les fonctions hyperboliques produisent une valeur en virgule flottante à partir d'une autre valeur en virgule flottante.
Fonction | Signification |
---|---|
sinh(p) | sinus hyperbolique |
cosh(p) | cosinus hyperbolique |
tanh(p) | tangente hyperbolique |
Fonction | Signification |
---|---|
radToDeg(p) | Prend p en radians et renvoie le même angle en degrés. |
degToRad(p) | Prend p en degrés et renvoie le même angle en radians. |
Fonction | Signification |
---|---|
ceil(p) | Plus petit entier supérieur ou égal à p |
floor(p) | Plus grand entier inférieur ou égal à p |
Fonction | Signification |
---|---|
ln(p) | Logarithme naturel (de base e) |
log(p) | Logarithme commun (de base 10) |
exp(p) | Fonction exponentielle exp(p)=e^p |
pow(p,q) | p à la puissance q (p^q) |
sqrt(p) | Racine carrée |
abs(p) | Valeur absolue |
min(p,q) | Minimum renvoie le plus petit des deux nombres entre p et q. |
max(p,q) | Maximum renvoie le plus grand des deux nombres entre p et q. |
mod(p,q) | Reste de la division de p par q |
Fonction | Signification |
---|---|
if(p then q else if r then s) | utilise la structure standard "if/then/else if". Par exemple : if (X_Position<0) then 0 else if (X_Position>=0 and X_Position<=10) then X_Position*3 else 100 Renvoie la valeur 0 si la position X est inférieure à 0, ou la position X fois 3 si la position X est comprise entre 0 et 10 inclus ou 100 si la position X est supérieure à 10. La partie "else if" est facultative et peut être répétée pour spécifier plusieurs conditions, si nécessaire. |
vif(c,V1,V2) | "Vecteur If " (la valeur est V1 si c’est vrai, et V2 dans le cas contraire.) |
Fonction | Signification |
---|---|
length(V) | Longueur de V |
comp(V,i) | ième composant (I=0,1,2): comp([5,6,7],1)=6 |
unit(V) | Renvoie un vecteur unitaire de même direction que V. |
Fonction | Signification |
---|---|
noise(p,q,r) | Bruit 3D qui renvoie une position générée de façon aléatoire |
Les valeurs arbitraires p, q et r sont utilisées comme valeurs de départ générées de façon aléatoire. Vous pouvez les réutiliser pour vous assurer que la fonction noise() renvoie la même valeur.