Techniques d'expression

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.

Conseil : Pour utiliser l'évaluateur d'expressions numériques, cliquez dans un champ numérique standard (à l'exception des champs du chariot), appuyez sur Ctrl + N, puis entrez une expression dans la boîte de dialogue qui s'ouvre.

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

Remarque : les contrôleurs d'expressions ne s'appliquent qu'aux composantes individuelles XYZ d'une rotation Euler. Vous ne pouvez pas affecter une expression à une rotation TCA ou à d'autres contrôleurs de rotation.

Les liens suivants permettent d'accéder directement aux sections de cette rubrique :

Types de valeur générés par les expressions

Le type de valeur renvoyé par une expression dépend du type de contrôleur :

Opérateurs

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).

Opérateurs scalaires

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.
Conseil : les opérateurs logiques sont utiles avec la fonction " if "

Opérateurs vectoriels

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

Priorité des opérateurs

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.

Variables

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.

Variables prédéfinies à valeur constante

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.

Variables prédéfinies à valeurs variables

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.

Conventions applicables aux noms de variables

  • Les noms de variables peuvent contenir autant de caractères alphanumériques que vous le souhaitez; leur longueur n'est pas limitée.
  • Les espaces sont interdits.
  • Les noms de variables doivent commencer par une lettre. Ils peuvent contenir des valeurs numériques (comme dans " Pos1 " ou " M23 ".)
  • Les noms de variables font la différence entre les majuscules et les minuscules. Par exemple, " pos ", " Pos " et " POS " désignent trois variables différentes.
  • Les noms de variables doivent être uniques, y compris les noms des variables prédéfinies.

Fonctions

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.

Fonctions trigonométriques

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

Fonctions hyperboliques

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

Conversion radians/degrés

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.

Fonctions d'arrondi

Fonction Signification
ceil(p) Plus petit entier supérieur ou égal à p
floor(p) Plus grand entier inférieur ou égal à p

Calculs standard

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

Fonctions conditionnelles

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.)

Fonctions de traitement des vecteurs

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.
Remarque : la fonction comp constitue une alternative à la notation V.x, V.y, V.z

Fonction d'animation spéciale

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.