Introduction Éléments
principaux
Scripts Référence
Version française

Principe

Avec IanniX, vous pouvez écrire vos propres scripts pour plus facilement créer des projets complexes. Les scripts sont écrits en Javascript mais même avec des connaissances limitées de Javascript, plusieurs types de scripts utiles peuvent être créés. En plus de cette documentation, plusieurs exemples de scripts sont fournis pour votre étude. Vous pouvez les trouver dans la section Scripts et Styles de l'inspecteur.

Pour regarder un script, cliquez-droit sur un script dans l'explorateur et choisissez Open. Le menu de contexte contient aussi d'autres pour fonctionner avec les scripts. De plus, vous pouvez exécuter un script en double-cliquant sur son nom dans l'inspecteur.

Si vous voulez en apprendre plus sur le Javascript, pour créer des scripts plus avancés, il y a de nombreux livres, tutoriels en ligne and de référence disponibles pour vous aider. Aussi, n'hésitez pas à rechercher sur le forum de IanniX pour plus d'informations sur les conventions utilisées en écriture Javascript, ou pour des astuces pour écrire des scripts pour Iannix.

Voici un lien vers la référence complète de la version de Javascript utilisée dans IanniX : Référence

Contrôler IanniX à partir d'un script

La commande Javascript run()

La fonction run() est utilisée pour envoyer la plupart de commandes à IanniX à partir d'un script. Les commandes doivent être fournies à run() en tant que chaîne unique, les commandes de textes doivent donc être entre guillemets. Exemple :

run("zoom 100"); Définit le zoom à 100%

Pour combiner des paramètres numériques avec des commandes de texte, afin de produire une chaîne à envoyer à run(), utilisez l'opérateur de concaténation. Dans l'exemple suivant, center_x et center_y sont des variables numériques et doivent être concaténées en chaîne.

run("setPos current " + center_x + " " + center_y + " 0");

Autres exemples :

N'oubliez pas le «;» à la fin de chaque ligne. Notez que les constantes numériques ou les paramètres de type chaîne peuvent être inclus directement dans la commande de texte, tandis que les valeurs dans les variables doivent être jointes avec l'opérateur de concaténation. N'oubliez pas d'inclure des espaces dans les chaînes concaténées pour que les commandes et les paramètres dans la chaîne résultante soient séparés d'au moins un espace.

Voir Index des fonctions pour obtenir la liste des fonctions que vous pouvez utiliser dans la commande run() pour contrôler IanniX.

Les commandes title() et ask()

En plus de run(), deux autres fonctions Javascript functions sont fournies pour écrire un script :

La structure d'un script

IanniX exécute un script en plusieurs phases. Vous pouvez contrôler la phase dans laquelle vos commandes sont utilisées en les regroupant dans des fonctions appelées lors de phases spécifiques de l'exécution. Ces fonctions sont :

Voici l'exemple d'un script simple :


          //Configuration du script
          function onConfigure() {                
              title("My new script");             //Nomme le script
              
              //Demande les paramètres pour personnaliser le comportement du script
              iannix.ask("Triggers", "Trigger x-position", "trigger_xPosition", 3);
          }
          
          //Création de la partition
          function onCreate() {
              run("clear");                       //Efface les objets de la partition
              run("center 0 0");                  //Se centre sur l'origine de la partition
              run("zoom 100");                    //100% zoom
  
              run("add trigger 1");               //Ajoute un trigger d'ID 1
              run("setPos current 1 2 0");        //Déplace le trigger aux coordonnées (1, 2, 0)
  
              addATrigger();                      //Appelle votre fonction personnalisée
          }
          
          //Définit une fonction personnalisée
          function addATrigger() {
              //Insérer le code pour ajouter et configurer un trigger ici.
              //Normalement la fonction addATrigger() doit avoir des paramètres à passer pour ajouter le trigger.
          }
                

Les deux seules fonctions qui doivent être dans la fonction configure() sont title() et ask(). Le reste du code à exécuter doit être placé dans la fonction create(). Vous pouvez aussi définir vos propres fonctions, constantes, etc. en plus des fonctions principales. Comme par exemple, la fonction addATrigger(), ci-dessus.

Créer vos propres fonctions

Exemple : Cette fonction donne un nombre aléatoire entre les paramètres min et max.

