Editeur XPresso

Pour créer une nouvelle expression et ouvrir l’éditeur XPresso, sélectionnez un objet dans le gestionnaire d’objets et choisissez Propriétés/ Propriétés de programmation / XPresso. Si vous fermez l’éditeur, vous pouvez l’ouvrir à nouveau en double-cliquant sur l’expression XPresso dans le gestionnaire d’objets.

Les nœuds de connexion sont à la base de toute expression XPresso. Les nœuds peuvent réaliser des tâches diverses et variées, qu’il s’agisse de l'affichage du numéro de l'image active d'une animation ou du simple changement de position d’un objet. Pour construire une expression, vous devez créer les nœuds de connexion nécessaires et les connecter en traçant des traits (des câbles) entre leurs ports d’entrée et leurs ports de sortie. Les nœuds peuvent ensuite se transmettre des valeurs via ces ports et ces câbles.

Sur l’illustration ci-dessus, vous pouvez distinguer deux nœuds de connexion : un pour le cube et un pour le cylindre. Les deux cercles, intitulés tous deux ‘Rotation’, sont des ports. Les ports situés sous les carrés rouges sont les ports de sortie et envoient des valeurs aux Groupes X ou à d’autres nœuds. Les ports situés sous les carrés bleus sont des ports d’entrée et reçoivent des valeurs d’autres nœuds ou Groupes X. Pour cet exemple, la valeur de rotation du cube est envoyée au cylindre. Le cylindre va donc pointer dans la même direction que le cube dans la vue.

Pour vous former à XPresso le plus rapidement possible, il est recommandé de commencer par les tutoriels de l’ouvrage Tutoriels Cinema 4D, qui vous donneront un aperçu des possibilités d’XPresso, et de consulter ensuite cette section Référence pour une description complète des commandes et menus. Nous avons également inclus au CD-ROM de Cinema 4D des exemples d’expressions, accompagnées de commentaires. Vous pouvez apprendre beaucoup de ces exemples en consultant les commentaires et en personnalisant le résultat.

Groupes X

Les groupes X sont des conteneurs. Il est possible d’y placer des nœuds, d’autres groupes, et les câbles qui les relient. Les groupes X permettent de ranger des éléments apparentés dans la même boîte, afin de mieux les organiser. Ils simplifient la navigation dans les expressions et leurs modifications. De plus, il est possible de connecter un groupe X à des nœuds et à d’autres groupes X, d’enregistrer et charger des groupes X, et de les réutiliser pour d’autres projets.

Utilisez les groupes X pour grouper et organiser les nœuds.

Vous pouvez naviguer dans le contenu d’un groupe X comme dans une vue Cinema 4D. Pour déplacer ou agrandir la vue sur le contenu, il suffit de manipuler l’icône de déplacement ou de zoom dans le coin en haut à droite du groupe X. Vous pouvez également déplacer son contenu avec les touches fléchées. Pour ajouter des ports à un groupe X, choisissez les ports à activer dans son menu d’entrées (en cliquant sur le carré bleu) et son menu de sortie (en cliquant sur le carré rouge).

Pour réduire un groupe X à sa barre de titre, double-cliquez sur cette barre de titre. Pour rendre sa taille normale au groupe X, double-cliquez à nouveau sur sa barre de titre. Pour déplacer un groupe X, déplacez sa barre de titre. Pour redimensionner un groupe X, déplacez un côté ou un coin de ce groupe.

Lorsque vous créerez vos propres expressions, vous aurez souvent besoin de sélectionner un groupe X pour (entre autres) charger ses paramètres dans le gestionnaire d’attributs, afin de pouvoir les modifier. Pour sélectionner un groupe X, cliquez sur sa barre de titre. Pour sélectionner plusieurs groupes X, tracez un rectangle de sélection autour de ces groupes. Vous pouvez aussi sélectionner un groupe, puis sélectionner les autres en maintenant la touche Majuscule enfoncée. Le cadre des groupes X sélectionnés prend une couleur orange.

Evaluer les entrées en premier

