• 20 heures
  • Facile

Ce cours est visible gratuitement en ligne.

Vous pouvez être accompagné et mentoré par un professeur particulier par visioconférence sur ce cours.

J'ai tout compris !

Mis à jour le 08/03/2013

Animations automatiques

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

// Mini TP driven key un arc
// Driven Keys avancées

Vous savez comment animer un objet entier : par exemple, la tuture entière, pour qu'elle se déplace le long d'un motion path. Grâce à la hiérarchie, vous pouvez complexifier l'animation pour que les roues tournent tout en se déplaçant le long du motion path. Je vous apprendrai à générer une animation en boucle, qu'on appelle une animation "cyclique". Par exemple, nous commencerons par faire un cube avec une hélice et l'hélice devra tourner à l'infini tout en restant accrochée à l'objet qui se déplace.

Animation cyclique et hiérarchique

Cycle

L'animation que nous allons réaliser comportera en quelques sortes une sous-animation, je m'explique : nous allons modéliser un cube avec des hélices. Les hélices devront tourner infiniment, mais en plus tout l'objet devra se déplacer ! :)
Il va falloir gérer la hiérarchie pour cette animation. Nous allons créer un groupe composé des hélices et un autre de l'ensemble de l'objet.
J'ai créé le groupe des hélices (Ctrl + G) que j'ai nommé "Hélice".
J'ai ensuite sélectionné tout l'objet et crée un groupe "Hélico". Le groupe hélice doit être en dessous dans la hiérarchie. Le groupe "Hélice" doit être à l'intérieur du groupe "Hélico".
Le groupe "Hélice" est appelé "Children" (enfants) du groupe Hélico qui lui est appelé "Parent" car il est au-dessus dans la hiérarchie.

Image utilisateur

Sélectionnez le groupe "Hélice", passez en frame 1 et ajoutez une key. Puisque les hélices tournent assez rapidement, j'ai mis une key en frame 8 d'une rotation à 360° (un tour complet). Les hélices feront donc 24 frames(1 seconde) / 8 = 3 tours par secondes.

Image utilisateur

Vous verrez la F-curve dans le Graph Editor qui correspond au Rotate Y en biais de la valeur 1 à 360 en 8 frames.
Maintenant, pour que cette animation soit infinie, faites Curves -> Post Infinity -> Cycle :

Image utilisateur

Vous pouvez voir avec ce GIF animé ce que cela rend dans la scène 3D entre la frame 1 et 24. Je vous rappelle qu'à partir de la frame 8 il n'y a plus de keys :

Image utilisateur

Dans le Graph Editor vous pouvez afficher la F-curve infinie en faisant View -> Infinity. Vous verrez en pointillés la F-curve.

Image utilisateur

Maintenant, il va falloir animer tout l'objet pour que celui-ci s'élève. Sélectionnez le groupe Hélico et placez une key (shift + w pour une key en translate uniquement) en frame 1 quand il est au sol, ou plutôt sur la grille. Placez l'objet en hauteur puis ajoutez une key en frame 24.
Dans cette animation l'objet s'élève en 1 seconde et l'hélice effectue 3 tours complets :

Image utilisateur

Vous pouvez continuer l'animation de l'objet et même attacher le groupe "Hélico" à un motion path, les hélices continueront à tourner ! :D

Cycle with Offset

Le Cycle with offset est une animation cyclique avec accumulation de la valeur.
J'ai quelque peu complexifié l'animation de tout à l'heure pour que le cube à hélices aille à droite en frame 12 :

Image utilisateur

Dans le Graph Editor, cliquez sur l'option « Cycle with Offset ».
En affichant la F-curve infinie, on peut voir que l'objet s'élève infiniment alors que si on avait utilisé le cycle sans l'offset l'objet serait redescendu au sol à chaque fois.
Vous pouvez voir que la F-curve rouge qui correspond au Translate X ondule, donc durant l'ascension l'objet ira à gauche et à droite (c'est normal, car le cube est saoul après toutes les expériences qu'on a faites dessus ! :lol: ) :

Image utilisateur

Voilà l'animation de la frame 1 à 72 (3 secondes) :

Image utilisateur

Oscillate

Avec ocscillate, l'objet part dans un sens puis d'un autre infiniment. L'exemple le plus simple que j'ai trouvé pour expliquer son fonctionnement est la balançoire. L'objet se balancera dans un sens, par exemple de gauche à droite puis avec oscillate il fera l'animation inverse.

