Então eu postada no After Effects fórum, E pensei que talvez fosse mais apropriado para postar aqui.
Estou tentando criar um efeito que eu possa ter um vídeo e substituí-la com caracteres ASCII.
Ponciocalle acampamento surgiu com essa expressão, que funciona muito bem, Mas só rende um único personagem por campo texto:
Asciiarray = [ "","um","b","c","d","e","f","g","h","I","j"]; / / introduzir caracteres a faixa de luz para escuro valores
Numcharacters = 10; / / insira o número total de caracteres ASCII entrou na tabela acima
Imagemap = thiscomp.Camada ( "imagem de origem").Sampleimage ([posição [0], Posição [1]], [1, 1]);
A = matemática.Round (linear (imagemap [0], 0, Numcharacters));
Asciiarray [um]
Tentei colocar isso em um campo de texto e duplique-o em um grid, Problema é que leva um jovem mil camadas (executando todas as expressões) para preencher a área da tela com um número suficiente de caracteres ASCII e After Effects falhas muito antes de eu ter o suficiente.
Que contém uma expressão que trabalha para uma linha de texto, Por isso tem menos camadas (eu só tenho de repetir que por o número de linhas), Mas o problema é que não regula a largura do campo de texto, Mudando assim a largura dos caracteres alterar a localização de caracteres subsequentes.
Estou realmente preso e fui lutar com este problema para os dias. Alguém sabe como posso conseguir este efeito?
Re: Vídeo para ascii efeito Dan Ebberts - 10-26-2007
Se o vídeo camada é chamado "alvo", Você pode aplicar uma expressão como esta para uma camada de texto:
For (var i = 0; I linhas; i + +) (
For (var j = 0; j cols; j + +) (
Centro = [w / 2 + j * w, H / 2 + I * h];
Amostra = alvo.Sampleimage (centro,[(w-1) / 2,(h-1) / 2]);
S + = densidade [matemática.Round (linear (amostra [0],0,1,0,Densidade.Comprimento - 1))];
}
S + = "\ r";
}
s
Você vai ter que perder tempo com o tamanho de letra, Monitoramento, Líder, Etc. Editar as linhas e cols variáveis para se adequar às suas necessidades
Dan
Re: Vídeo para ascii efeito jporter313 - 10-26-2007
Thanks alot Dan, Vou tentar de uma.
Re: Vídeo para ascii efeito moldyboot - 10-26-2007
Dan, Que é muito impressionante em sua simplicidade (pelo menos para um cara com nenhum conhecimento scripting).
Na esperança de aprender mais sobre scripts...
[ Dan ebberts]"for (Var i = 0; I < rows; i++){"
Var i = 0, Estabelece o valor inicial de 'eu' a 0. Em seguida, compara o valor do 'eu' para o valor de linhas. E I + + aumenta o valor do 'eu' até 'I' ultrapassa o valor de linhas, Altura em que o 'loop' termina (que é correcto chamar-lhe um loop, Ou é como uma subrotina).
[ Dan ebberts]"s =" ""
Está presente apenas a criação de uma variável 's', que inicialmente não devolve nada? E ele então começa aumentou (+ =) pelo valor da densidade array... Até eu ultrapassar o valor de linhas, Altura em que 's' não é nada de novo (e os' loop' paragens).
Re: Vídeo para ascii efeito Dan Ebberts - 10-26-2007
Muito bonita. O ciclo irá executar enquanto eu menos filas. S = "" s apenas estabelece como uma string vazia. A + = adiciona um novo personagem para a cadeia.
Eu notei que um caractere barra invertida quando eu me perdi colado o código em. I'll try it again, Desta vez utilizando a html tag código.
density = " .'`,^:" + '";~-_+<>i!lI?/|()1{}[]rcvunxzjftLCJUYXZO0Qoahkbdpqwm*WMB8&%$#@';
target = thisComp.layer("target");
cols = 80;
rows = 60;
w = thisComp.width/cols;
h = thisComp.height/rows;
s = ""
for (var i = 0; i < rows; i++){
for(var j = 0; j < cols; j++){
center = [w/2 + j*w, h/2 + i*h];
sample = target.sampleImage(center,[(w-1)/2,(h-1)/2]);
s += density[Math.round(linear(sample[0],0,1,0,density.length - 1))];
}
s += "r";
}
s
Dan
Re: Vídeo para ascii efeito Patrick Deen - 10-30-2007
Dan você me dá nojo com soluções aparentemente fácil chegar-se com!
Eu estava procurando uma maneira de fazer isso antes CS3 Depois de ver o "preto tambourines" vídeo por beck. Eu desisti de longa sobre a ideia que eu a descobri sozinho.
A única coisa que eu gostaria de acrescentar é que, quando você estiver experimentando diferentes do vídeo é mais conveniente usar a "camada (índice)" atributo (apenas uma outra coisa que eu aprendi de mão Dan )
Que cria o alvo como "target = thiscomp.Camada (índice -1); "
Agora você pode adicionar apenas o vídeo que você quer "ascciisize" para a camada acima do seu script texto camada.
Para adicionar um pouco mais aprofundada para o meu ascii vídeo eu fiz uma segunda camada de texto com negrito e amostradas o mesmo vídeo com crunched níveis para limitar o tipo negro para a zonas mais escuras. Você precisará ajustar a letter-spacing para alinhar o tipo negrito e normal. Beware que adicionar uma segunda camada script realmente mostra que este é um processador de intensa expressão.