Dimensão
- Guia do usuário do After Effects
- Versões beta
- Introdução
- Espaços de trabalho
- Projetos e composições
- Importação de gravação
- Preparação e importação de imagens estáticas
- Importação do After Effects e do Adobe Premiere Pro
- Importação e interpretação de vídeo e áudio
- Preparo e importação de arquivos de imagem 3D
- Importação e interpretação de itens de gravação
- Trabalhar com itens de gravação
- Detectar pontos de edição usando a Detecção de edição de cena
- Metadados XMP
- Textos e gráficos
- Texto
- Animações
- Trabalhar com Modelos de animações no After Effects
- Usar expressões para criar listas suspensas em Modelos de animações
- Trabalhar com propriedades essenciais para criar Modelos de animações
- Substituir imagens e vídeos em Modelos de animações e Propriedades essenciais
- Anime de maneira mais rápida e fácil usando o painel Propriedades
- Desenho, pintura e caminhos
- Visão geral de camadas de forma, caminhos e gráficos vetoriais
- Ferramentas de pintura: Pincel, Carimbo e Borracha
- Traçados de forma cônica
- Atributos de forma, operações de pintura e operações de caminho para camadas de forma
- Use o efeito de forma Deslocar caminhos para alterar formas
- Criação de formas
- Criar máscaras
- Remover objetos de seus vídeos com o painel Preenchimento com reconhecimento de conteúdo
- Pincel tipo rotoscópio e Refinar fosco
- Camadas, marcadores e câmera
- Animação, quadros-chave, rastreamento de movimento e chaveamento
- Animação
- Quadro-chave
- Rastreamento de movimento
- Aplicação de máscara
- Transparência e composição
- Ajustar cor
- Predefinições de animação e efeitos
- Visão geral das predefinições de animação e efeitos
- Lista de efeitos
- Gerenciador de efeitos
- Efeitos de simulação
- Efeitos de estilo
- Efeitos de áudio
- Efeitos de distorção
- Efeitos de perspectiva
- Efeitos de canal
- Efeitos de geração
- Efeitos Tempo
- Efeitos de transição
- O efeito Reparo do obturador de rolagem
- Efeitos Desfoque e Tornar nítido
- Efeitos de Canal 3D
- Efeitos de utilitários
- Efeitos de fosco
- Efeitos Ruído e Granulação
- Efeito de ampliação com preservação de detalhes
- Efeitos obsoletos
- Expressões e automação
- Expressões
- Noções básicas de expressão
- Entender sobre a linguagem de expressões
- Utilização de controles de expressão
- Diferenças de sintaxe entre os mecanismos de expressão Javascript e Legacy ExtendScript
- Edição de expressões
- Erros de expressão
- Utilização do editor de expressões
- Usar expressões para editar e acessar propriedades de texto
- Referência de idioma de expressão
- Exemplos de expressão
- Automação
- Expressões
- Vídeo imersivo, VR e 3D
- Construa ambientes VR no After Effects
- Aplicar efeitos de vídeo imersivo
- Ferramentas de composição para vídeos VR/360
- Renderizador 3D avançado
- Importar e adicionar modelos 3D à composição
- Importação de modelos 3D das bibliotecas da Creative Cloud
- Iluminação com base na imagem
- Extração e animação de luzes e câmeras de modelos 3D
- Rastreamento de movimento de câmera 3D
- Projetar e aceitar sombras
- Animações de modelos 3D incorporadas
- Coletor de sombras
- Extração de dados de profundidade 3D
- Modificar as propriedades de materiais de uma camada 3D
- Trabalhar no Espaço de design 3D
- Gizmos de transformação 3D
- Faça mais com a animação 3D
- Visualização de alterações em projetos 3D em tempo real com o mecanismo Mercury 3D.
- Adicionar design responsivo aos gráficos
- Exibições e visualizações
- Renderização e exportação
- Noções básicas de renderização e exportação
- Codificação em H.264 no After Effects
- Exportar um projeto do After Effects como um projeto do Adobe Premiere Pro
- Conversão de filmes
- Renderização de vários quadros
- Renderização automatizada e renderização de rede
- Renderização e exportação de imagens estáticas e sequências de imagens estáticas
- Utilização do codec GoPro CineForm no After Effects
- Trabalho com outros aplicativos
- Colaboração: Frame.io e Team Projects
- Memória, armazenamento e desempenho
- Knowledge Base
Aprenda a linguagem de expressões e use-a para formar diferentes expressões no After Effects.
A linguagem de expressões do After Effects é baseada em JavaScript, com um conjunto extensivo de objetos integrados. O After Effects usa a linguagem JavaScript padrão principal, não as extensões específicas do navegador da web, e contém seu próprio conjunto de objetos de extensão, como Camada, Comp, Gravação, e Câmera.
Embora a linguagem de expressões seja baseada em uma linguagem de script, existe uma diferença sutil, mas essencial, entre um script e uma expressão. Um script diz ao aplicativo que faça algo, enquanto uma expressão diz à propriedade que faça algo.
Ao criar expressões, lembre-se do seguinte:
- O valor de uma expressão é o valor da última instrução avaliada. Esta é geralmente a última linha da expressão. Na sua forma mais simples, o valor de uma expressão é produzido pela última variável ou função solicitada na expressão, com base na ordem de avaliação. No entanto, também pode ser qualquer valor que você referencie explicitamente como valor de retorno. Isso pode incluir valores usados muito antes na expressão para fins de depuração, ou valores fora de funções e variáveis declaradas explicitamente que não são processados na ordem em que foram criados.
- O JavaScript é uma linguagem que diferencia maiúsculas e minúsculas.
- Funções não devem ser declaradas na parte inferior de uma expressão.
Noções básicas de linguagem
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 do 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 distinguir um método de um atributo facilmente procurando os parênteses depois do nome do método, os quais estarão englobando todos os argumentos de entrada do 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 além do nível de camada (por exemplo, para fazer referência a propriedades do Efeito, máscaras ou animadores de texto), também é possível usar parênteses. Por exemplo, para vincular a propriedade Opacidade na camada à propriedade Nível de desfoque do efeito Desfoque gaussiano na camada B, digite a seguinte expressão no campo de expressões para a propriedade Opacidade para a camada A:
thisCompayer(“Layer B”)ffect(“Gaussian Blur”)(“Blurriness”)
Ao ler esta expressão da esquerda para a direita, você progride do nível superior que contém o objeto descendo até a 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: layer("Layer B").
Um objeto de efeito específico dentro dessa camada é referenciado pelo seu nome: effect("Gaussian Blur").
Uma propriedade específica do efeito dentro desse efeito é referenciada pelo seu nome: ("Blurriness").
Para obter o n componente de uma propriedade multidimensional, como o componente y de um ponto de controle do efeito, adicione [n] ao final, desta forma:
thisCompayer(“Layer B”)ffect(“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, não é necessário especificar a propriedade. Por exemplo, a 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) thisProperty.wiggle(5, 10)
Inclua a camada e a propriedade ao obtê-las de 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, apareceria como a expressão:
thisCompayer(“Layer A”)otation
Para ver mais exemplos de como as expressões funcionam, use o ícone de seleção para vincular uma propriedade de camada a outra e observe as expressões que são criadas.
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. Propriedades diferentes no After Effects têm dimensões distintas dependendo da quantidade de argumentos de valor que possuem. Na linguagem de expressão, os valores de propriedades são valores únicos (objetos número) ou matrizes (objetos matriz).
A tabela a seguir fornece exemplos de algumas propriedades e suas dimensões:
|
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 a partir de 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]
Matrizes da propriedade posição
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.
Representação de cores em matrizes
As cores são representadas como matrizes 4D:
- 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 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.
Exemplos
Se quiser gravar uma expressão que mantenha o valor y de uma animação de Posição, mas fixe o valor 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 = thisCompayer(“Layer A”)osition[0 y = thisCompayer(“Layer B”)osition[1 [x]
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ê arrasta o ícone de seleção da propriedade Rotação da camada A para a propriedade Escala da camada B, a seguinte expressão aparece:
thisCompayer(“Layer B”)cale[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 da seguinte forma:
thisCompayer(“Layer B”)cale[1]
Por outro lado, 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 começa em 1. Por exemplo, a primeira camada no painel Linha do tempo é layer(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 forem movidos, ou se os argumentos forem alterados durante atualizações do produto. Quando usar um nome, feche-o sempre com aspas retas. Por exemplo, a primeira dessas expressões é mais fácil de entender do que a segunda expressão e continuará funcionando mesmo se você alterar a ordem dos efeitos:
effect(“Colorama”)aram(“Get Phase From”) effect(1)aram(2)
Tempo da expressão
O tempo em uma expressão é sempre no tempo da composição (não no tempo da camada) e é medido em segundos (isto não acontece com a expressão sourceRectAtTime()). 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 for uma composição aninhada e na composição de conteúdo você tiver tempo remapeado, ao obter os valores de posição de uma camada na composição aninhada com a seguinte expressão, os valores da posição usam o tempo padrão da composição:
comp(“nested composition”)ayer(1)osition
No entanto, se você acessar a camada 1 usando a função source, os valores de posição usarão o tempo remapeado:
thisCompayer(“nested composition”)ourceayer(1)osition
Se você usar um horário específico em uma expressão, o After Effects ignorará 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.
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.
-
Crie duas camadas de sólidos: Sólido 1 e Sólido 2.
-
Anime os valores da propriedade Posição do Sólido 1 usando quadros-chave. (Consulte Sobre animação, quadros-chave e expressões.)
-
Selecione a propriedade Posição para o Sólido 2 e escolha Animação > Adicionar expressão ou segure Alt (Windows) ou Option (macOS) e clique no botão do cronômetro da propriedade. A seguinte expressão aparece por padrão:
transform.position
-
Digite o seguinte diretamente sobre transform.position:
thisComp
-
O elemento thisComp é um atributo global cujo valor é um objeto Composição que representa a composição atual. Para determinar o que pode acompanhar thisComp na expressão, procure o valor de retorno para thisComp em Objetos, atributos e métodos globais.
Observe que thisComp retorna um objeto Composição. Em seguida, consulte Atributos e métodos da composição para ver quais atributos e métodos podem ser usados com um objeto Composição. Uma opção é layer(index). O índice ou o número entre parênteses especifica a camada que você deseja usar. Para esse exemplo, considere 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 final da expressão para obter o seguinte:
thisComp.layer(1)
-
Novamente, observe a referência dos elementos de expressão para ver que layer(index) retorna um objeto Camada. Analise os Métodos e atributos gerais da camada e encontre o elemento que deseja usar. Por exemplo, se você deseja obter os valores da propriedade Posição da camada, digite .position no final da expressão para obter o seguinte:
thisComp.layer(1).position
-
Em Métodos e atributos gerais da camada, você pode ver que o atributo Posição retorna uma propriedade. Analise os Métodos e atributos de propriedade e observe que você pode adicionar um fator de tempo à expressão. Para adicionar um horário específico, como a hora atual mais 2 segundos, digite .valueAtTime(time+2) no final da expressão para obter o seguinte:
thisComp.layer(1).position.valueAtTime(time+2)
-
Em Métodos e atributos de propriedade, observe que o método valueAtTime retorna um número ou uma matriz. Quando uma expressão retorna um número, uma matriz ou valor booleano (verdadeiro ou falso), não é possível adicionar outros atributos ou métodos à expressão (se desejar, porém, é possível adicionar operadores aritméticos, como +, -, * e /).
Mais recursos de expressão
Agora que você compreendeu alguns dos conceitos por trás das expressões, acesse a Comunidade para ver alguns exemplos reais e compartilhar seu trabalho.
O fórum AE Enhancers fornece muitos exemplos e informações sobre expressões, além de scripts e predefinições de animação.