Muitos dos exemplos nesta seção são baseados em expressões fornecidas por Dan Ebberts.

Recursos online para exemplos de expressão

Dan Ebberts oferece expressões de exemplo e tutoriais para aprender como trabalhar com expressões no seu site da MotionScript. Por exemplo, Dan fornece uma excelente página sobre a detecção de colisão.

Colin Braley fornece um tutorial e um projeto de exemplo no seu site que mostra como usar expressões para deixar uma camada repelir outras em uma maneira natural.

O fórum AE Enhancers fornece muitos exemplos e muitas informações úteis sobre expressões, bem como scripts e predefinições de animação. Nesta publicação do fórum AE Enhancers, Paul Tuersley fornece um tutorial e um projeto de exemplo que mostra como usar expressões para animar várias camadas em um enxame.

Rick Gerard fornece um exemplo no seu site que demonstra o carregamento de um objeto quadrado em uma base para que a permanência de lados em contato com o plano de chão.

Carl Larsen apresenta um tutorial em vídeo no site da Creative COW que demonstra como usar expressões e relação de pai para relacionar a rotação de um conjunto de rodas com o movimento horizontal de um veículo.

Chris Zwar fornece um projeto de exemplo no seu site para organizar automaticamente imagens estáticas ou vídeos em uma grade (como uma parede de vídeo). É fácil ajustar a posição e o espaçamento com seletores conectados a um sistema de expressões. Há três composições no projeto – uma para imagens estáticas, uma para vídeos e outra para criar um storyboard automático em que um vídeo é amostrado em intervalos definidos pelo usuário e alinhado em uma grade.

O site de JJ Gifford fornece vários projetos de exemplo que demonstram como usar expressões.

Maltaannon (Jerzy Drozda, Jr.) oferece um tutorial em vídeo no seu site que mostra como usar expressões para criar um medidor de volume usando os resultados do comando Converter áudio em quadros-chave.

Harry Frank fornece um tutorial no site Graymachine que mostra como usar expressões para ler dados de um arquivo de texto externo.

Exemplo de expressão: Criar uma revolução de camada em um círculo

Você pode criar uma expressão sem usar propriedades de outras camadas. Por exemplo, você pode criar uma revolução de camada em um círculo perfeito.

  1. Selecione uma camada, pressione P para revelar a propriedade Posição no painel Linha de tempo, e clique com a tecla Alt (Windows) ou com a tecla Option (Mac OS) no cronômetro à esquerda do nome da propriedade.
  2. Insira o seguinte no campo de expressão:
      [(thisComp.width/2), (thisComp.height/2)] + [Math.sin(time)*50, -Math.cos(time)*50]

Exemplo de expressão: Girar os ponteiros de um relógio

Use o ícone de seleção para vincular os valores de rotação entre camadas para animar os ponteiros de um relógio – à medida que o ponteiro das horas se move de hora em hora, o ponteiro dos minutos gira a circunferência completa da superfície do relógio. Esse tipo de animação tomaria muito tempo para criar se você tivesse que definir cada quadro-chave para ambas as camadas de ponteiro, mas com o ícone de seleção, você pode fazer isso em uma questão de minutos.

  1. Importe ou crie duas camadas de cor sólida longa e estreita: um ponteiro das horas e um dos minutos. (Consulte Camadas de cor sólida e itens de gravação de cor sólida.)
  2. Defina os pontos de ancoragem nas extremidades das camadas. (Consulte Pontos de ancoragem da camada.)
  3. Mova as camadas de forma que os pontos de ancoragem estejam no centro da composição. (Consulte Mover camadas no espaço.)
  4. Defina quadros-chave Rotação para o ponteiro das horas. (Consulte Definir ou adicionar quadros-chave.)
  5. Selecione a propriedade Rotação para o ponteiro dos minutos e escolha Animação > Adicionar expressão.
  6. Arraste o ícone de seleção para a propriedade Rotação do ponteiro das horas. A seguinte expressão aparece:
      thisComp.layer("hour hand").rotation
  7. Para fazer com que o ponteiro dos minutos gire 12 vezes mais rápido que o ponteiro das horas, adicione *12 no final da expressão como se segue:
      thisComp.layer("hour hand").rotation*12

Exemplo de expressão: Posicionar uma camada entre duas outras

Esta expressão de exemplo posiciona e mantém uma camada em uma distância equilibrada entre duas outras camadas.

  1. Comece com três camadas. (Consulte Criação de camadas.)

  2. Anime as posições das primeiras duas camadas no painel Linha de tempo. (Consulte Caminhos de movimento.)

  3. Selecione a terceira camada, pressione P para revelar a propriedade Posição e clique com a tecla Alt pressionada (Windows) ou a tecla Option (Mac OS) no botão de cronômetro à esquerda do nome da propriedade.
  4. Insira o seguinte no campo de expressão:
      (thisComp.layer(1).position + thisComp.layer(2).position)/2

Exemplo de expressão: Criar uma trilha de imagens

Esta expressão de exemplo faz com que uma camada fique na mesma posição que a camada mais acima no painel Linha de tempo, mas atrasada por um período de tempo especificado (neste caso, 0,5 segundos). Você pode definir expressões semelhantes para outras propriedades geométricas.

  1. Comece com duas camadas de cor sólida que são dimensionadas para aproximadamente 30% do tamanho da composição. (Consulte Camadas de cor sólida e itens de gravação de cor sólida.)
  2. Anime a posição da primeira camada. (Consulte Caminhos de movimento.)
  3. Selecione a segunda camada, pressione P para revelar a propriedade Posição e clique com a tecla Alt (Windows) ou com a tecla Option (Mac OS) no botão de cronômetro à esquerda do nome da propriedade.
  4. Insira o seguinte no campo de expressão:
      thisComp.layer(thisLayer, -1).position.valueAtTime(time - .5)
  5. Duplique a última camada cinco vezes selecionando-a e pressionando Ctrl+D (Windows) ou Command+D (Mac OS) cinco vezes.

