Sobre expressões

Se quiser criar e vincular animações complexas, mas quiser evitar criar dez ou centenas de quadros-chave manualmente, tente usar expressões. Uma expressão é um pequeno pedaço de software – muito similar a um script – avaliando um único valor para uma única propriedade de camada em um ponto específico no tempo. Como os scripts de um aplicativo para fazer algo, uma expressão indica que uma propriedade é algo.

Com expressões, você pode criar relacionamentos entre propriedades de camada e usar os quadros-chave de propriedade para animar dinamicamente outras camadas. Por exemplo, use o ícone de seleção para vincular propriedades de caminho, para que uma máscara possa tomar seu caminho de um traçado de pincel ou um objeto de camada de forma.

A linguagem da expressão é baseada na linguagem JavaScript padrão, mas não precisa conhecer o JavaScript para usar expressões. Você pode criar expressões usando o ícone de seleção ou copiando exemplos simples e alterá-los para atender suas necessidades.

Observação:

Duas fontes de expressões de exemplo são o projeto modelo Classificador de expressões (Arquivo >Procurar projetos modelo) e as predefinições de animação na categoria Comportamentos (Animação > Procurar predefinições).

As predefinições de animação podem incluir expressões, ou ainda consistirem inteiramente de uma expressão. As predefinições de animação que usam expressões em vez de quadros-chave às vezes são chamadas de comportamentos.

Após adicionar uma expressão a uma propriedade, você pode continuar adicionando ou editando quadros-chave para a propriedade. Uma expressão pode obter o valor de uma propriedade como determinado por seus quadros-chave e usar isso como entrada para criar novos valores, modificados. Por exemplo, a seguinte expressão na propriedade Rotação de uma camada adiciona 90 graus ao valor da propriedade Rotação, além do movimento com quadros-chave:

  value + 90

Alguns métodos, como chocalho, operam diretamente nos valores de propriedade com quadros-chave. (Consulte Atributos e métodos da Propriedade (referência de expressão).)

A seguinte expressão na propriedade Posição de uma camada mantém o movimento com quadros-chave da camada e faz com que chocalhe um pouco:

  wiggle(10, 10)

Observação:

Usar a expressão chocalho geralmente é muito mais rápido e fácil que usar o Chocalhador.

Quando estiver animando texto, você pode usar o seletor de expressão para especificar o quanto deseja que uma propriedade do animador afete cada caractere de texto. Você pode adicionar um ou vários seletores Expressão a um grupo do animador e esse grupo do animador pode conter uma ou mais propriedades.

Trabalho com expressões

Você próprio pode inserir expressões inteiras, digitando-as manualmente ou usando o Menu de idiomas da expressão; ou você pode criar uma expressão com o ícone de seleção ou colá-la de um exemplo ou outra propriedade.

Você pode fazer todo seu trabalho com expressões no painel Linha de tempo, mas às vezes é mais conveniente arrastar o ícone de seleção para uma propriedade no painel Controles do efeito. Insira e edite expressões no campo de expressão, um campo de texto redimensionável no gráfico de tempo. O campo de expressão aparece ao lado da propriedade no modo da barra de camadas; o campo de expressão aparece na parte inferior do Editor de gráfico no modo Editor de gráfico. Você pode gravar uma expressão em um editor de texto e, em seguida, copiá-lo para o campo de expressão. Quando você adiciona uma expressão a uma propriedade de camada, uma expressão padrão aparece no campo de expressão. A expressão padrão essencialmente não faz nada – ela define o valor de propriedade para si, o que torna o ajuste da expressão fácil.

Interface de expressão do painel Linha de tempo no modo da barra de camadas
Interface de expressão do painel Linha de tempo no modo da barra de camadas

A. Opção Ativar expressão B. Botão Mostrar gráfico pós-expressão C. Ícone de seleção D. Menu de idiomas da expressão E. Campo de expressão 

Enquanto você estiver editando uma expressão, as visualizações de todos os tipos estão suspensas; uma barra vermelha será exibida na parte inferior dos painéis que o estão aguardando para sair do modo de edição de texto.

Os valores da propriedade que contém uma expressão aparecem no texto vermelho ou rosa.

Uma boa maneira de começar a trabalhar com expressões é criar uma expressão simples com o ícone de seleção e, em seguida, ajustar o comportamento da expressão usando operações matemáticas simples, como as listadas na tabela a seguir:

Símbolo

Função

+

adicionar

-

subtrair

/

dividir

*

multiplicar

*-1

executar o oposto do original, como anti-horário em vez de sentido horário

Por exemplo, é possível duplicar o resultado ao digitar *2 no final da expressão; ou você pode obter a metade do resultado ao digitar /2 no final da expressão.

Ao desenvolver expressões de edição confortável, você pode combinar essas operação simples e muito mais. Por exemplo, você pode adicionar /360 *100 ao final de uma expressão para alterar o intervalo de 0-360 a 0-100. Essa alteração será útil se você deseja converter os valores de um seletor de 360 graus em um controle deslizante que é medido em porcentagens.

