ContribCliquez ici pour proposer des corrections ou des compléments pour cette page.
Animation avec AC3D

Depuis la version 8 de X-Plane il est possible d'intégrer dans les scènes, sur nos aéronefs,... des objets animés qui pourront se mouvoir en fonction de n'importe quel paramètre de X-plane. Il est possible de créer ces animations à la main, mais le plus simple est quand même d'utiliser un modeleur 3D.

Vous avez ci-dessous la traduction du tutoriel de Ben :

Animer des objets 3D

AC3D est un modeleur 3D intuitif à faible prix et est l'un des nombreux moyens pour créer des modèles pour X-Plane 8. Ce tutoriel décrit comment créer un objet animé pour X-Plane 8 avec AC3D.
Version originale de cette page
 

Ce dont vous avez besoin pour ce tutoriel

Avant de commencer, vous avez besoin de :

S'il vous plait, lisez le fichier Readme du plugin d'export AC3D X-Plane pour les instructions d'installation.

Ce tutoriel considère que vous savez déjà comment créer des objets non-animés avec AC3D. Voir le fichier Readme du plugin d'export AC3D X-Plane pour de plus ample informations.

Aperçu du processus

Le principe de base du processus se compose de :

Créer l'objet de la porte d'embarquement

Dans un premier temps nous devons créer notre modèle de base. Bien sûr vous pouvez fabriquer n'importe quelle porte d'embarquement mais l'objet de ce tutoriel étant les animations, je vous recommande de prendre pour exemple la (vilaine) porte d'embarquement que j'ai créée. Ainsi les commandes d'animation fonctionneront sans modification.

1. Avec AC3D, créer six objets qui forment la porte d'embarquement

Vous aurez besoin de six objets : quatre boîtes et deux cylindres. Pour définir leurs emplacements, tailles et noms, utilisez les zones Size to et Move to sur la gauche de la fenêtre d'AC3D et la zone object-name en bas à gauche. Vous devrez être dans le mode Object (en haut à gauche) pour faire ces changements. Définissez vous objets avec les données suivantes :

NAME        TYPE            LOCATION        SIZE
   wall        Box             0.5 ,5,0        1,2,2
   circle1     Cylinder        2   ,5,0        2.5,2  ,2.5
   tunnel1     Box             7.25,5,0        9  ,2  ,2
   tunnel2     Box             8   ,5,0        9  ,2.1,2.1
   circle2     Cylinder        13  ,5,0        2.5,2.1,2.5
   cab         Box             14.5,5,0        1.5,2.1,2.5

Ainsi fait, la fenêtre hiérarchique devrait ressembler à ça :

La porte d'embarquement devrait elle ressembler à ça :

Si vous ne voulez pas fabriquer l'objet, voici une copie du modèle de base : jetway_basic.ac

2. Sélectionner tous les objets.

3. Cliquer sur le bouton "Smooth"

4. Cliquer sur le bouton "1S"

Cela applique à tous les objets les propriétés "smooth shading" et "1-sided". Nous voulons du "smooth shading" pour que les cercles paraissent incurvés et "1-sided" pour la performance. De plus, ces modes sont ceux par défaut dans X-plane, ce qui implique une utilisation de plus rapide de ceux-ci.

Structurer le modèle pour les animations

Nous devons maintenant créer une hiérarchie entre les objets, hiérarchie qui sera utilisée pour les animations. En particulier, quand le bras de la porte d'embarquement s'étendra, nous voulons que celle-ci suive le mouvement. Donc nous allons créer une hiérarchie fondée sur les mouvements réels. Vous devez être dans le mode Objetc pour ces manipulations.

5. Sélectionner tous les objets à part le mur (wall).

6. Utiliser la commande make Animation Group à partir du menu Tools.

La hiérarchie change alors pour que tous les objets à part le mur soient dans un groupe appelé "ANIMATION".

7. Sélectionner les objets circle2, tunnel2 et cab.

8. Utiliser la commande make Animation Group à partir du menu Tools.

9. Sélectionner les objets circle2 et cab.

10. Utiliser la commande make Animation Group à partir du menu Tools.

Vous avez désormais trois groupes d'animation emboîtés l'un dans l'autre. La fenêtre hiérarchique ressemble à cela :

Cela signifie que nous avons maintenant trois parties différentes que l'on va pouvoir animer. La première animation affecte tout l'objet sauf le mur et permet de faire tourner la porte d'embarcation autour du premier cylindre. La seconde affecte tunnel2, circle2 et cab et permet d'allonger le bras de la porte d'embarcation. La dernière n'affecte que circle3 et cab et permet de faire pivoter la cabine.

Notez que circle3 tourne avec la cabine. Si vous ne voulez voir que la cabine pivoter, il vous suffit d'avoir uniquement cab dans le troisième groupe "ANIMATION". Vous pouvez faire un groupe "ANIMATION" avec un seul objet.
 

Définir les animations

Il faut maintenant créer nos animations. On ne peut pas le faire avec AC3D car il n'a pas d'éditeur d'animation. Pour les définir, il nous faut donc ajouter du texte à chaque groupe "ANIMATION".

11. Click-droit (Windows) ou Click-molette (Mac) sur le premier groupe "ANIMATION" et utiliser la commande Edit object data... du menu déroulant.

Il s'agit de la fenêtre dans laquelle nous allons entrer les donnés pour la première animation.

12. Entrer les données d'animation pour la première rotation.

Voici les données dont vous allez avoir besoin :

