Warning: Undefined array key "HTTP_ACCEPT_ENCODING" in /home/clients/97cf10fa399c6faa42e2c9c80e9afbe5/web/tutoriel3/index.php on line 2

Deprecated: substr_count(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/clients/97cf10fa399c6faa42e2c9c80e9afbe5/web/tutoriel3/index.php on line 2
Tutoriel sur les animations avec Terragen troisième partie : vers des animations plus complexes, par Hoffmann Nicolas

Tutoriel sur les animations avec Terragen
Par Hoffmann Nicolas
Troisième partie : Vers des animations plus complexes
Egalement disponible en anglais English
Première partie disponible ici
2ème partie disponible ici

Introduction

Avant toute chose, si vous débutez complètement dans le domaine des animations avec Terragen, je vous conseille vivement d'aller voir le précédent tutoriel que j'ai créé. Il est très accessible (c'est le but !), et doit pouvoir vous permettre de comprendre les bases du fonctionnement de Campath et de ce tutoriel.
N'hésitez pas à aller voir le second tutoriel que j'ai créé, il vous permettra de voir d'autres aspects liés aux mouvements de caméra. Que ce soit clair : je ne vais pas développer à nouveau comment utiliser Campath, tout au plus je mettrai un lien vers la rubrique des précédents tutoriels.
Quand je parle d' "animations plus complexes", je veux simplement parler des contraintes qui vont s'imposer si vous vous lancez dans des animations : Je précise bien encore une fois : ce tutoriel ne va pas vous donner une méthode géniale qui marchera à tous les coups, le but est justement de voir ce qui peut faire échouer ce genre de gros projet, et donc d'éviter les erreurs. Note : je prends Campath comme exemple, mais ce dont je vais parler s'applique aussi si vous utilisez Terranim (un autre logiciel pour faire des animations avec Terragen).

Toutefois, comme on dit, "qui peut le plus peut le moins", l'approche utilisée dans ce tutoriel peut vous servir, même pour de "petites" animations.

Plan du tutoriel

Revenir en haut de page

Pré-requis

1) Problématiques

Ne tournons pas autour du pot, voici les principaux problèmes générés par des animations : Dans les deux premiers tutoriels, je parlais de ne pas s'aventurer au-dessus du 400*300 pour une animation. Pour donner un exemple, mes dernières animations sont en 720*400, je n'ai pas essayé d'aller plus haut en résolution. (on approche de la résolution DVD, il est à mon sens inutile de faire des rendus en 2000*1500 pour une animation, à moins que vous ayez du temps à perdre...)
Revenir en haut de page

2) Limiter les "risques"

La principale peur, quand on fait ce genre d'animations, est qu'il faille tout jeter.
Bref, d'avoir lancé un calcul (en général un GROS calcul) pour rien.

Donc l'idée est de maîtriser le plus de paramètres possibles.
Dans cette optique, voici les principaux paramètres à prendre en compte : Bref, l'idée est de s'éviter au maximum les mauvaises surprises. Et là, la méthode est très basique : il faut tout simplement faire des captures d'écrans à divers "moments" de l'animation, comme il est aisé de fractionner un script (cf le premier tutoriel, rubrique division d'un script), il serait stupide de se priver de cette "sécurité".
Plus vous ferez de captures à divers endroits, moins vous risquerez d'avoir de mauvaises surprises...

Gardons à l'esprit quand vous faites une image, si UNE image est ratée, ce n'est pas trop grave, par contre, quand il s'agit d'un MILLIER d'images qu'il faut jeter, avec pour seule consolation d'avoir perdu un week-end de calcul pour rien, je peux vous assurer que c'est VRAIMENT très énervant... (expérience vécue)

Sachez également que plus votre animation comporte de paramètres qui varient (trajectoire de visée, ciel en mouvement, rotation du soleil, etc.), plus il y a de "risques" potentiels (rassurez-vous, ce n'est quand même pas mission impossible).
Revenir en haut de page

3) Erreurs à éviter

J'étais volontairement resté assez généraliste dans le paragraphe précédent, cette fois, rentrons dans le vif du sujet.
Un problème qui revient souvent et qui est particulièrement dévastateur : une belle bande noire dans le ciel à cause d'une taille de ciel insuffisante... Des fois on peut rattraper en corrigeant image par image (c'est assez pénible), mais des fois, il y a tellement d'images à corriger qu'il vaut mieux laisser tomber. N'hésitez pas à mettre des tailles de ciel vraiment élevées, cela ne rallonge pas spécialement le temps de calcul, Terragen ne calculera pas le ciel "invisible"...
Se méfier des bords du terrain : il arrive quelquefois qu'on ait le syndrôme "fin du monde" (c'est-à-dire que l'on est au bord du terrain) si l'animation passe trop près d'un bord de terrain un peu trop "plat". Les solutions sont simples : Ce problème va souvent de pair avec celui de la taille de ciel insuffisante...
Si vous voulez faire des effets de morphing avec le plugin SOPack, je vous conseille de faire l'effet dans un script à part de votre animation, et il vaut mieux que ce script commence à l'image numéro 1, j'ai eu des bugs dans le cas contraire... Bref, isolez le bout du script qui fait le morphing, et indiquez-lui qu'il doit commencer avec le numéro 1. C'est très simple, précisez dans le bout de script isolé à la ligne :
    initanim "D:\images\terragen\anims\tut\www", 452 
    Changez ce chiffre "452" en "1", ce qui nous donne : 
    initanim "D:\images\terragen\anims\tut\www", 1
   