O Menu de idiomas da expressão no painel Linha de tempo contém os elementos de linguagem específicos ao After Effects que você pode usar em uma expressão. Este menu é útil para determinar os elementos válidos e sua sintaxe correta; utilize-o como referência para elementos disponíveis. Ao escolher qualquer objeto, atributo ou método no menu, o After Effects o insere automaticamente no campo de expressão no ponto de inserção. Se o texto for selecionado no campo de expressão, o novo texto de expressão substitui o texto selecionado. Se o ponto de inserção não estiver no campo de expressão, o novo texto de expressão substitui todo o texto no campo.

O Menu de idiomas da expressão lista argumentos e valores padrão. Essa convenção torna fácil lembrar os elementos que você pode controlar ao gravar uma expressão. Por exemplo, no menu de idioma, o método de chocalho na categoria Propriedade aparece como chocalho(freq, amp, octaves=1, amp_mult=.5, t=time). Cinco argumentos são listados entre parênteses a seguir a chocalho. O = nos últimos três argumentos indica que usar esses argumentos é opcional. Se você não especificar nenhum valor para eles, assumirão 1, 0,5 e a hora atual, respectivamente.

Observação:

É necessário substituir os nomes de argumento gravados pelo Menu de idiomas da expressão pelos valores reais.

Paul Tuersley fornece um script no fórum AE Enhancers que adiciona automaticamente expressões de chocalho, suave e loop às propriedades selecionadas. Usar esse script é uma boa maneira de um iniciante experimentar as expressões.

Jeff Almasol fornece um script que processa automaticamente expressões, fazendo alterações especificadas. Por exemplo, o script pode ser usado para remover ou ativar automaticamente as expressões desativadas. Para obter mais informações, consulte o site de redefinery de Jeff Almasol.

Adicionar, desativar ou remover uma expressão

  • Para adicionar uma expressão a uma propriedade, selecione a propriedade no painel Linha de tempo e escolha Animação > Adicionar expressão ou pressione Alt+Shift+= (Windows) ou Option+Shift+= (Mac OS); ou clique com a tecla Alt pressionada (Windows) ou clique com a tecla Option pressionada (Mac OS) no botão do cronômetro ao lado do nome da propriedade no painel Linha de tempo ou no painel Controles do efeito.
  • Para vincular um conjunto de propriedades em camadas e composições, use links de propriedade.
    Selecione qualquer propriedade ou conjunto de propriedades e escolha Editar > Copiar com links de propriedade ou Editar > Copiar com links de propriedade relativos, em seguida, cole-as em qualquer camada da composição. As propriedades coladas permanecem conectadas à camada de onde foram copiadas, de modo que qualquer alteração feita à propriedade original será refletida em todas as instâncias dos links da propriedade colada.
    É possível copiar uma camada inteira com links de propriedades e colá-la para criar duplicatas que acompanham as alterações feitas no original.

    O comando Copiar com links relativos à propriedade funciona como o comando Copiar com links de propriedades, com a exceção de que o comando Copiar com links relativos à propriedade cria expressões que não fazem referência a composição de origem pelo nome. Mantém um link relativo entre a camada com a expressão e a composição que contém a camada. Isso pode ser útil quando, por exemplo, você deseja mover camadas manipuladas pela expressão de uma composição para outra, mas deixar as camadas fazerem referência a uma camada de controle somente na mesma composição. As expressões criadas com o comando Copiar com os links de propriedade relativos são idênticas às criadas usando o ícone de seleção de expressão.

    O resultado de copiar a propriedade Posição de uma camada com o comando Copiar com links relativos à propriedade é o seguinte:

    thisComp.layer("control_layer").transform.position

    O resultado de copiar a propriedade de posição de uma Camada com o comando Copiar com links de propriedades é como a seguir, que se refere especificamente à composição de origem da camada na expressão:

    comp("source_comp").layer("control_layer").transform.position

  • Para desativar temporariamente uma expressão, clique na opção Ativar expressão . Quando uma expressão é desativada, uma barra aparece na opção .
  • Para remover uma expressão de uma propriedade, selecione a propriedade no painel Linha de tempo e escolha Animação > Remover expressão ou clique com a tecla Alt pressionada (Windows) ou clique com a tecla Option pressionada (Mac OS) no botão do cronômetro ao lado do nome da propriedade no painel Linha de tempo ou no painel Controles do efeito.

Editar uma expressão com o ícone de seleção

Se você não estiver familiarizado com JavaScript ou a linguagem de expressões do After Effects, você ainda pode utilizar as expressões usando o ícone de seleção. Arraste simplesmente o ícone de seleção de uma propriedade para outra para vincular as propriedades com uma expressão e o texto da expressão é inserido no campo de expressão no ponto de inserção. Se o texto for selecionado no campo de expressão, o novo texto de expressão substitui o texto selecionado. Se o ponto de inserção não estiver no campo de expressão, o novo texto de expressão substitui todo o texto no campo.

Arraste o pickwhip até uma propriedade
Arraste o ícone de seleção para uma propriedade para criar um vínculo ao valor da propriedade.

Você pode arrastar o ícone de seleção para o nome ou o valor de uma propriedade. Se você arrastar para o nome de uma propriedade, a expressão resultante mostra os valores como um. Por exemplo, se você arrastar o ícone de seleção para o nome da propriedade Posição, aparece uma expressão como a seguir:

  thisComp.layer("Layer 1").transform.position

