Obligement - L'Amiga au maximum

Samedi 19 août 2017 - 03:32  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


En pratique : Wildfire - petit film
(Article écrit par Jac Pourtant et extrait d'Amiga News - décembre 1997)


Chers zamis, bonjour ! Alors, on a goûté à WildFire ? On en reveut ? Eh bien, c'est parti. Je vous propose comme exercice de faire un petit film avec un générique, trois séquences et une fin.

Commençons par régler le convertisseur. Nous ne convertissons pas d'images en entrée, donc, nous positionnons "Input" sur "Black Frames à 1,1 et 200 images pour un début. Pour la sortie, chacun choisira selon ses goûts entre une ANIM5, une animation YAFA (pas très performante, mais qui prend peu de place comprimée en XPK SHRI). Moi, je les sors en images que je rentre ensuite dans MovieShop.

Enfin, avant de partir, il va nous falloir un peu de matériel. Une image de 320x256 minimum à votre goût que nous appellerons très originalement "PIC", et pour le mois prochain, une autre pour faire du relief en 320x256 minimum (si possible en niveaux de gris, mais pas nécessaire, une forme intéressante et pas très compliquée pour bien voir l'effet) que nous appellerons "BUMP" pour rester français. Pour moi, j'ai pris une photo de Tom Novembre comme PIC et pour BUMP, j'ai écrit "TOM" en blanc sur noir avec un effet de flou.

Le générique

Pour commencer, nous allons faire un fondu passant du noir absolu à un fond évoquant l'aube coloré en gradient, puis à un autre fond évoquant le plein jour en gradient également. La séquence durera 4 secondes (100 images à 25 i/s). Le format utilisé sera 320x256.

Un titre va ensuite lentement défiler de bas en haut en apparaissant graduellement en rouge et en relief avec une ombre portée et en redisparaissant graduellement avant de quitter le cadre vers le haut. Le texte dira sur trois lignes "UN GRAND FILM" (ou ce que vous voulez, moi, avec les images que j'ai prises, j'ai bien sûr écrit "UN GRAND TOM"). Cette séquence durera 4 secondes également (fig. 1).

Wildfire

Commençons donc par le fondu. Ajoutons dans le "Processeur" un "Create Image" WIDTH=320 HEIGHT=256. Il s'agira des 100 premières images, nous devons donc appliquer à Range : 1, 100. 1 (voir l'épisode précédent).

Nous devons nous occuper du fondu du gradient. Les valeurs RVB que nous allons appliquer seront en haut à gauche : 0,0,0 puis 0,25,50 puis 40,100,190. En haut à droite, 0,0,0 puis 0.45,70 puis 120,110.200 ; en bas à gauche, 0.0,0, puis 60,170,255 puis 190,220,255 : en bas à droite, 0,0,0, puis 255.220,0, puis 210,210,255.

Dans le même ordre que précédemment, nous allons fabriquer des variables r1,v1,b1,r2,v2,b2,r3,v3,b3,r4,v4,b4. Je ne vais pas vous détailler la procédure que nous avons déjà étudiée le mois dernier pour chaque variable qui doit avoir trois points (un pour l'image 0, un pour l'image 50, un pour l'image 100) nous partons de x=0, y=0. Pour démarrer, voyons avec r1 : x=0,y=0 puis x=50,y=0 et x=100,y=40. Ainsi de suite, c'est un peu astreignant, mais on n'a rien sans rien. Elles doivent toutes être en mode LINEAR, très important, car sinon, en SPLINE, nous aurions des données négatives ou supérieures à 255 dans les couleurs.

Une fois toutes les variables initialisées, nous devons les rentrer dans l'effet "Create Image" que nous avons fait précédemment. Il suffit de cliquer dans chaque carré de couleur puis dans red. green, blue sur "Var" et de choisir r1, v1, b1, etc.

Jusqu'à présent, la chose était facile. Pour la suite, il nous faut bien réfléchir à ce que nous allons faire et le mieux est de le coucher sur le papier. Créons déjà notre fond qui doit correspondre à celui de l'image 100, ajoutons donc un "CREATE IMAGE" toujours de 320x256 (Range 101,200,1) output=STREAM avec les valeurs 40,100,190 - 120,110.200 - 190,220,255 - 210,210,255.

Créons encore trois tampons TEMP1, TEMP2, TEMP3 avec la même méthode, tous avec Range 101,200,1. Dans TEMP1, nous placerons notre texte rouge, dans TEMP2 notre masque alpha, dans TEMP3 l'ombre portée du texte. Ce que nous voulons faire exactement c'est prendre notre fond de ciel (STREAM), lui appliquer l'ombre de notre texte (TEMP3) atténuée par un masque alpha (TEMP2) qui variera selon sa position, puis notre texte rouge (TEMP1) également atténué par le même masque alpha (TEMP2).

Créons notre texte rouge (légèrement orangé pour un plus beau contraste sur le ciel). Ajoutons une ligne d'effet "Misc/Text". Output=TEMP1, EMBOS-SED, CENTERED. Red=255, Green=91, Blue=0. Comme nous avons choisi EMBOSSED (caractères en relief), nous devons définir comment il est éclairé. Les gadgets de droite permettent de positionner exactement la source lumineuse. Positionnons-les à 50, 50 et -50, l'intensité à 2. Avec "Select Font", choisissons une police que tout le monde possède CGTimes 80. Puis, écrivons sur trois lignes : "UN GRAND FILM". Puisque nous avons sélectionné CENTERED, le texte sera bien centré.

Dupliquons deux fois cet effet dans le processeur. Éditons le troisième (l'ombre) Output=TEMP3, NORMAL, CENTER, Red=30, Green=30, Blue=30. Cela fera un gris sombre. Remarquons au passage que comme nous sommes en NORMAL, nous n'avons plus accès à la lumière. Nous avons toujours UN GRAND FILM dans le texte. Éditons à présent le second qui va nous servir de masque alpha pour filtrer plus ou moins le texte et son ombre, nous verrons plus tard comment. Output=TEMP2, EMBOSSED, CENTERED, notre texte est encore là. Nous ne voulons pas embosser le masque alpha, ce qui serait inutile, mais si nous ne le faisons pas, le relief de notre texte sera coupé par le masque plus étroit. Éclairons donc de face avec 0,0,-50. L'intensité à 1. Comme nous voulons faire varier ce masque, nous devons appliquer une variable dans les trois cases de couleur.

Laissons notre texte en attente et ouvrons la fenêtre "Variables". Là, créons une variable "Alpha". Un petit truc en passant : souvent, la courbe n'est pas visible dans la fenêtre d'édition, c'est un petit bogue facilement contournée. Il suffit de sélectionner l'option "Buffers/Compose" dans le "Processeur", sans double-clic et de faire "Cancel", la palette a été modifiée et nous devrions avoir une belle courbe jaune -ou autre- dans notre fenêtre de variables). Elle aura cinq points cette fois en mode SPLINE (X,Y) : 101,0 - 120,50 - 150,255 - 180,50 - 200,0. Attention, le premier point n'est plus à 0 mais à 101. Ceci nous fait une belle cloche (presque de Gauss).

Revenons à notre TEXT, et sélectionnons la variable Alpha que nous venons de créer dans les trois gadgets de couleur. Ainsi notre texte-masque va passer lentement du noir vers le gris, puis plus vite vers le blanc et revenir de la même façon au noir.

Il ne nous reste plus qu'à agencer tout ça. La première chose qu'on va faire c'est de plaquer l'ombre sur le fond en la faisant monter de sous "l'écran". Ajoutons une ligne "Buffers/Compose". Donc logiquement Background=STREAM (où nous avons mis notre fond) Output=STREAM où nous allons plus tard placer notre vrai texte. Foreground=TEMP3 (où nous avons notre ombre) Alpha=TEMP2. Dans "Left", comme notre texte n'occupe pas toute la largeur de l'écran, il faut le pousser vers la droite pour qu'il se retrouve au centre. En tâtonnant, la valeur 46 semble être optimale. Dans "Top", nous devons placer une variable pour le faire "monter". Allons donc dans la fenêtre "Variables" et créons deux variables "Offset" pour le texte et "Offset2" pour l'ombre, car ils doivent être décalés de six pixels dans la hauteur. Chaque variable aura deux points en LINEAR, Offset 101,256 - 200,-156 Offset2 101,262 - 200,-150.

Retournons à notre "Compose" et plaçons la variable "Offset2" dans "Top". C'est tout pour cet effet. Dupliquons-le pour enfin placer notre texte rouge. Il suffit alors de changer Foreground=TEMP1 Left=42 (pour décaler latéralement de 4 pixels par rapport à notre ombre) et Top=Offset.

Attention à bien positionner Range à 101,200,1 pour toutes ces lignes. Seule la première (de l'intro) doit être à 1,100,1. Avant de poursuivre, lançons le calcul pour voir si nous n'avons pas fait d'erreur. C'est également le bon moment pour sauvegarder la "session" dans le convertisseur et le "process" dans le "Processeur" en les appelant par exemple "ex2.session" et "ex2.process". Attention à bien modifier le nom avant de sauvegarder, si vous ne voulez pas détruire les fichiers qui sont affichés par défaut (fig. 2).

Wildfire

Optimisation

Nous avons procédé logiquement, comme il semble logique. Sachez pourtant qu'on peut optimiser ce script. Les trois méthodes "CREATE IMAGE" pour les tampons 1 à 3 ne sont pas nécessaires. Le fond est généré automatiquement avec le texte. En règle générale, si un effet n'a pas d'entrée, il crée le tampon qu'il a sortie (fig. 3). Notez bien que nous aurions aussi pu procéder plus facilement, en utilisant la fonction "Mix" de "Compose", mais nous avons beaucoup plus appris de cette manière.

Wildfire

Profitons-en pour parler du bonus, deux aides précieuses à l'élaboration des effets.

1. L'option "Single Img." dans le "Processeur" qui en entrant dans "min" et "max" le numéro de l'image qu'on veut tester affiche les résultats graphiquement dans une fenêtre. Il suffit de positionner "Preview" sur "enabled" pour que toutes nos modifications s'exécutent immédiatement dans la fenêtre ainsi ouverte sur l'interface. Encore mieux, la touche "c" donne accès aux contrôles de cette fenêtre et ceux-ci sont très pratiques pour bien centrer nos effets.

2. La seconde, "Story Board" est un véritable débogueur graphique de script. Il suffit de rentrer le numéro de l'image et d'appuyer sur "Update". Tous les tampons sont affichés avec leur contenu.

La première séquence

Notre texte ayant disparu, je vous propose de faire arriver notre image PIC du lointain, "embossée" par notre image BUMP qui va tournoyer et ainsi faire un relief variable sur PIC. Nous ne verrons la mise en relief que le mois prochain, mais nous préparons déjà le terrain.

D'abord, toutes nos lignes écrites pour le générique nous gênent. Sélectionnons la dernière ligne et cliquons à droite sur "Visible", hop, elle a disparu. Cliquons jusqu'à ne plus avoir qu'une ligne. Nous avons de la place à présent. Vérifions cependant que nos lignes sont encore bien là, cliquons en bas à gauche sur "Enabled" qui se transforme en "Disabled".Toutes les lignes réapparaissent, donc, l'esprit tranquille, recliquons sur "Disabled".

Nous désirons continuer avec notre fond de ciel. Alors, la première chose à faire est de le recharger. Il suffit de dupliquer la seconde ligne de notre script (il faut pour cela la rerendre visible le temps de l'opération. La réplique doit se trouver en dernière position, si elle n'y est pas, faisons-la descendre avec le gadget "Down". L'effet va durer encore quatre secondes, donc 100 images. Actualisons donc Range à 201,300,1 et output=TEMP6 pour changer.

Comme nous voulons utiliser notre image, nous devons donc la charger au moyen de LOADIMAGE. Choisissons notre image PIC et plaçons-la dans le tampon TEMP8.

Nous allons la redimensionner, toute petite au début puis de plus en plus grande jusqu'à remplir notre écran. Avant de le faire, débarrassons-nous de la tâche ingrate de faire nos variables Scalex et Scaley. Tant qu'à faire, nous allons nous amuser un peu. Scalex aura 6 points : 201,1 - 220,80 - 240,75 - 260,190 - 280,140 - 300,320 (fig. 4). Scaley en aura 8 : 201,1 - 210,65 - 225,50 - 240,130 - 255,90 - 270,180 - 285,130 - 300,256. Toutes deux sont des courbes "SPLINE". Notre image va donc se déformer comiquement avant de prendre le devant de la scène. Notre effet "SCALE" va donc comporter TEMP8 en entrée et TEMP1 en sortie.

Wildfire

Il ne nous reste plus qu'à composer le tout avec, bien entendu, COMPOSE. En fond TEMPS. en premier plan TEMP1, en sortie STREAM et "CenterX" et "CenterY" tous deux sur "on" puisqu'on veut que notre PIC reste centré en arrivant vers nous. N'oublions pas de changer le Range de ces quatre lignes à 201,300,1. Nous devons calculer les images, et il y aurait un moyen bien simple de ne refaire que les 100 dernières, ce serait dans le convertisseur de choisir "Range" et de sélectionner de 201 a 300.

Malheureusement, une erreur s'est glissée malencontreusement dans la programmation (tout au moins dans ma version, je l'ai signalée, elle devrait donc être bientôt réparée), ce sont les images de 1 à 100 qui vont être refaites. Il ne nous reste alors plus qu'à tout relancer. Le programme est assez rapide, ce ne devrait donc pas être excessif même sur une machine lente. Il faut toutefois auparavant changer nos "BlackFrames" de 200 à 300 en entrée dans le convertisseur (fig. 5).

Wildfire

Optimisation

Là encore, nous avons fait des opérations inutiles. Nous ne devons pas charger à chaque fois notre image PIC dans TEMP8, puisque nous n'y touchons pas. Chargeons-la une fois pour toutes au début du script en lui assignant un Range de 0,0,1. Ici encore, une croix dans la marge : toutes les opérations qui sont générales pour tout le script seront accessibles à n'importe quel moment si elles ont été effectuées au début, c'est-à-dire à 0,0,1 (fig. 5).

Wildfire

Le mois prochain

Nous avons appris beaucoup ce mois-ci. Nous terminerons notre film et notre atelier le mois prochain, sauf si une demande massive nous convainc de continuer.


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]