t
- 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
- 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
- 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 de transição
- O efeito Reparo do obturador de rolagem
- Efeitos Desfoque e Nitidez
- Efeitos de Canal 3D
- Efeitos de utilitários
- Efeitos de fosco
- Efeitos Ruído e Granulação
- Efeito 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 linguagem de expressão
- Exemplos de expressão
- Automação
- Expressões
- Vídeo imersivo, VR e 3D
- Criar ambientes de VR no After Effects
- Aplicar efeitos de vídeo imersivo
- Ferramentas de composição para vídeos VR/360
- Rastreamento de movimento de câmera 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
Saiba mais sobre expressões e referências de expressão como métodos de conversão de tempo e métodos de matemática de vetores no After Effects.
Repetição de quadros-chave com expressões no After Effects

Use os elementos de expressão do After Effects juntamente com os elementos JavaScript padrão para gravar as expressões. Use o menu Linguagem de expressão a qualquer momento para inserir métodos e atributos em uma expressão e você pode usar o ícone de seleção a qualquer momento para inserir propriedades.
Se uma descrição de argumento contém um sinal de igual (=) e um valor (como t=tempo ou ou largura=.2), o argumento usará o valor padrão incluído se você não especificar um valor diferente.
Algumas descrições de argumento incluem um número dentro de colchetes – esse número mostra a dimensão da propriedade ou Matriz esperada.
Algumas descrições de valor de retorno incluem um número dentro de colchetes – esse número mostra a dimensão da propriedade ou Matriz esperada. Se uma dimensão específica não for incluída, a dimensão da Matriz retornada depende das dimensões da entrada.
O site de referência W3Schools JavaScript fornece informações para a linguagem JavaScript padrão, incluindo páginas para os objetos JavaScript Math e String.
Expressões: mecanismo JavaScript
O After Effects usa o mecanismo Javascript ao avaliar expressões. O desempenho da avaliação das expressões durante a renderização pode ser até 5x mais rápido do que o mecanismo Legacy ExtendScript.
No Windows, o After Effects usa o mecanismo Javascript de código aberto V8. É uma versão do Javascript mais moderna do que a que estava disponível no ExtendScript, que é compatível somente com a 3ª edição do padrão ECMA-262.
Para escolher se um projeto usa o mecanismo Javascript ou o Legacy ExtendScript, na caixa de diálogo Configurações do projeto, clique na guia Expressões e altere a opção Mecanismo de expressões. Projetos salvos em versões anteriores do After Effects utilizam o Legacy ExtendScript.
Para obter mais informações sobre as diferenças específicas de sintaxe entre os mecanismos de expressão Javascript e Legacy ExtendScript, consulte Diferenças de sintaxe entre os mecanismos de expressão Javascript e Legacy ExtendScript.
Melhorias fornecidas pelo mecanismo Javascript
- Maior precisão matemática em operações de ponto flutuante.
- Os métodos matriz e sequência de caracteres de Javascript moderno podem ser usados.
- Estão disponíveis outros objetos de Javascript moderno, como matriz digitada, uso das palavras-chave “let” e “const” e muitas outras adições às versões recentes do padrão ECMA-262.
Diferenças entre o mecanismo Javascript e ExtendScript
- A sintaxe para instruções if/else é restrita no mecanismo Javascript e devem ser escritas para Javascript padronizado.
- Ao acessar os índices dos caracteres em uma camada de texto como uma matriz, use text.sourceText.value[i] em vez de text.sourceText[i].
- Não há suporte para os métodos mais antigos da expressão snake_case, como this_comp e to_world, que foram descontinuados anteriormente no ExtendScript.
- A sintaxe 'this(arg)' simplificada não é compatível.
Objetos, atributos e métodos globais (referência da expressão)
comp(name)
Tipo de retorno: Composição.
Tipo de argumento: name é uma Sequência de caracteres.
Recupera outra composição por nome.
footage(name)
Tipo de retorno: Gravação.
Tipo de argumento: name é uma Sequência de caracteres.
Recupera um item de gravação por nome.
thisComp
Tipo de retorno: Composição.
Representa a composição que contém a expressão.
thisLayer
Tipo de retorno: Camada, Luz ou Câmera.
Representa a camada que contém a expressão. Como thisLayer é o objeto padrão, seu uso é opcional. Por exemplo, é possível iniciar uma expressão com thisLayer.width ou largura e obter o mesmo resultado.
thisProperty
Tipo de retorno: Propriedade.
Representa a propriedade que contém a expressão. Por exemplo, se você grava uma expressão na propriedade Rotação, é possível iniciar uma expressão com thisProperty para fazer referência à propriedade Rotação.
hora
Tipo de retorno: Número.
Representa o tempo de composição, em segundos, no qual a expressão está sendo avaliada.
colorDepth
Tipo de retorno: Número.
Retorna o valor de intensidade de cor do projeto. Por exemplo, colorDepth retorna 16 quando a intensidade de cor do projeto é 16 bits por canal.
posterizeTime(framesPerSecond)
Tipo de retorno: Número.
Tipo de argumentos: framesPerSecond é um Número.
O valor framesPerSecond torna-se a taxa de quadros da qual o restante da expressão opera. Esta expressão permite definir a taxa de quadros para uma propriedade menor que a taxa de quadros da composição. Por exemplo, a seguinte expressão atualiza o valor de propriedade com um valor aleatório uma vez por segundo:
posterizeTime(1); random()valor
Tipo de retorno: Número, Matriz ou Sequência de caracteres.
Representa o valor no tempo atual para a propriedade que contém a expressão.
Métodos de conversão de tempo (referência de expressão)
timeToFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)
Tipo de retorno: Número.
Tipo de argumento: t e fps são números; isDuration é Booleano.
Converte o valor t, que redefine para o valor padrão o tempo da composição atual, para um número inteiro de quadros. O número de quadros por segundo é especificado no argumento fps, que é a taxa de quadros da composição atual (1.0 / thisComp.frameDuration). O argumento isDuration, que redefine para o valor padrão falso, deve ser verdadeiro se o valor t representa um espaço entre dois tempos em vez de um tempo absoluto. Os tempos absolutos são arredondados para baixo para infinito negativo; as durações são arredondadas para zero (acima para valores positivos).
framesToTime(frames, fps = 1.0 / thisComp.frameDuration)
Tipo de retorno: Número.
Tipo de argumento: frames e fps são Números.
O inverso de timeToFrames. Retorna o tempo que corresponde ao argumento frames, que é necessário. Não precisa ser um número inteiro. Consulte timeToFrames para obter uma explicação do argumento fps.
timeToTimecode(t = time + thisComp.displayStartTime, timecodeBase = 30, isDuration = false)
Tipo de retorno: Sequência de caracteres.
Tipo de argumento: t e timecodeBase são Números; isDuration é Booleano.
Converte o valor t em uma sequência de caracteres que representa o timecode. Consulte timeToFrames para obter uma explicação dos argumentos t e isDuration. O valor timecodeBase, que redefine para o valor padrão 30, especifica o número de quadros em um segundo.
timeToNTSCTimecode(t = time + thisComp.displayStartTime, ntscDropFrame = false, isDuration = false)
Tipo de retorno: Sequência de caracteres.
Tipo de argumento: t é um Número, ntscDropFrame e isDuration são Booleanos.
Converte t para uma Sequência de caracteres que representa o timecode NTSC. Consulte timeToFrames para obter uma explicação dos argumentos t e isDuration. Se ntscDropFrame for falso (o padrão), a Sequência de caracteres resultante é Timecode de quadro não ignorado NTSC. Se ntscDropFrame for verdadeiro, a Sequência de caracteres resultante é Timecode de quadro ignorado NTSC.
timeToFeetAndFrames(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, framesPerFoot = 16, isDuration = false)
Tipo de retorno: Sequência de caracteres.
Tipo de argumento: t, fps e framesPerFoot são Números; isDuration é Booleano.
Converte o valor t em uma Sequência de caracteres que representa os rodapés de filme e quadros. Consulte timeToFrames para obter uma explicação dos argumentos t, fps e isDuration. O argumento framesPerFoot especifica o número de quadros no rodapé do filme. O padrão é 16, que é a taxa mais comum para gravação de 35 mm.
timeToCurrentFormat(t = time + thisComp.displayStartTime, fps = 1.0 / thisComp.frameDuration, isDuration = false)
Tipo de retorno: Sequência de caracteres.
Tipo de argumento: t e fps são Números; isDuration é Booleano.
Converte o valor t como uma sequência de caracteres que representa o tempo no formato de exibição atual Configurações do projeto. Consulte timeToFrames para uma obter uma definição de todos os argumentos.
Um argumento ntscDropFrame opcional foi adicionado à função timeToCurrentFormat() no After Effects CS5.5 e posterior. Padrão: ntscDropFrame = thisComp.ntscDropFrame.
Para obter mais controle sobre a aparência do timecode na gravação, use o método timeToCurrentFormat ou outros métodos timeTo para gerar o timecode em vez de usar o efeito Timecode ou Números. Crie uma camada de texto, adicione uma expressão à propriedade Texto de origem, digite timeToCurrentFormat() no campo de expressão. Com esse método, você pode formatar e animar texto do timecode. Além disso, o timecode usa o mesmo estilo de exibição definido pelas configurações atuais do projeto.
Métodos de matemática de vetores (referências a expressão)
As funções Matemática de vetores são métodos globais que realizam operações em matrizes, tratando-as como vetores matemáticos. Diferentemente dos métodos JavaScript incorporados, como Math.sin, esses métodos não são usados com o prefixo Math. Salvo especificado em contrário, os métodos de matemática de vetores são brandos em relação às dimensões e retornam um valor que é a dimensão do objeto Matriz de entrada maior, preenchendo elementos ausentes com zeros. Por exemplo, a expressão add([10, 20], [1, 2, 3]) retorna [11, 22, 3].
O site de JJ Gifford fornece explicações e exemplos mostrando como usar geometria e trigonometria simples com expressões.
add(vec1, vec2)
Tipo de retorno: Matriz.
Tipo de argumento: vec1 e vec2 são Matrizes.
Adiciona dois vetores.
sub(vec1, vec2)
Tipo de retorno: Matriz.
Tipo de argumento: vec1 e vec2 são Matrizes.
Subtrai dois vetores.
mul(vec, amount)
Tipo de retorno: Matriz.
Tipo de argumento: vec é uma Matriz, amount é um Número.
Multiplica cada elemento do vetor pelo valor.
div(vec, amount)
Tipo de retorno: Matriz.
Tipo de argumento: vec é uma Matriz, amount é um Número.
Divide cada elemento do vetor pelo valor.
clamp(value, limit1, limit2)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: value, limit1 e limit2 são Números ou Matrizes.
O valor de cada componente de value fica restrito entre os valores dos valores correspondentes de limit1 e limit2.
dot(vec1, vec2)
Tipo de retorno: Número.
Tipo de argumento: vec1 e vec2 são Matrizes.
Retorna o produto (interno) do ponto dos argumentos de vetor.
cross(vec1, vec2)
Tipo de retorno: Matriz [2 ou 3].
Tipo de argumentos: vec1 e vec2 são Matrizes [2 ou 3].
Retorna o produto cruzado do vetor vec1 e vec2. Consulte a referência a matemática ou um guia JavaScript para obter mais informações.
normalize(vec)
Tipo de retorno: Matriz.
Tipo de argumento: vec é uma Matriz.
Normaliza o vetor para que seu comprimento seja 1,0. Usando o método normalize que é uma forma abreviada de executar a operação div(vec, length(vec)).
length(vec)
Tipo de retorno: Número.
Tipo de argumento: vec é uma Matriz.
Retorna o comprimento de vetor vec.
length(point1, point2)
Tipo de retorno: Número.
Tipo de argumento: point1 e point2 são Matrizes.
Retorna a distância entre dois pontos. O argumento point2 é opcional. Por exemplo, length(point1, point2) é o mesmo que length(sub(point1, point2)).
Por exemplo, adicione esta expressão à propriedade Distância do foco de uma câmera para bloquear o plano focal para o ponto de interesse da câmera de interesse para que o ponto de interesse esteja no foco:
length(position, pointOfInterest)lookAt(fromPoint, atPoint)
Tipo de retorno: Matriz [3].
Tipo de argumento: fromPoint e atPoint são Matrizes [3].
O argumento fromPoint é o local no espaço do mundo da camada que deseja orientar. O argumento atPoint é o ponto no espaço do mundo para o qual você deseja apontar a camada. O valor de retorno pode ser usado como uma expressão da propriedade Orientação, tornando o eixo z do ponto de camada em atPoint. Esse método é particularmente útil para câmeras e luzes. Se você usar esta expressão em uma câmera, desative a orientação automática. Por exemplo, a expressão na propriedade Orientação de uma luz de spot faz a luz apontar para o ponto de ancoragem da camada número 1 na mesma composição: lookAt(position, thisComp.layer(1).position)
Métodos de números aleatórios (referências a expressão)
O método Chocalho – usado para variar aleatoriamente um valor de propriedade – está na categoria de atributos e métodos da Propriedade. Para obter mais informações, consulte Atributos e métodos da propriedade (referência de expressão).
seedRandom(offset, timeless=false)
Tipo de retorno: Nenhum.
Tipo de argumento: offset é um Número, timeless é um Booleano.
Os métodos random e gaussRandom usam um valor de distribuição que controla a sequência dos números. Por padrão, a distribuição é calculada em função de um identificador exclusivo da camada, a propriedade na camada, o tempo atual e um valor de deslocamento de 0. Chame seedRandom para definir o deslocamento para um valor diferente de 0 para criar uma sequência aleatória diferente.
Use true para o argumento timeless para não usar o tempo atual como entrada para a distribuição aleatória. Usar true para o argumento timeless permite a você gerar um número aleatório que não varia dependendo do tempo da avaliação.
O valor offset, mas não o valor timeless, é também usado para controlar o valor inicial da função chocalho.
Por exemplo, essa expressão na propriedade Opacidade define o valor Opacidade para um valor aleatório que não varia com o tempo:
seedRandom(123456, true); random()*100A multiplicação por 100 neste exemplo converte o valor no intervalo 0-1 retornado pelo método random em um número no intervalo 0-100. Esse intervalo é geralmente mais útil para a propriedade Opacidade, com valores de 0% a 100%.
random()
Tipo de retorno: Número.
Retorna um número aleatório no intervalo 0-1.
No After Effects CC e CS6, o comportamento de random() é alterado para ser mais aleatório quando as IDs de camada estão próximas. A expressão wiggle() não é afetada.
random(maxValOrArray)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: maxValOrArray é um Número ou uma Matriz.
Se maxValOrArray for um número, o método retornará um número no intervalo de 0 a maxValOrArray. Se maxValOrArray for uma matriz, este método retorna uma matriz com as mesmas dimensões que maxValOrArray, com cada componente variando de 0 ao componente correspondente de maxValOrArray.
random(minValOrArray, maxValOrArray)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: minValOrArray e maxValOrArray são Números ou Matrizes.
Se minValOrArray e maxValOrArray forem números, este método retornará um número no intervalo de minValOrArray a maxValOrArray. Se os argumentos forem matrizes, este método retorna uma matriz com as mesmas dimensões que o argumento com as dimensões maiores; cada componente no intervalo do componente correspondente de minValOrArray o componente correspondente de maxValOrArray. Por exemplo, a expressão random([100, 200], [300, 400]) retorna uma matriz cujo primeiro valor está no intervalo 100-300 e cujo segundo valor está no intervalo 200-400. Se as dimensões das duas matrizes de entrada não correspondem, os valores de dimensão maiores da Matriz mais curta são preenchidos com zeros.
gaussRandom()
Tipo de retorno: Número.
Retorna um número aleatório. Os resultados têm uma distribuição Gaussiana (em forma de sino). Aproximadamente 90% dos resultados estão no intervalo 0-1 e os restantes 10% está fora desse intervalo.
gaussRandom(maxValOrArray)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: maxValOrArray é um Número ou uma Matriz.
Quando maxValOrArray for um número, o método retornará um número aleatório. Aproximadamente 90% dos resultados estão no intervalo 0 a maxValOrArray e os restantes 10% estão fora desse intervalo. Quando maxValOrArray for uma matriz, este método retorna uma matriz de valores aleatórios, com as mesmas dimensões que maxValOrArray. 90% dos valores estão no intervalo de 0 a maxValOrArray e os restantes 10% estão fora desse intervalo. Os resultados têm uma distribuição Gaussiana (em forma de sino).
gaussRandom(minValOrArray, maxValOrArray)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: minValOrArray e maxValOrArray são Números ou Matrizes.
Se minValOrArray e maxValOrArray forem números, este método retornará um número aleatório. 90% dos resultados estão no intervalo de minValOrArray a maxValOrArray e os restantes 10% estão fora desse intervalo. Se os argumentos forem matrizes, este método retorna uma matriz de números aleatórios com as mesmas dimensões que o argumento com a dimensão maior. Para cada componente, aproximadamente 90% dos resultados estão no intervalo do componente correspondente do minValOrArray ao componente correspondente do maxValOrArray e os restantes 10% estão fora desse intervalo. Os resultados têm uma distribuição Gaussiana (em forma de sino).
noise(valOrArray)
Tipo de retorno: Número.
Tipo de argumento: valOrArray é um número ou uma matriz [2 ou 3].
Retorna um número no intervalo de -1 a 1. O ruído não é realmente aleatório; baseia-se no ruído Perlin, o que significa que os valores de retorno para dois valores de entrada que estão próximos um do outro também tendem a estar próximos um do outro. Esse tipo de ruído é útil para uma sequência de números aleatórios que você não variam descontroladamente variam um ao outro – como costuma ser o caso ao animar qualquer movimento natural aparentemente aleatório. Exemplo: rotação + 360*ruído(tempo)
Métodos de interpolação (referências a expressão)
Para todos os métodos de interpolação, o argumento t é frequentemente tempo ou valor, mas pode ter outros valores. Se t for tempo, a interpolação entre valores ocorre em uma duração. Se t for valor, a expressão mapeia um intervalo de valores para um novo intervalo de valores.
Para ver uma explicação e exemplos dos métodos de interpolação, consulte o site de JJ Gifford.
Chris e Trish Meyer oferecem informações adicionais e exemplos para esses métodos em um artigo no site ProVideo Coalition.
Ian Haigh fornece um script no site After Effects Scripts que você pode usar para aplicar facilmente expressões do método de interpolação avançado a propriedades. Um exemplo são os saltos.
Andrew Devis oferece um conjunto de tutoriais em vídeo no site Creative COW que mostra em detalhe como usar o método de expressão linear com o comando Converter áudio em quadros-chave.
linear(t, tMin, tMax, value1, value2)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: t,tMin e tMax são números e value1 e valor2 são números ou matrizes.
Retorna value1 quando t <= tMin. Retorna value2 quando t >= tMax. Retorna uma interpolação linear entre value1 e value2 quando tMin < t < tMax.
Por exemplo, essa expressão na propriedade Opacidade faz com que os valores de opacidade aumentem linearmente de 20% para 80% no tempo de 0 segundos a 6 segundos:
linear(time, 0, 6, 20, 80)
Esse método, como todos os métodos de interpolação, também pode ser usado para converter um intervalo de valores em outro. Por exemplo, essa expressão na propriedade Opacidade converte os valores de Opacidade, passando do intervalo 0%-100% para o intervalo 20%-80%:
linear(value, 0, 100, 20, 80)
linear(t, value1, value2)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: t é um número e value1 e value2 são números ou matrizes.
Retorna um valor que interpole linearmente do value1 ao value2 como intervalos t de 0 a 1. Retorna value1 quando t <= 0. Retorna value2 quando t >= 1.
ease(t, value1, value2)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: t é um número e value1 e value2 são números ou matrizes.
Semelhante ao linear com os mesmos argumentos, exceto que a interpolação atenua para dentro e para fora para que a velocidade seja 0 nos pontos iniciais e finais. Esse método resulta em uma animação suave.
ease(t, tMin, tMax, value1, value2)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: t, tMin e tMax são números e value1 e value2 são números ou matrizes.
Semelhante ao linear com os mesmos argumentos, exceto que a interpolação atenua para dentro e para fora para que a velocidade seja 0 nos pontos iniciais e finais. Esse método resulta em uma animação suave.
easeIn(t, value1, value2)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: t é um número e value1 e value2 são números ou matrizes.
Semelhante à atenuação, exceto que a tangente é apenas 0 no value1 e a interpolação é linear no value2.
easeIn(t, tMin, tMax, value1, value2)
Tipo de retorno: Número ou Matriz.
Tipo de argumentos: t, tMin e tMax são números e value1 e value2 são números ou matrizes.
Semelhante à atenuação, exceto que a tangente é apenas 0 no tMin e a interpolação é linear no tMax.
easeOut(t, value1, value2)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: t é um número e value1 e value2 são números ou matrizes.
Semelhante à atenuação, exceto que a tangente é apenas 0 no value2 e a interpolação é linear no value1.
easeOut(t, tMin, tMax, value1, value2)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: t,tMin e tMax são números e value1 e value2 são números ou matrizes.
Semelhante à atenuação, exceto que a tangente é apenas 0 no tMax e a interpolação é linear no tMin.
Métodos de conversão de cores (referência de expressão)
Harry Frank fornece um tutorial em vídeo no site graymachine que mostra como usar esses métodos de conversão de cores para alterar a cor das ondas criadas pelo efeito Ondas de rádio.
rgbToHsl(rgbaArray)
Tipo de retorno: Matriz [4].
Tipo de argumento: rgbaArray é uma matriz [4].
Converte uma cor no espaço RGBA em um espaço HSLA. A entrada é uma matriz de valores normalizados de canal de vermelho, verde, azul e alfa, tudo no intervalo de 0.0 a 1.0. O valor resultante é uma matriz de matiz, saturação, luminosidade, e valores do canal alfa, também no intervalo de 0.0 a 1.0. Exemplo:
rgbToHsl.effect(“Alterar cor”)(“Cor a ser alterada”)hslToRgb(hslaArray)
Tipo de retorno: Matriz [4].
Tipo de argumento: hslaArray é uma matriz [4].
Converte uma cor no espaço HSLA em um espaço RGBA. Esta conversão é o oposto da conversão executada pelo método rgbToHsl.
Outros métodos matemáticos (referências a expressão)
degreesToRadians(degrees)
Tipo de retorno: Número.
Tipo de argumento: degrees é um número.
Converte graus em radianos.
radiansToDegrees(radians)
Tipo de retorno: Número.
Tipo de argumento: radians é um número.
Converte radianos em graus.
Atributos e métodos da Composição (referência de expressão)
layer(index)
Tipo de retorno: Camada, Luz ou Câmera.
Tipo de argumento: index é um número.
Recupera a camada pelo número (ordem no painel Linha de tempo). Exemplo: thisComp.layer(3)
layer(name)
Tipo de retorno: Camada, Luz ou Câmera.
Tipo de argumento: name é uma Sequência de caracteres.
Recupera a camada por nome. Os nomes são correspondidos de acordo com o nome da camada, ou nome da origem se não houver nenhum nome da camada. Se houver nomes duplicados, o After Effects utiliza o primeiro (superior) no painel Linha de tempo. Exemplo:
thisComp.layer(“Sólido 1”)layer(otherLayer, relIndex)
Tipo de retorno: Camada, Luz ou Câmera.
Tipo de argumentos: otherLayer é um objeto de camada e relIndex é um número.
Recupera a camada ou seja camadas relIndex acima ou abaixo de otherLayer. Por exemplo, thisComp.layer(thisLayer, 1).active retornará verdadeiro se a próxima camada abaixo no painel Linha de tempo estiver ativa.
marker
Tipo de retorno: MarkerProperty.
Você não pode acessar um marcador de composição por número de marcador. Se você tiver um projeto criado em uma versão anterior do After Effects que use números de marcador de composição em expressões, altere essas chamadas para usar marker.key(name) em vez disso. Como o nome padrão de um marcador de composição é um número, basta colocar o número entre aspas para converter a referência e usar o nome.
marker.key(index)
Tipo de retorno: MarkerKey.
Tipo de argumento: index é um número.
Retorna o objeto MarkerKey do marcador com o índice especificado. O índice refere-se à ordem do marcador no tempo de composição, não ao nome do marcador. Por exemplo, esta expressão retorna o tempo do primeiro marcador de composição:
thisComp.marker.key(1).time
marker.key(name)
Tipo de retorno: MarkerKey.
Tipo de argumento: name é uma Sequência de caracteres.
Retorna o objeto MarkerKey do marcador com o nome especificado. O valor name é o nome do marcador, conforme digitado no campo de comentário na caixa de diálogo do marcador, por exemplo, marker.keymarker.key(“1”). Para um marcador de composição, o nome padrão é um número. Se mais de um marcador na composição tiver o mesmo nome, esse método retornará o marcador que ocorrer primeiro no tempo (no tempo da composição). O valor da chave de um marcador é uma sequência de caracteres, não um número. Por exemplo, essa expressão retornará o tempo do marcador de composição com o nome “0”:
thisComp.marker.key("0").timemarker.nearestKey(t)
Tipo de retorno: MarkerKey.
Tipo de argumento: t é um número.
Retorna o marcador que está mais próximo no tempo de t. Por exemplo, essa expressão retornará o tempo do marcador de composição mais próximo do tempo de 1 segundo:
thisComp.marker.nearestKey(1).timeEsta expressão retornará o tempo do marcador de composição mais próximo ao tempo atual:
thisComp.marker.nearestKey(time).timemarker.numKeys
Tipo de retorno: Número.
Retorna o número total de marcadores de composição na composição.
numLayers
Tipo de retorno: Número.
Retorna o número de camadas na composição.
activeCamera
Tipo de retorno: Câmera.
Retorna o objeto Câmera para a câmera em que a composição foi renderizada no quadro atual. Essa câmera não é necessariamente a câmera em que está visualizando no painel Composição.
largura
Tipo de retorno: Número.
Retorna a largura da composição, em pixels.
Aplique a seguinte expressão à propriedade Posição de uma camada para centralizar a camada no quadro da composição:
[thisComp.width/2, thisComp.height/2]altura
Tipo de retorno: Número.
Retorna a altura da composição, em pixels.
duração
Tipo de retorno: Número.
Retorna a duração da composição, em segundos.
ntscDropFrame
Tipo de retorno: Booleano.
Retorna verdadeiro se o timecode estiver no formato de quadro ignorado. (After Effects CS5.5 e posterior.)
displayStartTime
Tipo de retorno: Número.
Retorna a hora de início da composição, em segundos.
frameDuration
Tipo de retorno: Número.
Retorna a duração de um quadro, em segundos.
shutterAngle
Tipo de retorno: Número.
Retorna o valor do ângulo do obturador da composição, em graus.
shutterPhase
Tipo de retorno: Número.
Retorna a fase do obturador da composição, em graus.
bgColor
Tipo de retorno: Matriz [4].
Retorna a cor de fundo da composição.
pixelAspect
Tipo de retorno: Número.
Retorna a taxa de proporção de pixels da composição.
name
Tipo de retorno: Sequência de caracteres.
Retorna o nome da composição.
Atributo de região protegida do marcador de composição
A opção Região protegida para marcadores de composição pode ser lida com o atributo de marcador de composição protectedRegion.
Atributos e métodos da gravação (referência de expressão)
Para usar um item de gravação do painel Projeto como um objeto em uma expressão, use o método de gravação global, como em footage(“file_name”). Você também pode acessar um objeto de gravação usando o atributo source em uma camada cuja origem é um item de gravação.
largura
Tipo de retorno: Número.
Retorna a largura do item de gravação, em pixels.
altura
Tipo de retorno: Número.
Retorna a altura do item de gravação, em pixels.
duração
Tipo de retorno: Número.
Retorna a duração do item de gravação, em segundos.
frameDuration
Tipo de retorno: Número.
Retorna a duração de um quadro no item de gravação, em segundos.
ntscDropFrame
Tipo de retorno: Booleano.
Retorna verdadeiro se o timecode estiver no formato de quadro ignorado. (After Effects CS5.5 e posterior.)
pixelAspect
Tipo de retorno: Número.
Retorna a taxa de proporção de pixels do item de gravação.
name
Tipo de retorno: Sequência de caracteres.
Retorna o nome do item de gravação conforme mostrado no painel Projeto.
Atributos e métodos de Subobjetos da camada (referência de expressão)
Para o After Effects CC e CS6, o Menu de Linguagem de expressão, “Subobjetos de camada”, “Camada geral”, “Propriedades da camada”, “Camada 3D” e “Transformações do espaço da camada” foram organizados no submenu “Camada”.
source
Tipo de retorno: Composição ou gravação.
Retorna o objeto de composição de origem ou objeto de gravação de origem da camada. O tempo padrão é ajustado para o tempo na origem. Exemplo: source.layer(1).position
sourceTime(t = time)
Tipo de retorno: Número.
Retorna a origem da camada correspondente ao tempo t. (After Effects CS5.5 e posterior.)
sourceRectAtTime(t = time, includeExtents = false)
Tipo de retorno: objeto Javascript com quatro atributos: [superior, esquerda, largura, altura]. As extensões se aplicam somente a camadas de forma, aumentando o tamanho dos limites da camada conforme necessário e a camadas de texto de parágrafo (After Effects 15,1 e posterior), onde retorna os limites da caixa de parágrafo. Exemplo: myTextLayer.sourceRectAtTime().width.
effect(name)
Tipo de retorno: Efeito.
Tipo de argumento: name é uma Sequência de caracteres.
O After Effects localiza o efeito pelo seu nome no painel Controles do efeito. O nome pode ser o nome padrão ou um nome definido pelo usuário. Se vários efeitos tiverem o mesmo nome, o efeito mais próximo da parte superior do painel Controles do efeito será usado. Exemplo:
effect(“Desfoque rápido”)(“Desfoque”)effect(index)
Tipo de retorno: Efeito.
Tipo de argumento: index é um número.
O After Effects localiza o efeito pelo seu índice no painel Controles do efeito, começando em 1 e contando a partir de cima.
mask(name)
Tipo de retorno: Máscara.
Tipo de argumento: name é uma Sequência de caracteres.
O nome pode ser o nome padrão ou um nome definido pelo usuário. Se várias máscaras tiverem o mesmo nome, a primeira máscara (superior) é usada. Exemplo:
mask(“Máscara 1”)mask(index)
Tipo de retorno: Máscara.
Tipo de argumento: index é um número.
O After Effects localiza a máscara pelo seu índice no painel Linha de tempo, começando em 1 e contando a partir de cima.
Atributos e métodos da Camada geral (referência de expressão)
largura
Tipo de retorno: Número.
Retorna a largura da camada, em pixels. Isso equivale a source.width.
altura
Tipo de retorno: Número.
Retorna a altura da camada, em pixels. Isso equivale a source.height.
index
Tipo de retorno: Número.
Retorna o número de índice da camada na composição.
parent
Tipo de retorno: Camada, Luz ou Câmera.
Retorna o objeto Camada pai da camada, caso haja algum. Exemplo: position[0] + parent.width
hasParent
Tipo de retorno: Booleano.
Retorna verdadeiro se a camada tiver pai ou falso se não.
Use o atributo hasParent para determinar se uma camada tem uma camada pai. Você pode usar esse atributo mesmo se ela não tiver uma camada pai atualmente. Por exemplo, a seguinte expressão indica que a camada na qual você a aplica chocalha com base na posição do pai. Se a camada não tiver pai, então ela chocalha com base em sua própria posição. Se a camada recebe um pai posteriormente, o comportamento da camada muda em conformidade:
idx = index; if (hasParent) { idx = parent.index; } thisComp.layer(idx).position.wiggle(5,20)inPoint
Tipo de retorno: Número.
Retorna o Ponto de entrada de camada, em segundos.
Geralmente, o valor outPoint é maior que o valor inPoint. Porém, se a camada é invertida no tempo, o valor inPoint é maior que o valor outPoint. Similarmente, o valor startTime pode ser maior que o valor inPoint.
outPoint
Tipo de retorno: Número.
Retorna o Ponto de saída da camada, em segundos.
startTime
Tipo de retorno: Número.
Retorna a hora inicial de camada, em segundos.
hasVideo
Tipo de retorno: Booleano.
Retorna verdadeiro se a camada tiver vídeo, ou falso se não.
hasAudio
Tipo de retorno: Booleano.
Retorna verdadeiro se a camada tiver áudio, ou falso se não.
active
Tipo de retorno: Booleano.
Retorna verdadeiro se a opção Vídeo estiver ativa para a camada e o tempo atual estiver no intervalo do Ponto de entrada da camada ao Ponto de saída de camada; senão, retorna falso.
enabled
Tipo de retorno: Booleano.
Retorna verdadeiro se a opção Vídeo estiver ativa para a camada; senão, retorna Falso.
audioActive
Tipo de retorno: Booleano.
Retorna verdadeiro se a opção Áudio estiver ativa para a camada e o tempo atual estiver no intervalo do Ponto de entrada da camada ao Ponto de saída de camada; senão, retorna falso.
sampleImage(point, radius = [.5, .5], postEffect=true, t=time)
Tipo de retorno: Matriz [4].
Tipo de argumento: point é uma matriz [2], radius é uma matriz [2], postEffect é um booleano e t é um número.
Faz a amostragem dos valores de cor e do canal alfa de uma camada e retorna o valor médio ponderado de alfa dos pixels dentro da distância do ponto como uma matriz: [vermelho, verde, azul, alfa]. Se postEffect é verdadeiro, os valores da amostragem são da camada depois de as máscaras e os efeitos em essa camada terem sido renderizados; se postEffect for falso, os valores de amostragem são da camada antes de as máscaras e os efeitos terem sido renderizados. O valor de entrada point está no espaço da camada; o ponto [0,0] é o centro do pixel superior esquerdo na camada. O valor de entrada radius especifica a distância horizontal e vertical do centro da amostra às bordas do retângulo da amostra. O valor padrão das amostras é de um pixel.
O parâmetro postEffect se refere aos efeitos aplicados diretamente à camada, não aos efeitos aplicados indiretamente, como em uma camada de ajuste.
Usar sampleImage em uma expressão já não desativa o multiprocessamento.
Este exemplo faz a amostragem de um retângulo com 4 pixels de largura e 3 pixels de altura, centralizado em torno de um ponto 100 pixels abaixo e à direita do canto esquerdo superior da camada:
thisComp.layer(1).sampleImage([100, 100], [2, 1.5])
Dan Ebberts fornece um exemplo de como usar o método sampleImage no site MotionScript.
Todd Kopriva fornece instruções sobre o uso do método sampleImage e o efeito Controle de ponto para monitorar cores em um ponto especificado durante a correção de cores no blog After Effects Region of Interest.
Atributos e métodos das Propriedades de camada (referência de expressão)
Ao adicionar máscaras, efeitos, pintura ou texto a uma camada, o After Effects adiciona novas propriedades ao painel Linha de tempo. Há muitas dessas propriedades para listar aqui, portanto, utilize o ícone de seleção para conhecer a sintaxe para fazer referência a elas em suas expressões.
anchorPoint
Tipo de retorno: Propriedade [2 ou 3].
Retorna o valor de ponto de ancoragem da camada no sistema de coordenadas da camada (espaço da camada).
posição
Tipo de retorno: Propriedade [2 ou 3].
Retorna o valor da posição da camada, no espaço do mundo se a camada não tem pai. Se a camada tiver um pai, ela retorna o valor da posição da camada no sistema de coordenadas da camada pai (no espaço de camada da camada pai).
escala
Tipo de retorno: Propriedade [2 ou 3].
Retorna o valor de escala da camada, expresso em porcentagem.
rotação
Tipo de retorno: Propriedade.
Retorna o valor de rotação da camada em graus. Para uma camada 3D, retorna o valor de rotação z em graus.
opacidade
Tipo de retorno: Propriedade.
Retorna o valor de opacidade da camada, expresso em porcentagem.
audioLevels
Tipo de retorno: Propriedade [2].
Retorna o valor da propriedade Níveis de áudio da camada, em decibéis. Este é um valor 2D; o primeiro valor representa o canal de áudio esquerdo e o segundo valor representa o da direita. O valor não é a amplitude da trilha sonora do material de origem. Em vez disso, é o valor da propriedade Níveis de áudio, que pode ser afetado pelos quadros-chave.
timeRemap
Tipo de retorno: Propriedade.
Retorna o valor da propriedade Remapeamento de tempo, em segundos, se Remapeamento de tempo estiver ativado.
marker.key(index)
Tipo de retorno: MarkerKey.
Tipo de argumento: index é um número.
Retorna o objeto MarkerKey do marcador de camada com o índice especificado.
marker.key(name)
Tipo de retorno: MarkerKey.
Tipo de argumento: name é uma Sequência de caracteres.
Retorna o objeto MarkerKey do marcador de camada com o nome especificado. O valor name é o nome do marcador, conforme digitado no campo de comentário na caixa de diálogo do marcador, por exemplo, marker.key (“ch1”). Se mais de um marcador na camada possuir o mesmo nome, o método retorna o marcador que ocorrer primeiro no tempo (no tempo da camada). O valor da chave de um marcador é uma sequência de caracteres, não um número.
Esta expressão em uma propriedade reduz o valor da propriedade de 0 a 100 entre dois marcadores identificados pelo nome:
m1 = marker.key("Start").time; m2 = marker.key("End").time; linear(time, m1, m2, 0, 100);marker.nearestKey(t)
Tipo de retorno: MarkerKey.
Tipo de argumento: t é um número.
Retorna o marcador de camada que está mais próximo no tempo de t. Por exemplo, essa expressão retornará o tempo do marcador na camada mais próxima do tempo de 1 segundo:
marker.nearestKey(1).timeEsta expressão retorna o tempo do marcador na camada mais próxima ao tempo atual:
marker.nearestKey(time).timemarker.numKeys
Tipo de retorno: Número.
Retorna o número total de marcadores na camada.
name
Tipo de retorno: Sequência de caracteres.
Retorna o nome da camada.
Atributos e métodos da Camada 3D (referência de expressão)
orientação
Tipo de retorno: Propriedade [3].
Retorna o valor de orientação 3D, em graus, para uma camada 3D.
rotationX
Tipo de retorno: Propriedade.
Retorna o valor de rotação x, em graus, para uma camada 3D.
rotationY
Tipo de retorno: Propriedade.
Retorna o valor de rotação y, em graus, para uma camada 3D.
rotationZ
Tipo de retorno: Propriedade.
Retorna o valor de rotação z, em graus, para uma camada 3D.
lightTransmission
Tipo de retorno: Propriedade.
Retorna o valor da propriedade Transmissão de luz para uma camada 3D.
castsShadows
Tipo de retorno: Propriedade.
Retorna um valor de 1,0 se a camada projetar sombras.
acceptsShadows
Tipo de retorno: Propriedade.
Retorna um valor de 1,0 se a camada aceitar sombras.
acceptsLights
Tipo de retorno: Propriedade.
Retorna um valor de 1,0 se a camada aceitar luzes.
ambiente
Tipo de retorno: Propriedade.
Retorna o valor de componente ambiente como uma porcentagem.
difusão
Tipo de retorno: Propriedade.
Retorna o valor de componente de difusão como uma porcentagem.
especular
Tipo de retorno: Propriedade.
Retorna o valor de componente especular como uma porcentagem.
brilho
Tipo de retorno: Propriedade.
Retorna o valor de componente de brilho como uma porcentagem.
metal
Tipo de retorno: Propriedade.
Retorna o valor de componente de metal como uma porcentagem.
Métodos de Transformações do espaço da camada (referência expressão)
Use métodos de transformação do espaço da camada para transformar valores de um espaço para outro, como do espaço da camada para o espaço do mundo. Os métodos “de” transformam os valores do espaço denominado (composição ou mundo) para o espaço da camada. Os métodos “para” transformam valores do espaço da camada para o espaço denominado (composição ou mundo). Cada método de transformação adota um argumento opcional para determinar o tempo em que a transformação é calculada; no entanto, é possível quase sempre usar o tempo atual (padrão).
Use métodos de transformação “Vec” para transformar um vetor de direção, como a diferença entre dois valores de posição. Use métodos de transformação (não “Vec”) simples ao transformar um ponto, como uma posição. O espaço da composição (comp) e do mundo são os mesmos para camadas 2D. Para camadas 3D, contudo, o espaço da composição se refere à câmera ativa e o espaço do mundo é independente da câmera.
toComp(point, t=time)
Tipo de retorno: Matriz [2 ou 3].
Tipo de argumento: point é uma matriz [2 ou 3] e t é um número.
Transforma um ponto de um espaço de camada para um espaço de composição.
fromComp(point, t=time)
Tipo de retorno: Matriz [2 ou 3].
Tipo de argumento: point é uma matriz [2 ou 3] e t é um número.
Transforma um ponto do espaço de composição para um espaço de camada. O ponto resultante em uma camada 3D pode ter um valor diferente de zero até que esteja no espaço de camada. Exemplo: fromComp(thisComp.layer(2).position)
toWorld(point, t=time)
Tipo de retorno: Matriz [2 ou 3].
Tipo de argumento: point é uma matriz [2 ou 3] e t é um número.
Transforma um ponto do espaço de camada para um espaço de mundo com exibição independente. Exemplo:
toWorld.effect("Bulge")("Bulge Center")
Dan Ebberts fornece uma expressão no site MotionScript que usa o método toWorld para orientar automaticamente uma camada ao longo de um só eixo. Isso é útil, por exemplo, para que os personagens girem de um lado ao outro para seguir a câmera enquanto permanecem na posição vertical.
Rich Young oferece um conjunto de expressões no site AE Portal que usa o método toWorld que liga uma câmera e luz a uma camada com o efeito Esfera do CC.
fromWorld(point, t=time)
Tipo de retorno: Matriz [2 ou 3].
Tipo de argumento: point é uma matriz [2 ou 3] e t é um número.
Transforma um ponto do espaço de mundo para o espaço de camada. Exemplo: fromWorld(thisComp.layer(2).position)
Consulte Exemplo de expressão: Criar uma saliência entre duas camadas para obter um exemplo de como esse método pode ser usado.
toCompVec(vec, t=time)
Tipo de retorno: Matriz [2 ou 3].
Tipo de argumento: vec é uma matriz [2 ou 3] e t é um número.
Transforma um vetor do espaço de camada para o espaço de composição. Exemplo: toCompVec ([1,0])
fromCompVec(vec, t=time)
Tipo de retorno: Matriz [2 ou 3].
Tipo de argumento: vec é uma matriz [2 ou 3] e t é um número.
Transforma um vetor do espaço de composição para o espaço de camada. Exemplo (camada 2D):
dir=sub(position, thisComp.layer(2).position); fromCompVec(dir)toWorldVec(vec, t=time)
Tipo de retorno: Matriz [2 ou 3].
Tipo de argumento: vec é uma matriz [2 ou 3] e t é um número.
Transforma um vetor do espaço de camada para o espaço do mundo. Exemplo: p1 = effect("Eye Bulge 1")("Bulge Center"); p2 = effect("Eye Bulge 2")("Bulge Center"); toWorld(sub(p1, p2))
fromWorldVec(vec, t=time)
Tipo de retorno: Matriz [2 ou 3].
Tipo de argumento: vec é uma matriz [2 ou 3] e t é um número.
Transforma um vetor do espaço do mundo para o espaço de camada. Exemplo: fromWorld(thisComp.layer(2).position)
fromCompToSurface(point, t=time)
Tipo de retorno: Matriz [2].
Tipo de argumento: point é uma matriz [2 ou 3] e t é um número.
Projeta um ponto localizado no espaço de composição para um ponto na superfície da camada (valor z zero) no local onde ele aparece quando exibido da câmera ativa. Este método é útil para definir pontos de controle do efeito. Use apenas com camadas 3D.
Atributos e métodos da Câmera (referência de expressão)
Os objetos de câmera têm os mesmos atributos e métodos que os objetos de camada, exceto para source, effect,mask, width, height, anchorPoint,scale, opacity, audioLevels, timeRemap e todas as propriedades de material.
pointOfInterest
Tipo de retorno: Propriedade [3].
Retorna os valores do ponto de interesse da câmera no espaço do mundo.
aplicar zoom
Tipo de retorno: Propriedade.
Retorna os valores de zoom da câmera em pixels.
Aqui está uma expressão para a propriedade Escala de uma camada que mantém o tamanho relativo da camada no quadro enquanto altera a posição z (profundidade) de uma camada ou valor Zoom de uma câmera:
cam = thisComp.activeCamera; distance = length(sub(position, cam.position)); scale * distance / cam.zoom;depthOfField
Tipo de retorno: Propriedade.
Retorna 1 se a propriedade Profundidade de campo de uma câmera estiver ativada ou retorna 0 se a propriedade Profundidade de campo estiver desativada.
focusDistance
Tipo de retorno: Propriedade.
Retorna o valor da distância do foco de uma câmera, em pixels.
abertura
Tipo de retorno: Propriedade.
Retorna o valor de abertura de uma câmera, em pixels.
blurLevel
Tipo de retorno: Propriedade.
Retorna o valor de nível de desfoque de uma câmera como uma porcentagem.
active
Tipo de retorno: Booleano.
Retorna verdadeiro se a câmera for a câmera ativa para a composição atual: a opção Vídeo para a camada da câmera está ativada, o tempo atual está no intervalo do Ponto de entrada da camada de câmera ao Ponto de saída da camada de câmera e é a primeira (superior) dessa camada de câmera listada no painel Linha de tempo. Caso contrário, retorna falso.
Atributos e métodos da Luz (referência de expressão)
Os objetos de luz têm os mesmos atributos e métodos que os objetos de camada, exceto para source, effect, mask, width, height, anchorPoint, scale, opacity, audioLevels, timeRemap e todas as propriedades de material.
pointOfInterest
Tipo de retorno: Propriedade [3].
Retorna os valores do ponto de interesse para uma luz no espaço do mundo.
intensidade
Tipo de retorno: Propriedade.
Retorna os valores de intensidade de uma luz como uma porcentagem.
cor
Tipo de retorno: Propriedade [4].
Retorna o valor de cor de uma luz.
coneAngle
Tipo de retorno: Propriedade.
Retorna o ângulo de cone de uma luz, em graus.
coneFeather
Tipo de retorno: Propriedade.
Retorna o valor de difusão de cone de uma luz como uma porcentagem.
shadowDarkness
Tipo de retorno: Propriedade.
Retorna o valor de escurecimento de sombra de uma luz como uma porcentagem.
shadowDiffusion
Tipo de retorno: Propriedade.
Retorna o valor de difusão de sombra de uma luz, em pixels.
David Van Brink oferece um artigo de instruções e um projeto de amostra no blog omino pixel que mostra como usar expressões com luzes.
Atributos e métodos de efeito (referência de expressão)
active
Tipo de retorno: Booleano.
Retorna verdadeiro se o efeito estiver ativado (a opção Efeito está selecionada).
param(name)
Tipo de retorno: Propriedade.
Tipo de argumento: name é uma Sequência de caracteres.
Retorna uma propriedade em um efeito. Os pontos de controle de efeito estão sempre no espaço de camada. Exemplo:
effect(“Saliência”).param(“Altura da saliência”)param(index)
Tipo de retorno: Propriedade.
Tipo de argumento: index é um número.
Retorna uma propriedade em um efeito. Os pontos de controle de efeito estão sempre no espaço de camada. Por exemplo, effect(“Bulge”).param(4) retorna a propriedade Altura da saliência.
Atributos e métodos da Máscara (referência de expressão)
É possível vincular propriedades Caminho da máscara a outras propriedades do caminho (caminhos em uma camada de forma e traçados de pincel), mas as propriedades não são acessíveis para manipulação numérica direta com as expressões.
maskOpacity
Tipo de retorno: Propriedade.
Retorna o valor de opacidade de uma máscara como uma porcentagem.
maskFeather
Tipo de retorno: Propriedade.
Retorna o valor de difusão de uma máscara, em pixels.
maskExpansion
Tipo de retorno: Propriedade.
Retorna o valor de expansão de uma máscara, em pixels.
inverter
Tipo de retorno: Booleano.
Retorna verdadeiro se a máscara for invertida ou falso se não for.
Atributos e métodos da Propriedade (referência de expressão)
valor
Tipo de retorno: Número, Matriz ou Sequência de caracteres.
Retorna o valor de uma propriedade no tempo atual.
valueAtTime(t)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: t é um número.
Retorna o valor de uma propriedade no tempo especificado, em segundos.
Por exemplo, para ter um valor de propriedade para cada quadro selecionado aleatoriamente de um conjunto de quatro valores, defina os quatro valores como quadros-chave para 0, 1, 2 e 3 segundos e aplique a seguinte expressão à propriedade:
valueAtTime(random(4))
Dan Ebberts fornece mais exemplos e técnicas sobre como usar os métodos valueAtTime e velocityAtTime no site MotionScript.
velocidade
Tipo de retorno: Número ou Matriz.
Retorna o valor de velocidade temporal no tempo atual. Para propriedades espaciais, como Posição, retorna o valor de vetor tangente. O resultado é a mesma dimensão da propriedade.
velocityAtTime(t)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: t é um número.
Retorna o valor de velocidade temporal no momento especificado.
velocidade
Tipo de retorno: Número.
Retorna um valor de velocidade positivo 1D igual à velocidade em que a propriedade está sendo alterada no tempo padrão. Esse elemento só pode ser usado somente para propriedades espaciais.
speedAtTime(t)
Tipo de retorno: Número.
Tipo de argumento: t é um número.
Retorna o valor de velocidade espacial no momento especificado.
wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: freq, amp, octaves, amp_mult e t são números.
Agita aleatoriamente (chocalha) o valor da propriedade.
O valor freq é a frequência em chocalhos por segundo.
O valor amp é a amplitude em unidades da propriedade à qual é aplicada.
octaves é o número de oitavas de ruído para adicionar em conjunto. Este valor controla quanto detalhe está no chocalho. Torne este valor maior que o padrão de 1 para incluir as frequências mais altas ou para ou mais baixas para incluir harmônicos de amplitude no chocalho.
amp_mult é o valor que amp é multiplicado para cada oitava. Este valor controla a velocidade em que os harmônicos soltam. O padrão é 0,5; torne-o mais próximo de 1 para ter os harmônicos adicionados à mesma amplitude da frequência de base, ou mais próximo de 0 para adicionar menos detalhe.
t é a hora de início de base. Esse valor é predefinido para o tempo atual. Use este parâmetro se pretender que a saída seja um chocalho do valor da propriedade em amostra em um tempo diferente.
Exemplo: position.wiggle(5, 20, 3, .5) produz aproximadamente 5 chocalhos por segundo com um tamanho médio de aproximadamente 20 pixels. Além do chocalho principal, mais dois níveis de chocalhos detalhados ocorrem com uma frequência de 10 e 20 chocalhos por segundo e tamanhos de 10 e 5 pixels, respectivamente.
Este exemplo, em uma propriedade bidimensional como Escala, chocalha ambas as dimensões pelo mesmo valor:
v = wiggle(5, 10); [v[0], v[0]]
Este exemplo, em uma propriedade bidimensional, chocalha somente ao longo do eixo y:
freq = 3; amp = 50; w = wiggle(freq,amp); [value[0],w[1]];
Dan Ebberts fornece uma expressão de exemplo e explicação detalhada no site MotionScript que mostra como usar o parâmetro de tempo do método chocalho para criar uma animação em loop.
temporalWiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
Tipo de retorno: Número ou Matriz.
Tipo de argumentos: freq, amp, oitavas, amp_mult e t são números.
Faz a amostragem da propriedade em um tempo de chocalho. O valor freq é a frequência em chocalhos por segundo, amp é a amplitude das unidades da propriedade à qual é aplicada, octaves é o número de oitavas de ruído para adicionar em conjunto, amp_mult é a quantia que amp é multiplicado por para cada oitava e t é o tempo de início base. Para que essa função seja significativa, a propriedade à qual faz a amostragem deve ser animada, porque a função altera somente o tempo da amostragem, não o valor. Exemplo: scale.temporalWiggle (5, .2)
smooth(width=.2, samples=5, t=time)
Tipo de retorno: Número ou Matriz.
Tipo de argumento: width, samples e t são números.
Suaviza os valores de propriedade ao longo do tempo, convertendo os desvios grandes e breves no valor em desvios menores, mais uniformemente distribuídos. Essa suavização é conseguida aplicando um filtro de caixa ao valor da propriedade no tempo especificado. O valor width é o intervalo de tempo (em segundos) no qual o filtro é calculado na média. O valor samples é o número de amostras distintas separadas uniformemente ao longo do tempo; use um valor maior para maior suavidade (mas desempenho diminuído). Em geral, convém que samples seja um número ímpar de modo que o valor seja incluído na média. Exemplo: position.smooth(.1, 5)
loopIn(type="cycle", numKeyframes=0)
Tipo de retorno: Número ou Matriz.
Executa a repetição de um segmento de tempo que é medido do primeiro quadro-chave na camada para frente até ao Ponto de saída da camada. O loop é reproduzido a partir do Ponto de entrada da camada. O valor numKeyframes determina que segmento é repetido: O segmento repetido é a parte do primeiro quadro-chave para o numKeyframes +1 quadro-chave. Por exemplo, loopIn("cycle", 3) repete o segmento delimitado pelo primeiro e quarto quadros-chave. O valor padrão 0 significa que todos os quadros-chave fazem loop.
É possível usar os métodos de repetição de quadros-chave para repetir uma série de quadros-chave. Você pode usar esses métodos na maioria das propriedades. As exceções incluem propriedades que não podem ser expressas por valores numéricos simples no painel Linha de tempo, como a propriedade Texto de origem, propriedades da forma de caminho e a propriedade Histograma para o efeito Níveis. Os quadros-chave ou valores de duração que são muito grandes serão cortados para o valor máximo permitido. Os valores que são muito pequenos resultam em um loop constante.
tipo de loop |
resultado |
---|---|
cycle |
(padrão) Repete o segmento especificado. |
pingpong |
Repete o segmento especificado, alternando para a frente e para trás. |
offset |
Repete o segmento especificado, mas desloca cada ciclo pela diferença no valor da propriedade no início e no fim do segmento, multiplicado pelo número de vezes que o segmento fez loop. |
continue |
Não repete o segmento especificado, mas continua a animar uma propriedade com base na velocidade no primeiro ou último quadro-chave. Por exemplo, se o último quadro-chave de uma propriedade Escala de uma camada for 100%, a camada continua na escala de 100% ao ponto de saída, em vez de repetir diretamente de volta ao ponto de saída. Este tipo não aceita um argumento keyframes ou duration. |
loopOut(type="cycle", numKeyframes=0)
Tipo de retorno: Número ou Matriz.
Executa a repetição de um segmento de tempo que é medido do último quadro-chave na camada para trás até ao ponto de entrada da camada. O loop é reproduzido até ao Ponto de saída da camada. O número especificado de quadros-chave determina o segmento para repetição. O valor numKeyframes define o número de segmentos de quadro-chave para repetir; o intervalo especificado é medido para trás a partir do último quadro-chave. Por exemplo, loopOut("cycle", 1) repete o segmento delimitado pelo último quadro-chave e o segundo ao último quadro-chave. O valor padrão 0 significa que todos os quadros-chave são repetidos. Veja a entrada para loopIn para obter mais informações.
David Van Brink oferece um artigo e um projeto de amostra no blog omino pixel que mostracomo usar o efeito Eco, o efeito Animação de partículas e o método loopOut para animar um enxame de bactérias nadadoras.
loopInDuration(type="cycle", duration=0)
Tipo de retorno: Número ou Matriz.
Executa a repetição de um segmento de tempo que é medido do primeiro quadro-chave na camada para frente até ao Ponto de saída da camada. O loop é reproduzido a partir do Ponto de entrada da camada. A duração especificada determina o segmento para repetição. O valor duration define o número de segundos de composição em um segmento para repetir; o intervalo especificado é medido a partir do primeiro quadro-chave. Por exemplo, loopInDuration("cycle",1) repete o primeiro segundo da animação inteira. O padrão de 0 significa que o segmento a ser repetido começa no Ponto de saída da camada. Veja a entrada para loopIn para obter mais informações.
loopOutDuration(type="cycle", duration=0)
Tipo de retorno: Número ou Matriz.
Executa a repetição de um segmento de tempo que é medido do último quadro-chave na camada para trás até ao ponto de entrada da camada. O loop é reproduzido até ao Ponto de saída da camada. A duração especificada determina o segmento para repetição. O valor de duration define o número de segundos de composição em um segmento para repetir; o intervalo especificado é medido para trás a partir do último quadro-chave. Por exemplo, loopOutDuration("cycle", 1) repete o último segundo da animação inteira. O padrão de 0 significa que o segmento a ser repetido começa no Ponto de entrada da camada. Veja a entrada para loopIn para obter mais informações.
key(index)
Tipo de retorno: Key ou MarkerKey.
Tipo de argumento: index é um número.
Retorna o objeto Key ou MarkerKey por número. Por exemplo, key(1) retorna o primeiro quadro-chave.
key(markerName)
Tipo de retorno: MarkerKey.
Tipo de argumento: markerName é uma Sequência de caracteres.
Retorna o objeto MarkerKey com este nome. Use apenas em propriedades do marcador.
nearestKey(t)
Tipo de retorno: Key ou MarkerKey.
Retorna o objeto Key ou MarkerKey mais próximo a um tempo designado.
numKeys
Tipo de retorno: Número.
Retorna o número de quadros-chave em uma propriedade. Retorna o número de marcadores em uma propriedade de marcador.
Se você usar o comando Dimensões separadas para separar as dimensões da propriedade Posição em componentes individuais, o número de quadros-chave muda, portanto o valor retornado por este método é alterado.
propertyGroup(countUp = 1)
Tipo de retorno: Grupo.
Retorna um grupo de propriedades relacionadas à propriedade na qual a expressão é gravada. Por exemplo, se você adicionar a expressão propertyGroup(1) a propriedade Rotação de um traçado de pincel, a expressão direciona o grupo de propriedades Transformação, que contém a propriedade Rotação. Se você adicionar propertyGroup(2) em vez disso, a expressão direciona o grupo de propriedades Pincel. Esse método permite configurar relacionamentos independentes do nome na hierarquia das propriedades. Esse método é particularmente útil para duplicar propriedades que contêm expressões.
O método numProperties para propertyGroup retorna o número de propriedades no grupo de propriedades.
Este exemplo retorna o número de propriedades no grupo que contém a propriedade na qual a expressão é gravada:
thisProperty.propertyGroup(1).numPropertiespropertyIndex
Tipo de retorno: Número.
Retorna o índice de uma propriedade em relação a outras propriedades no seu grupo de propriedades, incluindo grupos de propriedades em máscaras, efeitos, animadores de texto, seletores, formas, controladores e pontos de controle.
name
Tipo de retorno: Sequência de caracteres.
Retorna o nome da propriedade ou do grupo de propriedades.
Exemplo: Animar com o método propertyGroup e o atributo propertyIndex