Se você arrastar o ícone de seleção para um dos valores da propriedade Posição (como o valor y), aparece uma expressão como a seguir, em que as coordenadas x e y da propriedade estão vinculadas ao valor y da propriedade Posição:

  temp = thisComp.layer("Layer 1").transform.position[1]; 
  [temp, temp]

Se a camada, máscara ou efeito para o qual você arrasta o ícone de seleção não tiver um nome exclusivo no contexto local, o After Effects renomeia-o. Por exemplo, se você tiver duas ou mais máscaras como o nome “Mask” na mesma camada, e arrastar o ícone de seleção para uma delas, o After Effects renomeia-a como “Máscara 2.”

O formato de expressões criadas pelo ícone de seleção é determinado pela preferência Ícone de seleção de expressão escreve em inglês compacto (Editar > Preferências > Geral (Windows) ou After Effects > Preferências > Geral (Mac OS)). Por padrão, o ícone de seleção cria expressões em inglês compacto, usando os nomes das propriedades conforme aparecem no painel Linha de tempo para as propriedades de uma expressão. Como esses nomes são codificados no aplicativo e nunca mudam, essas expressões podem trabalhar quando o After Effects é executado em outro idioma. Todos os nomes de propriedades que podem alterar são delimitados por aspas duplas e mantêm-se os mesmos em qualquer idioma. Se você não pretende compartilhar seus projetos em todos os idiomas, pode desmarcar essa preferência. Esta preferência não afeta nomes de efeitos ou propriedades do efeito.

Veja um exemplo em inglês compacto:

  thisComp.layer("Layer 1").transform.position

Esta é a mesma expressão, não em inglês compacto:

  thisComp.layer("Layer 1")("Transform")("Position")

Observação:

Como o padrão é usar inglês compacto, este documento usa o inglês compacto na maioria dos exemplos e ilustrações.

  1. Arraste o ícone de seleção para outra propriedade no painel Linha de tempo ou no painel Controles do efeito.
  2. Opcionalmente, modifique a expressão padrão no campo de expressão.

Observação:

Se você usar o ícone de seleção para criar uma expressão para fazer referência a uma camada, e essa camada tem o mesmo nome de outra camada na mesma composição, então o nome da camada de destino muda. O nome da nova camada é o nome antigo da camada com um número no final. Essa alteração é necessária para garantir que a expressão se refere inequivocamente a uma única camada na composição.

Editar uma expressão manualmente

  1. Clique no campo de expressão para entrar no modo de edição de texto.

    Observação:

    Ao entrar no modo de edição de texto, a expressão inteira é selecionada. Para adicionar à expressão, clique na expressão para colocar o ponto de inserção; caso contrário, você substituirá a expressão inteira.

  2. Digite e edite texto no campo de expressão, usando opcionalmente o Menu de idiomas da expressão.

    Observação:

    Para ver mais de uma expressão de várias linhas, arraste a parte inferior ou a parte superior do campo de expressão para dimensioná-lo.

  3. Para sair do modo de edição de texto e ativar a expressão, siga um destes procedimentos:
    • Pressione a tecla Enter no teclado numérico.

    • Clique fora do campo de expressão.

Exemplo: Usar a referência do idioma da expressão para gravar uma expressão

Siga este exemplo para saber como utilizar a referência do idioma da expressão do After Effects para gravar expressões. A expressão criada nesse exemplo vincula a propriedade Posição do Sólido 2 à propriedade Posição do Sólido 1, com o movimento do deslocamento do Sólido 2 a 2 segundos do movimento do Sólido 1.

  1. Crie duas camadas de sólidos: Sólido 1 e Sólido 2.

  2. Anime os valores de propriedade Posição do Sólido 1 usando quadros-chave. (Consulte Sobre animação, quadros-chave e expressões.)

  3. Selecione a propriedade Posição para o Sólido 2 e escolha Animação > Adicionar expressão ou clique com a tecla Alt pressionada (Windows) ou com a tecla Option pressionada no botão cronômetro da propriedade. A seguinte expressão aparece por padrão:

      transform.position
  4. Digite o seguinte diretamente sobre transform.position:

      thisComp
  5. O elemento thisComp é um atributo global cujo valor é um objeto Composição que representa a composição atual. Para determinar o que pode seguir o thisComp na expressão, procure o valor de retorno para thisComp em Objetos, atributos e métodos globais (referência a expressões).

    Observe que thisComp retorna um objeto Composição. Em seguida, procure em Atributos e métodos da Composição (referência de expressão) para ver quais atributos e métodos você pode usar com um objeto de Comp. Uma opção é layer(index). O índice, ou número, entre parênteses especifica a camada que deseja usar. Nesse exemplo, suponha que Sólido 1 é a primeira camada em sua composição. Para recuperar valores da primeira camada na composição ativa, digite .layer(1) no fim da expressão, para obter o seguinte:

      thisComp.layer(1)
  6. Além disso, examine como a referência e elementos de expressão para ver se layer(index) retorna um objeto Camada. Procure em Atributos e métodos da Camada geral(referência de expressão) e encontre o elemento que deseja usar. Por exemplo, se você deseja obter os valores da propriedade Posição para a camada, digite .position no final da expressão para obter o seguinte:

      thisComp.layer(1).position
  7. Em Atributos e métodos da Camada geral (referência de expressão), é possível ver qual atributo de posição retorna uma propriedade. Procure Atributos e métodos da Propriedade (referência de expressão) e observe que é possível adicionar um fator de tempo à expressão. Para adicionar um momento específico, como o tempo atual mais 2 segundos, digite .valueAtTime (time+2) no fim da expressão para obter o seguinte:

      thisComp.layer(1).position.valueAtTime(time+2)
  8. Em Atributos e métodos da Propriedade (referência de expressão), observe que o método valueAtTime retorna um Número ou uma Matriz. Quando uma expressão retorna um Número, uma Matriz ou Booleano (verdadeiro ou falso), não é possível adicionar mais atributos ou métodos à expressão (se desejar, porém, é possível adicionar operadores aritméticos, como +, -, * e /).