Dans le panneau Propriétés du gestionnaire d’attributs d’un groupe X, vous trouverez l’option Evaluer les entrées en premier. Lorsque cette option est activée, les nœuds se trouvant en dehors du groupe X sélectionné sont évalués en premier. Cette option est particulièrement importante si le groupe X reçoit des valeurs à partir des nœuds : les valeurs reçues seront toujours à jour.

Activé

Cette option active ou désactive le groupe X. Les nœuds du groupe X ne sont calculés que si ce groupe est activé. Vous pouvez également activer le nœud en transmettant une valeur booléenne True (Vrai) ou la valeur 1 à son port Activer.

Protéger / Annuler la protection

Ce bouton permet de protéger des groupes X par mots de passe. Le contenu du groupe X sera visible uniquement après l’entrée du mot de passe.

Pour protéger un groupe X, verrouillez son contenu (activez Vue / Verrouillée dans son menu contextuel). Puis, dans le gestionnaire d’attributs, cliquez sur le bouton Protéger. Dans la boîte de dialogue affichée, entrez un mot de passe pour le groupe X. Le groupe X est à présent protégé.

La procédure d’annulation de la protection d’un groupe X est presque l’inverse de la procédure de protection. Cliquez sur le bouton Annuler la protection et entrez le mot de passe dans la boîte de dialogue. Pour rendre à nouveau visible le contenu d’un groupe X, déverrouillez le groupe X (désactivez Vue / Verrouillée dans son menu contextuel) et choisissez le mode d’affichage souhaité (menu contextuel : Vue).

Nœuds de connexion

Les nœuds de connexion Cinema 4D sont évalués en radians. L’application utilise donc pour les nœuds des valeurs angulaires comprises entre 0 et 2*Pi, et non-pas entre 0 et 360˚. Si vous désirez travailler en degrés, utilisez le nœud Degrés pour convertir les radians en degrés et vice-versa.

Les nœuds de connexion sont les principaux blocs de construction des expressions. Ils ont été conçus pour accomplir les tâches les plus diverses, de l’indication de la position active d’un objet aux calculs d’opérations mathématiques. Suivant le type de nœud, il est possible d’ajouter différents ports d’entrée et de sortie aux nœuds. Comme dans le cas des groupes X, vous pouvez ajouter ces ports en utilisant le menu d’entrées ou le menu de sorties (les carrés bleu et rouge de la barre de titre du nœud).

Quatre nœuds de connexion. Le nœud de résultat affiche la valeur 1 si le cône et le tube sont de la même hauteur (valeur Y).

Vous pouvez réduire la taille d’un nœud (ou lui rendre sa taille initiale) en double-cliquant sur sa barre de titre. Pour déplacer un nœud, déplacez sa barre de titre. Pour redimensionner un nœud, déplacez un côté ou un coin de ce nœud. Cliquez sur un nœud pour le sélectionner et charger ses paramètres dans le gestionnaire d’attributs. Pour sélectionner plusieurs nœuds, tracez un rectangle de sélection autour de ces nœuds. Vous pouvez aussi sélectionner un nœud, puis sélectionner tous les autres nœuds en maintenant la touche majuscule enfoncée. Le cadre des nœuds sélectionnés prend une couleur orange.

Vous pouvez activer ou désactiver un nœud en cochant la case Activé dans le Gestionnaire d’attributs, ou en choisissant l’option Désactivé dans le menu contextuel du nœud, décrit plus loin dans ce chapitre.

Pour renommer un nœud, sélectionnez-le et entrez son nouveau nom dans le panneau Caractéristiques de base du gestionnaire d’attributs. Le nom par défaut du nœud indique son type, mais même si vous renommez le nœud, vous pouvez toujours vérifier son type dans le gestionnaire d’attributs. Le type d’un nœud définit le type de données gérées par le nœud (entiers ou chaînes, par exemple).

Vous pouvez affecter un nœud Objet, Matériau ou Propriété à un autre objet, un autre matériau ou une autre propriété. Il suffit de sélectionner l’objet, le matériau ou la propriété dans le gestionnaire d’objets et de le déposer sur la partie interne du nœud (dans la zone où apparaissent généralement les noms des ports). Les ports originaux seront préservés si cette préservation est toujours appropriée pour le nouvel objet, le nouveau matériau ou la nouvelle propriété. Les ports qui ne peuvent pas être préservés seront affectés de l’état indéfini.

