Fazer logon
Nota: Esta é uma tradução automática, use uma linguagem clara, sem gíria.

Expressões Em Adobe After Effects 6

Dan Ebberts
Tutoriais :
Expressões Em Adobe After Effects 6
Expressões em Adobe After Effects 6
Using Expressions in After Effects 6

Dan Ebberts Dan ebberts,
Sacramento, Califórnia, E.U.A.

© 2003 por Dan ebberts e CreativeCOW.net. Todos os direitos estão reservados.



Intro

Com After Effects 6.0, Adobe introduziu algumas novas funcionalidades para o maravilhoso mundo das expressões. A maior parte desta é o resultado de espectaculares novas funcionalidades que foram adicionadas ao After Effects que não eram necessariamente destinadas a manifestação, mas mesmo assim aumentar drasticamente a potência disponível para a expressão esc. Houve também algumas alterações e melhorias para a expressão própria linguagem.


Nova sintaxe

Primeiro vamos dar uma olhada em algumas das mudanças para a implementação expressões. Multi-word objetos, Métodos e as propriedades já estão expressos em "intercaps" formato em vez de utilizar um separador sublinhado. Por exemplo, você poderia escrever "thiscomp" em vez de "this_comp", Ou "seedrandom" em vez de "seed_random". A velha sintaxe irá ainda trabalhar em AE 6.0, mas é recomendável que você alternar para o novo estilo.


Wiggle acessório

Wiggle () é agora afectada por seedrandom (), Por isso, se você não estiver satisfeito com os valores que você está recebendo a partir de wiggle () pode preceder-lo com uma chamada para seedrandom (), e você obterá resultados diferentes para cada semente. Por exemplo, utilizando uma semente de 13,

Wiggle com seedrandom


seedRandom(13);
wiggle(3,35)

Lhe dará resultados diferentes do que o mesmo wiggle () sem expressão seedrandom ():


Wiggle sem seedrandom


wiggle(5,35)

Contudo, Wiggle () ignora o "intemporal" parâmetro de seedrandom, O que significa que se você fez algo parecido com isto:


seedRandom(13,true);
wiggle(7,15)

Iria continuar a mexer em cada frame. Contudo, Se você quiser wiggle () para manter um valor para um determinado número de frames, Você pode usar o novo posterizetime () function.


Posterizetime

AE 6.0 inclui uma nova posterizetime () função que você pode usar para congelar sua animação periodicamente, a uma taxa que você especificar. Por exemplo, Essa variação da nossa wiggle expressão nos dará uma nova posição aleatória 5 vezes por segundo:

Wiggle com posterizetime


posterizeTime(5);
wiggle(5,35)

Converter áudio para keyframes

OK - vamos entrar no coisas realmente divertido. AE 6.0 tem um novo Keyframe assistente - converter áudio para keyframes. Este assistente cria uma nova camada chamada de áudio amplitude com três controles deslizantes para a esquerda, Direito, Canais de áudio e combinado. As barras que representam a ter keyframes comp níveis de áudio. Assim, Agora você pode obter no comp do áudio através de expressões info. Esta quase (mas não completamente) elimina a necessidade de utilizar cada vez Motion math.

audio to keyframes

Converter áudio para keyframes

Na figura acima, Foram importados dois arquivos de áudio. "hex oi.Wav "foi fortemente panned para o canal esquerdo e" hexfloor.Wav "foi panned para a direita. Em seguida, o assistente Keyframe "converter áudio para keyframes", foi executado, Que automaticamente criada uma nova camada nulo "audio amplitude" deslizante com controles de "esquerda", "direita" e "dois" canais. A escala do parâmetro "médio amarelo sólido" estava relacionado com o canal esquerdo deslizante com esta expressão:

Converter áudio para keyframes

Download filme (com áudio)

s = thisComp.layer("Audio Amplitude").effect("Left Channel")("Slider");
scale + [s,s]

