Comment les utiliser?
Facile! TOut d'abord , si nécessaire, veuillez vous assurer que votre séquence à une boucle logique et continu. Un exemple où la boucle logique n'est pas nécessaire serait une flame de feu de camp, où chaque frame individuel ne ressemble pas au frame précédent, ne nécessitant pas une séquence continue. Regardons cette exemple:
http://www.youtube.com/watch?v=8ichacR_Tpw
Par contre, un oiseau en vol, où chaque bâtement se fait de facon successive, nécessite qu'une boucle se fasse. Regardons cette image et notons le fait que l'oiseau reviens à son point initiale.
Ensuite, il faudrait vous assurer que la séquence de sprite boucle à l'aide des expressions. Pour votre perfectionnement, veuillez faire l'exercice avec moi.
Tout d'abord, créer vous un système de particule dans un émetteur cubique. Veuillez vous assurer que le "lifetime" des particules soit éternelle. Aucune vitesse ne sera nécessaire sur votre émetteur. Dans le menu "shading" du particleShape, veuillez mettre le render type à Sprites, tout en n'oubliant jamais de le mettre à depth sort, question que la carte graphique puisse dessiner les particules en arrière plan en premier et ensuite dessiner celle se trouvant en avant plan en second, évaluant ainsi bien la distance à laquelle les sprites se trouvent de la caméra.
Ensuite, il faut s'assurer de bien utiliser les expressions pour que l'intégration soit parfaites et réalistes.
Tout bon sprite animés commencent à un moment aléatoire du cycle d'animation , créant ainsi un chaos nécessaire au réalisme. Donc si on revient à notre exemple du vol d'oiseau, si tout les oiseaux débuteraient leur cycle d'animation au même frame, la foule d'oiseaux batteraient bêtement des ailes en même temps. On doit créer du chaos. Pour ce faire, assurons-nous que le spriteNumPP, l'attribut qui détermine à quel frame de la séquence de sprites préalablement téléchargé chaque particule se voit attribué une image. Dans le "creation expression" du spriteNumPP, veuillez rentrer l'expression suivante:
nParticleShape1.spriteNumPP = rand(1,21);
Les chiffres entre parenthèses dans la fonction rand doivent être configuré par rapport aux nombres de sprites de votre propre séquence. Donc, certaines particules auront le spriteNum 1, d'autre le 16, d'autres le 19, etc.
Tout ca est bien beau, mais il les particules ne sont pas animés? Pour ce faire, tout en restant dans cette fenêtre, veuillez cliquer sur runtime before dynamic et rentrer l'expression suivante:
nParticleShape1.spriteNumPP = nParticleShape1.spriteNumPP +1;
Cette expression dira à chaque particule et à chaque frame, d'incrémenter sa valeur de spriteNumPP, créant ainsi un flipbook , affichant une image différente et logique par rapport à la dernière. Mais étrange, les particules arrêtent en plein mouvement en ne boucle pas, mais pourquoi? Pour donner un exemple, prenons un échantillon d'une particule qui se voit attribué à la naissance le spriteNumPP de "1". Frame après frame, son spriteNumPP augmente de 1. Par contre, au frame 20, sa valeur de spriteNumPP devrait être de 21, donc maya lui attribue une valeur de spriteNumPP de 20 et ainsi de suite, bloquant la boucle. Comment fait-on pour réinstaurer la boucle?
Nous utiliserons la division "modulo" pour nous aider. Mais qu'est-ce que la division modulo nous donne comme résultat. En fait, elle nous donnera toujours comme résultat le "reste" d'une division.
0%20 = 0
10%20 = 10
19%20 = 19
20%20 = 0
25%20 = 5
40%20= 0
BAM! La voici notre loop. Si on applique cette valeur à spriteNumPP, on se retrouvera donc à boucler éternellement.
nParticleShape1.spriteNumPP = nParticleShape1.spriteNumPP +1;
nParticleShape1.spriteNumPP = nParticleShape1.spriteNumPP % 20;
Ici j'utilise la valeur "20", car dans mon exemple à moi j'avais une séquence de 20.
Voila!
Amusez-vous bien et à jeudi.