function randomFloat(min, max) {
      return Math.random() * (max-min) + min;
}

Créer vos propres bibliothèques de fonctions

Iannix donne la possibilité de prédéfinir des bibliothèques de fonctions fréquemment utilisées dans les scripts. Les fichiers de type <name>.js dans le dossier Outils sont scannés au démarrage de IanniX et les variables, classes et fonctions sont rendues disponibles pour leur utilisation dans les scripts. Notez que si une bibliothèque de fichier est éditée lorsque IanniX est lancé, IanniX doit être redémarré pour que les modifications prennent effet.

Dessiner des courbes de Bézier

La fonction setPointAt() de IanniX permet aux scripts de créer des courbes en 2D et en 3D à partir d'une séquence de lignes droites et de segments courbés (Bézier cubique).

Créer une courbe

Commencez une nouvelle courbe avec :
run("add curve id");
Créer un objet courbe avec l'ID spécifié. La courbe n'a encore reçu aucun points. La localisation d'un nouvel objet est par défaut (0,0,0).

La fonction setPointAt

La fonction setPointAt est utilisée pour ajouter des points ou changer des points sur une courbe. Le comportement de la fonction setPointAt() diffère selon les paramètres reçus :

Tous les champs de setPointAt spécifient la localisation du point comme x y <z>. Les paramètres qui spécifient les segments de Bézier incluent deux autres points, cx1 cy1 <cz1> et cx2 cy2 <cz2>, qui décrivent la courbure. La direction de la courbe quittant son point de départ est tangente à la ligne à partir du point de départ jusqu'au premier point de contrôle cx1 cy1 <cz1>. La direction de la courbe arrivant à son point final est tangente à la ligne à partir du point de contrôle cx2 cy2 <cz2> jusqu'au point final x y <z>.

Exemple d'une création de courbe avec des segments 2D et 3D

Le code suivant est celui de l'exemple "Learn - Curve points" qui peut être trouvé dans l'explorateur de scripts de l'inspecteur. Il créé une trajectoire avec cinq segments et cinq points. Le premier segment est une ligne droite en 2D, la seconde est une courbe de Bézier 2D, la suivante est une ligne droite en 3D et le quatrième segment est une Bézier 3D. Lancez le script d'exemple pour voir à quoi ressemble la courbe. Pour voir sa forme en 3D, pressez la touche Alt et glissez la souris sur la partition. Vous pouvez réinitialiser l'angle de vue en lançant le script "Reset orientation" dans la section Outils du navigateur de scripts.

   
          //Création de la partition
          function onCreate() {
              //Configuration de la vue
              run("clear");
              run("center 0 0");
              run("zoom 100");
              run("rotate 0 0 0");
                  
              //Création de la courbe
              run("add curve  1000");
          
              //Point numéro 0
              //Coordonnées x0 = -2, y0 = 1
              run("setPointAt current  0  -2 1");
          
              //Dessine un segment droit en 2D du point numéro 0 au
              //point numéro 1, qui est à (x1,y1) = (-2,3)
              run("setPointAt current  1   -2  3");
          
              //Dessine un segment de Bézier en 2D du point numéro 1 au
              //point numéro 2, qui est à (x2,y2) = (2,3)
              //Le segment de départ est tangent à la ligne de (x1,y1) à (x1+2, y1+2)
              //Le segment de fin est tangent à la ligne de (x2,y2) à (x2+0,x2+3)
              run("setPointAt current  2    2  3   +2 +2   +0 +3 ");
          
              //Dessine un segment droit en 3D du point numéro 2 au
              //point numéro 3, qui est à (x3,y3,z3) = (0,2,1)
              run("setPointAt current  3    0 2 1");
          
              //Dessine un segment de Bézier en 3D du point numéro 3 au
              //point numéro 4, qui est à (x4,y4,z4) = (-2,-1,0) 
              //Il commence tangent à la ligne de (x3,y3,z3) à (x3+0,y3-1,z3+2)
              //Finit tangent à la ligne de (x4,y4,z4) à (x4+4,x4+0,z4+0)
              run("setPointAt current  4   -2 -1 0   +0 -1 +2   +4 +0 +0");
          
              //Rajoute un curseur sur la courbe
              run("add cursor 1");
              run("setCurve   current lastCurve");        
              run("setSpeed   current auto 10");
          }