Mostrar expressões e o gráfico de expressão

No modo Editor de gráfico, o único campo de expressão aparecerá como uma caixa redimensionável na parte inferior do Editor de gráfico e mostra somente a expressão da propriedade selecionada. Para mostrar simultaneamente vários campos de expressão, o painel Linha de tempo deve estar no modo da barra de camadas.

Observação:

Para alternar entre o modo da barra de camadas e o modo Editor de gráfico, pressione Shift+F3.

  • Para mostrar apenas propriedades com expressões, selecione uma ou mais camadas e, em seguida, pressione EE.
  • Para mostrar o campo de expressão no Editor de gráfico, escolha Mostrar editor de expressão no menu Escolher o tipo e as opções de gráfico na parte inferior do Editor de gráfico. Quando você adiciona uma nova expressão a uma propriedade, o editor de expressão é exibido, independentemente dessa configuração.

Observação:

Para redimensionar o campo de expressão, arraste a borda inferior para cima ou para baixo.

  • Para saber como uma expressão altera o gráfico de valor ou de velocidade, clique no botão Mostrar gráfico pós-expressão enquanto exibe o gráfico de valor ou de velocidade no Editor de gráfico.

    O gráfico colorido esmaecido indica o valor ou velocidade antes que a expressão seja aplicada e o gráfico colorido brilhante indica o valor ou velocidade depois que a expressão é aplicada. Ativar a sobreposição do gráfico para a propriedade Posição também altera a exibição do caminho de movimento no painel Composição para poder ver o caminho afetado pela expressão.

Observação:

Você pode usar o campo de pesquisa no painel Linha de tempo para pesquisar expressões e outros componentes de uma propriedade. Se a sequência de caracteres da pesquisa aparecer em uma expressão, a propriedade e seus grupos de propriedade contidos e camada são exibidos no conjunto filtrado dos resultados de pesquisa.

Gravar expressões para o texto de origem

A propriedade Texto de origem de uma camada de texto é interpretada por expressões como uma Sequência de caracteres JavaScript. Você pode usar o ícone de seleção para obter o texto de origem de outra camada de texto; porém, apenas o estilo do primeiro caractere da camada de destino é usado.

Para obter mais informações sobre o objeto Sequência de caracteres String JavaScript, consulte um recurso de referência JavaScript.

Você pode usar “\r” em uma expressão de sequência de caracteres para iniciar uma nova linha de texto. Por exemplo, para copiar o texto original de uma camada na mesma camada e para repeti-lo todos os caracteres em maiúsculas em uma linha, use a seguinte expressão:

  text.sourceText + "\r" + text.sourceText.toUpperCase()

Adicionar uma camada de texto a uma composição e adicionar uma expressão à sua propriedade Texto de origem pode ser uma excelente forma de examinar os valores de propriedades de outras camadas. Por exemplo, a seguinte expressão em uma propriedade Texto de origem reporta o nome e o valor da propriedade Opacidade para a próxima camada na ordem de empilhamento de camadas:

  thisComp.layer(index + 1).name + "\rOpacity = " + thisComp.layer(index + 1).opacity.value

O exemplo a seguir indica o nome do item de gravação usado como a origem da primeira camada de imagem na ordem de empilhamento no tempo atual que tem a opção Vídeo definida.

  source_footage_name = ""; 
  for (i = 1; i <= thisComp.numLayers; i++){ 
      if (i == index) continue; 
      my_layer = thisComp.layer(i); 
      if (! (my_layer.hasVideo && my_layer.active)) continue; 
      if (time >= my_layer.inPoint && time < my_layer.outPoint){ 
          try{ 
              source_footage_name = my_layer.source.name; 
          }catch(err1){ 
              source_footage_name = my_layer.name 
          } 
          break; 
      } 
  } 
  source_footage_name

Aharon Rabinowitz fornece um tutorial em vídeo e expressões em Red Giant TV que mostra como animar uma pontuação de videogame com a propriedade Texto de origem e um efeito Controle deslizante (um efeito Controles a expressões).

 

Adicionar comentários a uma expressão

Se gravar uma expressão complexa e projetada para você ou outra pessoa para usar posteriormente, você deve adicionar comentários que explicam o que a expressão faz e como as partes funcionam.

Salvar e reusar expressões