Chaque nœud XPresso est décrit plus loin dans ce chapitre.

Ports

Les nœuds et les groupes X sont équipés de ports d’entrée et de sortie. Pour ajouter un port, choisissez-le dans le menu d’entrées (carré bleu) ou de sorties (carré rouge). Dans ces menus, tout port déjà ajouté est masqué.

Ajoutez des ports en utilisant les menus d’entrée et de sortie (les carrés bleu et rouge du nœud).
Les ports servent à transférer des valeurs. Les ports de sortie sont situés sous les carrés rouges, et les ports d’entrée sous les carrés bleus.

Les ports rouges sont des ports de sortie. Ils envoient des valeurs vers les groupes X ou les autres nœuds. Les ports bleus sont des ports d’entrée. Ils reçoivent des valeurs des groupes X ou d’autres nœuds. Pour connecter un port de sortie à un port d’entrée, cliquez sur le port de sortie et faites glissez le pointeur vers le port d’entrée. Lorsque vous aurez relâché le bouton de la souris, les deux ports seront connectés comme ci-dessous.

Les différentes commandes spécifiques aux ports sont disponibles dans le menu contextuel du port.

Lorsqu’un nœud ou un groupe X est sélectionné, et s’il possède des ports d’entrée non connectés, ces ports sont affichés dans le panneau Paramètres du gestionnaire de matériaux (sauf s’il s’agit d’un nœud d’objet). Vous pouvez envoyer des valeurs vers ces ports en les entrant dans ce panneau. Cette possibilité peut être utile si vous désirez tester le comportement des nœuds avec certaines valeurs. Le gestionnaire d’attributs permet également d’envoyer à des nœuds des données personnalisées (voir ‘Données utilisateur’, plus bas).

Pour afficher le nom d’un port, placez le pointeur au-dessus de ce port. Son nom apparaîtra dans la barre d’état de l’éditeur XPresso (pour afficher la barre d’état, activez l’option Afficher la barre d’état dans le menu Affichage). Pour afficher les noms des ports, activez l’option Ports / Afficher les noms dans le menu contextuel du nœud.

Double-cliquez sur un port pour le déconnecter. Si le port est déjà déconnecté, double-cliquez sur ce port pour le supprimer. Pour modifier la position du port dans sa colonne, Alt-cliquez sur ce port et déposez-le à une nouvelle position.

Vous pouvez également marquer dans le gestionnaire d’attributs un port défini pour les paramètres.

Données utilisateur

Les ports ajoutés avec l’option Données utilisateur permettent d’envoyer des valeurs personnalisées via le gestionnaire d’attributs.

Pour créer un port personnalisé avec l’option Données utilisateur

Câbles

Les câbles permettent de connecter les ports des nœuds et des groupes X.

Pour permettre aux nœuds et aux groupes X de se transmettre des valeurs, vous devez créer les ports nécessaires, puis connecter ces ports par des câbles. Pour créer un câble entre deux ports, cliquez sur un port, et faites glisser la souris vers l’autre port. Un trait apparaît pendant le glissement du pointeur et se colle au second port lorsque le pointeur est à proximité.

Certaines connexions ne sont pas autorisées. Il est impossible de connecter deux ports d’entrée ou deux ports de sortie, par exemple. Impossible également de connecter deux ports dont les types de données sont incompatibles. Pendant le tracé, la couleur du câble change pour indiquer si la connexion est autorisée (vert) ou interdite (gris foncé). Si une connexion est interdite, le câble sera supprimé après relâchement du bouton de la souris.

Il est possible de connecter un port de sortie à plusieurs ports d’entrée, ce qui permet de transmettre la même valeur à plusieurs nœuds ou groupes X. En revanche, un port d’entrée ne peut être connecté qu’à un seul autre port.

Pour connecter un port de sortie à un port d’entrée du même nœud, copiez ce nœud (cliquez-glissez sur le nœud en maintenant enfoncée la touche Ctrl) et connectez le port de sortie du premier nœud au port d’entrée du second.