Je suis d'accord : ce n'est pas logique, mais ça évite des problèmes, croyez-moi... (et comme ce n'est pas très compliqué à mettre en oeuvre, faites-le !)
Une autre erreur qui revient souvent, ne vous fiez pas (trop) à la vitesse affichée par Campath quand vous utilisez la vue 3D.
Sauf erreur, il me semble que la prévisualisation 3D de Campath tourne à 15 images/secondes, donc si votre animation est prévue pour tourner à 25 images/seconde, la vitesse finale sera différente (plus rapide). Pour vous en persuader, faites le calcul : une animation de 1000 images durera 40 secondes à 25 images/secondes et 66.7 secondes à 15 images/secondes. Méfiez-vous en particulièrement si votre animation comporte de grands changements de vitesse, vous pourriez avoir de mauvaises surprises...
Méfiez-vous des ciels très sombres avec effets de rayons, vous pouvez vous retrouvez avec un paysage très sombre ou surexposé... A utiliser avec parcimonie dirons-nous ! (c'est très joli, mais à vos risques et périls)
Evitez de donner une trop grande vitesse au vent si votre animation est longue (plusieurs minutes), cela peut créer de gros bugs dans le ciel, le genre de bugs qui n'est pas rattrapable facilement, si vous voyez ce que je veux dire...
Evitez aussi de donner des valeurs trop basses au zoom, c'est amusant, mais vous risquez de vite déchanter, car cela crée des bugs avec Terragen. Le plus comique que j'ai eu m'a forcé à taper deux fois sur "Entrée" entre chaque rendu d'image (le gros zoom de "jeux de caméra", une de mes animations sur mon site perso), et ce pour plus de 70 images !

Je ne sais pas si ce bug subsiste, mais dans le doute, abstenez-vous... (je descends rarement en-dessous de 0.8)
Une erreur stupide mais qui ne pardonne pas : vérifiez bien que "Random cloud on each frame" ne soit pas coché dans le module "Cloudscape" (ciel et nuages), sinon vous risquez d'avoir une drôle de surprise en voyant votre animation changer de ciel à chaque image...
Si votre animation est très près du sol, méfiez-vous, même si Campath vous indique qu'elle ne touche pas le sol, il arrive des fois que "l'avion se crashe", bref, que la caméra touche le sol quand même. Ne frôlez pas un sol accidenté de trop près, en général, je rajoute une unité terragen si la caméra est près du sol, ça m'évite de mauvaises surprises...
Un autre problème peut être gênant : il arrive que la texture puisse très légèrement se déplacer entre chaque image. C'est très léger, mais parfois déplaisant (cela peut se voir dans mes premières animations), surtout si on utilise une texture complexe (cela se voit beaucoup moins si vous avez une texture simple, ou très uniforme). On appelle ceci "texture popping" en anglais (littéralement, la texture "sautille", ou le "saut de texture"). Ce n'est pas très grave si vous en êtes au stade de l'apprentissage dans le domaine des animations avec Terragen, mais c'est particulièrement désagréable si vous essayez de faire une animation bien réussie, ou si vous êtes un peu pointilleux (comme moi).

Pour contrer ce désagrément, il n'y a qu'une seule méthode, il faut aller dans les paramètres de rendu ("Render settings"), et cocher "Extra Blended Detail", chose que vous ne pourrez faire... que si vous avez la version enregistrée de Terragen.
Il faut également noter que cocher cette option augmente sensiblement le temps de rendu, mais améliore nettement la qualité !
Un autre problème est également possible pour de volumineuses animations si, comme moi, vous travaillez en non-compressé. Si vous utilisez FAT32 en guise de système de fichiers, vous risquez d'avoir des problèmes si votre fichier dépasse les 4 Go, car c'est la taille limite pour un fichier avec ce système de fichiers. Je suis d'accord : les fichiers supérieurs à cette taille sont assez rares, mais j'ai déjà rencontré le problème avec des animations de plus de 4 minutes ! A titre d'exemple, "Mars Render" pèse pas moins de 7,2 Go en non-compressé !
La seule solution possible pour lever cette limite est d'utiliser NTFS et d'avoir un disque dur suffisamment spacieux...
Revenir en haut de page

4) Pour se simplifier la vie

Voici quelques points pour vous faciliter la tâche :
Make Movie Sequence
Pour éviter le problème de vitesse, il faut pouvoir faire un rendu "de contrôle" (bref, pas de détails). Campath vous offre cette possibilité, via le menu "File", "Make Movie Sequence", il vous suffit d'indiquer la taille des images générées, leur emplacement, et Campath va calculer une version "fil de fer" de l'animation, image par image. Ensuite vous n'aurez qu'à utiliser un logiciel comme Bink pour assembler le tout à 25 images/seconde, et vous verrez la vitesse réelle de votre animation.

C'est vraiment très utile, surtout si vous cherchez à faire une animation synchronisée avec une musique...

Une autre possibilité pour vous simplifier la vie est de diviser vos scripts. Cela est souvent avantageux : A cet effet, n'hésitez d'ailleurs pas à faire des mini-storyboards pour bien planifier votre future animation.

A titre d'exemple, plusieurs de mes dernières animations (Mars, Fairground) usent et abusent de la division de script.

Une autre façon de se simplifier la vie est de faire de nombreuses et fréquentes sauvegardes...
Changement de priorité d'un processus
Terragen a tendance à monopoliser l'ordinateur : c'est un autre "problème" gênant. Les applications se mettent à ramer, et l'ordinateur se retrouve vite inutilisable pendant un calcul, que ce soit pour une animation ou même une simple image. Cela arrive même avec des ordinateurs puissants (j'ai un Athlon 64 3200 avec 1 Go de RAM).
Comme il n'est pas toujours possible d'avoir un ordinateur uniquement dédié à cette tâche, on peut ruser en changeant la priorité d'un processus, en l'occurrence celle de Terragen. Il suffit de faire la combinaison magique sous Windows (ctrl-alt-suppr), et d'aller dans l'onglet "Processus". En supposant que vous ayiez déjà lancé Terragen, il vous suffit de cliquer-droit sur le processus "Terragen", d'aller sur "définir la priorité", et la passer de "Normal" à "inférieure à la normale" ou "basse", comme indiqué ci-contre.