Depois de gravar uma expressão, você pode salvá-la para uso futuro copiando-a e colando-a em um aplicativo de edição de texto ou salvando-a em uma predefinição de animação ou projeto modelo. Contudo, como as expressões são gravadas em relação a outras camadas em um projeto e podem usar nomes específicos de camada, é necessário às vezes modificar uma expressão para transferi-la entre projetos.

Você pode definir suas próprias funções em expressões com a sintaxe de função JavaScript normal. Neste exemplo, uma função é definida para calcular a média de dois valores e a última linha usa esta função:

  function average(a, b) 
  { 
    return (a + b) / 2; 
  } 
  average(position, thisComp.layer(1).position);

Observação:

Você deve definir cada função totalmente dentro de cada expressão que é usada. Não há biblioteca de funções global à qual possa adicionar.

Para salvar uma expressão para usar em um outro projeto, você deve adicionar comentários à expressão. (Consulte Adicionar comentários a uma expressão.) Você deve também usar variáveis para que você possa alterar um valor em um lugar em vez de ter que alterá-lo em vários locais.

Por exemplo, esta expressão tem um comentário com várias linhas no início que explica o que a expressão faz e um comentário curto após a variável é declarada e inicializada que informa para que serve a variável:

  /*  This expression on a Source Text property reports the name 
      of a layer and the value of its Opacity property. */  
    
  var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer  
    
  thisComp.layer(myLayerIndex).name + ": \rOpacity = " +   thisComp.layer(myLayerIndex).opacity.value

Você pode salvar uma predefinição de animação que inclui uma expressão e reusá-la em outros projetos, caso a expressão não faça referência às propriedades que não existem em outros projetos. Ao salvar uma predefinição na qual uma propriedade tem uma expressão, mas nenhum quadro-chave, somente a expressão é salva. Se a propriedade tiver um ou mais quadros-chave, a predefinição salva contém a expressão juntamente com todos os valores do quadro-chave.

É possível copiar uma expressão de uma propriedade de camada, com ou sem os quadros-chave da propriedade.

  • Para copiar uma expressão e quadros-chave de uma propriedade para outras propriedades, selecione a propriedade de camada de origem no painel Linha de tempo, copie a propriedade de camada, selecione as propriedades da camada de destino e cole.
  • Para copiar uma expressão de uma propriedade para outras propriedades sem copiar quadros-chave, selecione a propriedade de origem, escolha Editar > Copiar somente expressão, selecione as propriedades de destino e cole.

Observação:

Copiar uma expressão sem quadros-chave é útil quando você deseja copiar simultaneamente várias expressões e colá-las em uma ou mais novas camadas, ou quando quiser copiar uma expressão e colá-la em mais de uma camada.

Observação:

Como com a colagem de quadros-chave e outros itens, você pode normalmente colar o item na camada de destino e confiar no After Effects para determinar qual propriedade deve ser o destino da operação de colagem. Por exemplo, isto funciona para copiar as propriedades Posição de uma camada para outra, mas deve selecionar a propriedade de destino se você estiver colando uma expressão de uma propriedade Posição para uma propriedade Escala.

Paul Tuersley fornece o script pt_ExpressEdit para gerenciar e editar expressões.

Efeitos Controles de expressão

Use um efeito Controles de expressão para adicionar um controle que você pode usar para manipular os valores de uma ou mais propriedades vinculando a propriedade ao controle usando expressões. Um único controle pode afetar várias propriedades imediatamente.

Os nomes dos efeitos Controle de expressão indicam o tipo de controle de propriedade que fornecem: Controle de ângulo, Controle de caixa de seleção, Controle de cor, Controle de camada, Controle de ponto, Controle deslizante. O After Effects CS5.5 e posterior inclui também um Controle de ponto 3D.

Observação:

Se aplicar uma predefinição de animação da categoria Predefinições de animação > Formas > Fundos, poderá visualizar um efeito Controle de forma animada personalizado no painel Controles do efeito. Esse efeito personalizado é um efeito de controle de expressão especializado criado especificamente para essas predefinições de animação. É possível copiar e colar esse efeito em outras camadas ou salvá-lo como uma predefinição de animação para poder aplicá-lo em outro local.

Você aplica efeitos Controles de expressão a uma camada exatamente como aplica outros efeitos, como arrastar o efeito para a camada do painel Efeitos e predefinições.

Você pode aplicar efeitos Controles de expressão a uma camada; no entanto, é útil aplicá-los a uma camada nula, que você pode apenas usar como uma camada de controle. Você adiciona as expressões a propriedades em outras camadas para tirar a entrada do controle. Por exemplo, é possível adicionar um efeito Controle deslizante a uma camada nula zero (Nulo 1) e aplicar esta expressão às propriedades Posição de várias camadas:

  position+[0,10*(index-1)*thisComp.layer("Null 1").effect("Slider Control")("Slider")]

Neste exemplo, ao arrastar o controle deslizante, cada camada com esta expressão move-se. As camadas com números de índice maiores (camadas na parte inferior do painel Linha de tempo) são alteradas para criar camadas com números de índice menores, a intervalos de 10 pixels. Você pode definir quadros-chave para o controle deslizante na camada nula e todas as outras camadas são animadas apropriadamente.