Si vous connectez accidentellement un câble au mauvais port, vous pouvez le reconnecter : sélectionnez le câble et faites-le glisser sur le port correct. Si vous déposez le câble sur un espace vide (sans aucun port), le câble sera supprimé dès le relâchement du bouton de la souris. Vous pouvez également supprimer des câbles en choisissant Supprimer la connexion dans le menu contextuel du port.

Si les câbles d’une expression sont imbriqués dans la vue, replacez les ports. Alt-cliquez sur chaque port et faites-les glisser jusqu’à une nouvelle position. Vous pouvez changer uniquement la position verticale des ports. Vous ne pouvez pas Alt-cliquer sur un port pour le déplacer de droite à gauche, par exemple.

Les câbles de connexion convertissent automatiquement les types de données compatibles. Par exemple, si vous transmettez une valeur réelle (72,163 par exemple) à un nœud qui ne reconnaît que les entiers, le câble de connexion convertira automatiquement la valeur réelle en valeur entière (72, pour notre exemple).

Types de donnée

Chaque nœud de connexion ou groupe X utilise un type de données définissant le type de valeurs utilisé (Entier, Vecteur, ou Couleur, par exemple). Si vous connectez deux nœuds utilisant différents types de donnée, le câble de connexion reliant ces nœuds convertit automatiquement les types compatibles. Par exemple, si un nœud Constante transmet la valeur réelle 3,45 à un nœud de Résultat dont le type de données est Entier, la valeur sera automatiquement convertie en entier (3, pour notre exemple).

Bien que le type de données de certains nœuds soit fixe et ne puisse donc être changé, vous pouvez modifier le type de données de la plupart des nœuds dans le gestionnaire d’attributs.

Couleur

Cette donnée est composée des composantes de couleur rouge, vert et bleu. Les valeurs RVB peuvent également être interprétées comme vecteur. La couleur R:10, G:75, B:0 serait ainsi équivalente au vecteur (10;75;0). Vous pouvez donc, par exemple, utiliser une couleur pour contrôler le vecteur de position ou de rotation d’un objet.

Lien

Le type de données Lien contient des informations sur les différents éléments d’une scène CINEMA 4D (objets, propriétés, matériaux). Le type Lien ne peut pas être converti. Il permet de sélectionner un élément de scène (un objet, matériau ou propriété) pour l’examiner en détail. Vous pouvez utiliser le type de donnée Lien pour ajouter un champ de Donnée utilisateur dans le gestionnaire d’attributs, par exemple. Vous pouvez ensuite affecter des matériaux, des propriétés et des objets en les déposant dans le champ. Voir aussi Objet, plus bas.

Titre

Ce nouveau type de donnée est utilisé pour le stockage d’un chemin d’accès au fichier. Le nœud Audio, par exemple, utilise la donnée Titre pour le stockage du chemin d’accès au fichier audio à charger.

Texture

Cet élément contient une référence à une texture, c’est-à-dire à un fichier image ou une matière. Ce type de donnée est utile uniquement pour une utilisation avec des matériaux (dans un canal de matériau, par exemple).

Lueur

Le type de donnée Lueur est un conteneur pour un ensemble de données complet. Dans ce cas, il s’agit de toutes les informations nécessaires pour contrôler la lueur des sources de lumière. Ce type de donnée ne peut pas être converti.

Booléen

Le type de données Booléen possède deux états possibles : Vrai ou Faux. Ces états sont représentés par les valeurs numériques 1 (Vrai) et 0 (Faux). Il est possible d’utiliser des valeurs booléennes pour des calculs mathématiques, mais le type de donnée Booléen ne peut contenir qu’une valeur 0 ou 1. Pour combiner plusieurs valeurs booléennes, utilisez des nœuds Logique.

Entier

Le type de données Entier supporte des nombres entiers qui peuvent être négatifs, égaux à zéro, ou positifs. Les chiffres après la virgule seront ignorés. Les résultats obtenus peuvent donc manquer de précision si les calculs doivent utiliser des fractions. Vous pouvez utiliser le type de données Entier avec tout format numérique et vectoriel.