L'astuce est valable pour un calcul d'animation, comme pour un calcul d'une simple image (un rendu en 4000*3000 peut immobiliser un ordinateur pendant plusieurs heures). Par contre, l'astuce montrée ci-dessus ne fonctionne qu'avec Windows XP ou 2000.
Revenir en haut de page

5) Encodage et quelques outils

Pour ce qui est de l'encodage, je n'ai pas mentionné un logiciel vraiment intéressant dans mes derniers tutoriels : Virtual Dub. C'est un logiciel libre qui excelle quand il s'agit de compresser une animation dans le but de la mettre en ligne (il permet de compresser vidéo ET audio dans le même fichier, ce qui permet de gagner pas mal de place). A cet effet, voici quelques conseils : Ouvrez votre vidéo (chez moi c'est une version non compressée qui pèse quelques gigaoctets), allez dans le menu "Audio", et et cochez "Full Processing Mode". Faites en de même pour le menu "Vidéo". Ensuite retournez dans le menu "Audio", et choisissez le menu compression, choisissez votre compression audio (en général, j'utilise le MP3), faites en de même dans le menu "Vidéo", vous pourrez choisir votre compression vidéo (en général, le codec Xvid donne de très bons résultats).
Faites ensuite "Save as AVI" pour sauvegarder votre vidéo compressée. Virtal Dub va compresser votre vidéo, les résultats sont très intéressant avec le couple MP3 et Xvid, j'arrive à obtenir une vidéo de 20 Mo à partir d'une vidéo non compressée de 2 Go ! (non sans perte de qualité, bien sûr...)