Geralmente é útil renomear cada instância de um efeito Controle de expressão para exibir o uso respectivo. Por exemplo, renomear uma instância do efeito Controle de cor para cor de céu torna mais fácil dizer o quê o efeito está controlando. Você pode renomear cada instância de um efeito Controle de expressão como renomearia qualquer outro efeito: selecione-o no painel Linha de tempo ou painel Controles do efeito e pressione Enter no teclado principal (Windows) ou Return (Mac OS).

Observação:

Para modificar o intervalo de um controle, clique com o botão direito (Windows) ou a tecla Control (Mac OS) no valor da propriedade sublinhado do controle e escolha Editar valor no menu de contexto.

Recursos adicionais sobre efeitos Controles de expressão

Jerzy Drozda, Jr. (Maltaannon) fornece uma explicação simples e uma demonstração do efeito Controle de ângulo e Controles de expressão em geral no site da Motionworks.

Todd Kopriva fornece instruções sobre o uso do método sampleImage e o efeito Controle de ponto para monitorar cores para um ponto especificado durante a correção de cores no seu blogue After Effects Region of Interest.

Converter uma expressão para quadros-chave

Em alguns casos, é útil converter uma expressão para quadros-chave. Por exemplo, se você deseja congelar os valores de uma expressão, você pode converter a expressão em quadros-chave e depois ajustar os quadros-chave em conformidade; ou, se uma expressão leva muito tempo para avaliar, você pode convertê-la em quadros-chave de modo a renderizar mais rapidamente. Quando você converte uma expressão em quadros-chave, o After Effects avalia a expressão, criando um quadro-chave em cada quadro e, em seguida, desativa a expressão.

  • No painel Linha de tempo, selecione a propriedade na qual expressão está gravada e escolha Animação >Assistente de quadro-chave > Converter expressão em quadros-chave.

O idioma da expressão

O idioma da expressão do After Effects é baseado em JavaScript 1.2, com um conjunto extenso de objetos integrados. O After Effects usa apenas a linguagem JavaScript padrão 1.2 principal, não as extensões específicas do navegador Web. O After Effects contém seu conjunto próprio de objetos de extensões – como Camada, Composição, Gravação e Câmera – que você pode usar para obter a maioria dos valores em um projeto do After Effects.

Embora o idioma da expressão seja baseado em uma linguagem de script, uma diferença sutil mas importante existe entre um script e uma expressão: enquanto um script instrui o aplicativo para fazer algo, uma expressão indica que uma propriedade é algo.

Para obter mais informações sobre o JavaScript, consulte um recurso de referência a JavaScript.

Ao criar expressões, lembre-se do seguinte:

  • O valor de uma expressão é o valor da última instrução avaliada.

  • O JavaScript é uma linguagem que diferencia maiúsculas e minúsculas.

  • Os pontos e vírgulas são obrigatórios para separar instruções ou linhas.

  • Os espaços entre palavras são ignorados, exceto em uma sequência de caracteres.

No JavaScript, um valor armazenado em um objeto é chamado de propriedade. Contudo, o After Effects utiliza o termo propriedade para fazer referência a componentes de camada conforme definido no painel Linha de tempo. Por esse motivo, o After Effects refere-se a propriedades JavaScript como métodos ou atributos. Na prática geral, a diferença entre um método e um atributo é o que um método faz normalmente algo para criar seu valor de saída (return), enquanto um atributo se refere simplesmente a um valor existente para determinar seu valor de saída (return). Você pode informar um método de um atributo mais facilmente, procurando os parênteses depois do nome do método, os quais circundam todos os argumentos de entrada para o método.

Um objeto é um item que contém outros objetos, atributos e métodos. As composições, camadas e itens de gravação são exemplos de objetos. Especificamente, as composições, camadas e itens de gravação são objetos globais, significando que podem ser referenciadas em qualquer contexto sem referência a um objeto de nível superior.

Acessar atributos e métodos

Use o idioma da expressão para acessar atributos e métodos de propriedades de camada. Para acessar um valor, use uma cadeia de referências de objetos separados pelo operador ponto (.). Para vincular referências de objetos passados do nível de camada (por exemplo, para fazer referência a propriedades do efeito, máscaras ou animadores de texto), é possível usar parênteses. Por exemplo, para vincular a propriedade Opacidade na camada A à propriedade do Nível de desfoque do efeito Desfoque gaussiano na camada B, digite a seguinte expressão no campo de expressão para a propriedade Opacidade para a camada A:

  thisComp.layer("Layer B").effect("Gaussian Blur")("Blurriness")

Ao ler esta expressão da esquerda para a direita, você progride do nível superior, contendo o objeto para baixo até à propriedade específica:

  • O objeto global usado se refere à composição atual: thisComp.

  • Um objeto de camada específico nessa composição é referenciado pelo nome: camada(“Camada B”).

  • Um objeto de efeito específico nessa camada é referenciado pelo nome: efeito(“Desfoque gaussiano”).

  • Uma propriedade de efeito específico nesse efeito é referenciada pelo nome: (“Blurriness”).

Para obter o componente n de uma propriedade multidimensional, como componente y de um ponto de controle do efeito, adicione [n] no fim, desta forma:

  thisComp.layer("Layer B").effect("Advanced Lightning")("Origin")[1]

