Speeech.js pour InDesign CS4, CS5, CS6 et CC est un script rudimentaire mais amusant qui m'a été récemment inspiré par un sujet du forum InDesign (“Drawing a triangle shape thru a script…”). L'auteur du sujet recherchait une solution pour automatiser la mise en place de phylactères (bulles de dialogue) lors de la mise en page d'un magazine de bande dessinée. Une fois que la forme générale de la bulle est calée, avec le texte de dialogue correspondant, toute la question est d'ajouter le pointeur qui relie cette bulle au locuteur.


MàJ du 27 juillet 2015. — Léger correctif suggéré par Bruno Herfst.


Speeech offre deux moyens commodes de réaliser cette tâche :

1) Dans le panneau de Contrôle (ou de Transformation), sélectionnez le point de référence reflétant la direction que vous souhaitez imprimer au pointeur relativement à l'objet cible. Il suffit alors de sélectionner le cadre de cet objet et d'exécuter le script. C'est ce que nous appellerons le mode automatique.

2) La seconde approche consiste à tracer vous-même, à l'aide de l'outil Trait, une simple ligne directrice figurant l'orientation à appliquer et le point d'attache. Vous devez dans ce cas sélectionner à la fois la ligne et l'objet cible, puis lancer le script.

Démo Speeech (script pour InDesign)

Précisions techniques

Speeech.js peut s'appliquer à toute forme polygonale (ellipses, rectangles, tracés personnalisés, etc.) ainsi qu'aux blocs de texte.

— Si nécessaire, le script sait calculer — pour autant qu'il existe — le point d'intersection entre la ligne directrice et la forme cible. Ainsi, vous n'avez pas à positionner le point de jonction avec précision, le script s'occupe de le déterminer.

Speeech.js supporte les objets affectés par une rotation, une mise à l'échelle, une inclinaison, etc. C'est toujours l'espace de cooordonnées interne de l'objet-cible qui est pris en compte.

— Enfin, les utilisateurs avancés ont la possibilité de personnaliser l'effet du script en jouant avec certains paramètres donnés dans le fichier source :

// Largeur de la zone d'attache (distance entre
// le point de jonction et chacun des points miroir, en pts)
ATTACH_WIDTH = 6
 
// Profondeur du point de jonction
// a l'interieur de l'objet cible (en pts)
DEPTH = 8
 
// Amplitude des vecteurs directionnels
// (ponderation barycentrique : ]0,1] )
DIR_WEIGHT = 0.5
 
// Courbure (>=0)
CURVE = 2
 

Notez en particulier qu'il suffit de mettre à zéro le paramètre CURVE pour éliminer tout effet de courbure (pointeur droit), ou au contraire d'augmenter cette valeur pour accentuer la courbe de pointage, comme illustré ci-dessous :

Ajustement du facteur CURVE.