Lorsque vous convertissez un vecteur en entier ou en réel, la longueur du vecteur est calculée automatiquement avec la formule SQRT(V.x*V.x+V.y*V.y+V.z*V.z), SQRT représentant la racine carrée, * représentant le signe de multiplication, V.x, V.y et V.z représentant les composants X, Y et Z du vecteur. En revanche, lorsqu’un entier ou un réel est converti en vecteur, la valeur est utilisée pour les composants X, Y et Z. Par exemple : le réel 12,5 sera converti en vecteur (12,5 ; 12,5 ; 12,5).

Réel

Contrairement aux entiers, les nombres réels peuvent également être fractionnaires. L’exemple typique est celui du Pi réel : 3,141592654. Utilisez le type Réel lors de calculs complexes, afin d’obtenir des résultats précis. Les réels peuvent être convertis en vecteurs ou en entiers. Lorsqu’un réel est converti en entier, les chiffres après la virgule sont ignorés (en d’autres termes, les réels sont arrondis lorsqu’ils sont convertis en entiers).

Vecteur

Le type de données Vecteur est important pour la manipulation de positions et de rotations dans l’espace 3D. Les positions d’objets, les angles HPB, les couleurs et les coordonnées des points sont tous stockés sous forme de vecteurs. Les valeurs sont stockées dans le vecteur une par une. Par exemple, les positions sont stockées dans l’ordre (position X ; position Y ; position Z) et les rotations dans l’ordre (angle H ; angle P ; angle B). Dans Cinema 4D, un vecteur possède toujours trois composants. Si vous convertissez un vecteur en un entier, c’est la longueur du vecteur qui est convertie, et non pas ses composants. Vous pouvez également utiliser des vecteurs avec des matrices.

Normal

Un vecteur normalisé est un vecteur de même direction, mais de longueur 1.

Matrice

Une matrice est un groupe de vecteurs. La matrice globale d’un objet, par exemple, contient le vecteur de position de cet objet, ainsi que trois autres vecteurs correspondant aux axes de l’objet. Les vecteurs d’axe représentent non seulement la direction de l’objet, mais aussi son échelle (l’échelle étant définie par la longueur de chaque vecteur d’axe). La matrice globale donne donc accès à la position, l’échelle et la rotation d’un objet.

Les quatre vecteurs sont stockés dans les registres suivants de la matrice globale : V0 pour le vecteur de position (ou vecteur de décalage), V1 pour l’axe X, V2 pour l’axe Y, et V3 pour l’axe Z. Utilisez ces registres pour lire ou remplacer ces vecteurs (choisir V2 pour l’axe Y de l’objet, par exemple).

Temps

Le type de donnée Temps permet d’accéder à la position temporelle active de l’animation. Gardez à l’esprit que cette valeur est affectée par le taux d’images. Par exemple, avec un taux de 25 images par seconde, la valeur de Temps pour l’image 24 est exactement une seconde. Le type de donnée Temps est particulièrement utile pour le contrôle de processus dynamiques, puisqu’il permet de tenir compte de la progression de l’animation. Vous pouvez par exemple faire rebondir une balle une fois par seconde ou faire suivre un objet par un autre sur une certaine période. Voir aussi Date/Heure plus haut.

Texte

Le type de donnée Texte dynamique concerne le texte et les chaînes de caractères. Une chaîne de texte peut contenir des lettres, des chiffres et des caractères spéciaux. Vous pouvez par exemple utiliser le type de données Texte dynamique pour permettre à l’utilisateur d’entrer un nom dans un champ de texte. De plus, les câbles de connexion XPresso peuvent convertir automatiquement les séquences numériques de la chaîne en vecteurs, matrices et autres formats numériques. Vous pouvez par exemple transmettre la chaîne 12;4;5 à un nœud, à la place du vecteur (12;4;5).

Objet

Le type Objet est un sous-type du type Lien. Il est utilisé uniquement pour les données relatives aux objets. Entre autres possibilités, ce type de donnée donne accès aux matrices globales et locales d’un objet. Voir aussi Lien plus haut.

Dégradé

Le type de données Dégradé est composé d’un grand nombre de valeurs représentant un dégradé. Il ne peut pas être converti (bien que chaque couleur puisse être convertie en vecteur, il n’existe aucun moyen de spécifier la position de la couleur dans le dégradé pour y accéder).

