Speeech !
January 27, 2012 | Snippets | fr | en

Speeech.js pour InDesign CS4 et CS5+ 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.
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.
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 :

Comments
Comme tu le dis, Trop fort !
Héhé marrant ce truc. Tu es toujours là où on t'attend pas :D
Loic
Ce script est peut-être "rudimentaire", mais il va m'être bien utile.
Parfois je dois "interpeller" le lecteur au moyen d'un phylactère. Ma plus grande difficulté était de dessiner le pointeur. Ceux que je produisais ne me convenaient jamais... et y passait trop de temps pour y parvenir.
En plus, je trouve très astucieux le placement de cette pointe. :)
Hello again - I am the user who proposed the idea... I used to make this manually, by creating one text frame (ussually oval) and the duplicating a piece of triangle drawn just the way I liked it: a bit curved and rotating and scalling until I got the result I wanted. After that I would join the two paths. Your solution is outstanding, thank you again... I owe you big...
Excellent Marc !
La simplicité n'est ici que le symptôme visible de la maîtrise :)
C'est Magnifique!
how do you actually run this on a mac? I tried to download it but it just opened to another browser page with the script, and copying and pasting in applescript editor window didnt work.
this is the first time i am using a script! please help.
Hi ANIA,
> this is the first time i am using a script! please help.
Let me direct you to this excellent resource for beginners (designed by Dan Rodney): “How to install InDesign/InCopy Scripts”
See also this useful page at InDesign Secrets: “How to Install a Script in InDesign That You Found in a Forum or Blog Post”
@+
Marc
@Anina: hold down the alt key before clicking the link. This will then download the file into your downloads folder.
Nice script - thanks!
Bon, c'est pas le tout de jouer Marc, on attend des scripts sérieux…!! J'déconne, excellente idée et pas si farfelue…!!!
NB : tu devrais prendre plus souvent des vacances, ça te réussit ;^)