A. propertyGroup(4) B. propertyGroup(3) C. propertyGroup(2) D. propertyGroup(1) E. O valor propertyIndex da posição é 2; o valor propertyIndex da Rotação é 4.
Neste exemplo, o método propertyGroup para cada traçado de pincel direciona o grupo de propriedades Pincel porque esse grupo está dois grupos de propriedades acima da propriedade Rotação. O atributo propertyIndex em cada traçado de pincel retornará um valor exclusivo para cada traçado de pincel. O valor resultante é multiplicado pelo tempo e 200 e aplicado a cada valor de rotação, girando cada traçado de pincel de forma diferente, criando traçados de redemoinho de tinta: propertyGroup(2).propertyIndex * time * 200
propertyGroup(2).propertyIndex * time * 200

Propriedades do projeto (referência de expressão)
Método de expressão:
- objeto thisProject thisProject - Representa o projeto que contém a expressão.
Tipo:
Objeto do projeto; somente leitura
- Atributo fullPath do projeto thisProject.fullPath - O caminho absoluto do arquivo, de plataforma específica, incluindo o nome do arquivo do projeto. Se o projeto não foi salvo, ele retorna uma sequência de caracteres vazia.
- Project bitsPerChannel attribute thisProject.bitsPerChannel - A intensidade de cor do projeto em bits por canal (bpc), conforme definido em Configurações do projeto > Gerenciamento de cores. Ela é uma entre 8, 16 ou 32. Equivalente ao atributo do projeto de script app.project.bitsPerChannel.
- Atributo linearBlending do projeto thisProject.linearBlending - O estado da mesclagem de cores usando a opção de gama 1.0 em Configurações do projeto > Gerenciamento de cores. Equivalente ao atributo do projeto de script app.project.linearBlending.
Atributos e métodos da Chave (referência de expressão)
Quando você atingir um objeto Key, você pode obter as propriedades time, index e value de ele. Por exemplo, a seguinte expressão fornece o valor do terceiro quadro-chave Posição: position.key(3).value
A expressão a seguir, quando gravada em uma propriedade Opacidade com quadros-chave, ignora os valores de quadro-chave e usa somente o posicionamento dos quadros-chave no tempo para determinar onde o flash deve ocorrer: d = Math.abs(time - nearestKey(time).time); easeOut(d, 0, .1, 100, 0)
d = Math.abs(time - nearestKey(time).time); easeOut(d, 0, .1, 100, 0)
valor
Tipo de retorno: Número ou Matriz.
Retorna o valor do quadro-chave.
hora
Tipo de retorno: Número.
Retorna o tempo do quadro-chave.
index
Tipo de retorno: Número.
Retorna o índice do quadro-chave.
Atributos de MarkerKey (Referência de expressão)
Você pode acessar valores para os marcadores de composição e de camada usando os mesmos métodos. Acesse marcadores de camada pelo objeto thisLayer.marker; acesse os marcadores de composição pelo objeto thisComp.marker.
Com o objetivo de expressões, os marcadores são um tipo especial de objeto Key, portanto você pode utilizar métodos como nearestKey(time) para acessar os marcadores, e marcadores também apresentam atributos time e index. O atributo index não é um número (nome) do marcador, é o número de índice de um quadro-chave, representando a ordem de marcador na régua de tempo.
As expressões têm acesso a todos os valores de um marcador que você pode definir na caixa de diálogo Marcador de composição ou Marcador de camada. Esta expressão na propriedade Texto de origem de uma camada de texto exibe tempo, duração, índice, comentário (nome), capítulo, URL, destino de quadro e o nome do ponto de sinalização para o marcador de camada mais próximo do tempo atual e se o marcador é para um ponto de sinalização de evento:
m = thisLayer.marker.nearestKey(time); s = “time:” + timeToCurrentFormat(m.time) + “\r” + “duration: ” + m.duration + “\r” + “key index: ” + m.index + “\r” + “comment:” + m.comment + “\r” + “chapter:” + m.chapter + “\r” + “URL:” + m.url + “\r” + “frame target: ” + m.frameTarget + “\r” + “cue point name: ” + m.cuePointName + “\r” + “Event cue point? ” + m.eventCuePoint + “\r”; for (param in m.parameters){ s += “parameter: ” + param + “ value: ” + m.parameters[param] + “\r”; } s
Como os metadados XMP em um item de gravação podem ser convertidos em marcadores de camada para uma camada baseada nesse item, as expressões podem interagir com os metadados XMP. Para mais informações, consulte Metadados XMP no After Effects.
Dan Ebberts fornece um tutorial no centro de desenvolvedores do After Effects que inclui um exemplo de como usar metadados XMP com expressões.
duração
Tipo de retorno: Número.
Duração, em segundos, do marcador.
comment
Tipo de retorno: Sequência de caracteres.
Conteúdo do campo Comentário na caixa de diálogo Marcador.
chapter
Tipo de retorno: Sequência de caracteres.
Conteúdo do campo Capítulo na caixa de diálogo Marcador.
url
Tipo de retorno: Sequência de caracteres.
Conteúdo do campo URL na caixa de diálogo Marcador.
frameTarget
Tipo de retorno: Sequência de caracteres.
Conteúdo do campo Destino do quadro na caixa de diálogo Marcador.
eventCuePoint
Tipo de retorno: Booleano.
Configuração do ponto de sinalização na caixa de diálogo Marcador. Verdadeiro para Evento; falso para Navegação.
cuePointName
Tipo de retorno: Sequência de caracteres.
Conteúdo do campo Nome do ponto de sinalização na caixa de diálogo Marcador.
parameters
Tipo de retorno: Matriz associativa de valores Sequência de caracteres.
Conteúdo dos campos Nome do parâmetro e Valor do parâmetro na caixa de diálogo Marcador.
Por exemplo, se você tiver um parâmetro nomeado “cor de fundo", é possível usar a seguinte expressão para acessar seu valor no marcador mais próximo:
thisComp.marker.nearestKey(time).parameters["background color"]MarkerValue.protectedRegion (referência da expressão)
Método de expressão:
thisComp.marker.key(index).protectedRegion
Descrição:
Quando verdadeiro, o marcador de composição se comporta como uma região protegida.
Tipo:
Booleano; somente leitura.
Acesso da expressão a pontos de caminhos em formas, máscaras e traçados de pincel (referência de expressão)
É possível usar expressões para ler e gravar as coordenadas x e y de pontos de caminho ou vértices para:
- Máscaras de camada
- Formas de Bézier
- Traçados de pincel nos efeitos Pintura, Pincel tipo rotoscópio e Refinar borda.
Métodos de expressão:
- Método de pontos do caminho(): {pathProperty}.points (t = time) obtém as coordenadas x,y de todos os pontos em um caminho. As coordenadas para máscara de camada de pontos do caminho são relativas à origem da camada em seu canto superior esquerdo. As coordenadas para pontos do caminho de forma Bézier são relativos ao ponto de ancoragem do grupo de formas do caminho, por exemplo,Transformar: Forma 1 > Ponto de ancoragem. As coordenadas para pontos de caminho de traçado de pincel são relativas ao início do traçado; o primeiro ponto é [0,0]. Opcionalmente, especifique o tempo no qual a amostra do caminho será feita. É possível passar esse método no método createPath() para o parâmetro de pontos ao duplicar um caminho.
Parâmetros:
|
Número, opcional. O tempo de composição (em segundos) no qual testar o caminho. O padrão é o tempo (o tempo atual). |
Retorna:
Matriz de matrizes de pares de números, arredondada à quarta casa decimal.
- Método inTangents() do caminho: {pathProperty}.inTangents (t = time) obtém as coordenadas x,y da alça tangente de entrada para todos os pontos em um caminho. Os valores de coordenadas de tangente são relativos às coordenadas do ponto do pai. isto é, o valor [0,0] não cria curvatura na tangente de entrada. Esse método pode ser passado para o método createPath() do parâmetro inTangents ao duplicar um caminho. Também é possível especificar o tempo no qual a amostra do caminho será feita.
Parâmetros:
t |
Número, opcional. O tempo de composição (em segundos) no qual testar o caminho. O padrão é o tempo (o tempo atual). |
Retorna:
Matriz de matrizes de pares de números, arredondada à quarta casa decimal.
- Método outTangents() do caminho: {pathProperty}.outTangents (t = time) obtém as coordenadas x, y da alça tangente de saída para todos os pontos em um caminho. Os valores de coordenada tangente são relativos às coordenadas do ponto pai - o valor [0,0] não cria nenhuma curvatura na tangente de saída. Esse método pode ser passado pelo método createPath () do parâmetro outTangents ao duplicar um caminho. Também é possível especificar o tempo no qual a amostra do caminho será feita.
Parâmetros:
t |
Número, opcional. O tempo de composição (em segundos) no qual testar o caminho. O padrão é o tempo (o tempo atual). |
Retorna:
Matriz de matrizes de pares de números, arredondada à quarta casa decimal.
- O método do caminho isClosed(): {pathProperty}.isClosed () determina se o caminho está aberto ou fechado. Retorna true se o caminho estiver fechado e false se o caminho estiver aberto. Esse método pode ser passado para o método createPath () para o parâmetro is_closed ao duplicar um caminho.
Parâmetros:
Nenhum
Retorna:
Booleano
- O método do caminho pointOnPath() {pathProperty}.pointOnPath (porcentagem = 0,5, t = time) obtém as coordenadas x,y de um ponto arbitrário ao longo de um caminho. O ponto é expresso como uma porcentagem do comprimento de arco do caminho. 0% é o primeiro ponto e 100% é o último ponto. Quando o caminho estiver fechado, 0% e 100% retornarão as mesmas coordenadas. A porcentagem do comprimento de arco é usada para garantir a velocidade uniforme ao longo do caminho. Diferentes de 0% e 100%, as porcentagens não correspondem necessariamente com os pontos Bézier no caminho; para um caminho com três pontos, o segundo ponto não estará necessariamente em 50%. Isso também significa que para um caminho aberto e um fechado com pontos idênticos, a porcentagem ao longo do caminho aberto não retornará as mesmas coordenadas que o caminho fechado, devido ao comprimento adicional do caminho fechado. Opcionalmente, especifique o tempo no qual a amostra do caminho será feita.
Parâmetros:
porcentagem |
Número entre 0 e 1, opcional. A porcentagem ao longo do comprimento de arco do caminho para teste. Valores menores que 0 e maiores que 1 são cortados. O padrão é 0,5. |
t |
Número, opcional. O tempo de composição (em segundos) no qual testar o caminho. O padrão é o tempo (o tempo atual). |
Retorna:
Uma matriz de pares de números.
- O método do caminho tangentOnPath() {pathProperty}.tangentOnPath (porcentagem = 0,5, t = time) obtém as coordenadas calculadas x,y, da alça tangente de saída para um ponto arbitrário ao longo de um caminho. Os valores de coordenadas de tangente são relativos às coordenadas do ponto pai - o valor [0,0] não cria nenhuma curvatura na tangente de saída. A alça tangente de entrada é o inverso desse valor (multiplique as coordenadas x,y por -1). O ponto pai de tangente é expresso como uma porcentagem do comprimento de arco do caminho. As coordenadas retornadas pelo tangentOnPath() são calculadas a partir do ponto pai e serão diferentes daquelas retornadas pelo outTangents() se um ponto definido pelo usuário também existir nessa porcentagem do comprimento de arco. A distância linear entre as coordenadas do ponto pai e as coordenadas do tangentOnPath() serão sempre 1. Você pode multiplicar as coordenadas retornadas para criar uma tangente mais longa, por exemplo, (myPath.tangentOnPath () * 100). Opcionalmente, especifique o tempo no qual a amostra do caminho será feita.
Parâmetros:
porcentagem |
Número entre 0 e 1, opcional. A porcentagem ao longo do comprimento de arco do caminho para teste. Valores menores que 0 e maiores que 1 são cortados. O padrão é 0,5. |
t |
Número, opcional. O tempo de composição (em segundos) no qual testar o caminho. O padrão é o tempo (o tempo atual). |
Retorna:
Uma matriz de pares de números.
- O método do caminho normalOnPath() {pathProperty}.normalOnPath (porcentagem = 0,5, t = time) obtém as coordenadas calculadas x,y do normal para um ponto arbitrário ao longo de um caminho. Os valores de coordenadas dos normais são relativos às coordenadas do ponto pai - o valor [0,0] é igual ao ponto pai. O ponto pai do normal é expresso como uma porcentagem do comprimento de arco do caminho. Leia a descrição do método pointOnPath() para obter detalhes sobre a porcentagem do comprimento de arco. As coordenadas retornadas pelo normalOnPath() são calculadas a partir de seu ponto pai. A distância linear entre as coordenadas do ponto pai e as coordenadas do normalOnPath() serão sempre 1. Você pode multiplicar as coordenadas retornadas para criar um normal mais longo, por exemplo, (myPath.normalOnPath () * 100). Opcionalmente, especifique o tempo no qual a amostra do caminho será feita.
Parâmetros:
porcentagem |
Número entre 0 e 1, opcional. A porcentagem ao longo do comprimento de arco do caminho para teste. Valores menores que 0 e maiores que 1 são cortados. O padrão é 0,5. |
t |
Número, opcional. O tempo de composição (em segundos) no qual testar o caminho. O padrão é o tempo (o tempo atual). |
Retorna:
Uma matriz de pares de números.
- O método do caminho createPath() {pathProperty}.createPath (pontos = [[0,0], [100,0], [100.100], [0.100]] inTangents = [], outTangents = [], is_closed = true) cria um objeto de caminho de um conjunto de pontos e tangentes. Os pontos são definidos por uma matriz das matrizes de pares de número que representam suas coordenadas x,y. O comprimento da matriz deve ser pelo menos 1 e pode ser de qualquer comprimento maior. As alças de entrada e de saída de tangente dos pontos são definidas por uma matriz das matrizes de pares de número que representam suas coordenadas de saída x,y. O comprimento das matrizes de tangente deve ser exatamente o mesmo que o parâmetro de pontos. Os valores de coordenadas de tangente são relativos às coordenadas do ponto pai - o valor [0,0] não cria nenhuma curvatura na tangente de saída. Os métodos points(), inTangents(), outTangents() e isClosed() de um caminho podem ser transmitidos para os parâmetros points, inTangents, outTangents e is_closed para duplicar um caminho. Os pontos e tangentes do mesmo caminho podem ser transmitidos para createPath() com modificações para gerar um resultado diferente. Por exemplo, a expressão a seguir removerá as curvas da Máscara 1 não passando os parâmetros inTangents ou outTangents:
myMask = mask("Mask 1").path;
myMask.createPath(myMask.points());
O exemplo a seguir transmite os pontos e tangentes da Máscara 1 e os converte em um caminho aberto ao definir is_closed como falso:
myMask = mask("Mask 1").path;
myMask.createPath(myMask.points(), myMask.inTangents(), myMask.outTangents(), false);
pontos |
Uma matriz de comprimento 1 ou mais contendo matrizes de pares de números representando as coordenadas [x,y] dos pontos de caminho. Obrigatório, a menos que nenhum parâmetro seja transmitido (isto é, createPath ()). O padrão é [[0,0], [100,0], [100,100], [0,100]]. |
is_closed |
Booliano, opcional. Determina se a máscara está fechada. Se definido como true, o último ponto será conectado ao primeiro ponto. O padrão é true. |
inTangents |
Uma matriz contendo matrizes de pares número que representam as coordenadas de saída [x,y] das alças da tangente de saída para os pontos de caminho. Obrigatório, a menos que nenhum parâmetro seja transmitido (isto é, createPath ()). O comprimento da matriz deve ser o mesmo que points, ou você pode passar uma matriz vazia ([]), que adotará o mesmo comprimento que points e [0,0] para todas as tangentes. O padrão é uma matriz vazia. |
outTangents |
Uma matriz contendo matrizes de pares número que representam as coordenadas de entrada [x,y] das alças da tangente de saída para os pontos de caminho. Obrigatório, a menos que nenhum parâmetro seja transmitido (isto é, createPath ()). O comprimento da matriz deve ser o mesmo que points, ou você pode passar uma matriz vazia ([]), que adotará o mesmo comprimento que points e [0,0] para todas as tangentes. O padrão é uma matriz vazia. |
Retorna:
Um objeto de caminho.
Exemplos:
- Exemplo 1
O exemplo grava a lista de coordenadas de ponto e tangente do Caminho 1 da Forma 1 na camada de Forma Camada 1, em time=0, em uma sequência de caracteres. Aplique isso à propriedade do texto de origem de uma camada de texto para uma leitura das coordenadas e tangentes de entrada e de saída da forma.
pointsList = "";
sampleTime = 0;
myShape = thisComp.layer("Shape Layer 1").content("Shape 1").content("Path 1").path;
para (i = 0; i < myShape.points (sampleTime).length; i++) {
pointsList + = "c: "+ myShape.points (sampleTime)[i].toString() + " i: "+ myShape.inTangents(sampleTime) [i].toString() + " o: "+ myShape.outTangents(sampleTime) [i].toString() + "\n";
}
pointsList;
- Exemplo 2
O exemplo lê as coordenadas do primeiro vértice da Máscara 1 em Dark Gray Solid 1 e converte-as em coordenadas de composição. Aplique isso a um controle de ponto 2D de um efeito, como Escrever ou CC Particle Systems II, para tornar o traço do efeito ou rastreamento o primeiro ponto de uma máscara animada. Duplique o efeito e altere o valor do índice dos pontos do caminho ([0]) para acompanhar ou rastrear os outros pontos da máscara.
myLayer = thisComp.layer("Dark Gray Solid 1");
myLayer.toComp(myLayer.mask("Mask 1").maskPath.points()[0]);
Animação orientada por dados (referência da expressão)
Métodos de expressão:
- Atributo de gravação sourceText {footageItem}.sourceText Retorna o conteúdo de um arquivo .JSON como uma sequência de caracteres. O método eval() pode ser usado para converter a sequência de caracteres em uma matriz de objetos sourceData, idêntica aos resultados do atributo sourceData, dos quais os fluxos de dados individuais podem ser referenciados como atributos hierárquicos dos dados. Por exemplo:
var myData = eval(footage("sample.json").sourceText);
myData.sampleValue;
Tipo:
Sequência de caracteres, o conteúdo do arquivo .JSON; somente leitura.
- Atributo de gravação sourceData {footageItem}.sourceData Retorna dos dados de um arquivo .JSON como uma matriz de objetos sourceData. A estrutura do arquivo .JSON determinará o tamanho e a complexidade da matriz. Fluxos de dados individuais podem ser referenciados como atributos hierárquicos dos dados. Por exemplo, para um fluxo de dados chamado Cores, a expressão a seguir retornará o valor de Cor do primeiro objeto de dados: footage("sample.json").sourceData[0].Color
É comum atribuir o sourceData de um arquivo .JSON a uma variável e, em seguida, referenciar o fluxo de dados desejado. Por exemplo:
var myData = footage("sample.json").sourceData;
myData[0].Color;
Tipo:
Uma matriz de objetos sourceData; somente leitura.
- Método de gravação dataValue() {footageItem}.dataValue(dataPath) Retorna o valore do fluxo de dados dinâmico ou estático especificado em um arquivo .mgJSON. Aceita um único valor de matriz para definir o caminho na hierarquia do fluxo de dados desejado. Por exemplo:
footage("sample.mgjson").dataValue([0]) retorna os dados do primeiro filho.
footage("sample.mgjson").dataValue([1][0]) retorna os dados do primeiro filho no segundo grupo.
Parâmetros:
dataPath |
Matriz, obrigatória. O caminho na hierarquia para um fluxo de dados estático ou dinâmico. |
Retorna:
O valor do fluxo de dados.
- Método de gravação dataKeyCount() {footageItem}.dataKeyCount(dataPath) Retorna o número de amostras em um fluxo de dados dinâmico em um arquivo .mgJSON. Aceita um único valor de matriz para definir o caminho na hierarquia para o fluxo de dados dinâmico desejado.
Por exemplo:
- footage("sample.mgjson").dataKeyCount([0]) retorna a contagem de amostras referente ao primeiro filho
- footage("sample.mgjson").dataKeyCount([1][0]) retorna a contagem de amostras referente ao segundo grupo
Parâmetros:
dataPath |
Matriz, obrigatória. O caminho na hierarquia para um fluxo de dados estático ou dinâmico. |
Retorna:
O número de amostras no fluxo de dados dinâmico.
- Método de gravação dataKeyTimes() {footageItem}.dataKeyTimes(dataPath, t0 = startTime, t1=endTime) Retorna o tempo em segundos das amostras de um determinado fluxo de dados dinâmico em um arquivo .mgJSON. Opcionalmente, especifique o intervalo de tempo do qual retornar amostras. Por padrão, o tempo de todas as amostras entre startTime e endTime no fluxo de dados dinâmico é retornado, conforme definido pela propriedade samplesTemporalExtent do fluxo de dados no arquivo .mgJSON. Aceita um único valor de matriz para definir o caminho na hierarquia do fluxo de dados dinâmico desejado.
O exemplo a seguir retorna os tempos de amostras entre 1 e 3 segundos para o primeiro filho:
footage("sample.mgjson").dataKeyTimes([0], 1, 3)
Parâmetros:
dataPath |
Matriz, obrigatória. O caminho na hierarquia para um fluxo de dados dinâmico. |
t0 |
Número, opcional. O tempo de início, em segundos, do intervalo do qual retornar amostras. Assume startTime como o padrão. |
t1 |
Número, opcional. O tempo de término, em segundos, do intervalo do qual retornar amostras. Assume endTime como o padrão. |
Retorna:
Matriz de números que representam os tempos de amostra.
- Método de gravação dataKeyValues() {footageItem}.dataKeyValues(dataPath, t0 = startTime, t1=endTime) Retorna os valores das amostras de um determinado fluxo de dados dinâmico em um arquivo .mgJSON. Opcionalmente, especifique o intervalo de tempo do qual retornar amostras. Por padrão, o tempo de todas as amostras entre startTime e endTime no fluxo de dados dinâmico é retornado, conforme definido pela propriedade samplesTemporalExtent do fluxo de dados no arquivo .mgJSON. Aceita um único valor de matriz para definir o caminho na hierarquia do fluxo de dados dinâmico desejado.
Por exemplo:
footage("sample.mgjson").dataKeyValues([0], 1, 3) retorna os valores das amostras entre 1 e 3 segundos para a primeira camada secundária.
Parâmetros:
dataPath |
Matriz, obrigatória. O caminho na hierarquia para um fluxo de dados dinâmico. |
t0 |
Número, opcional. O tempo de início, em segundos, do intervalo do qual retornar amostras. Assume startTime como o padrão. |
t1 |
Número, opcional. O tempo de término, em segundos, do intervalo do qual retornar amostras. Assume endTime como o padrão. |
Retorna:
Matriz de números que representam os valores de amostra.
Métodos de conversão de cores de Hexadecimal em RGB (referência da expressão)
Esse método de conversão de cores, hexToRgb(), converte os valores de cor hexadecimal, por exemplo, # FF00FF em valores de cor RGBA. Isso pode ser útil para vincular parâmetros de cor a valores de cor representados como cadeias de caracteres hexadecimais em fontes de dados JSON ou CSV/TSV.
Método de expressão:
hexToRgb(hexString) converte uma cor em espaço hexadecimal triplo para RGB ou em espaço hexadecimal quádruplo para espaço RGBA. Para hexadecimais triplos, o padrão de alfa é 1.0.
Parâmetros:
hexString |
A cadeia de caracteres que representa um hexadecimal triplo (6 dígitos, sem canal alpha) ou quádruplo (8 dígitos, inclui canal alfa) contendo somente números ou caracteres A-F. Os caracteres principais opcionais 0x, 0X, or # são ignorados. Os caracteres além de 8 dígitos são ignorados. |
Retorna:
Matriz do valor de cor de RGBA.
Exemplos:
Qualquer um dos seguintes retornará [1.0, 0.0, 1.0, 1.0]:
- hexToRgb("FF00FF")
- hexToRgb("#FF00FF")
- hexToRgb("0xFF00FF")
- hexToRgb("0XFF00FFFF") Observação: quarteto hexadecimal de 8 dígitos; os últimos dois dígitos definem alfa como 1.0.
Fazer logon em sua conta