Todas as camadas seguem o mesmo caminho, e cada uma está atrasada 0,5 segundos da anterior.

Dan Ebberts fornece mais exemplos e técnicas sobre como criar trilhas de imagens em seu site MotionScript.

Exemplo de expressão: Criar uma saliência entre duas camadas

Esta expressão de exemplo sincroniza o argumento Centro da saliência do efeito Saliência em uma camada com a posição de outra camada. Por exemplo, você pode criar um efeito semelhante a uma lupa que se move sobre uma camada, com o conteúdo sob a lupa saliente à medida que a lente (ou seja, a camada sobrejacente) se move. Esta expressão usa o método fromWorld, que faz com a expressão funcione corretamente independentemente se você mover a camada da lupa ou a camada subjacente. É possível girar ou dimensionar a camada subjacente e a expressão permanece intacta.

Também é possível usar outros efeitos, como Ondulação, com esta expressão.

  1. Comece com duas camadas. Faça de uma camada uma lupa ou um objeto semelhante a um orifício no meio e nomeie-a como Lupa. (Consulte Criar camadas.)
  2. Anime a posição da camada de lupa. (Consulte Caminhos de movimento.)
  3. Aplique o efeito Saliência à outra camada. (Consulte Aplicar um efeito ou uma predefinição de animação.)
  4. Selecione a propriedade Centro da saliência do efeito Saliência no painel Linha de tempo e escolha Animação > Adicionar expressão, ou clique com a tecla Alt (Windows) ou com a tecla Option (Mac OS) no botão de cronômetro da propriedade.
  5. Selecione o texto da expressão padrão e digite o seguinte:
      fromWorld(thisComp.layer("Magnifier").position)

Exemplo de expressão: Atenuar opacidade de uma camada 3D com base na distância da câmera

  1. Aplique a seguinte expressão à propriedade Opacidade de uma camada 3D:
      startFade = 500; // Start fade 500 pixels from camera. 
      endFade = 1500;  // End fade 1500 pixels from camera. 
      try
      { // Check whether there's a camera
          C = thisComp.activeCamera.toWorld([0,0,0]); 
      }
      catch(err)
      { // No camera, so assume 50mm
          w = thisComp.width * thisComp.pixelAspect; 
          z = (w/2)/Math.tan(degreesToRadians(19.799)); 
          C = [0,0,-z]; 
      } 
      P = toWorld(anchorPoint); 
      d = length(C,P); 
      linear(d,startFade,endFade,100,0)

    A atenuação inicia a uma distância de 500 pixels d câmera e é concluída a 1500 pixels da câmera. O método de interpolação linear é usado para mapear valores de distância para os valores de opacidade.

Exemplo de expressão: Criar uma camada 3D invisível se voltada para outro lado da câmera

  1. Aplique a seguinte expressão à propriedade Opacidade de uma camada 3D:
      if (toCompVec([0, 0, 1])[2] > 0 ) value else 0

Dan Ebberts explica esta expressão no seu site MotionScript.

Exemplo de expressão: Inverter camada horizontalmente se voltada para outro lado da câmera

  1. Aplique a seguinte expressão à propriedade Escala de uma camada 3D:
      if (toCompVec([0, 0, 1])[2] > 0 ) value else [-value[0], value[1], value[2]]

Exemplo de expressão: Animar a escala em cada marcador de camada

  1. Aplique a seguinte expressão a uma propriedade Escala para criar uma tremulação de camada em cada marcador:
      n = 0; 
      t = 0; 
      if (marker.numKeys > 0){ 
          n = marker.nearestKey(time).index; 
          if (marker.key(n).time > time) n--; 
      } 
      if (n > 0) t = time - marker.key(n).time; 
        
      amp = 15; 
      freq = 5; 
      decay = 3.0; 
        
      angle = freq * 2 * Math.PI * t; 
      scaleFact = (100 + amp * Math.sin(angle) / Math.exp(decay * t)) / 100; 
      [value[0] * scaleFact, value[1] / scaleFact];

Exemplo de expressão: Iniciar ou parar o chocalho no tempo específico

Você pode usar qualquer expressão em vez da expressão chocalho usada aqui, para começar e terminar a influência de uma expressão em um tempo específico.

Aplique a seguinte expressão a uma propriedade para chocalhá-la começando aos 2 segundos:

timeToStart = 2;
if (time > timeToStart)
{
  wiggle(3,25);
}
else
{
  value;
}

Aplique a seguinte expressão a uma propriedade para interromper o chocalho aos 4 segundos:

timeToStop = 4;
if (time > timeToStop)
{
  value;
}
else
{
  wiggle(3,25);
}

Aplique a seguinte expressão a uma propriedade para começar o chocalho aos 2 segundos e parar de chocalhar aos 4 segundos:

timeToStart = 2;
timeToStop = 4;
if ((time > timeToStart) && (time < timeToStop))
{
  wiggle(3,25);
}
else
{
  value;
}

Exemplo de expressão: Corresponder plano focal da câmera com outra camada

  1. Aplique a seguinte expressão à propriedade Distância do foco de uma camada de câmera para fazer corresponder a distância do foco com a distância ao ponto de ancoragem de uma camada denominada “destino”:
      target = thisComp.layer("target"); 
      V1 = target.toWorld(target.anchorPoint) - toWorld([0,0,0]); 
      V2 = toWorldVec([0,0,1]); 
      dot(V1,V2);

Dan Ebberts explica este exemplo de expressão detalhadamente em seu site Motionscript.

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online