J'ai fait un pavé avec le pivot au dessus pour qu'il puisse se balancer. Puis, une rotation de -45° et ai ajouté une key en frame 1. Je suis ensuite passé en frame 24 et ai ajouté une key avec la valeur de rotation à 45°

Image utilisateur

Cliquez ensuite sur le type Oscillate dans Post Infinity.

En faisant apparaitre la F-curve infinie, vous pouvez voir que l'allure est abrupte. L'objet ira d'un sens à l'autre brusquement. À l'aide des outils de modification de la tangence, faites en sorte d'avoir des vagues. Pour ça, placez l'outil de modification de la tangence à l'horizontale. Faites pareil avec la key du bas (enfin la key avec la valeur -45 ^^ ) :

Image utilisateur

Modifiez la rangée de frames visibles dans les paramètres de la range slider, je vais mettre 120. Voilà ce que j'obtiens :

Image utilisateur

Linear

Le type "Linear" poursuit la curve dans sa direction. L'animation va se poursuivre et la curve fera une ligne droite.
Par exemple, j'ai refait le cube qui se déplace de gauche à droite auquel j'applique le type « Linear ». La F-curve rouge qui correspond au déplacement du cube de gauche à droite continue à se déplacer infiniment vers la droite puisque la valeur du translate X augmente tout le temps. Ça ressemble beaucoup au Cycle with Offset qui permettait d'avoir une accumulation.
Le type Linear ne répète pas l'allure d'une courbe, au contraire du Cycle with Offset, elle se poursuit selon sa direction :

Image utilisateur

Constant

Le type Constant est le type par défaut qu'il y a dans toute animation, quand il n'y a plus de key il n'y a plus d'animation.

Image utilisateur

Lier des paramètres avec les Driven Keys

Il arrive un moment où l'ajout de keys et l'édition de l'interpolation ne suffisent plus, où l'animation devient beaucoup trop complexe à gérer. C'est pourquoi, dans Maya, il vous est possible de combiner des paramètres de la channel box. L'animation que vous allez apprendre à mettre en place s'exécutera de façon automatique. Vous créerez un bras animé qui soulèvera un cube auquel il est fixé :

Image utilisateur

On aurait pu créer cette animation en ajoutant des keys, mais l'avantage de l'animation automatique est qu'à chaque fois que le bras du cube touche la grille, le polygone s'incline comme s'il était soulevé. Vous pouvez de cette manière simuler des phénomènes physiques ! :D

Modélisation et hiérarchie

C'est le Driven Key qui va permettre de créer une animation automatique, en d'autres termes une animation en exécutera une autre.
Nous allons utiliser pour cet exemple un cube muni de bras. Le bras est composé d'un cylindre et d'un pavé.
Créez un groupe du bras (Ctrl + g) et nommez-le "bras_1" pour pouvoir différencier les deux bras :

Image utilisateur

Faites une symétrie du groupe "bras_1" en le dupliquant et en faisant un scale -1.
Modifiez ensuite le scale selon l'axe Z (ou un autre axe, ça dépend de l'orientation de votre polygone) pour qu'il soit de l'autre côté :

Image utilisateur

Nommez ensuite le deuxième groupe (le deuxième bras) en "bras_2".
Sélectionnez le groupe "bras_1", "bras_2" ainsi que le cube et créez un nouveau groupe. Nommez le groupe "jouet".

Nos groupes sont créés, nous allons pouvoir effectuer une animation hiérarchique combinée aux Driven Keys ! :soleil:

Driven Keys