TRANSLATE  2  0 0    2 0 0   0 0    none
ROTATE     0 -1 0   -90 90   -1 1   sim/joystick/yolk_roll_ratio
TRANSLATE -2  0 0   -2 0 0   0 0    none

Translation-rotation-translation? Voici ce qu'il se passe : la commande de rotation fait pivoter toujours autour du point 0,0,0 d'un modèle. puisque nous voulons pivoter la porte d'embarquement autour du centre du premier cercle, nous devons déplacer l'origine à ce point, pivoter et renvoyer ce centre de rotation à l'origine. C'est pourquoi il y a deux translations qui entourent la rotation.

La première translation déplace l'axe X de 2 unités. Notez que l'on spécifie cette valeur pour les points de départ et d'arrivée de la translation et qu'on entre 0 0 none comme donnée de référence. Cela signifie : toujours déplacer l'axe de 2 unités.

Puis nous pivotons autour de l'axe 0 -1 0 de -90 à 90 degrés suivant une évolution de -1 à 1 de la donnée de référence qui est sim/joystick/yolk_roll_ratio, l'axe de roulis du joystick (cette mauvaise appellation est intentionnelle, les datarefs sont en fait mal nommés depuis la version 6.70 de X-Plane, mais nous ne les avons pas changées depuis pour conserver la compatibilité avec les vieux plugins). Suivant le mouvement du joystick de -1 à 1 (plein à gauche vers plein à droite), la porte d'embarquement pivote de -90° à 90°.

La spécification de l'axe est un vecteur donnant l'axe autour duquel l'objet doit pivoter. La rotation est anti-horaire autour de cet axe. 0 -1 0'pointe vers le bas, puisque le joystick pivote dans le sens horaire (puisque c'est un rotation anti-horaire vue de dessous). Fondamentalement, si vous donnez le coefficient-1 à votre axe, vous passez d'une rotation anti-horaire à une rotation horaire.

C'est assez compliqué mais voici ce qu'il est important à retenir :

  • Toujours utiliser deux translations avec valeurs fixes pour définir le centre de rotation d'un groupe d'objets.
  • Changer le signe de votre axe de rotation pour passer d'une rotation anti-horaire à une rotation horaire et inversement.

13. Click-droit (Windows) ou Click-molette (Mac) sur le premier groupe "ANIMATION" et utiliser la commande Edit object data... du menu déroulant.

14. Entrer les données d'animation pour la translation.

Entrez les données suivantes :

TRANSLATE 0 0 0    8 0 0    0 1   sim/flightmodel/engine/ENGN_thro[0]

Ce qui signifie : nous déplaçons le modèle vers la droite de 0 unités quand la manette des gaz est au ralenti et de 8 mètres vers la droite quand la manette est à fond (ENGN_thro est le taux de la manette des gaz, de 0 à 1, le premier moteur étant désigné par "0").

Nota : puisqu'il s'agit d'une animation imbriquée, cette animation aura lieu dans la direction du bras de la porte d'embarcation. Si celle-ci pivote, le bras pivote également et s'étend donc la direction de cette nouvelle position.

15. Click-droit (Windows) ou Click-molette (Mac) sur le premier groupe "ANIMATION" et utiliser la commande Edit object data... du menu déroulant.

16. Entrer les données d'animation pour la rotation.

TRANSLATE  13  0 0   13 0 0    0 0 none
ROTATE      0 -1 0  -90  20   -1 1 sim/joystick/yolk_heading_ratio
TRANSLATE -13  0 0  -13 0 0    0 0 none

Cette rotation est identique dans le fonctionnement à la première : nous tranlatons, pivotons puis translatons pour pouvoir pivoter autour du second cylindre et non autour de l'origine, le point 0,0,0. Ce dernier groupe d'objets pivote de -90°'à20° en fonction de la position des palonniers.

Notez que le point de rotation (13,0,0) est défini par les coordonnées de l'objet circle2 initial. Il n'est pas nécessaire de se soucier de la position du cylindre quand le bras de la porte d'embarquement est étendu (qui pourrait aussi bien être 21,0,0). Comme cette animation est emboîtée dans les deux autres, sa position change en fonction de celle de la porte d'embarquement automatiquement.

Une fois terminé, vous devez avoir quelque chose comme ça : jetway_animated.ac

Exporter l'objet

La dernière étape est la création de l'objet pour X-Plane.

17. Utiliser la commande Export... du menu File et choisir X-Plane 8 Object File...

Enregistrer l'objet sous jetway.obj. AC3D vous avertit que vous n'avez pas texturé l'objet. Pas de problème, cela sera nécessaire quand vous ferez vos propres objets.

AC3D exporte votre objet en un fichier comme celui-ci : jetway.obj
 

Voir le résultat

Pour voir le résultat avec ObjView, glisser-déposer votre fichier objet dans la fenêtre d'ObjView et utiliser la touche "a" pour lancer les animations. Tous les éléments animés s'animent alors pour montrer la structure de base des animations.

Pour voir cet objet dans X-plane, nous allons remplacer l'objet de KSBD.

18. Renommer le fichier KSBD_example.obj.

19. Placer votre objet au même endroit en le nommant KSBD_example.obj.

Le fichier 'KSBD_example.objse trouve dans Custom Scenery/Default Demo Area/Custom Objects.

20. Lancer X-Plane et se placer sur l'aéroport KSBD.

Animez le joystick et vous pourrez voir votre objet d'animer, ça pourrait ressembler à ça : jetway.mov