All Articles After Effects
Créer bannière se balançant dans After Effects
Toby Pitman on Fri, January 13th 0 comments
Learn how to create a swinging banner, sign (or even Apple's iPad2 smart cover) in After Effects with Toby Pitman.

Ive vu un effet récemment dans quelques endroits différents, qui simule une série de cartes connecté basculement vers le bas et de venir à un repos d'une manière très naturelle. Je suis allé de voir si je pouvais comprendre comment cela a été fait.

Après quelques recherches sur Google j'ai trouvé l'expression Dan Ebbert Pendule (le gourou des expressions). Cette expression est parfait pour cet effet car il simule la décroissance exponentielle de balancer un objet.


Etape 1

Première place Ive a créé trois Comps faite d'un solide orange et un calque de texte, une pour chaque mot.

three comps


Ive eux alignés dans mon ordi principal afin theyre rejoindre et les a rendus 3D. Notez le point d'ancrage de chaque maquette est aligné sur le haut de la comps. Ceci est notre axe de swing. Ive a ajouté un couple de lumières, aussi.

swing axis


Etape 2

Maintenant Im allant au parent les couches en utilisant l'icône de sélection. Couche 4 (Pro) est apparenté à la couche 3 (MAC) et couche 5 (vidéo) à la couche 4.

Using the pick whip


Ive fait ce si les couches se serrer les coudes même quand ils sont individuellement en rotation sur l'axe X.

Layers now stick together


Etape 3

Alors maintenant, je sais que ce n'est travailler Im allons ajouter l'expression Pendule à mon supérieur (Mac) comp. Je fais cela par l'option-clic sur le chronomètre pour Rotation X.

Option-clicking the stopwatch for X Rotation


Etape 5

Heres l'expression Pendulum trouve sur le site Dañs qui est plein de goodies expression utile.

  • veloc = 7; 
  • amplitude = 90; 
  • decay = .7; 
  • amplitude*Math.sin(veloc*time)/Math.exp(decay*time)


L'expression elle-même est assez simple. Nous avons trois variables: -

  • veloc (velocity) = The initial speed of the swing.
  • amplitude = The angle the initial swing will reach before it starts to decay.
  • decay = This is like resistance. The lower the value the longer the the swing will take to decay. 


Et puis un peu de maths qui crée l'effet!

  • amplitude*Math.sin(veloc*time)/Math.exp(decay*time)


Alors que je ne suis pas aller à le décomposer à n'importe quelle longueur, je vais vous montrer comment il peut être manipulé pour servir nos fins. Je peux vous dire que la première moitié ....

  • amplitude*Math.sin(veloc*time)

... Traite du mouvement ou swing à l'aide d'une courbe parabolique d'une onde sinusoïdale par rapport au temps qui est ensuite divisé par ....

  • Math.exp(decay*time)

... Qui utilise une courbe exponentielle pour diminuer l'amplitude de l'onde sinusoïdale (ou swing).


Etape 6

La première chose que nous devons faire face est la partie Math.sin. Cela détermine où la courbe de la balançoire commence.

Determine the curve swing


En utilisant sin (sinus), l'action bat son va commencer au centre (0) et se déplacent vers l'extérieur pour la valeur d'amplitude (90) comme on le voit dans ce clip. Notez que parce que l'expression est appliquée à la Comp haut dans la chaîne de toutes les couches parented suivre cette Comp. Quand je ajouter l'expression finale aux autres couches ils seront toujours balancer de façon indépendante.

[Vidéo id = "10659"]


Nous ne voulons pas cela. Nous voulons qu'elle commence à la valeur d'amplitude et de swing en jeu. Nous pouvons remédier à cela en changeant le péché à cos (cosinus).

  • amplitude*Math.cos(veloc*time)/Math.exp(decay*time)

Vous pouvez voir dans l'image ci-dessous comment le cosinus commence sa courbe de la valeur d'amplitude (90) et se déplacer vers le centre (0).

sin-cos

sin-cos

Nous avons maintenant les cartes à un angle de départ de 90 degrés!

Cards start at 90 degrees


Etape 7

Maintenant, si vous appliquez l'expression de toutes les Rotation X Comps que vous pouvez voir que nous obtenons un effet balancer sur tous les Comps.

[Vidéo id = "10656"]


Le seul problème ici est que le swing est uniforme sur tous les Comps. Je veux créer quelque chose d'un peu plus aléatoire et de tumbling. Alors j'ai maintenant besoin de créer un moyen de compenser cette expression dans le temps. Qu'est-ce réellement comme Id à faire est de compenser le départ de la couches de sorte ils ne semblent tous à la fois, mais nous avons un problème.

L'aspect temporel de l'expression est une sortie de Comp maître. Cela signifie que même si je compensé la couche de l'expression se déroulera du cadre 0 (00:00:00:00) indépendamment. Cela signifie que lorsque la couche apparaît l'expression sera à mi-parcours de son cycle.

Nous pouvons remédier à ce nouveau en créant une autre variable. Sa va ressembler à ceci:

  • startT = thisLayer.startTime;

Cela devient l'heure de début de ma couche de décalage et la stocke dans la variable. Je peux le soustraire ce nombre de la valeur première fois dans notre expression qui traite avec le début de la courbe, notre cosinus. Cela ressemblera à ceci.

  • amplitude*Math.cos(veloc*(time-startT))/Math.exp(decay*time)

I can the subtract this from the first time value in our expression that deals with the start of the curve, our cosine.


Maintenant, si je compenser le timing de ma couche, que l'offset est soustrait et l'expression sur ce calque pense la couche commence à l'image 0 (00:00:00:00) ou le début de sa courbe.


Etape 8

Donc ici on peut voir la couche de décalage. La couche Pro est visible à ce moment, mais sa à un angle de 90 degrés et caché derrière la couche MAC.

Pro layer is hidden


Ici vous pouvez voir Ive a ajouté l'expression achevée ....

  • veloc = 7; 
  • amplitude = 90; 
  • decay = .7;
  • startT = thisLayer.startTime;

  • amplitude*Math.cos(veloc*(time-startT))/Math.exp(decay*time)

... Pour toutes les couches et de compenser les deux couches inférieures dans le temps.

Final expression


L'effet est maintenant beaucoup plus aléatoire dans la façon dont les couches interagissent ensemble quand ils balancent. Heres la démo terminée.

[Vidéo id = "10660"]


La beauté est que dans la prise de l'expression plus générique dans la façon dont il traite l'heure de début des couches décalage qu'il peut facilement être copié à des couches mais beaucoup vous aimez à produire des effets en cascade.

Vous pouvez également lier facilement des quantités variables d'expression de curseurs sur une couche de contrôle pour ajuster le timing global de l'effet comme un tout.

Cela montre que les expressions peuvent être utilisées comme un outil très efficace pour les animations simples, comme ce qui serait autrement de prendre un temps assez long pour keyframe.

Télécharger le dossier de projet ici.


Comments (0)

You must be logged in to comment.

Feedback
Course Advisor
Don't Know Where To Start?
Ask A Course Advisor
Ask Us!
Copy the link below and paste it into an email, forum, or Facebook to share this with your friends.
Make money when you share our links
Become a macProVideo.com Affiliate!
The current affiliate rate is: 50%
Classes Start Next Week!
Live 8-week Online Certification Classes for: