« Flash CS4 - Cinématique inversée » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
 
(82 versions intermédiaires par 12 utilisateurs non affichées)
Ligne 21 : Ligne 21 :
</div>
</div>


Ce tutoriel est une traduction de la section [http://help.adobe.com/en_US/Flash/10.0_UsingFlash/WS2756549E-1394-424a-B00E-357A1EAED5D8.html Using inverse kinematics] de la version anglaise de l'aide Adobe Flash CS4 disponible en ligne sous une license [http://creativecommons.org/licenses/by-nc-sa/3.0/ Attribution-Noncommercial-Share Alike]  
Ce tutoriel est une traduction de la section [http://help.adobe.com/en_US/Flash/10.0_UsingFlash/WS2756549E-1394-424a-B00E-357A1EAED5D8.html Using inverse kinematics] de la version anglaise de l'aide Adobe Flash CS4 disponible en ligne sous une licence [http://creativecommons.org/licenses/by-nc-sa/3.0/ Attribution-Noncommercial-Share Alike]  
et de la version anglaise de l'article [http://edutechwiki.unige.ch/en/Flash_CS4_inverse_kinematics_tutorial Flash CS4 inverse kinematics tutorial] en [http://edutechwiki.unige.ch/en/Main_Page Edutechwiki].
et de la version anglaise de l'article [http://edutechwiki.unige.ch/en/Flash_CS4_inverse_kinematics_tutorial Flash CS4 inverse kinematics tutorial] en [http://edutechwiki.unige.ch/en/Main_Page Edutechwiki].
CS5 ajoute des fonctionalités supplémentaires pas documentées ici (comme les ressorts).


== A propos de la cinématique inversée==
== A propos de la cinématique inversée==
La cinématique inverse (''inverse kinematics'' ou ''IK'') est une méthode pour animer un objet ou un ensemble d'objets reliés utilisant une structure  de segments articulés appelée une ''armature''. Les segments ou "os" permettent le déplacement de symboles et de formes de manière complexe et naturels avec un minimum d'effort de conception. Par exemple, la cinématique inverse vous laisse créer les effets d'animation de personnages, telle que le mouvement naturel des bras, des jambes, et des expressions faciales beaucoup plus facilement.
La cinématique inverse (''inverse kinematics'' ou ''IK'') est une méthode pour animer un objet ou un ensemble d'objets reliés utilisant une structure  de segments articulés appelée une ''armature''. Les segments ou '''''os''''' permettent le déplacement de symboles et de formes de manière complexe et naturelles avec un minimum d'effort de conception. Par exemple, la cinématique inverse vous laisse créer les effets d'animation de personnages, tels que le mouvement naturel des bras, des jambes, et des expressions faciales beaucoup plus facilement.
 
L'outil  '''''bone''''' ou '''''os''''' est un outil de la cinématique inverse (IK) qui permet de créer des armatures pour des formes ou des occurrences (''instances'') de symboles reliés. Ces armatures relient des objets ou des parties de formes dans un arbre hiérarchique. Lorsque les segments ou os au ''bout'' (ou ''enfant'') sont déplacés ils déplacent les os à la ''racine'' (ou ''parents''). Prenant un avatar humain comme exemple, si on tire un doigt, la main se déplacera aussi et la main à son tour déplacera le bras inférieur, etc. Quand un os se déplace, les autres os reliés se déplacent par rapport à l'os  qui a lancé le mouvement. Ainsi contrairement à l'''animation cinématique directe'', où chaque mouvement pour chaque composant doit être prévu, il ne faut que spécifier les positions de départ et d'arrêt des objets.
 
Vous pouvez ajouter des armatures aux occurrences de symboles individuels ou à l'intérieur d'une forme.  Utilisant la cinématique inverse  La cinématique inverse vous laisse créer le mouvement naturel beaucoup plus facilement.
 
[[image:an_ik_shape.png|left|thumb|150px|Une forme avec une armature de segments d'IK supplémentaire.]]
[[image:an_ik_symbols.png|right|thumb|150px|Un groupe de plusieurs symboles avec une armature IK jointe.]]
 
Une chaîne d'os s'appelle une armature. Les os dans une armature sont reliés entre eux dans une hiérarchie de parent-enfant. Une armature peut être linéaire ou embranchée. Des branches d'une armature qui commencent au même os s'appellent des ''siblings''. Le point où un os est relié à un autre s'appelle une articulation (''joint'').
 
On peut utiliser IK en Flash CS4 de deux manières. La première est d'articuler une série d'occurrences de symboles en ajoutant des os pour relier chaque occurrence à une autre. Les os permettent à la chaîne d'occurrences de symboles de bouger ensemble comme dans l'exemple ci-dessus.
 
La deuxième manière d'employer IK est d'ajouter une armature à l'intérieur d'une forme. La forme peut être créée comme '''dessin de forme''' (''merge drawing mode'') ou '''dessin d'objet''' (''object drawing mode''). Les os permettent de déplacer et d'animer des parties d'une forme sans la nécessité de dessiner différentes versions de la forme ou de créer une interpolation de mouvement  de forme (''motion tween''). Par exemple, on peut ajouter des os à un dessin simple d'un serpent pour permettre au serpent de se déplacer de manière réaliste.
 
Lorsque vous ajoutez des os aux occurrences de symboles ou aux formes, Flash met l'occurrence ou la forme et leur armature correspondantes sur un nouveau calque dans le scénario (''timeline''). Ce calque s'appelle un calque de pose (''pose layer')'. Chaque couche de pose peut contenir seulement une armature et ses occurrences ou formes associées.
 
Flash inclut deux outils pour travailler avec IK. Vous pouvez ajouter des os aux occurrences de symbole et aux formes avec l'outil '''os'''. Vous pouvez utiliser l'outil de grippage (''Bind tool'') pour modifier les rapports entre différents os et points de contrôle des formes.
 
===Démo simple===
L'exemple suivant montre que la différence entre une structure d'IK (armature) faite avec des symboles vs une structure faite avec une forme.
[[image:513px-Symbol-vs-shape-armature.png|frame|none|Une structure d'IK (armature) faite avec des symboles vs une structure faite avec une forme]]
Chargez l'application [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/symbol-vs-shape-armature.html symbol-vs-shape-armature.html] et tirez les bouts (ou d'autres parties des formes). Assurez-vous que vous avez Flash Player 10 installé, autrement cela ne fonctionnera pas. Notification : Les armatures ont été définies comme type ''Runtime'' qui permet à l'utilisateur de manipuler la structure IK.
 
== Une armature simple utilisant des occurrences de symbole ==
 
=== Créer une animation IK simple avec Creation of a simple IK animation utilisant des occurrences de symbole ===
 
Voir l'exemple [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/symbols-ik-armature-intro.html symbols-ik-armature-intro] d'abord.
[[image:symbols-ik-intro.png|thumb|right|150px|Une animation IK simple avec une occurrence de symbole]]
 
==== Un exemple de boules connectées ====
; Étape 1 - créer les symboles
* Créez un nouveau calque
* Créez un symbole de clip : dessinez une boule rouge et ''clic-droit->convertir en symbole''. Sélectionnez "clip".
* Modifiez l'occurrence sur la scène (p. ex. changez sa couleur, sa taille ou appliquez un filtre)
* Créez plusieurs copies de cette occurrence (appuyez CTRL-ALT et tirez le symbole).
* Répétez avec un rectangle arrondi. Dans la bibliothèque vous devez maintenant avoir deux symboles de clip : une boule rouge et un rectangle rouge.
 
; Étape 2 - mettez les symboles dans une position de départ.
* P.ex : essayez de reproduire l'exemple. Vérifiez que vous avez tous les symboles qu'il vous faut sur la scène avant de commencer à construire l'armature. Vous ne pourrez plus ajouter d'autres symboles plus tard.
 
; Étape 3 - créer la chaîne
[[image:flash-cs4-creating-bones.png|right|thumb|150px|Création des os pour les armatures IK type symbole avec Flash CS4]]
 
La chaîne doit aller du parent vers les enfants, des enfants aux petits enfants, etc. Dans notre cas, ceci veut dire qu'il faut commencer avec le rectangle lié au sol.
 
* Sélectionnez l'''outil os'' et cliquez sur la première forme pour désigner la ''forme parent''. Le point où vous cliquez en premier sera celui qui fixera l'armature à la scène. Dans notre cas nous avons choisi un point près du sol.
 
* Puis, du point au bout du premier point, c-a-d l'articulation (''joint''), tirez l'outil os vers l'objet suivant et lâchez la souris là où vous voulez que l'os termine. Si vous lâchez la souris hors du symbole, aucun joint ne sera créé.
 
* Répétez cette étape jusqu'à ce que '''tous les symboles soient liés'''. Il faut réfléchir préalablement à l'ordre. Il faut commencer par le parent, puis lier les éléments enfants depuis le parent. Il est tout à fait possible de lier plusieurs enfants à un seul parent. Par exemple, dans un avatar, on lie les 2 humérus au torse.
Parfois, il est nécessaire de créer des morceaux d'objets supplémentaires, car c'est le seul moyen de contraindre la dernière articulation à un angle de rotation spécifique (en effet, l'articulation d'un os sur laquelle on peut définir des paramètres est toujours celle qui est en amont de l'os). Dans ce cas, on créera un symbole dédié à cela que l'on rendra finalement invisible en lui ôtant couleur et pourtour. Mais il faut bien veiller à anticiper le problème, car on ne peut pas rajouter d'objet sur une armature déjà construite.
 
Vous pouvez ensuite jouer avec l'armature, p. ex. tirez le dernier enfant de l'armature IK pour voir si les articulations sont au bon endroit. Sinon, modifiez-les (voir ci-dessous).
 
''Options non liées à l'exemple''
; Étape 4 - supprimer les calques inutiles
Une fois que vous avez connecté chacun de vos objets (mis en relation les os), Flash créera automatiquement un nouveau calque dans le timeline qui sera directement nommé ''Armature'' (ex. ''Armature_1''). Si le nom donné par défaut ne vous convient pas, vous pouvez sans risque changer le nom du calque (remarquez également que le dessin d'un bonhomme est présent dans le calque). Ce nouveau calque comporte à la fois les objets (symboles ou formes) que vous avez préalablement créés - ils auront été copiés au calque d'armature et seront devenus des '''ikNodes'''. Par conséquent, vous pouvez d'ores et déjà supprimer le(s) calque(s) qui vous aura(ont) permis de dessiner ou d'importer vos objets, et conserver uniquement le calque ''Armature''.
 
; Étape 5 - pour modifier vos objets
Une fois ce calque apparu dans le timeline, vous ne pourrez plus modifier vos objets directement sur la scène. Si vous tentez de le faire un message vous informera que l'opération n'est pas possible. Pour contourner cette situation et avoir la possibilité de modifier vos objets, cliquez dans le timeline sur le calque ''Armature'', faites clic droit et sélectionnez ''Remove Armature''. Le dessin du ''bonhomme'' (dans le calque) disparaîtra pour se changer en ''feuille''. De ce fait, vous aurez désélectionné la cinématique mais aurez conservé vos objets que vous pourrez dorénavant modifier à votre guise. Une fois vos modifications terminées, réitérez l'opération de connection des éléments avec l'outil '''os'''. Un nouveau calque (ex. ''Armature_2'') apparaîtra alors dans le timeline. Supprimez l'ancien calque et conservez uniquement le nouveau.
 
''N.B.:''
 
Un mot à propos de la terminologie : chaque os recevra un nom comme  ''ikBoneName1'' (que vous pouvez changer) et chaque symbole recevra un nom comme ''ikNode1'' (que vous pouvez aussi changer). Donc, dans une armature nous avons des '''os''' (''bones'') et des '''noeuds''' (''nodes'').
 
=== Modifications ===
 
=== Repositionner une instance de symbole ===
 
Une fois l'armature créée, vous pouvez déplacer un objet avec CTRL-ALT et en tirant avec la souris
 
====Modification des points centraux====
 
* Si le début d'un os est au mauvais endroit, vous pouvez déplacer le point de rotation avec l'outil de transformation libre (''Free transform tool''). Vous pouvez également tourner la forme, la bouger ou modifier sa taille pour qu'elle s'adapte à la nouvelle rotation et longueur de l'os, mais ceci est compliqué. Nous verrons la manipulation des os et des noeuds plus en détail plus tard. Le mouvement des os du haut vers le bas suffira pour le moment.
 
L'image ci-dessous montre ce qui se passe si vous déplacez une forme et modifiez son point de rotation. Le résultat n'est pas entièrement réaliste (comparez-la avec l'image précédente...)
[[image:flash-cs4-adjusting-joints.png|frame|none|Modification des articulations (points d'entrée) avec l'outil de transformation en Flash CS4]]
 
=== Animation ===
 
Créons une armature IK. Avant de commencer, vérifiez que l'armature IK est celle que vous voulez. Elle doit être complète. Vous ne pourrez pas modifier l'armature plus tard. Vous ne pourrez que modifier les '''poses''', appliquer des transformations et autres modifications avancées. La procédure est la suivante :
 
* Dans le layer de l'armature, appuyez sur F5 quelque part plus loin dans le scénario (''timeline''). Cela créera une interpolation de mouvement pour cette armature.
* Ensuite avec l'outil de sélection (''selection tool'') vous pouvez déplacer/tourner toutes les articulations où vous voulez dans les images de votre choix. Chaque fois que vous faites ceci, Flash créera une nouvelle image clé avec une '''pose'''. Les images clés se distinguent par un point noir dans l'image, exactement comme pour un "motion tween" ordinaire.
 
* Vous pouvez copier/coller les poses : ''clic-droit'' directement dans une image clé dans le scénario, ensuite sélectionner "Copy Pose", puis dans un autre frame vous pouvez coller. Le calque doit être vert olive (déselectionné), autrement cela ne fonctionnera pas (ne cliquez pas d'abord dans la timeline).
 
* Le dernier élément lié à votre armature a tendance à tourner dans tous les sens sans contrôle, ce qui peut être très gênant. Pour éviter cela, créez un nouveau symbole (un carré par exemple) puis rendez-le transparent (alpha=0). Insérez-le dans un calque (autre que "armature" puisque vous ne pouvez rien y ajouter) près du dernier élément de l'armature. Visualisez à peu près où il se trouve. Reprenez l'armature et tirez un nouvel os jusqu'au symbole que vous venez d'insérer. Maintenant, en cliquant sur ce symbole, vous pourrez manipuler le dernier élément à votre guise
 
Et si rien ne fonctionne ?
 
* Sélectionnez le calque d'armature en cliquant dessus. Cela sélectionne toute l'armature IK.
 
* Supprimez le ou les os parent(s) (en bas dans notre exemple)
* Puis, sélectionnez tous les symboles et copiez-les vers le calque initial ("plaything" dans l'exemple). Vous pouvez utiliser CTRL-shift-v pour coller un symbole "en place" (même position que l'original).
* Puis supprimez le calque d'armature et recommencez.
 
=== Modification du scénario ===
 
* Simplement tirez la dernière image dans une direction ou une autre. Verifiez que vous voyez une flèche double, i.e. ne cliquez pas dans la dernière image. Dans ce dernier cas, vous bougeriez la chaîne entière.
 
; Résultat et source :
* [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/symbols-ik-armature-intro.html symbols-ik-armature-intro.html]
* Source: [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/symbols-ik-armature-intro.fla symbols-ik-armature-intro.fla] (Notification : La sélection des éléments fonctionne bizarement, peut-être parce que les traits ont été changés ou à cause de l'angle oblique. Agrandir à 400% si vous voulez jouer avec...)
* Dossier : http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/
 
== Ajouter des armatures aux formes ==
 
Vous pouvez également ajouter une armature à l'intérieur d'une forme comme la démo vue au départ [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/symbol-vs-shape-armature.html demo]. Suivez les étapes suivantes :
 
; Étape 1 - Créer un nouveau calque avec une seule forme
* Dessinez une forme ou un dessin simple en ''mode objet''. Finissez le dessin. Vous ne pourrez modifier que sa forme plus tard.
* Vérifiez que vous n'avez qu'une seule forme, autrement CS4 peut se bloquer ou agir de manière bizarre, e.g. créer plusieurs calques d'armatures.
Suivez les étapes ci-dessous :
* Dessinez toutes les parties en ''mode objet''.
* Lorsque le dessin vous plaît, sauvegardez une copie de votre œuvre pour y revenir si vous en avez besoin. CTRL-A puis ''clique-droit > Create Symbol''.
* Puis cassez l'occurrence du symbole sur la scène et ''unifiez'' tous les graphiques :  CTRL-A, puis dans le menu '''Modify''>''Combine objects''>''Union''. Ceci est nécessaire parce qu'il '''faut avoir un seul dessin de forme ou d'objet'''.
 
; Étape 2 - Ajouter l'armature IK (les os)
* Sélectionnez l'outil os dans le panneau d'outils
* Cliquez à l'intérieure de la forme à l'endroit où vous souhaitez attacher l'armature à la scène. Cet os devient le ''parent'' qui ne bougera pas.
* Puis appuyez la souris au même endroit et tirer un os
* Cliquez le point au bout de ce nouvel os et tirez encore
* etc.
Vous verrez maintenant un calque d'armature et vous ne pourrez plus modifier vos objets. Ils ont été tous déménagés au calque d'armature.
 
; Étape 3 - Ajouter une autre forme
* Si vous voulez créer une autre armature IK (forme ou objet) créez un nouveau calque et recommencez les étapes 1 et 2.
 
; Étape 4 - Créer l'animation et modifier des poses dans les images clé.
* Tournez les os comme expliqué ci-dessus. Si vous tournez le cercle près d'une articulation vous allez bouger l'articulation sans tourner les parents.
* Pour modifier la forme à l'intérieur d'une pose, voir ci-dessous. Consultez également [[Univers_Flash_CS4#En_avant]] pour une vue globale des outils et objets.
 
; Exemple avec deux fleurs
Cet exemple est très moche. Il faudra le refaire à un moment. Il faut dire que le crayon ne permet pas de dessiner des lignes en gras. Il vaut mieux utiliser l'outil rectangle ou le pinceau et modifier l'enveloppe de suite.
* [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/bones-in-shape-intro.html bones-in-shape-intro.html]
* Source : [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/bones-in-shape-intro.fla bones-in-shape-intro.fla]
* Dossier : http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/
 
; Exemple avec un homme-allumettes Shape stickman example
[[image:flash-cs4-shape-ik-stickman.png|thumb|right|200px|Structure IK type forme d'un homme-allumettes]]
Cette forme a été dessinée avec l'outil pinceau en mode objet. Lorsque le dessin était fait, nous avons uni toutes ses parties (''Modifier'' > ''Combiner objets'' > ''Union'') et puis optimisé (''Modifier'' > ''Optimiser forme'') à 100%.
 
* Le bonhomme-allumettes a beaucoup d'articulations
* L'os parent commence à la hanche
* Nous n'avons pas seulement animé les poses, avons aussi déplacé le bonhomme à des différents endroits dans une sélection d'images clés.
 
* [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/shape-ik-stickman-animation.html shape-ik-stickman-animation.html]
* Source: [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/shape-ik-stickman-animation.fla shape-ik-stickman-animation.fla]
* Dossier : http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/
 
Le résultat n'est pas magnifique, mais vu le peu de temps que ça nous a pris, ça va.
 
; Modifier la forme dans une pose
 
Parfois il est évident que la forme ne suit pas les os (des bords pointus apparaissent). On peut les corriger :
 
* Utiliser l'outil de sous-sélection pour déplacer le contrôle d'une forme à un autre endroit. Élargir la scène (au moins 400%). Puis vous pouvez déplacer ou supprimer les ''points de contrôle bleus'' ou les modifier en utilisant les ''manches de contrôle rouge'' pour modifier la courbe.
Ce type de manipulation prend du temps car Flash doit calculer toute l'interpolation. De plus, les os peuvent apparaître déplacés. Cliquez dans une autre image clé et revenir.
* Utiliser l'outil de fixation (''bind tool'') pour relier les contrôles de forme aux os.
[[image:flash-cs4-fixing-curves-ik.png|frame|none|Modifier la courbe d'une forme dans une pose IK avec l'outil sous-sélection]]
Sauf si vous souhaitez reproduire la motion d'un serpent, il vaut mieux utiliser une armature de symbole comme dans le prochain chapitre.
 
== Un avatar bonhomme-allumette ==
 
(pas encore fait !)
 
Maintenant nous allons créer un bonhomme-allumette qui a plus ou moins les mêmes proportions qu'une personne. Nous avons besoin de plusieurs objets pour construire le corps. Voici quelques règles concernant la taille des parties du corps.
 
* La taille du corps doit être environ 6 à 8 fois la taille de la tête.
* La taille de la tête aux entrejambes est la même taille de l'entrejambe aux pieds
* Les épaules et les hanches ont environ la même largeur
* La taille (si vous en avez une est à mi-chemin entre les épaules et l'entrejambe
* La longueur des bras : de l'épaule à mi-cuisse maximum
* La longueur des pieds : à peu près la même que les avant-bras
* Le visage est un ovale, environ 1/6 ou 1/8 de la taille du corps entier. Les yeux sont à peu près au centre.
 
; Modifier les propriétés
 
Sélectionnez un os et changez quelques options dans le panneau des propriétés.
 
* La vitesse fait référence à la vitesse du pivotement par rapport au reste (le défaut est 100%)
* Les contraintes de rotation sont des contraintes sur la rotation des articulations d'un système d'os artificiel
 
; Petite astuce
 
* Pour donner un effet réaliste du mouvement de la main, insérez une forme pleine colorée près de celle-ci. Faites-en un symbole. Reliez l'articulation à cette forme. Donnez une rotation du "nouvel os de la main" convenable et réalisez (la main ne peut pas rentrer dans le poignet par exemple). Ensuite, animez comme vous le souhaitez votre personnage, mains comprises si vous en aviez envie. Ensuite, donnez une valeur 0 pour l'alpha de la couleur de cette forme. Vous savez qu'il y a une forme mais l'utilisateur de le saura pas.
 
== Animation par l'utilisateur ==
 
Vous pouvez produire une armature de cinématique inverse qu'un utilisateur peut manipuler :
* N'utilisez que l'image 1 du calque d'armature. Autrement dit, il faut une armature sans autre animation (supprimez toutes les autres images dans le calque d'armature)
* Ensuite désélectionnez tout sur la scène, puis cliquez sur le calque "armature".
* Dans le panneau de propriétés, sélectionnez ''Type''> ''Runtime''.
* Publiez le clip et jouez comme dans la démo au début de ce tutoriel.
 
* Démo: [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/symbol-vs-shape-armature.html symbol-vs-shape-armature.html]
* Source: [http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/symbol-vs-shape-armature.fla symbol-vs-shape-armature.fla]
* Dossier : http://tecfa.unige.ch/guides/flash/ex4/inverse-kinematics/
 
=== Méthode hitTestObject() pour produire un petit jeu===
 
Il est possible une fois notre armature créée d'associer des méthodes aux noeuds.
 
Nous pouvons par exemple, créer un bonhomme et lui faire attraper des objets. Pour se faire, il faut attribuer la méthode hitTestObject() au noeud désiré.
 
Cette méthode va tester si le noeud en question touche un objet que nous définirons à l'avance.
 
exemple : attraper les multiples de 9
 
Nous avons créé un bonhomme tenant une pince. La pince et le bras du bonhomme comporte une armature. Le noeud final est sur le bout de la pince. C'est la position de ce dernier que nous allons tester. Ce noeud se nomme : "ikNode_21".
Le but du jeu est d'attraper les multiples de 9, voici le code qui teste les bonnes réponses:
 
 
<source lang="actionscript">
ikNode_21.addEventListener(MouseEvent.MOUSE_UP, toucher);
    function toucher(evt:MouseEvent
                //si le noeud 21(la pince) touche la réponse 81, elle se déplace + "Bravo"
if (ikNode_21.hitTestObject(rep81))
{
rep81.x= 500;
rep81.y=90;
textField.text= "Bravo!";
hits= hits+1;
}
 
if (ikNode_21.hitTestObject(rep27))
{
rep27.x= 500;
rep27.y=155;
textField.text= "Bravo!";
hits= hits+1;
}
if (ikNode_21.hitTestObject(rep63))
{
rep63.x= 500;
rep63.y= 212;
textField.text= "Bravo!";
hits= hits+1;
}
if (ikNode_21.hitTestObject(rep108))
{
rep108.x= 500;
rep108.y=270;
textField.text= "Bravo!";
hits= hits+1;
}
if (ikNode_21.hitTestObject(rep54))
{
rep54.x= 500;
rep54.y=331;
textField.text="Bravo!"
hits= hits+1;
}
if (ikNode_21.hitTestObject(rep45))
{
rep45.x= 500;
rep45.y=393;
textField.text= "Bravo!";
hits= hits+1;
}
               
 
 
</source>
 
Il y a ensuite le code qui détermine quand la pince touche une mauvaise réponse :
 
<source lang="actionscript">
    //pour chaque mauvaise réponse, il y a la même action qui se déclenche et affiche un message d'erreur
    function bad_move(evt:MouseEvent){
if (ikNode_21.hitTestObject(rep16)||ikNode_21.hitTestObject(rep17)
                    ||ikNode_21.hitTestObject(rep21)|| ikNode_21.hitTestObject(rep37)
                    || ikNode_21.hitTestObject(rep58) || ikNode_21.hitTestObject(rep97) )
{
textField.text= "Vous avez commis une erreur!";
}
</source>
 
Enfin, nous testons si le joueur a gagné en ajoutant cette ligne :
<source lang="actionscript">
            if (hits==6) {textField.text="Vous avez gagné!!Bravo";}
</source>
 
[http://tecfaetu.unige.ch/perso/maltt/folloni8/perso/exempleHitTestObject.swf exemple_swf]
 
[http://tecfaetu.unige.ch/perso/maltt/folloni8/perso/exempleHitTestObject.fla exemple_fla]
 
== Contrôler l'accélération ==
 
L'accélération permet de faire bouger l'animation avec un sens de gravité dû à l'accélération ou au ralentissement de son mouvement.
* Sélectionnez le calque contenant le squelette de la forme à animer
* Dans l'inspecteur de propriétés, sélectionnez l'option de type "Authortime"
* Sélectionnez l'image 40 par exemple sur tous les calques, puis choisissez Insertion / Timeline / Frame
* Placez la tête de lecture à l'image 40
* Attrapez l'extrémité de la forme à animer avec l'outil Sélection, pliez-la puis déplacez-la
* Sélectionnez la première pose à l'image 1 du calque Armature
* Dans l'inspecteur de propriétés, sélectionnez Simple (Medium) dans le menu Type de la section "Ease"
* Passez l'intensité à 100
* Prévisualisez avec Control / Test movie / in Flash Professionnal
 
== Survol des outils et des objets ==
 
Un petit manuel des outils et objets IK
 
=== Survol des outils ===
 
Voici une liste des outils et leur fonctions.
 
; L'outil os - ''Bones tool''
* Définir les os
 
; L'outil de fixation? - ''Bind tool''
* Associer les point d'une enveloppe à un os.
 
; L'outil de sélection - ''Select tool''
* Sélectionner les os ou ikNodes associés (formes) à manipuler, soit en les tirant, ALT-drag ou par le panneau de propriétés ou de transformation.
 
; L'outil de sous-sélection - ''Subselection tool''
* Permet le déplacement des articulations des os (i.e. les allonger ou raccourcir et pivoter) à l'intérieur d'une armature forme. A noter : ceci ne fonctionnera pas avec les structures qui utilisent des symboles. Pour déplacer les os des armatures type ''symbole'', utilisez l'outil transformation libre (''Free transform'')
* Permet la modification des formes
 
; L'outil stylo - ''pen tool''
* Une option pour ajouter ou supprimer les points de contrôle d'une forme
 
; L'outil de transformation libre - ''Free Transform tool''
* Permet de déplacer les articulations (points de départ des os) d'une armature type ''symbole''.
 
; Le panneau transformation - ''Transform panel''
* Modifier la taille et la rotation des os et les ikNodes associés (formes).
 
=== Le calque d'armature ===
Une armature est définie dans un calque particulier, le ''calque d'armature''. En cliquant sur le calque, vous pouvez modifier ses propriétés dans le panneau de propriétés :
 
* '''Accélération''': vous pouvez définir les paramètres d'accélération et de décélération des animations comme dans les autres animations d'interpolation.
* '''Options''':
** '''Changer type''': ''Authortime'' pour préciser l'animation dans le calque d'armature, ''runtime'' pour permettre à l'utilisateur de déplacer la structure IK. Dans ce dernier cas, vous ne pouvez pas contrôler l'animation. Vous ne pouvez définir que l'image 1.
** '''Style''': Permet de choisir la façon dont la structure d'os s'affiche. Affichez-la comme ''solide'' pour des objets simples et ''file'' pour les objets plus détaillés.
[[image:flash-cs4-armature-properties.png|thumb|600px|none|Les propriétés d'une armature Flash CS4]]
 
Flash déplace automatiquement tous les objets du calque de dessin au calque d'armature dès qu'un IK est créé. Alors, si vous voulez casser une armature, faites une copie sur un autre calque, ou encore mieux, sauvegardez vos dessins comme un symbole dans la bibliothèque (et cassez l'occurrence sur la scène).
 
De plus, les armatures doivent être créées avant d'être modifiables, i.e. vous pouvez modifier la '''pose initiale'''. Si vous avez plus qu'une pose, i.e. plus qu'une image, vous ne pouvez pas. Dans les autres images, vous ne pouvez changer et copier/coller que les poses. Ceci est normal, car une armature doit rester pareille pendant la durée de l'animation.
 
Il faut également savoir que lorsque vous voulez réutiliser une animation Flash dans laquelle il y a une armature, il faut trouver un autre subterfuge que le simple "''copy frames - paste frames''" car '''on ne peut pas copier une armature'''.
 
=== Manipuler l'ensemble d'une structure IK ===
* Pour sélectionner toute une structure IK ou une forme, cliquez dessus.
* Vous pouvez de suite modifier sa position dans le panneau de propriétés, déplaçant l'articulation parent à un nouveau point d'origine.
* Autrement, vous pouvez sélectionner l'outil de transformation pour le déplacer.
* Vous ne pouvez pas changer sa taille, alors pensez à la taille au départ.
 
=== Modifier les os ===
Il y a plusieurs manières de modifier les os créés. Vous pouvez les repositionner ainsi que leurs objets associés, déplacer un os à l'intérieur d'un objet, modifier la longueur d'un os, supprimer des os, et modifier les objets qui contiennent les os.
 
Modifiez les os '''avant''' d'ajouter les poses !
* Pour sélectionner un os, utilisez l'outil de sélection. '''shift-sélection''' permet de sélectionner plusieurs os et '''double-click''' sélectionnera tous les os.
* Pour supprimer un os, sélectionnez-le et ''supprimer''. Ceci va supprimer ses enfants aussi.
* Pour modifier les propriétés d'un ou plusieurs os, utilisez le panneau de paramètres.
 
Vous pouvez définir 3 types de paramètres pour chaque os ou série d'os.
* La transposition des articulations est désactivée par défaut, i.e. la taille des membres reste pareille. Pour permettre d'allonger les os, modifiez les paramètres de l'articulation de '''l'enfant''' '''Joint: X translation''' et '''Joint: Y translation'''. De suite, vous pouvez définir jusqu'où l'on peut tirer l'articulation (direction x/y), donc le début de l'os. Lorsqu'on bouge l'articulation dans une direction x/y (normalement pas possible) l'os parent changera sa taille et son angle.
* Pour limiter la rotation (360 degrés par défaut) modifiez les paramètres '''Joint: rotation'''. Les chiffres positifs indiquent une rotation dans le sens des aiguilles d'une montre.
 
Pour tourner un os, utiliser l'outil de sélection pour glisser l'os (ou la forme). Tous les os dans la même branche bougeront aussi. Mais si un point '''plus proche de l'articulation''' est sélectionné, les os bougeront moins.
 
Pour tourner un os '''sans bouger ses parents''', ''glisser'' en appuyant sur le bouton '''shift''' en même temps.
 
Pour déplacer un os, sélectionnez l'articulation avec l'outil '''transformation libre''' (free transform). Autrement dit, il suffit de déplacer le point de rotation, le petit cercle blanc de l'ancien style d'animation de rotation. Vous pouvez aussi manipuler les objets avec le panneau de transformation. Si vous voulez tirer l'os du parent A, sélectionnez l'enfant B, etc.
 
Nous n'avons pas réussi à déplacer le bout des os avec l'outil de sous-sélection pour les '''armatures ''symbole''''', que les armatures à l'intérieur des structures IK
 
=== Les nœuds IK dans les armatures symbole ===
 
Les instances de symbole connecté aux os deviennent automatiquement des '''ikNodes'''. Lorsque vous cliquez sur une forme avec l'outil de sélection, vous verrez une appelation type ''ikNode_3'' dans le panneau de propriétés.
 
* Dans le panneau de transformaton vous pouvez changer la taille (x et y) et la rotaton d'une forme, ainsi vous pouvez re-aligner une forme avec un os suite à des manipulations imprévues.
* Vous pouvez également appuyez sur '''ALT et glisser''' le ikNode (forme).
Dans les deux cas les dimensions de l'os seront modifiées.
 
=== Manipulation des structures IK forme ===
 
* Modifier une '''structure IK ''forme''''' avec l'outil de sous-sélection,
* Cliquez sur le trait et modifiez la forme avec les ''contrôles de contour'' qui apparaîtront.
* Pour ajouter un point de contrôle, cliquez sur le trait de contour
* Pour supprimer un point, sélectionnez-le et appuyez sur ''delete'' (supprimer).
* Pour agrandir un os, il faut simplement sélectionner l'os et ensuite tirer sur un des 2 bouts.
 
Conseil : La manipulation des contours (ajouter un point, modifier un contour) est parfois difficile et CS4 peut réagir de manière erratique. CS5 a l'air plus stable. L'outil '''stylo''' et ses sous-outils permettent un contrôle plus raffiné.
 
=== Relier les os au points d'une forme ===
 
Par défaut, les points de contrôle d'une forme sont reliés à l'os le plus proche. Vous pouvez modifier les associations avec le '''bind tool''' (l'outil de fixation) sous l''''outil os''' dans  le panneau d'outils).
 
Si vous cliquez sur un os ('''rouge''' quand il est sélectionné), tous ses points associés à un seul os seront visibles comme  carrés '''jaunes'''. Les '''triangles jaunes''' indiquent les points reliés à plusieurs os.
* Pour supprimer une association à un os faites '''CTRL-click''' sur le point de contrôle jaune.
* Pour associer un point à un os, '''SHIFT-click''' sur un point de contrôle rouge ''non-associé''.
* Pour ajouter un point de contrôle, utilisez l'''outil de sous-sélection''.


L'outil  '''''bone''''' ou '''''os''''' est un outil de la cinématique inverse (IK) qui permet de créer des armatures pour des formes ou des instances de symboles reliés. Ces armatures relient des objets ou des parties de formes dans un arbre hiérarchique. Lorsque les segments ou os à l'"extérieur" (ou ''enfant'') sont déplacés ils déplacent les os à l'"intérieur" (ou ''parents''). Prenant un avatar humain comme exemple, si on tire un doigt, la main se déplacera aussi et la main à son tour déplacera le bras inférieur, etc. Quand un os se déplace, les autres os reliés se déplacent par rapport à l'os  qui a lancé le mouvement. Ainsi contrairement à l'''animation cinématique directe'', où chaque mouvement pour chaque composant doit être prévu, il ne faut que spécifier les positions de départ et d'arrêt des objets.
Alternativement, si vous cliquez sur un point de contrôle ('''bleu''' si aucun os n'est sélectionné), il devient '''rouge''' et les os associés sont '''jaunes'''.
'''
A noter :''' la couleur '''rouge''' indique l''''objet d'origine''', la couleur '''jaune''' indique l''''objet associé'''


Vous pouvez ajouter des armatures aux instances de symboles individuels ou à l'intérieur d'une forme.  Utilisant la cinématique inverse  La cinématique inverse vous laisse créer le mouvement naturel beaucoup plus facilement.


[[image:an_ik_shape.png|frame|thumb|150px|none|Une forme avec une armature de segments d'IK supplémentaire.]]
== Liens ==


[[image:an_ik_symbols.png|frame|thumb|150px|none|Un groupe de plusieurs symboles avec une armature IK jointe.]]
(vérification des liens le 28 janvier 2012: tout ok!)
; Définitions
* [http://fr.wikipedia.org/wiki/Cin%C3%A9matique_inverse Cinématique inverse] (Wikipédia, L'encyclopédie en ligne)


Une chaîne d'os s'appelle une armature. Les os dans une armature sont reliés entre eux dans une hiérarchie de parent-enfant. Une armature peut être linéaire ou embranchée. Des branches d'une armature qui commencent au même os s'appellent des ''siblings''. Le point où un os se relie un autre s'appelle une articulation (''joint'').
; Manuels fr
* [http://help.adobe.com/fr_FR/Flash/10.0_UsingFlash/WS58BD3A02-DA25-488f-B534-AE5463A24833.html Utilisation de la cinématique inverse] (Adobe, Utilisation de Flash)
* [http://help.adobe.com/fr_FR/flash/cs/using/WS58BD3A02-DA25-488f-B534-AE5463A24833.html Utilisation de la cinématique inverse] (Adobe, Utilisation de Flash CS5)


On peut utiliser IK en Flash CS4 de deux manières. La première est d'articuler une série d'instances de symboles en ajoutant des os pour relier chaque instance à un autre. Les os permettent à la chaîne d'instances de symboles de bouger ensemble comme dans l'exemple ci-dessus.
; Manuel en
* [http://help.adobe.com/en_US/flash/cs/using/WS58BD3A02-DA25-488f-B534-AE5463A24833.html Using inverse kinmatics] (Adobe, Using Flash, CS5).


La deuxième manière d'employer IK est d'ajouter une armature à l'intérieur d'une forme. La forme peut être créée en comme '''forme primitive''' (''merge drawing mode'') ou '''forme standard''' (''object drawing mode''). Les os permettent de déplacer eet animer des parties d'une forme sans la nécessité de dessiner différentes versions de la forme ou de créer un ''tween'' de forme. Par exemple, on peut ajouter des os à un dessin simple d'un serpent pour permettre au serpent de se déplacer de manière réaliste.
; Vidéos
* [http://tv.adobe.com/fr/watch/apprendre-flash-professional-cs4/la-cinmatique-inverse/ La cinématique inverse, CS4] (Adobe)
* [http://www.adobe.com/go/lrvid4058_fl Using inverse kinematics (7:30)]
* [http://tv.adobe.com/#vi+f1552v1001 Flash Downunder – The Bone tool and the Deco Tool (22:00)]
* [http://www.video2brain.com/fr/videos-3080.htm Animation par cinématique inverse - Vidéo2brain (6:54)]
* [http://tv.adobe.com/watch/cs-55-web-premium-feature-tour-/flash-professional-cs55-pinning-support-for-ik/ Animation d'un coureur (2:35)]
* [http://tv.adobe.com/watch/digital-design-cs5/spring-for-bones/ Animation d'un squelette (4:29)]

Dernière version du 27 janvier 2014 à 23:19

Introduction

Objectifs d'apprentissage
Insérer des armatures dans les formes
Lier les symboles aux armatures
L'interpolation de mouvement avec les armatures
Lier les contours des formes aux armatures
Prérequis
Matériaux
Aucun, jouer simplement avec vos propres objets:)

Ce tutoriel est une traduction de la section Using inverse kinematics de la version anglaise de l'aide Adobe Flash CS4 disponible en ligne sous une licence Attribution-Noncommercial-Share Alike et de la version anglaise de l'article Flash CS4 inverse kinematics tutorial en Edutechwiki.

CS5 ajoute des fonctionalités supplémentaires pas documentées ici (comme les ressorts).

A propos de la cinématique inversée

La cinématique inverse (inverse kinematics ou IK) est une méthode pour animer un objet ou un ensemble d'objets reliés utilisant une structure de segments articulés appelée une armature. Les segments ou os permettent le déplacement de symboles et de formes de manière complexe et naturelles avec un minimum d'effort de conception. Par exemple, la cinématique inverse vous laisse créer les effets d'animation de personnages, tels que le mouvement naturel des bras, des jambes, et des expressions faciales beaucoup plus facilement.

L'outil bone ou os est un outil de la cinématique inverse (IK) qui permet de créer des armatures pour des formes ou des occurrences (instances) de symboles reliés. Ces armatures relient des objets ou des parties de formes dans un arbre hiérarchique. Lorsque les segments ou os au bout (ou enfant) sont déplacés ils déplacent les os à la racine (ou parents). Prenant un avatar humain comme exemple, si on tire un doigt, la main se déplacera aussi et la main à son tour déplacera le bras inférieur, etc. Quand un os se déplace, les autres os reliés se déplacent par rapport à l'os qui a lancé le mouvement. Ainsi contrairement à l'animation cinématique directe, où chaque mouvement pour chaque composant doit être prévu, il ne faut que spécifier les positions de départ et d'arrêt des objets.

Vous pouvez ajouter des armatures aux occurrences de symboles individuels ou à l'intérieur d'une forme. Utilisant la cinématique inverse La cinématique inverse vous laisse créer le mouvement naturel beaucoup plus facilement.

Une forme avec une armature de segments d'IK supplémentaire.
Un groupe de plusieurs symboles avec une armature IK jointe.

Une chaîne d'os s'appelle une armature. Les os dans une armature sont reliés entre eux dans une hiérarchie de parent-enfant. Une armature peut être linéaire ou embranchée. Des branches d'une armature qui commencent au même os s'appellent des siblings. Le point où un os est relié à un autre s'appelle une articulation (joint).

On peut utiliser IK en Flash CS4 de deux manières. La première est d'articuler une série d'occurrences de symboles en ajoutant des os pour relier chaque occurrence à une autre. Les os permettent à la chaîne d'occurrences de symboles de bouger ensemble comme dans l'exemple ci-dessus.

La deuxième manière d'employer IK est d'ajouter une armature à l'intérieur d'une forme. La forme peut être créée comme dessin de forme (merge drawing mode) ou dessin d'objet (object drawing mode). Les os permettent de déplacer et d'animer des parties d'une forme sans la nécessité de dessiner différentes versions de la forme ou de créer une interpolation de mouvement de forme (motion tween). Par exemple, on peut ajouter des os à un dessin simple d'un serpent pour permettre au serpent de se déplacer de manière réaliste.

Lorsque vous ajoutez des os aux occurrences de symboles ou aux formes, Flash met l'occurrence ou la forme et leur armature correspondantes sur un nouveau calque dans le scénario (timeline). Ce calque s'appelle un calque de pose (pose layer')'. Chaque couche de pose peut contenir seulement une armature et ses occurrences ou formes associées.

Flash inclut deux outils pour travailler avec IK. Vous pouvez ajouter des os aux occurrences de symbole et aux formes avec l'outil os. Vous pouvez utiliser l'outil de grippage (Bind tool) pour modifier les rapports entre différents os et points de contrôle des formes.

Démo simple

L'exemple suivant montre que la différence entre une structure d'IK (armature) faite avec des symboles vs une structure faite avec une forme.

Une structure d'IK (armature) faite avec des symboles vs une structure faite avec une forme

Chargez l'application symbol-vs-shape-armature.html et tirez les bouts (ou d'autres parties des formes). Assurez-vous que vous avez Flash Player 10 installé, autrement cela ne fonctionnera pas. Notification : Les armatures ont été définies comme type Runtime qui permet à l'utilisateur de manipuler la structure IK.

Une armature simple utilisant des occurrences de symbole

Créer une animation IK simple avec Creation of a simple IK animation utilisant des occurrences de symbole

Voir l'exemple symbols-ik-armature-intro d'abord.

Une animation IK simple avec une occurrence de symbole

Un exemple de boules connectées

Étape 1 - créer les symboles
  • Créez un nouveau calque
  • Créez un symbole de clip : dessinez une boule rouge et clic-droit->convertir en symbole. Sélectionnez "clip".
  • Modifiez l'occurrence sur la scène (p. ex. changez sa couleur, sa taille ou appliquez un filtre)
  • Créez plusieurs copies de cette occurrence (appuyez CTRL-ALT et tirez le symbole).
  • Répétez avec un rectangle arrondi. Dans la bibliothèque vous devez maintenant avoir deux symboles de clip : une boule rouge et un rectangle rouge.
Étape 2 - mettez les symboles dans une position de départ.
  • P.ex : essayez de reproduire l'exemple. Vérifiez que vous avez tous les symboles qu'il vous faut sur la scène avant de commencer à construire l'armature. Vous ne pourrez plus ajouter d'autres symboles plus tard.
Étape 3 - créer la chaîne
Création des os pour les armatures IK type symbole avec Flash CS4

La chaîne doit aller du parent vers les enfants, des enfants aux petits enfants, etc. Dans notre cas, ceci veut dire qu'il faut commencer avec le rectangle lié au sol.

  • Sélectionnez l'outil os et cliquez sur la première forme pour désigner la forme parent. Le point où vous cliquez en premier sera celui qui fixera l'armature à la scène. Dans notre cas nous avons choisi un point près du sol.
  • Puis, du point au bout du premier point, c-a-d l'articulation (joint), tirez l'outil os vers l'objet suivant et lâchez la souris là où vous voulez que l'os termine. Si vous lâchez la souris hors du symbole, aucun joint ne sera créé.
  • Répétez cette étape jusqu'à ce que tous les symboles soient liés. Il faut réfléchir préalablement à l'ordre. Il faut commencer par le parent, puis lier les éléments enfants depuis le parent. Il est tout à fait possible de lier plusieurs enfants à un seul parent. Par exemple, dans un avatar, on lie les 2 humérus au torse.

Parfois, il est nécessaire de créer des morceaux d'objets supplémentaires, car c'est le seul moyen de contraindre la dernière articulation à un angle de rotation spécifique (en effet, l'articulation d'un os sur laquelle on peut définir des paramètres est toujours celle qui est en amont de l'os). Dans ce cas, on créera un symbole dédié à cela que l'on rendra finalement invisible en lui ôtant couleur et pourtour. Mais il faut bien veiller à anticiper le problème, car on ne peut pas rajouter d'objet sur une armature déjà construite.

Vous pouvez ensuite jouer avec l'armature, p. ex. tirez le dernier enfant de l'armature IK pour voir si les articulations sont au bon endroit. Sinon, modifiez-les (voir ci-dessous).

Options non liées à l'exemple

Étape 4 - supprimer les calques inutiles

Une fois que vous avez connecté chacun de vos objets (mis en relation les os), Flash créera automatiquement un nouveau calque dans le timeline qui sera directement nommé Armature (ex. Armature_1). Si le nom donné par défaut ne vous convient pas, vous pouvez sans risque changer le nom du calque (remarquez également que le dessin d'un bonhomme est présent dans le calque). Ce nouveau calque comporte à la fois les objets (symboles ou formes) que vous avez préalablement créés - ils auront été copiés au calque d'armature et seront devenus des ikNodes. Par conséquent, vous pouvez d'ores et déjà supprimer le(s) calque(s) qui vous aura(ont) permis de dessiner ou d'importer vos objets, et conserver uniquement le calque Armature.

Étape 5 - pour modifier vos objets

Une fois ce calque apparu dans le timeline, vous ne pourrez plus modifier vos objets directement sur la scène. Si vous tentez de le faire un message vous informera que l'opération n'est pas possible. Pour contourner cette situation et avoir la possibilité de modifier vos objets, cliquez dans le timeline sur le calque Armature, faites clic droit et sélectionnez Remove Armature. Le dessin du bonhomme (dans le calque) disparaîtra pour se changer en feuille. De ce fait, vous aurez désélectionné la cinématique mais aurez conservé vos objets que vous pourrez dorénavant modifier à votre guise. Une fois vos modifications terminées, réitérez l'opération de connection des éléments avec l'outil os. Un nouveau calque (ex. Armature_2) apparaîtra alors dans le timeline. Supprimez l'ancien calque et conservez uniquement le nouveau.

N.B.:

Un mot à propos de la terminologie : chaque os recevra un nom comme ikBoneName1 (que vous pouvez changer) et chaque symbole recevra un nom comme ikNode1 (que vous pouvez aussi changer). Donc, dans une armature nous avons des os (bones) et des noeuds (nodes).

Modifications

Repositionner une instance de symbole

Une fois l'armature créée, vous pouvez déplacer un objet avec CTRL-ALT et en tirant avec la souris

Modification des points centraux

  • Si le début d'un os est au mauvais endroit, vous pouvez déplacer le point de rotation avec l'outil de transformation libre (Free transform tool). Vous pouvez également tourner la forme, la bouger ou modifier sa taille pour qu'elle s'adapte à la nouvelle rotation et longueur de l'os, mais ceci est compliqué. Nous verrons la manipulation des os et des noeuds plus en détail plus tard. Le mouvement des os du haut vers le bas suffira pour le moment.

L'image ci-dessous montre ce qui se passe si vous déplacez une forme et modifiez son point de rotation. Le résultat n'est pas entièrement réaliste (comparez-la avec l'image précédente...)

Modification des articulations (points d'entrée) avec l'outil de transformation en Flash CS4

Animation

Créons une armature IK. Avant de commencer, vérifiez que l'armature IK est celle que vous voulez. Elle doit être complète. Vous ne pourrez pas modifier l'armature plus tard. Vous ne pourrez que modifier les poses, appliquer des transformations et autres modifications avancées. La procédure est la suivante :

  • Dans le layer de l'armature, appuyez sur F5 quelque part plus loin dans le scénario (timeline). Cela créera une interpolation de mouvement pour cette armature.
  • Ensuite avec l'outil de sélection (selection tool) vous pouvez déplacer/tourner toutes les articulations où vous voulez dans les images de votre choix. Chaque fois que vous faites ceci, Flash créera une nouvelle image clé avec une pose. Les images clés se distinguent par un point noir dans l'image, exactement comme pour un "motion tween" ordinaire.
  • Vous pouvez copier/coller les poses : clic-droit directement dans une image clé dans le scénario, ensuite sélectionner "Copy Pose", puis dans un autre frame vous pouvez coller. Le calque doit être vert olive (déselectionné), autrement cela ne fonctionnera pas (ne cliquez pas d'abord dans la timeline).
  • Le dernier élément lié à votre armature a tendance à tourner dans tous les sens sans contrôle, ce qui peut être très gênant. Pour éviter cela, créez un nouveau symbole (un carré par exemple) puis rendez-le transparent (alpha=0). Insérez-le dans un calque (autre que "armature" puisque vous ne pouvez rien y ajouter) près du dernier élément de l'armature. Visualisez à peu près où il se trouve. Reprenez l'armature et tirez un nouvel os jusqu'au symbole que vous venez d'insérer. Maintenant, en cliquant sur ce symbole, vous pourrez manipuler le dernier élément à votre guise

Et si rien ne fonctionne ?

  • Sélectionnez le calque d'armature en cliquant dessus. Cela sélectionne toute l'armature IK.
  • Supprimez le ou les os parent(s) (en bas dans notre exemple)
  • Puis, sélectionnez tous les symboles et copiez-les vers le calque initial ("plaything" dans l'exemple). Vous pouvez utiliser CTRL-shift-v pour coller un symbole "en place" (même position que l'original).
  • Puis supprimez le calque d'armature et recommencez.

Modification du scénario

  • Simplement tirez la dernière image dans une direction ou une autre. Verifiez que vous voyez une flèche double, i.e. ne cliquez pas dans la dernière image. Dans ce dernier cas, vous bougeriez la chaîne entière.
Résultat et source

Ajouter des armatures aux formes

Vous pouvez également ajouter une armature à l'intérieur d'une forme comme la démo vue au départ demo. Suivez les étapes suivantes :

Étape 1 - Créer un nouveau calque avec une seule forme
  • Dessinez une forme ou un dessin simple en mode objet. Finissez le dessin. Vous ne pourrez modifier que sa forme plus tard.
  • Vérifiez que vous n'avez qu'une seule forme, autrement CS4 peut se bloquer ou agir de manière bizarre, e.g. créer plusieurs calques d'armatures.

Suivez les étapes ci-dessous :

  • Dessinez toutes les parties en mode objet.
  • Lorsque le dessin vous plaît, sauvegardez une copie de votre œuvre pour y revenir si vous en avez besoin. CTRL-A puis clique-droit > Create Symbol.
  • Puis cassez l'occurrence du symbole sur la scène et unifiez tous les graphiques : CTRL-A, puis dans le menu Modify>Combine objects>Union. Ceci est nécessaire parce qu'il faut avoir un seul dessin de forme ou d'objet'.
Étape 2 - Ajouter l'armature IK (les os)
  • Sélectionnez l'outil os dans le panneau d'outils
  • Cliquez à l'intérieure de la forme à l'endroit où vous souhaitez attacher l'armature à la scène. Cet os devient le parent qui ne bougera pas.
  • Puis appuyez la souris au même endroit et tirer un os
  • Cliquez le point au bout de ce nouvel os et tirez encore
  • etc.

Vous verrez maintenant un calque d'armature et vous ne pourrez plus modifier vos objets. Ils ont été tous déménagés au calque d'armature.

Étape 3 - Ajouter une autre forme
  • Si vous voulez créer une autre armature IK (forme ou objet) créez un nouveau calque et recommencez les étapes 1 et 2.
Étape 4 - Créer l'animation et modifier des poses dans les images clé.
  • Tournez les os comme expliqué ci-dessus. Si vous tournez le cercle près d'une articulation vous allez bouger l'articulation sans tourner les parents.
  • Pour modifier la forme à l'intérieur d'une pose, voir ci-dessous. Consultez également Univers_Flash_CS4#En_avant pour une vue globale des outils et objets.
Exemple avec deux fleurs

Cet exemple est très moche. Il faudra le refaire à un moment. Il faut dire que le crayon ne permet pas de dessiner des lignes en gras. Il vaut mieux utiliser l'outil rectangle ou le pinceau et modifier l'enveloppe de suite.

Exemple avec un homme-allumettes Shape stickman example
Structure IK type forme d'un homme-allumettes

Cette forme a été dessinée avec l'outil pinceau en mode objet. Lorsque le dessin était fait, nous avons uni toutes ses parties (Modifier > Combiner objets > Union) et puis optimisé (Modifier > Optimiser forme) à 100%.

  • Le bonhomme-allumettes a beaucoup d'articulations
  • L'os parent commence à la hanche
  • Nous n'avons pas seulement animé les poses, avons aussi déplacé le bonhomme à des différents endroits dans une sélection d'images clés.

Le résultat n'est pas magnifique, mais vu le peu de temps que ça nous a pris, ça va.

Modifier la forme dans une pose

Parfois il est évident que la forme ne suit pas les os (des bords pointus apparaissent). On peut les corriger :

  • Utiliser l'outil de sous-sélection pour déplacer le contrôle d'une forme à un autre endroit. Élargir la scène (au moins 400%). Puis vous pouvez déplacer ou supprimer les points de contrôle bleus ou les modifier en utilisant les manches de contrôle rouge pour modifier la courbe.

Ce type de manipulation prend du temps car Flash doit calculer toute l'interpolation. De plus, les os peuvent apparaître déplacés. Cliquez dans une autre image clé et revenir.

  • Utiliser l'outil de fixation (bind tool) pour relier les contrôles de forme aux os.
Modifier la courbe d'une forme dans une pose IK avec l'outil sous-sélection

Sauf si vous souhaitez reproduire la motion d'un serpent, il vaut mieux utiliser une armature de symbole comme dans le prochain chapitre.

Un avatar bonhomme-allumette

(pas encore fait !)

Maintenant nous allons créer un bonhomme-allumette qui a plus ou moins les mêmes proportions qu'une personne. Nous avons besoin de plusieurs objets pour construire le corps. Voici quelques règles concernant la taille des parties du corps.

  • La taille du corps doit être environ 6 à 8 fois la taille de la tête.
  • La taille de la tête aux entrejambes est la même taille de l'entrejambe aux pieds
  • Les épaules et les hanches ont environ la même largeur
  • La taille (si vous en avez une est à mi-chemin entre les épaules et l'entrejambe
  • La longueur des bras : de l'épaule à mi-cuisse maximum
  • La longueur des pieds : à peu près la même que les avant-bras
  • Le visage est un ovale, environ 1/6 ou 1/8 de la taille du corps entier. Les yeux sont à peu près au centre.
Modifier les propriétés

Sélectionnez un os et changez quelques options dans le panneau des propriétés.

  • La vitesse fait référence à la vitesse du pivotement par rapport au reste (le défaut est 100%)
  • Les contraintes de rotation sont des contraintes sur la rotation des articulations d'un système d'os artificiel
Petite astuce
  • Pour donner un effet réaliste du mouvement de la main, insérez une forme pleine colorée près de celle-ci. Faites-en un symbole. Reliez l'articulation à cette forme. Donnez une rotation du "nouvel os de la main" convenable et réalisez (la main ne peut pas rentrer dans le poignet par exemple). Ensuite, animez comme vous le souhaitez votre personnage, mains comprises si vous en aviez envie. Ensuite, donnez une valeur 0 pour l'alpha de la couleur de cette forme. Vous savez qu'il y a une forme mais l'utilisateur de le saura pas.

Animation par l'utilisateur

Vous pouvez produire une armature de cinématique inverse qu'un utilisateur peut manipuler :

  • N'utilisez que l'image 1 du calque d'armature. Autrement dit, il faut une armature sans autre animation (supprimez toutes les autres images dans le calque d'armature)
  • Ensuite désélectionnez tout sur la scène, puis cliquez sur le calque "armature".
  • Dans le panneau de propriétés, sélectionnez Type> Runtime.
  • Publiez le clip et jouez comme dans la démo au début de ce tutoriel.

Méthode hitTestObject() pour produire un petit jeu

Il est possible une fois notre armature créée d'associer des méthodes aux noeuds.

Nous pouvons par exemple, créer un bonhomme et lui faire attraper des objets. Pour se faire, il faut attribuer la méthode hitTestObject() au noeud désiré.

Cette méthode va tester si le noeud en question touche un objet que nous définirons à l'avance.

exemple : attraper les multiples de 9

Nous avons créé un bonhomme tenant une pince. La pince et le bras du bonhomme comporte une armature. Le noeud final est sur le bout de la pince. C'est la position de ce dernier que nous allons tester. Ce noeud se nomme : "ikNode_21". Le but du jeu est d'attraper les multiples de 9, voici le code qui teste les bonnes réponses:


ikNode_21.addEventListener(MouseEvent.MOUSE_UP, toucher);
    function toucher(evt:MouseEvent
                //si le noeud 21(la pince) touche la réponse 81, elle se déplace + "Bravo"
		if (ikNode_21.hitTestObject(rep81)) 
		{
			rep81.x= 500;
			rep81.y=90;
			textField.text= "Bravo!";
			hits= hits+1;
			
		}

		if (ikNode_21.hitTestObject(rep27))
		{
			rep27.x= 500;
			rep27.y=155;
			textField.text= "Bravo!";
			hits= hits+1;
			
		}
		
		if (ikNode_21.hitTestObject(rep63))
		{
			rep63.x= 500;
			rep63.y= 212;
			textField.text= "Bravo!";
			hits= hits+1;
			
		}
		
		if (ikNode_21.hitTestObject(rep108))
		{
			rep108.x= 500;
			rep108.y=270;
			textField.text= "Bravo!";
			hits= hits+1;
			
		}
		
		if (ikNode_21.hitTestObject(rep54))
		{
			rep54.x= 500;
			rep54.y=331;
			textField.text="Bravo!"
			hits= hits+1;
			
		}
		
		if (ikNode_21.hitTestObject(rep45))
		{
			rep45.x= 500;
			rep45.y=393;
			textField.text= "Bravo!";
			hits= hits+1;
			
		}

Il y a ensuite le code qui détermine quand la pince touche une mauvaise réponse :

     //pour chaque mauvaise réponse, il y a la même action qui se déclenche et affiche un message d'erreur
    function bad_move(evt:MouseEvent){
		if (ikNode_21.hitTestObject(rep16)||ikNode_21.hitTestObject(rep17)
                    ||ikNode_21.hitTestObject(rep21)|| ikNode_21.hitTestObject(rep37)
                     || ikNode_21.hitTestObject(rep58) || ikNode_21.hitTestObject(rep97) )
		{
			
			
			textField.text= "Vous avez commis une erreur!";
			
			
		}

Enfin, nous testons si le joueur a gagné en ajoutant cette ligne :

            if (hits==6) {textField.text="Vous avez gagné!!Bravo";}

exemple_swf

exemple_fla

Contrôler l'accélération

L'accélération permet de faire bouger l'animation avec un sens de gravité dû à l'accélération ou au ralentissement de son mouvement.

  • Sélectionnez le calque contenant le squelette de la forme à animer
  • Dans l'inspecteur de propriétés, sélectionnez l'option de type "Authortime"
  • Sélectionnez l'image 40 par exemple sur tous les calques, puis choisissez Insertion / Timeline / Frame
  • Placez la tête de lecture à l'image 40
  • Attrapez l'extrémité de la forme à animer avec l'outil Sélection, pliez-la puis déplacez-la
  • Sélectionnez la première pose à l'image 1 du calque Armature
  • Dans l'inspecteur de propriétés, sélectionnez Simple (Medium) dans le menu Type de la section "Ease"
  • Passez l'intensité à 100
  • Prévisualisez avec Control / Test movie / in Flash Professionnal

Survol des outils et des objets

Un petit manuel des outils et objets IK

Survol des outils

Voici une liste des outils et leur fonctions.

L'outil os - Bones tool
  • Définir les os
L'outil de fixation? - Bind tool
  • Associer les point d'une enveloppe à un os.
L'outil de sélection - Select tool
  • Sélectionner les os ou ikNodes associés (formes) à manipuler, soit en les tirant, ALT-drag ou par le panneau de propriétés ou de transformation.
L'outil de sous-sélection - Subselection tool
  • Permet le déplacement des articulations des os (i.e. les allonger ou raccourcir et pivoter) à l'intérieur d'une armature forme. A noter : ceci ne fonctionnera pas avec les structures qui utilisent des symboles. Pour déplacer les os des armatures type symbole, utilisez l'outil transformation libre (Free transform)
  • Permet la modification des formes
L'outil stylo - pen tool
  • Une option pour ajouter ou supprimer les points de contrôle d'une forme
L'outil de transformation libre - Free Transform tool
  • Permet de déplacer les articulations (points de départ des os) d'une armature type symbole.
Le panneau transformation - Transform panel
  • Modifier la taille et la rotation des os et les ikNodes associés (formes).

Le calque d'armature

Une armature est définie dans un calque particulier, le calque d'armature. En cliquant sur le calque, vous pouvez modifier ses propriétés dans le panneau de propriétés :

  • Accélération: vous pouvez définir les paramètres d'accélération et de décélération des animations comme dans les autres animations d'interpolation.
  • Options:
    • Changer type: Authortime pour préciser l'animation dans le calque d'armature, runtime pour permettre à l'utilisateur de déplacer la structure IK. Dans ce dernier cas, vous ne pouvez pas contrôler l'animation. Vous ne pouvez définir que l'image 1.
    • Style: Permet de choisir la façon dont la structure d'os s'affiche. Affichez-la comme solide pour des objets simples et file pour les objets plus détaillés.
Les propriétés d'une armature Flash CS4

Flash déplace automatiquement tous les objets du calque de dessin au calque d'armature dès qu'un IK est créé. Alors, si vous voulez casser une armature, faites une copie sur un autre calque, ou encore mieux, sauvegardez vos dessins comme un symbole dans la bibliothèque (et cassez l'occurrence sur la scène).

De plus, les armatures doivent être créées avant d'être modifiables, i.e. vous pouvez modifier la pose initiale. Si vous avez plus qu'une pose, i.e. plus qu'une image, vous ne pouvez pas. Dans les autres images, vous ne pouvez changer et copier/coller que les poses. Ceci est normal, car une armature doit rester pareille pendant la durée de l'animation.

Il faut également savoir que lorsque vous voulez réutiliser une animation Flash dans laquelle il y a une armature, il faut trouver un autre subterfuge que le simple "copy frames - paste frames" car on ne peut pas copier une armature.

Manipuler l'ensemble d'une structure IK

  • Pour sélectionner toute une structure IK ou une forme, cliquez dessus.
  • Vous pouvez de suite modifier sa position dans le panneau de propriétés, déplaçant l'articulation parent à un nouveau point d'origine.
  • Autrement, vous pouvez sélectionner l'outil de transformation pour le déplacer.
  • Vous ne pouvez pas changer sa taille, alors pensez à la taille au départ.

Modifier les os

Il y a plusieurs manières de modifier les os créés. Vous pouvez les repositionner ainsi que leurs objets associés, déplacer un os à l'intérieur d'un objet, modifier la longueur d'un os, supprimer des os, et modifier les objets qui contiennent les os.

Modifiez les os avant d'ajouter les poses !

  • Pour sélectionner un os, utilisez l'outil de sélection. shift-sélection permet de sélectionner plusieurs os et double-click sélectionnera tous les os.
  • Pour supprimer un os, sélectionnez-le et supprimer. Ceci va supprimer ses enfants aussi.
  • Pour modifier les propriétés d'un ou plusieurs os, utilisez le panneau de paramètres.

Vous pouvez définir 3 types de paramètres pour chaque os ou série d'os.

  • La transposition des articulations est désactivée par défaut, i.e. la taille des membres reste pareille. Pour permettre d'allonger les os, modifiez les paramètres de l'articulation de l'enfant Joint: X translation et Joint: Y translation. De suite, vous pouvez définir jusqu'où l'on peut tirer l'articulation (direction x/y), donc le début de l'os. Lorsqu'on bouge l'articulation dans une direction x/y (normalement pas possible) l'os parent changera sa taille et son angle.
  • Pour limiter la rotation (360 degrés par défaut) modifiez les paramètres Joint: rotation. Les chiffres positifs indiquent une rotation dans le sens des aiguilles d'une montre.

Pour tourner un os, utiliser l'outil de sélection pour glisser l'os (ou la forme). Tous les os dans la même branche bougeront aussi. Mais si un point plus proche de l'articulation est sélectionné, les os bougeront moins.

Pour tourner un os sans bouger ses parents, glisser en appuyant sur le bouton shift en même temps.

Pour déplacer un os, sélectionnez l'articulation avec l'outil transformation libre (free transform). Autrement dit, il suffit de déplacer le point de rotation, le petit cercle blanc de l'ancien style d'animation de rotation. Vous pouvez aussi manipuler les objets avec le panneau de transformation. Si vous voulez tirer l'os du parent A, sélectionnez l'enfant B, etc.

Nous n'avons pas réussi à déplacer le bout des os avec l'outil de sous-sélection pour les armatures symbole, que les armatures à l'intérieur des structures IK

Les nœuds IK dans les armatures symbole

Les instances de symbole connecté aux os deviennent automatiquement des ikNodes. Lorsque vous cliquez sur une forme avec l'outil de sélection, vous verrez une appelation type ikNode_3 dans le panneau de propriétés.

  • Dans le panneau de transformaton vous pouvez changer la taille (x et y) et la rotaton d'une forme, ainsi vous pouvez re-aligner une forme avec un os suite à des manipulations imprévues.
  • Vous pouvez également appuyez sur ALT et glisser le ikNode (forme).

Dans les deux cas les dimensions de l'os seront modifiées.

Manipulation des structures IK forme

  • Modifier une structure IK forme avec l'outil de sous-sélection,
  • Cliquez sur le trait et modifiez la forme avec les contrôles de contour qui apparaîtront.
  • Pour ajouter un point de contrôle, cliquez sur le trait de contour
  • Pour supprimer un point, sélectionnez-le et appuyez sur delete (supprimer).
  • Pour agrandir un os, il faut simplement sélectionner l'os et ensuite tirer sur un des 2 bouts.

Conseil : La manipulation des contours (ajouter un point, modifier un contour) est parfois difficile et CS4 peut réagir de manière erratique. CS5 a l'air plus stable. L'outil stylo et ses sous-outils permettent un contrôle plus raffiné.

Relier les os au points d'une forme

Par défaut, les points de contrôle d'une forme sont reliés à l'os le plus proche. Vous pouvez modifier les associations avec le bind tool (l'outil de fixation) sous l'outil os dans le panneau d'outils).

Si vous cliquez sur un os (rouge quand il est sélectionné), tous ses points associés à un seul os seront visibles comme carrés jaunes. Les triangles jaunes indiquent les points reliés à plusieurs os.

  • Pour supprimer une association à un os faites CTRL-click sur le point de contrôle jaune.
  • Pour associer un point à un os, SHIFT-click sur un point de contrôle rouge non-associé.
  • Pour ajouter un point de contrôle, utilisez l'outil de sous-sélection.

Alternativement, si vous cliquez sur un point de contrôle (bleu si aucun os n'est sélectionné), il devient rouge et les os associés sont jaunes. A noter : la couleur rouge indique l'objet d'origine, la couleur jaune indique l'objet associé


Liens

(vérification des liens le 28 janvier 2012: tout ok!)

Définitions
Manuels fr
Manuel en
Vidéos