Semelhantemente, A escala do parâmetro "médio ciano sólido" estava relacionado com o canal direito deslizante. (nota - Deixei o áudio fora do pequeno demo filme porque rapidamente se realmente chato como o filme loops. Se quiser ouvi-lo, Clique no link de download acima). O resultado, Como você pode ver, é que os dois sólidos cada escala, em sincronia com o canal de áudio que estão ligadas à.


Texto!

O novo modelo integrado de ferramentas em After Effects 6.0 são simplesmente incríveis. O built-in e animadores gama Selectores fornecer a capacidade de criar rapidamente incrivelmente poderoso texto animações. Uma cobertura adequada deste assunto poderia preencher todo um tutorial (ou talvez um livro) e eu vou deixar isso para outra pessoa. Deixem-me dizer que isso além de um After Effects é motivo suficiente para obter a actualização. Há também um aspecto excitante deste escritores de expressão. Não apenas você pode controlar o texto selectores e animadores com expressões, Mas também (finalmente!) Você pode controlar a fonte próprio texto com uma expressão. Este unleashes todo o poder ea fúria da cadeia de transformação javascript para manipular o conteúdo do seu texto animação. Vamos começar com um exemplo simples e tocar em algumas coisas antes de nós muito poderoso está feito.

Primeiro, Precisamos de falar sobre como criar uma camada de texto. É muito simples - basta selecionar a ferramenta texto, Clique na janela comp, E escreva algo. After Effects irá criar uma nova camada eo texto torna-se também que você digitou o nome da camada. Se você abrir o twirly da nova camada de texto no cronograma e em seguida, abra o "texto" twirly que você vai ver a "fonte texto" propriedade. Alt / opt clique sobre o cronómetro para criar uma expressão para esta propriedade. O resultado da sua expressão se tornará o texto que é exibido. Vai ter os atributos (fonte, Tamanho, Etc.) Do primeiro caracter, qualquer que seja o que você digitou para criar a camada. É importante lembrar que o JavaScript terá tentativa de tratar o resultado da sua expressão como uma string. Se o resultado for um número, Javascript irá converter para uma string. Isto significa que sua expressão poderia ser simplesmente algo como isto:

position expression

Expressão: Posição [0]

Download filme

position[0]

E javascript seria converter o x-coordenar da camada da posição de uma seqüência e exibi-la. Na demo movie, Eu keyframed a posição do texto camada de circular em toda a tela. Como você poderia esperar, O texto muda conforme a camada se move.

Agora, Precisamos de falar um pouco sobre como lida com cordas javascript. Em javascript, Strings são representados como uma seqüência de caracteres dentro de aspas simples ou duplas. Por exemplo, " After Effects "E" After Effects "Não são válidos cordas. Javascript trata strings como arrays, Com cada personagem ocupa um lugar na tabela. Lembrando que a indexação em javascript array começa no zero, O resultado desta expressão:


s = "After Effects";
s[4]

Seria a string "r".

Em javascript, Você pode usar o operador "+" para concatenar strings. Por exemplo,


"abcd" + "efgh"

Resultados em "ABCDEFGH"

Javascript fornece muitas útil seqüência propriedades e métodos. Vamos olhar para alguns deles. Por exemplo, O resultado de


s = 'After Effects';
s.length

Seria 13 (o comprimento da corda), Eo resultado de


s = 'After Effects';
s.toUpperCase

Seria " After Effects ".

Existe um built-in javascript string objeto chamado, Curiosamente, "string". Este objeto é útil para alguns dos métodos string. Por exemplo, Para criar uma seqüência de caracteres de códigos que você poderia fazer algo assim:


String.fromCharCode(48) + String.fromCharCode(49) + String.fromCharCode(50)

Que cria a string "abc", convertendo os códigos de caracteres para "um", "b", E "c" (48,49, E 50) para a seqüência adequada caracteres.

Outra coisa útil de saber é que se você usar a seqüência "r" em uma string, Será interpretada como um retorno de carro. Assim, Se você tivesse uma string como



 "abcdrefgh"

Seria exibido como:

Abcd
Efgh

Ok - agora sabemos o suficiente para ser realmente perigoso. Suponho que queríamos criar um aleatória 8X4 grade de caracteres hexadecimal (hexadecimal é usado para representar números de base 16 e é constituído pelos dígitos 0 a 9 e as letras através de um f). Vamos dar uma olhada em uma expressão que vai fazer isso:

random hex grid

Aleatória hex grid

Download filme

numRows = 4;
numChars = 8;
holdFrames = 5;

seed = Math.floor(time/(holdFrames*thisComp.frameDuration));
seedRandom(seed,true);

s = "";
j = 0;
while(j < numRows){
  k = 0;
  while (k < numChars){
    c = Math.floor(random(48,64));
    if (c > 57) c += 7;
    s += String.fromCharCode(c);
    k += 1;
  }
  s += "r";
  j += 1;
}
s

Vamos falar um pouco sobre essa expressão. As três primeiras linhas apenas definir o tamanho da rede e quanto tempo para manter cada conjunto de números aleatórios. As próximas duas linhas apenas definir a amostragem de sementes para um novo número para cada conjunto de 5 frames. Então nossa string variável ( "s") é definido como uma string null. Uma corda é nula apenas uma cadeia de comprimento zero sem caracteres em que (ainda). O resto da expressão é apenas dois loops aninhados que realmente construir o arranjo aleatório na nossa cadeia variável. O loop externo (a um indexados por "j" apenas através de seqüências as linhas da grelha, Adicionar um retorno de carro ( "r") no final de cada linha. O interior loop (a um indexado pelo "k") vai através da actual linha caracter a caracter e gera um número aleatório que vai ser entre 48 e 57 ( "0" a "9") ou entre 65 e 70 ( "um " Através de "f") e converte o código de caracteres resultante de um personagem e concatena-lo com a nossa saída variável string "s". Vou deixá-la como um exercício para você descobrir todos os detalhes que eu ficar de fora nesta breve descrição.


Tempo para dividir

Vamos olhar para um texto mais coisa antes de passarmos para uma outra coisa. Split () é outro método javascript string que acrescenta um lote de potência para o nosso texto expressões. O funcionamento é de dividir uma longa seqüência em um conjunto de pequenos textos. Ele divide a corda sempre que se depara um delimitador de caracteres que você especificar. Consideram que esta expressão:


s = "honesty,integrity,loyalty,compassion,empathy";
s.split(",")[2]

Esta expressão divide a string "s" onde se encontra uma vírgula. Cada uma das palavras, entre as vírgulas, em seguida, é acessível através de um array índice. Neste exemplo, índice zero nos daria "honestidade" e (como na nossa expressão) índice 2 nos daria "lealdade". Isto dá-nos um método extremamente poderoso para mudar a nossa fonte de texto sobre a voar com uma expressão. Aqui está outra versão para a origem da expressão texto que realizará cada uma das palavras de um segundo:

split() method

Demonstração de split () method

Download filme

holdTime = 1.0;
s = "honesty,integrity,loyalty,compassion,empathy";
j = Math.floor(time/holdTime);
s.split(",")[j]

Notar que esta expressão irá gerar um erro depois de "empatia", quando se esgota de palavras. Normalmente eu iria colocar em algum código para verificar que, Mas eu queria manter a desordem estabelece para fins de demonstração.

Para a completude, Vou incluir as duas outras expressões que eu usei para gerar o demo movie. Aqui é a uma escala de:


hold = .5;
expand = .5;
t =time%(hold + expand);

if(t <  hold){
  [100,100]
}else{
  linear(t,hold,hold + expand,[100,100],[700,700])
}

E aqui é o de uma opacidade:


fade = .25;
hold = .5;

t = time%(fade + hold + fade);
if(t < fade){
  linear(t,0,fade,0,100)
}else if (t < (fade + hold)){
  100
}else{
  linear(t,fade+hold,fade+hold+fade,100,0)
}

Vamos pintar!

paint

Pintura demo

Download filme

Outra maravilhosa novidade introduzida no After Effects 6.0 é a pintura motor integrado. Como o novo texto do motor, Esta é uma característica que merece o seu próprio tutorial. Aqui eu vou tocar apenas em algumas coisas que você pode fazer com expressões que fazem a tinta ferramentas ainda mais interessante. Para este exemplo, Eu ter escolhido a ferramenta pincel e chamou um acidente vascular cerebral squiggly. Eu, em seguida, aplicar esta expressão para o curso final do parâmetro:


freq = .5;
50*(1-Math.cos(freq*time*Math.PI*2))

Então eu aplicou esta expressão para o curso da cor parâmetro:


if (index <=4){
  linear(index,1,4,[0,1,1,1],[1,0,1,1])
}else if (index <= 8){
  linear(index,5,8,[1,0,1,1],[1,1,0,1])
}else{
  linear(index,9,12,[1,1,0,1],[0,1,1,1])
}

Finalmente, Eu apliquei esta expressão para o curso à rotação de propriedade:


(index-1)*30

Então, eu repetia o acidente vascular cerebral 11 vezes. O resultado de tudo isto é o pinwheel-procurando coisa que você vê aqui. Se você fazer o download do filme, Você verá que ela cresce a partir do centro para fora e depois voltar para diminuir o centro cada dois segundos. Note que as duplicatas posição ea cor si, mediante as expressões de forma automática uma vez que é tudo que você configurar as expressões para os tempos iniciais e fazer as duplicatas. Este é realmente um exemplo simples, Mas as possibilidades são infinitas para pintar processuais animações como esta.


Liquify!

Outro do muito bacana aditamentos ao After Effects 6.0 é o efeito liquify / ferramenta conjunto. Liquify tem um par de parâmetros que são interessantes para aplicar expressões para. Para este exemplo, Eu distorção da imagem com o liquify ferramentas e, em seguida, aplicar a seguinte expressão para a "distorção percentual" parâmetro.

liquify

Liquify demo

Download filme


freq = 2;
(1-Math.cos(freq*time*Math.PI*2))*50

O resultado é uma oscilação entre 0% do efeito aplicado o efeito plenamente aplicada. Acho que com um pouco de cuidado na criação de distorções que você poderia usar uma expressão com o "fim" parâmetro para criar um agradável "acena no vento" efeito.


Tracker utilizando dados

Finalmente, Um lote de trabalho entrou em melhorar o tracker em AE 6.0. Uma das novas funcionalidades que se reveste de especial interesse para a expressão escritores é a opção para a produção de dados brutos de monitoramento, O que significa que os dados de monitoramento não é aplicada a uma outra camada, é aplicado a uma propriedade da camada que está sendo monitorada chamado "ponto anexar". Você pode, então,, é claro, Acessar esses dados com uma expressão. Nesta demo, Eu monitorados a cabeça do cara no enforcar planador usando os "brutos" faixa tipo opção. Então eu aplicou esta expressão a um monte de pontos coloridos:

tracker

Tracker demo

Download filme

L= thisComp.layer("Hang Glider.avi")
masterPos = L.motionTracker("Tracker 1")("Track Point 1").attachPoint
masterPos + wiggle(4,45) - position

O que provoca os pontos de "enxame" em torno da cabeça do cara no enforcar planador. Silly exemplo, Mas acho que isso demonstra que o conceito tem possibilidades.

Bem, Que no final da nossa turnê das novas funcionalidades do After Effects 6.0 que ampliam o universo da expressão escritor. Este é um feito incrível upgrade ainda mais poderosa do novas possibilidades de utilização de expressões.

FóRUNSTUTORIAISMAGAZINESERVIçOSVIDEOSNOTíCIASBLOGS


© CreativeCOW.net Todos os direitos reservados.

Creative Comunidades do Mundo

[Topo]

Englishالعربية中文FrançaisDeutschעבריתहिन्दीItaliano日本語PortuguêsРусскийEspañol