Il va falloir maintenant placer correctement les bras.
Sélectionnez le groupe "bras_1" (dans l'outliner) et placez le pivot au centre du cylindre. Ensuite faites une rotation jusqu'à ce que le bout du bras touche la grille (qui représente le sol). Faites la même chose avec le "bras_2" :

Image utilisateur

J'ai déplacé le pivot des bras au niveau de la zone de rotation.

Nous allons pouvoir ajouter nos Driven Keys. Faites Animate -> Set Driven Key -> Set.... La fenêtre "Set Driven Key" s'ouvrira.
Pour l'instant rien n'est affiché à l'intérieur, vous devez sélectionner le driver (conducteur) et le driven (conduit). Le driver est l'animation effectuée, donc la rotation du bras, et le driven est l'animation qui en résulte, donc le soulèvement du cube.
Vous allez donc sélectionner le groupe "bras_1" et cliquer "Load Driver". Le driven est tout l'objet, car tout l'objet va se mettre à pencher d'un côté. Sélectionnez le groupe "jouet" et cliquez sur "Load Driven" :

Image utilisateur

Vous pouvez voir les paramètres apparaitre dans la colonne de droite de la fenêtre "Set Driven Keys". En cliquant dessus, vous pouvez sélectionner ceux qu'on va lier. Le bras n'effectuera qu'une animation de rotation donc je sélectionne "Rotate Z".
Pour le groupe "objet", je vais sélectionner le paramètre "rotate X" pour que l'objet puisse s'incliner et le paramètre "Translate Y", qui nous sera utile pour régler sa hauteur.
Ensuite, cliquez sur key en bas à gauche pour sauvegarder les valeurs des paramètres.

Image utilisateur

Maintenez Ctrl pour sélectionner plusieurs paramètres.

Faites maintenant une rotation du groupe "bras_1" pour qu'il soit orienté del l'autre côté. J'ai 39.35 degré, vue qu'à la verticale il est à 90 degré. Pour l'avoir de l'autre côté il faut faire 90-39.35 = 50,65 degré de différence. Puis faite 90 + 50.65 = 140.65 degré (si vous n'avez pas bien compris ce n'est pas grâve, faite le à vue d'oeil ^^ ). Ajoutez ensuite une key dans le "Set Driven Key".

Image utilisateur

Donc, on a indiqué que le jouet doit être posé à plat lorsque le bras frole le sol, maintenant mettez le bras à la vertical et sélectionnez tout le groupe "jouet" pour le faire basculer, en prenant soin que les deux bras touchent le sol.

Image utilisateur

Faites une rotation du bras et votre polygone s'inclinera tout seul ! :D

Image utilisateur

Comme est-ce que tout cela fonctionne-t-il ?

Avec le Set Driven Key, nous avions ajouté une key quand le bras touchait la grille et que le polygone n'était pas incliné. Nous avons ensuite ajouté une key avec le bras orienté vers le bas et l'objet incliné. Ainsi, à chaque fois que le bras s'oriente en bas, le polygone s'incline grâce aux keys. Ensuite, nous avions ajouté une key avec le "bras_1" touchant la grille, mais de l'autre côté (dans le sens du bras_2), et avions reposé l'objet entier puis ajouté une key. Comme ça, d'un côté ou d'un autre du bras, le groupe objet n'est plus incliné.

Faites maintenant la même chose pour le "bras_2". Si vous avez bien compris, vous devriez être capable de le faire vous même.
Pour vous aider, il faut que le jouet ne soit pas inclinet et donc que le "bras_1" ne soit pas vers le bas. Vous n'aurez qu'à charger le bras_2 en tant que driver et à ajouter des keys selon l'orientation du bras.

Maintenant les deux bras inclinent le polygone et vous pouvez diriger les deux vers le bas pour rendre l'animation encore plus complexe ! :D

Image utilisateur

Vous pouvez maintenant ajouter des keys avec la fonction key selected dans la channel box. Par exemple en frame 1, le bras est d'un côté. Et en frame 24 le bras est de l'autre côté.
Vous pouvez donc animer les bras, qui sont les drivers ; cela animera automatiquement le driven qui est l'objet entier.
Et ce n'est pas tout, vous pouvez en plus modifier l'interpolation des bras !

Le Driven Key est donc l'outil indispensable pour l'animation automatique. En animant un driver cela aura des répercussions sur le driven.
Entraînez-vous à animer des drivers qui ont une répercusion sur un ou plusieurs drivens (en faisant plusieurs driven keys). ;)

Ces quelques techniques d'animation vous aideront à les complexifier et à corriger ce qui ne va pas. L'animation hiérarchique et l'animation cyclique permettent de créer des sous-animations : une animation sur un objet animé comme je vous l'ai montré pour l'hélice du cube hélico. ^^
Vous pourrez vous en servir pour animer des roues, les engrenages d'un moteur, animer des planètes (ça vous fera un bon entrainement, ça ^^ ), etc.

On en a fini avec les bases de l'animation, nous allons passer à la création d'un squelette pour animer vos personnages !

Exemple de certificat de réussite
Exemple de certificat de réussite