XPresso bonus

Ceci n'est pas un tutorial consacré à un problème spécifique et à sa solution mais plutôt une introduction à plusieurs petits bonus. De simples nœuds qui sont très pratiques et des petites expressions qui rendent la vie plus facile.

La cartographie d'intervalle.

Commencons par la cartographie d'intervalle. C'est sans doute un des nœuds les plus utiles dans XPresso, il est fréquemment employé. Sa fonction fondamentale est de convertir un intervalle de valeurs dans un autre, de façon linéaire ou bien en utilisant une courbe de fonction non-linéaire représentée par une spline.

Cela ne semble pas très excitant mais les possibilités sont infinies. De la simple conversion (pourcentages en degrés, des radians en une longueur, etc.) à la définition d'une atténuation pour des fonctions.

Jetons un rapide coup d'œil aux propriétés :

  • Le type de données : réels et vecteurs peuvent être utilisés. Les vecteurs sont particulièrement pratiques pour passer graduellement d'une position ou d'une rotation à une autre.
  • Intervalle d'entrée/sortie : plusieurs intervalles courants sont disponibles sous forme de préréglages.
  • Clamper minimum et maximum : si la valeur d'entrée va au-dessous ou au-dessus de l'intervalle d'entrée, la valeur de sortie n'excédera pas celle qui est définie par l'intervalle de sortie. Par exemple vous avez défini un intervalle d'entrée de 0 à 1 et un intervalle de sortie allant de 0 à 100. Avec le clamp activé une valeur de 1,5 donnera 100, avec le clamp désactivé la sortie sera interpolée linéairement à150.
  • Modulo : si la valeur d'entrée dépasse l'intervalle défini, l'intervalle de sortie repart du début. Prenons le même intervalle que précédemment, avec modulo une valeur de 1,5 donne 50 en sortie, ce sera le même résultat avec 2,5, -1,5, etc.
  • Inverser : Inverse l'intervalle de sortie.
  • Utiliser la spline : la spline sera utilisée à la place de l'interpolation linéaire pour calculer la valeur de sortie. La spline ne peut être utilisée qu'à l'intérieur des intervalles, si la valeur d'entrée excède l'intervalle et que le clamp ou le modulo sont hors de l'intervalle de sortie alors l'interpolation sera linéaire.
  • Résolution de la spline : ce menu permet de choisir le niveau de précision avec lequel la spline va être calculée. La meilleure résolution sera aussi la plus lente à calculer.

Vous trouverez ici une expression plutôt simple mais c'est un bon exemple sur la façon d'utiliser la cartographie d'intervalle pour automatiser un mécanisme. La cartographie d'intervalle est utilisée pour combiner plusieurs animations (en partie non-linéaires) en un seul paramètre simple à manipuler.
Au lieu d'animer deux valeurs avec des courbes de fonction différentes vous n'avez besoin d'animer qu'une seule valeur de façon linéaire. (animation)

L'itérateur Liste d'objets

 
Le nœud Liste d'objets est vraiment pratique si vous souhaitez effectuer une action sur un certain nombre d'objets par ailleurs indépendants les uns des autres. La liste d'objets est totalement indépendante de toute hiérarchie, les objets sont assignés via une liste d'inclusion. Comme vous pouvez le voir la partie principale de l'expression consiste en seulement deux nœuds, le nœud Liste d'objets et un nœud d'objet pour pointer sur les objets. Tous les autres nœuds sont là seulement pour calculer la valeur de rotation utilisée dans cet exemple.
Dans cet exemple tous les objets de la liste subissent une rotation autour de leur axe Y local.
scène animation

Collision de rayons

Le fonctionnement du nœud Collision de rayons est similaire à celui du rendu par lancer de rayons. Un rayon est projeté d'un point vers un autre et si une surface se trouve entre ces deux points une collision est détectée. Nous allons utiliser ce nœud pour réaliser un petit outil qui nous aidera à placer des objets sur une surface.
Bien entendu cela peut être utilisé aussi en animation.
L'idée est d'utiliser deux objets neutres comme points entre lesquels le rayon sera lancé afin de placer un objet sur le point où le rayon se heurte à l'objet collision.
 

La majeure partie de cette expression est composée d'éléments déjà connus. Les valeurs sont injectées par le biais des Paramètres de la propriété XPresso (Info) et nous connaissons la conversion de l'alignement en une rotation grâce à l'exemple des coordonnées. scène.
Il manque encore une brève explication sur les données que nous obtenons de la collision de rayon :

  • Collision : valeur booléenne (vrai ou faux) qui passe à Vrai si le rayon heurte un polygone de l'objet de référence.
  • Position du choc : position (globale) du point où le rayon heurte l'objet
  • Normale de face : Normale du polygone où le choc se produit.

Il existe plusieurs autres paramètres disponibles pour ce nœud, consultez le manuel pour savoir ce qu'ils font et comment vous pouvez améliorer cette expression en les utilisant aussi.
La collision de rayons donne toujours le premier polygone de l'objet collision qui est heurté par le rayon et il ne fonctionne qu'avec des objets polygonaux..
Une façon d'améliorer cette expression serait d'utiliser l'itérateur Liste d'objets pour vérifier la collision avec plusieurs objets. Cependant gardez présent à l'esprit que si plus d'un objet entre en collision avec le rayon, seul le dernier sera pris en compte pour le placement de l'objet.
Une autre amélioration serait de placer l'objet à une distance prédéfinie au dessus de la surface de collision en déplaçant l'objet le long de la normale de la face. Cela peut être accompli simplement en multipliant la normale par une longueur donnée puis en ajoutant cette valeur à la position scène animation

Retour à l'index