Inclure/Exclure

En utilisant les listes d'inclusion et exclusion, les lumières peuvent être restreintes à des objets spécifiques. Les listes d'inclusion et exclusion contiennent une liste d'objets. Puisque ceci est spécifiquement conçu pour une utilisation avec des sources lumineuses, aucune conversion n'est disponible. À la place, utilisez un objet ou une lumière pour lire les propriétés, les matériaux ou les objets, comme par exemple avec un champ de données utilisateur.

Priorité

Le type de donnée Priorité contient la Priorité et sa valeur numérique, ainsi que des informations sur l’ordre d’évaluation. Ce type de données est utilisé pour définir la priorité des ports.

Police

Le type de données Police stocke des informations sur la police choisie (pour indiquer par exemple si la police est TrueType ou PostScript). Vous pouvez par exemple utiliser le type de données Police pour faire varier l’apparence d’une spline Texte. Le type de données Police ne peut pas être converti.

Date/Heure

Par opposition au type de données Temps, Date/Heure utilise la date et l’heure (au format heures:minutes:secondes) définies par votre système. Vous pouvez par exemple créer une expression Soleil changeant la position et la couleur d’une lumière en fonction de la date et de l’heure réelle.

Spline

Avec le type de donnée Spline, vous pouvez tracer une spline dans le gestionnaire d’attributs en utilisant un graphe. Le graphe est compris entre les extrêmes variables Min X à Max X sur l’axe horizontal, et Min Y à Max Y sur l’axe vertical.

Le pool XPresso

Le pool XPresso permet d’ajouter rapidement des nœuds à l’éditeur XPresso. Le pool XPresso contient tous les nœuds Cinema 4D. Vous pouvez ajouter vos propres pools au pool XPresso, en configurant chaque nœud en fonction de vos besoins. Supposons que vous devez souvent créer un nœud Math pour une soustraction de nombres entiers (Type de données : Entier et Fonction : Soustraction). Au lieu de modifier ces paramètres chaque fois que vous créez un nouveau nœud Math, vous pouvez ajouter un nœud Math configuré au pool XPresso. Lorsque vous aurez à nouveau besoin d’un nœud Math, il suffira de sélectionner le nœud Math paramétré dans le pool et de le déposer dans l’éditeur XPresso.

Cliquer sur l'icône en forme de loupe permet d'ouvrir un filtre de texte, qui peut vous être utile pour afficher uniquement les Noeuds que vous recherchez sans devoir afficher tout le sous-répertoire.

Il s'agit d'un filtre d'affichage qui fonctionne en temps réel. Vous n'avez qu'à entrer le texte relatif au noeud que vous souhaitez afficher. Chaque élément contenant une partie du texte ou le texte tout entier s'affichera. Utiliser des majuscules ne changera rien au résultat. Cliquer sur le bouton X vide le champ du texte.

Pour ouvrir le pool XPresso

Créer un pool

Choisissez cette commande pour créer un nouveau pool pour vos propres configurations de nœuds. Dans la boîte de dialogue affichée, choisissez un emplacement sur le disque pour l’enregistrement du pool (notez que les groupes sont enregistrés dans le dossier Library / xnode du dossier user). Le pool est automatiquement enregistré et sera disponible après chaque lancement de Cinema 4D. Pour ajouter des nœuds configurés au pool, configurez les nœuds dans l’éditeur XPresso et déposez-les ensuite dans le pool.

Charger un pool

Cette commande permet de charger un fichier de pool.

Supprimer

Vous ne pouvez pas supprimer un nœud du pool original.

Cette commande supprime les nœuds prédéfinis ou les dossiers de nœuds sélectionnés dans le pool.

Renommer

Cette commande permet de renommer un élément du pool. Si vous avez configuré un nœud Math pour la soustraction d’entiers, par exemple, vous pourriez le renommer Soust_Int.

Créer un dossier

Cette commande crée un nouveau dossier. Le classement des éléments dans des dossiers permet de mieux les ranger. Pour placer des nœuds dans un dossier, sélectionnez-les dans le pool XPresso ou l’éditeur XPresso et déposez-les sur le dossier.