O objeto padrão de uma expressão é a propriedade na qual a expressão é gravada, seguido pela camada que contém a expressão; consequentemente, você não precisa especificar a propriedade. Por exemplo, uma expressão de chocalho gravada na propriedade Posição de uma camada pode ser qualquer um dos seguintes:

  wiggle(5, 10) 
  position.wiggle(5, 10)

Você precisa incluir a camada e a propriedade para recuperá-las fora da camada e da propriedade na qual a expressão está gravada. Por exemplo, uma expressão gravada na propriedade Opacidade da camada, B, vinculando-a à propriedade Rotação da camada A aparecerá como esta expressão:

  thisComp.layer("Layer A").rotation

Observação:

Para ver mais exemplos de como isso funciona, use o ícone de seleção para vincular uma propriedade de camada a outra e observe as expressões que cria.

Jeff Almasol fornece um script no seu site de redefinery com o qual você pode determinar como fazer referência a qualquer propriedade nas expressões.

Matrizes e propriedades multidimensionais

Uma Matriz é um tipo de objeto que armazena um conjunto ordenado de números. Uma Matriz é representada como uma lista de números separados por vírgulas e delimitados por colchetes, como mostra este exemplo:

  [10, 23]

Você pode atribuir um objeto Matriz a uma variável, facilitando a referência a valores de matriz em outras áreas da expressão. Por exemplo:

  myArray = [10, 23]

A dimensão de um objeto Matriz é o número de elementos na matriz. A dimensão de myArray é 2. As várias propriedades no After Effects possuem dimensões diferentes dependendo do número de argumentos de Valor que têm. Em linguagem de expressão, os valores de propriedades são um valores únicos (objetos Número) ou matrizes (objetos Matriz).

As tabelas a seguir fornecem exemplos de algumas propriedades e suas dimensões:

Dimensão

Propriedade

1

Rotação °

Opacidade %

2

Escala [x=largura, y=altura]

Posição [x, y]

Ponto de ancoragem [x, y]

Níveis de áudio [esquerda, direita]

3

Escala [largura, altura, profundidade]

Posição 3D [x, y, z]

Ponto de ancoragem 3D [x, y, z]

Orientação [x, y, z]

4

Cor [vermelho, verde, azul, alfa]

Você pode acessar os elementos individuais de um objeto Matriz usando colchetes e um número de índice para indicar o elemento desejado. Os elementos em um objeto Matriz são indexados iniciando em 0. Usando o exemplo anterior, myArray[0] é 10 e myArray[1] é 23.

As duas expressões a seguir são equivalentes:

  [myArray[0], 5] 
  [10, 5]

As matrizes da propriedade Posição são indexadas como se segue:

  • a position[0] é a coordenada x da posição.

  • a position[1] é a coordenada y da posição.

  • a position[2] é a coordenada z da posição.

As cores são representadas como matrizes a quatro dimensões [vermelho, verde, azul, alfa]. Em projetos com uma intensidade de cor de 8 bpc ou 16 bpc, cada valor em uma matriz de cores varia de 0 (preto) a 1 (branco). Por exemplo, vermelho pode variar de 0 (nenhuma cor) a 1 (vermelho). Assim, [0,0,0,0] é preto e transparente e [1,1,1,1] é branco e completamente opaco. Em projetos com intensidade de cor de 32 bpc, valores abaixo de 0 e acima de 1 são permitidos.

Se você usar um índice que é maior que o índice do componente de maior dimensão em um objeto Matriz, o After Effects retornará um erro. Por exemplo, myArray[2] causa um erro, mas a position[2] retorna a coordenada z da Posição.

Muitas das propriedades e métodos no idioma de expressão do After Effects têm objetos Matriz como argumento ou os retornam como valores. Por exemplo, thisLayer.position é um objeto Matriz que é bidimensional ou tridimensional dependendo se a camada é 2D ou 3D.

Se quiser criar uma expressão que mantenha o valor y de uma animação de Posição, mas fixa o valor de x em 9, use o seguinte:

  y = position[1]; 
  [9,y]

Este é ainda mais sucinto:

  [9, position[1]]

Este é um aspecto importante, portanto vejamos mais um exemplo. Se você deseja combinar o valor da posição x da camada A com o valor da posição y da camada B, use o seguinte:

  x = thisComp.layer("Layer A").position[0];  
  y = thisComp.layer("Layer B").position[1];  
  [x,y]

Você pode criar uma expressão para fazer referência apenas a um valor na matriz de uma propriedade 2D ou 3D. Por padrão, o primeiro valor é usado, a menos que você especifique o contrário. Por exemplo, se você arrastar o ícone de seleção da propriedade Rotação da camada A para a propriedade Escala da camada B, a seguinte expressão aparece:

  thisComp.layer("Layer B").scale[0]

Por padrão, esta expressão usa o primeiro valor da propriedade Escala, que é a largura. Se preferir usar o valor da altura, arraste o ícone de seleção diretamente para o segundo valor em vez do nome de propriedade, ou altere a expressão como se segue:

  thisComp.layer("Layer B").scale[1]

Inversamente, se você arrastar o ícone de seleção da propriedade Escala da camada B para a propriedade Rotação da camada A, o After Effects cria automaticamente uma variável, atribui o valor da propriedade Rotação unidimensional a ela e usa essa variável para ambas as dimensões da propriedade Escala:

  temp = thisComp.layer(1).transform.rotation; 
  [temp, temp]

