Animation de textures UV - BGE

Animation de textures uv-mappées en mode game
Niveau :
Introduction
Nous allons tout simplement animer une texture avec le Blender Game Engine (BGE).
Nous en profiterons pour évoquer le concept d'island et en percevoir les
limites.
Cela fonctionne comme avec un vieux projecteur de films non-numériques : on
crée une succession d'images, la "bobine" que l'on fait défiler pour projeter
les images une par une.
Avertissements
Ce procédé fonctionne en v2.48a.
Il a été mis au point à partir d'un tuto de janvier 2009 en anglais qui est
plutôt... enfin disons gentiment qu'il pourrait être un peu plus précis. Il est situé dans
ce blog.
Des connaissances basiques de The
Gimp ou de Photoshop sont nécessaires.
Attention, l'ordre des différentes manips est très important.
Enfin et surtout, pour ceux qui espèrent une solution miracle pour diffuser l'équivalent d'une vraie vidéo en game mode, il est vivement conseillé de lire d'abord la fin de ce texte. Les applications qu'il est raisonnable d'envisager sont modestes mais intéressantes.
Pour faire simple, nous allons commencer avec une animation de 2 images.
Etape 1 : fabriquons la bobine
Ca se fait avec avec Gimp ou Photoshop. Nous allons juxtaposer deux images de
300x300 dans une image de 600x300. Peu importe si elles sont sur un ou plusieurs
calques, en jpeg ou en psd.
Etape 2 : sur Blender, la mise en place
Divisons la fenêtre 3dView en 2 parties, c'est plus pratique.
- une pour la 3d view (à placer en draw type textured),
- une pour l'Uv/Image editor.
Créons un plan simple et sortons de l'Edit mode avec tab.
Dans la fenêtre Uv, on sélectionne l'image bleu-rouge avec Image>open.
Etape 3 : paramétrons le défilement de la bobine
Dans View>Real-time properties, cliquer sur Anim et indiquer dans Speed le
nombre de déplacements de la "bobine" par seconde, càd le rythme du changement
d'images. 25 pour une vidéo réaliste (au-delà, aucun intérêt), 16 pour un
léger compromis, etc.
Enclencher Tiles. Le X n'est rien d'autre que le nb total d'images sur la
"bobine". Donc ici, c'est 2. C'est pas un Visconti. L'image devient toute rouge,
pas d'inquiétude c'est
normal.
Il faut aussi indiquer la frame de fin, donc sous Anim et Start, mettre End à
1.
Etape 4 : attachons le dispositif uv à notre mesh
Dans la 3d view refaire tab et sélectionner tout le mesh (normalement c'est
déjà fait).
Taper U puis entrée sur Unwrap. Voilà c'est fait, on a créé le lien.
Dans la fenêtre uv, un cadre est apparu. Il délimite la zone à projeter.
Cette zone est ce que l'on appelle "island".
Etape 5 : calons bien l'island
Nous allons dimensionner l'island sur une seule image, la première à
savoir celle de gauche, celle qui était déjà rouge initialement.
Pour cela, sélectionnons les 2 points du bord droit et tapons G / X / -300.
Pour un film de 500 images de 300px de large, ce serait G / X / -150000
(soit 500x300).
Etape 6 : choix du mode et activation
Pour la suite des événements, il est obligatoire de cocher l'option de menu
Game>Texture face materials. Sinon, cela ne marche pas.
Or, ô monde cruel, cela met à néant le magnifique système de rendu de
transparences en mode game (extra depuis la v2.48a) parce que ce système-là,
lui, a besoin de l'option Blender multitexture materials. Bon, voilà,
c'est incompatible. Il faut choisir entre animation de textures et
transparence haut de gamme.
Bref, séchons nos larmes et tapons tab pour sortir de l'edit mode puis
démarrons le BGE dans la 3d view en tapant P.
Généralisation
Bon, il ne reste plus - si l'on peut dire - qu'à faire la même chose avec plus
que 2 images et là on voit aussi bien les possibilités que les limites de
cette technique.
En effet mettons qu'il s'agisse d'une vidéo de 500 frames de 300x300 à 25fps
(ça fait 20sec). Voilà le travail qu'il faudrait effectuer :
- les extraire de la vidéo sous la forme d'images séparées via VirtualDubMod
ou tout autre soft
- créer sur Gimp ou Photoshop une bande de 150 000 x 300px
- meubler cette bande avec chacune des images extraites en progressant de
gauche à droite. 500 fois et sans déborder :D
Il vaut mieux enregistrer la manip sous
forme de macro pour ne pas avoir à tout refaire la fois suivante. Sachant
quand même que la "bobine" obtenue commencera à peser bien lourd pour un
chargement interactif en mode game. Ce n'est pas du streaming.
Un cas plus raisonnable est par exemple 100 frames en 11fps, ce qui donne un peu plus de 9 secondes. En fonction de l'emploi, on peut aussi envisager un débit beaucoup plus lent. Le minimum est 1fps.
Conclusion
Cette fonction Blender n'est pas - et de loin - un Flash player dans le BGE.
Mais elle permet de
modifier des textures de manière cyclique, ce qui est très intéressant.
Le reproche que l'on peut lui faire est son incompatibilité avec le mode
Blender multitexture materials. Cependant pour qui n'a pas besoin de
travailler dans ce mode, elle offre de riches possibilités graphiques.
tutoriel rédigé pour le Blender Clan par Emmanuel, 3/2/2009
Auteur | Conversation | ||
timeman13
![]() ![]() Inscrit le: 27/4/2011 De: la 604ème dimension. Envois: 275 |
J'ai essayé en 2.6 et UV Mapping marche aussi de la même façon. Tant mieux d'ailleurs ! |
||