
Dans la partie precedente, notre oiseau a appris a sauter.
Apprenons-lui a courir aujourd’hui.
Course
La course est une serie cyclique de sprites, donc pour plus de commodite, nous allons les combiner en un seul calque.
Creez une composition Run d’une duree de trois images et disposez les sprites de course les uns apres les autres (importez Run depuis AEJuice Pack Manager – Newsletter – Rig Bird Game).
Astuce de pro : au lieu de trois images, vous pourriez creer une composition de 6 images et etirer chaque sprite sur deux images, afin que le personnage bouge ses jambes plus lentement.
Nous ajoutons la composition Run dans notre composition principale, l’attachons au controle, et copions la position depuis un autre calque contenant Character.
Bouclez l’animation de course. Dans Time Remap (Ctrl+Alt+T), nous ecrivons
oopOut()
Comme il s’agit d’une composition, nous corrigeons le cycle en creant une cle avant la derniere cle, puis en copiant la premiere cle a la position de la derniere.
Astuce de pro : vous pourriez utiliser notre Pack Manager – appuyez sur l’icone eclair – Loop. Il gere automatiquement le probleme de la derniere image cle.
Le calque Run doit etre visible dans les conditions suivantes :
– Character est en mouvement
– Character ne saute pas
– Character ne saute pas
Pour determiner si Character est en mouvement, nous utiliserons une expression :
position.speed
Par la suite, il sera pratique de voir la valeur de la vitesse, nous allons donc creer un Slider Control distinct pour cela (je vous le promets, c’est le dernier).
Nommez le nouveau slider [Speed] et ajoutez l’expression :
position.speed
Vous pouvez maintenant mettre a jour l’expression [Character] :
Land = effect(“Land level”)(“Slider”); //ground level
y = transform.yPosition; //bird’s y position
Speed = effect(“[Speed]”)(“Slider”); //bird’s speed
D0 = transform.scale[0]; //scale at current frame
D3 = transform.scale.valueAtTime(time+3*thisComp.frameDuration)[0]; //scale in 3 frames
y = transform.yPosition; //bird’s y position
Speed = effect(“[Speed]”)(“Slider”); //bird’s speed
D0 = transform.scale[0]; //scale at current frame
D3 = transform.scale.valueAtTime(time+3*thisComp.frameDuration)[0]; //scale in 3 frames
if (y < Land) 1 //if character is higher than ground then 1
else if (D0 != D3) 3 //other cases and if the turn is soon
else if (Speed != 0) 2 //other cases and if character is moving then 2
else 0 //all other cases 0
else if (D0 != D3) 3 //other cases and if the turn is soon
else if (Speed != 0) 2 //other cases and if character is moving then 2
else 0 //all other cases 0
Et ajoutez-la a l’opacite de Run :
character = thisComp.layer(“Control”).effect(“[Character]”)(“Slider”);
if (character == 2) 100
else 0
else 0
Ici, j’ai trouve un bug dans After Effects. Si vous modifiez uniquement la valeur X Position, la valeur Y Position change legerement elle aussi.
Pour corriger cela, nous devons separer les dimensions.

Mettez egalement a jour le slider [Speed]
position.speed

Mettez egalement a jour le slider [Speed]
position.speed
en
transform.xPosition.speed
Maintenant, l’oiseau peut courir.

Il ne reste plus qu’a apprendre a notre oiseau a se retourner. A demain.
Partie 1
Partie 3
Cliquez ici pour recevoir plus d’astuces par e-mail.