Vetores

No After Effects, muitas propriedades e métodos tomam ou retornam vetores. O After Effects refere-se a uma matriz como um vetor se representar um ponto ou a direção no espaço. Por exemplo, o After Effects descreve posição como o retorno de um vetor.

No entanto, embora uma função como audioLevels retorne um valor bidimensional (níveis de canal esquerdo e direito), não é chamada de vetor porque não representa um ponto ou uma direção. Algumas funções no After Effects aceitam argumentos de vetor, mas normalmente são úteis apenas quando os valores passados representam uma direção. Por exemplo, cross(vec1, vec2) calcula um terceiro vetor perpendicular aos vetores de entrada. O produto cruzado é útil quando vec1 e vec2 são dois vetores que representam instruções do espaço, mas não se apenas representam duas coleções arbitrárias de números.

Índices e rótulos

A indexação dos elementos Camada, Efeito e Máscara no After Effects inicia em 1. Por exemplo, a primeira camada do painel Linha de tempo é camada(1).

Em geral, é melhor usar o nome de uma camada, efeito ou uma máscara em vez do número para evitar confusão e erros se a camada, efeito ou máscara são movidos, ou se os argumentos são alterados durante as atualizações do produto. Quando usar um nome, encerre-o sempre com aspas retas. Por exemplo, o primeiro dessas expressões é mais fácil de entender que a segunda expressão e a primeira expressão continuará funcionando se você alterar a ordem de efeitos:

  effect("Colorama").param("Get Phase From")  
  effect(1).param(2)

Tempo da expressão

O tempo em uma expressão está sempre no tempo da composição (não tempo de camada) e é medido em segundos. O tempo padrão de todas as expressões é o tempo de composição atual no qual a expressão está sendo avaliada. As expressões a seguir usam ambas o tempo de composição padrão e retornam os mesmos valores:

  thisComp.layer(1).position 
  thisComp.layer(1).position.valueAtTime(time)

Para usar um tempo relativo, adicione um valor de tempo incremental ao argumento tempo. Por exemplo, para obter o valor Posição 5 segundos antes do tempo atual, use a seguinte expressão:

  thisComp.layer(1).position.valueAtTime(time-5)

As referências de tempo atual às propriedades em composições aninhadas usam o tempo de composição padrão original, não o tempo remapeado. Contudo, se você utilizar a função source para recuperar uma propriedade, o tempo remapeado é usado.

Por exemplo, se a origem de uma camada na composição de conteúdo estiver aninhada e na composição de conteúdo você tiver tempo remapeado, quando você obter os valores de posição com a seguinte expressão, os valores da posição usam o tempo padrão da composição:

  comp("nested composition").layer(1).position

Contudo, se você acessar a camada 1 usando a função source, os valores da posição usam o tempo remapeado:

  thisComp.layer("nested composition").source.layer(1).position

Observação:

Se você usar um tempo específico em uma expressão, o After Effects ignora o tempo remapeado.

Como as expressões operam no tempo em unidades de segundos (não quadros), às vezes é necessário usar métodos de conversão de tempo para converter os valores de tempo para executar operações em quadros. (Consulte Métodos de conversão de tempo (referência de expressão).)

Erros de expressão

Em caso de falha de avaliação da expressão, os erros de expressão aparecem em uma faixa de aviso no fim dos painéis Composição e Camada. O After Effects não desativa a expressão, mas continua a avaliá-la. A faixa de aviso é exibida enquanto ocorrer falha de avaliação da expressão, isto é, até ela ser corrigida ou desativada manualmente.

Exemplo de faixa de aviso de erro de expressão:

Um exemplo de erro de expressão
Um exemplo de erro de expressão

A. Botões de seta para a esquerda ou direita B. A expressão Revelar C. O aviso Expandir/Recolher 
  • Clique nos botões de seta Para a esquerda ou Para a direita a fim de exibir o erro de expressão anterior ou seguinte quando a expressão múltipla não conseguir avaliar.
  • O botão Revelar expressão (lupa) expõe a propriedade com a expressão falha no painel Linha do tempo. Se a expressão estiver em uma composição diferente, a composição abrirá.
  • O botão Expandir/Recolher aviso (setas para cima/para baixo) mostra ou oculta o texto de erro.

O texto de erro de expressão tem apenas uma linha e é cortado de acordo com a largura do painel Composição.

Para exibir o texto completo de erro da expressão:

Clique  ao lado da expressão. O erro completo aparece na caixa de diálogo.

Para ocultar o aviso:

Selecione After Effects CC (Mac OS) ou Editar (Windows) > Preferências > Geral e desative Mostrar faixa de aviso quando o projeto tem expressões de erro.

Quando essa opção é desativada, a faixa de aviso permanece oculta mesmo quando novos erros de expressão ocorrem.

Reative essa opção para exibir os erros de expressão.

Recursos online

Muitos dos exemplos nesta seção são baseados em exemplos fornecidos por Dan Ebberts. Dan Ebberts também tem uma coleção excelente de expressões de exemplo e tutoriais para aprender como trabalhar com expressões no seu site da MotionScript.

O fórum AE Enhancers fornece muitos exemplos e informações sobre expressões, bem como scripts e predefinições de animação.

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