Il va de soi qu'il y a d'autres options intéressantes dans ce logiciel, mais toutes les détailler n'est pas le but de ce tutoriel.

Mes tutoriels sont axés pour l'instant sur Campath, mais il se pourrait bien que la tendance soit inversée avec la dernière version de Terranim, elle permet un contrôle très fin des paramètres d'une animation tout en restant très simple, et offre de nouvelles possibilités (comme contrôler le niveau d'eau et le faire varier au cours d'une animation !). Bref, je n'aimais vraiment pas les anciennes versions de Terranim, mais il faut avouer que cette version 2.0 est vraiment très prometteuse !

L'interface est d'ailleurs beaucoup plus claire, et l'ergonomie générale a bien été améliorée par rapport aux anciennes versions, donc si le coeur vous en dit, n'hésitez pas à l'essayer, Terranim est de plus gratuit pour une utilisation non-commerciale...

J'ai d'ailleurs consacré un tutoriel à Terranim !
Une autre possibilité intéressante quand on commence à faire des animations en grand format (720*400) est de créer un DVD.
Si vous avez un graveur de DVD et Nero 6 (par exemple), vous pouvez réaliser un petit DVD avec les animations, c'est très simple à créer, et c'est réellement sympathique de regarder (et de faire voir !) vos animations sur une télévision équipée d'un lecteur de DVD. Comme Nero fait "tout le sale boulot" (encodage et création des fichiers), vous auriez tort de vous en priver !

A noter : vous pouvez également sortir vos animations sur Video-CD ou sur Super-Video-CD (la plupart des lecteurs de DVD lisent ces formats), mais la qualité est moins intéressante que celle du DVD, la résolution étant moindre. Toutefois, il suffira d'avoir un graveur de CD, chose qui est extrêmement répandue (en tout cas plus que les graveurs de DVD pour le moment).

Une autre possibilité intéressante est offerte par un logiciel créé par John McLusky : Anthill. Ce logiciel permet de donner un effet anti-crénelage très joli. Vous pourrez en trouver des exemples sur le site de Karsten Keppel. En fait, Anthill va créer une image à partir de plusieurs images de votre animation. (par exemple, image0001.bmp, image0002.bmp, image0003.bmp seront "combinées" pour créer une seule image)

L'effet est très sympathique, néanmoins, si vous voulez l'utiliser, il faudra doubler voire tripler le temps de calcul de votre animation. La raison en est simple, si votre animation comporte 3000 images et que vous utilisez un anti-crénelage de 3 images avec Anthill, votre animation comportera 1000 images au final. Donc si vous voulez obtenir la même vitesse, il vous faudra calculer 3 * 3000 images, soit 9000 (!) images. C'est donc à réserver à ceux qui ont beaucoup de puissance de calcul à disposition.
Après, on peut pousser le délire en décidant de créer un petit film, mais croyez-moi, ce genre de projet est assez difficile, et demande beaucoup de temps et de ressources. A titre d'exemple, mes dernières animations (qui sont de l'ordre de la minute trente) prennent de l'ordre d'une semaine de calcul, sur 2 PC ! Quand ce n'est pas plus...

Donc si vous voulez vous lancer dans ce genre de projet, planifiez bien, et ayez le plus de puissance de calcul possible ! J'ai déjà fait une petite évaluation, et les chiffres donnent le vertige : plusieurs mois de calcul, des centaines de Go de stockage...

Une autre aide pour les calculs à rallonge (qui sont légion avec de grosses animations) peut venir du projet GPU.

Ce projet permet de distribuer le calcul d'une animation avec Terragen via Internet. Ce n'est pas très compliqué à utiliser, allez donc faire un petit tour sur le site de ce projet GPU. A titre d'exemple, une de mes animations, "LOTR", a été calculée de cette manière.
Revenir en haut de page

Conclusion

Voilà, je pense avoir dit à peu près l'essentiel sur ce "nouveau" genre d'animations, je compléterai ce tutoriel si besoin est.

Si vous voulez voir des mini-films, allez faire un tour sur mon site personnel. "Mars" en est un bon exemple parmi d'autres...

Pour pouvoir lire ce tutoriel hors ligne, voici une archive zip : fichier (environ 48 Ko)

N'hésitez pas à me mailer pour me dire ce que vous pensez de ce tutoriel, ou pour me montrer vos animations !
Hoffmann Nicolas
Document compatible XHTML 1.1 et CSS

XHTML Valide !  CSS Valides !