J'ai donc affiché sur le After Effects forum, Et peut-être pensé qu'il serait plus approprié de poster ici.
J'essaye de créer un effet où je peux prendre une vidéo et de le remplacer par des caractères.
Kevin camp a lancé cette expression, qui fonctionne très bien, Mais seulement de rendre un seul caractère par case:
Asciiarray = [ "","a","b","c","d","e","f","g","h","I","j"]; / / saisir les caractères de gamme de la lumière à l'obscurité des valeurs
Numcharacters = 10; / / le nombre total de caractères dans le tableau ci-dessus
Imagemap = thiscomp.Couche ( "image source").Sampleimage ([position [0], Position [1]], [1, 1]);
A = math.Round (linéaire (Imagemap [0], 0, Numcharacters));
Asciiarray [a]
J'ai essayé de mettre cela sur un champ de texte et de le dupliquer sur une grille, Problème est que cela prend quelques milliers de couches (tous des expressions) de remplir l'écran avec un nombre suffisant de caractères et After Effects plante bien avant que j'ai assez.
Qui contient une expression qui travaille pour une ligne de texte, J'ai donc moins de couches (je ne dispose que de la répéter par le nombre de lignes), Mais le problème est qu'il ne réglemente pas la largeur de la zone de texte, Si l'évolution de la largeur des caractères changer la position de ultérieures caractères.
Je suis vraiment coincé et j'ai été aux prises avec ce problème pendant des jours. Est-ce que quelqu'un sais comment je peux obtenir cet effet?
Re: Vidéo à effet ascii Dan Ebberts - 10-26-2007
Si la couche de votre vidéo est nommé "cible", Vous pouvez appliquer une expression comme celle-ci pour un calque de texte:
For (var i = 0; i lignes; I + +) (
For (var j = 0; j cols; j + +) (
Center = [w / 2 + j * w, H / 2 + I * h];
Sample = cible.Sampleimage (au centre,[(p-1) / 2,(h-1) / 2]);
S + = densité [math.Round (linéaires (échantillon [0],0,1,0,Densité.Length - 1))];
}
S + = "\ r";
}
s
Vous aurez à jouer avec la taille de la police, Suivi, Leader, Etc. Modifier les colonnes et les lignes variables en fonction de vos besoins
Dan
Re: Vidéo à effet ascii jporter313 - 10-26-2007
Thanks a lot Dan, Je vais essayer que l'un.
Re: Vidéo à effet ascii moldyboot - 10-26-2007
Dan, Qui est assez impressionnant Dans sa simplicité (tout au moins à un gars sans aucune connaissance de script).
Dans l'espoir d'en apprendre davantage sur les scripts...
[ Dan ebberts]"for (Var i = 0; I < rows; i++){"
Var i = 0, Fixe la valeur initiale de 'I' à 0. Compare ensuite la valeur de 'I' de la valeur des lignes. I + + et augmente la valeur de 'I' jusqu'à ce que le «je» est supérieure à la valeur de lignes, à quel point la «boucle» se termine (mais est-ce correct de l'appeler une boucle, Ou est-ce comme une sous-routine).
[ Dan ebberts]"s =" ""
Est-ce simplement la mise en place d'une variable "s" ne renvoie rien que Dans un premier? Et il est alors augmenté (+ =) par la valeur de la densité du tableau... Jusqu'à ce que le «je» est supérieure à la valeur de lignes, à quel point «s» n'est rien de nouveau (et la «boucle s'arrête).
Kevin camp
Designer - kcpq, Kmyq & krcw
Re: Vidéo à effet ascii Dan Ebberts - 10-26-2007
Assez bien. La boucle est exécuté aussi longtemps que je le moins de lignes. S = "" juste s établit comme une chaîne vide. La + = ajoute un nouveau caractère à la chaîne.
Je viens de remarquer que le caractère barre oblique inverse a perdu quand j'ai collé le code dans. Je vais essayer de nouveau, En utilisant cette fois la html code balise.
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: Vidéo à effet ascii Patrick Deen - 10-30-2007
Dan vous me rendez malade apparemment facile à trouver des solutions avec vous!
Je cherchais une façon de le faire avant CS3 après avoir vu le "black tambourins" vidéo de beck. J'ai longtemps abandonné l'idée que je pourrais moi-même, il figure.
La seule chose que je voudrais ajouter, c'est que lorsque vous êtes à expérimenter avec différentes vidéos, il est plus pratique d'utiliser le "layer (index)" attribut (juste une autre chose que j'ai appris à portée de la main de Dan )
Mise en place de la cible sous "target = thiscomp.Layer (index -1); "
Maintenant vous pouvez simplement ajouter la vidéo que vous voulez "ascciisize" à la couche au-dessus de votre calque de texte et de scripts.
D'ajouter un peu plus de profondeur à mon ascii vidéo que j'ai fait une deuxième couche de texte en caractères gras, et avec l'échantillon de la même vidéo avec crunched afin de limiter le gras à des zones les plus sombres. Vous avez besoin d'ajuster l'espacement de la lettre d'aligner les caractères gras et normaux. Méfiez-vous que l'ajout d'une deuxième couche de script montre vraiment qu'il s'agit là d'une expression intense du processeur.