Plugin para números en After Effects
8 seguidores
Hola
Trabajo en After Effects y necesito hacer el típico efecto de los números que van avanzando hasta llegar a una cifra concreta .
Todos los plugins que he probado me dan un problema: no incorporan el punto de los miles (x ejemplo en vez de 5.000 ponen 5000 o con coma...5,000) He probado con el plugin numeros y con varios del digital anarchy, pero nada...otros sólo son para fechas, timecodes, etc..
La cuestión es que tengo que hacer un montón de cifras, asi que no lo puedo corregir "a mano"
Por favor!!! alguien me puede recomendar un plugin que deje escribir las cifras como quiera?? Cualquier sugerencia será bienvenida..
Muchas gracias :)
doramar Plus
¡Hola! Ha llovido mucho desde que se publicó por primera vez este tema, pero en 2019 a mi no no me estaban funcionando las soluciones que se comentan en este hilo, así que comparto lo que a mi sí me funcionó:
Sin deslizador:
En endCount escribe el número en el que termine el conteo. countDur indica el tiempo que tarda en realizarse el conteo.
Con deslizador
Ojo que yo tengo AE en español, en inglés habría que sustituir "Control del deslizador" por "Slider Control" y "Deslizador" por "Slider".
Espero que sea de ayuda a alguien. Las expresiones las he sacado de aquí: https://forums.creativecow.net/docs/forums/post.php?forumid=227&postid=6073&univpostid=6073&pview=t
anders_hattne
hola,
creo que esto podría ayudar, es todo en ingles pero... es utilizando expresiones..
http://aeexpressions.blogspot.com/2006/08/lesson-5-modulus-with-ifelse.html
anders_hattne
Aver..
he hecho esto.. pegalo en el "source text" de un objeto de texto:
quizas no es lo más elegante o rápido pero supongo que soluciona el problema. (No tardé 4 horas en hacerlo.. pero ahora merezco una cerveza :-)
mariasleiva
ostras! muchas gracias..
Pues yo si que me he tirado unas cuantas horas descifrando y probando el blog q enviaste y del todo no me sirvió pq me bloqueé en la segunda parte, el tema decimales q no me ha salido como esperaba. De todos modos, le metí una mask y quizá cuela, pero es una solución un poco fffff...
De todos modos, es increíble que no haya algo más simple, y eso que parecía una tontería...No hay un plugin maravilloso que lo solucione???
Bueno, gracias de nuevo probaré lo q me envías, pero otro ratito, pq lo que yo necesito es dormir zzz
La verdad es q no controlo mucho el tema de expresiones y por hoy estoy saturada :-)
anders_hattne
A ver, yo tampoco soy experto de expresiones, pero probando cosas como esto me ayuda aprender.. He encontrado un fallo, a ver si un "if" más lo resuelve, luego lo miraré..
Lo que pasa es:
if (inc >= 1000) si el numero (inc) que va incrementando es 1000 o más grande
rest=inc%1000; el valor de "rest" será lo que sobra si divides "inc" con 1000. Por ejemplo 2560/1000 = se puede dividir 2 veces y sobran 560 entonces "rest" será 560..
mil=(inc-rest)/1000; entonces.. mil será 2560-560 = 2000 dividido por 1000.. mil será 2..
display=mil +"."+rest} display será "mil" más el punto más el resto y alli surge el problema.. si "inc" habría sido 2056 display sería 2.56 como rest no sale con 3 sifras por defecto.. A ver si lo arreglo luego, y si alguien tiene una solucion más sencilla..
Supongo que dividiendolo todo con mil podría servir tambien si hay una manera de decir que el resultado tiene que ser con 3 decimales...
anders_hattne
eso resuelvo el fallo!
mariasleiva
Hola Anders, muchas gracias! He usado tu código y de momento es el que mejor resuleve el problema :-)
Sólo hay una cosa que no me funciona. No he podido asociarlo a un slider, y entonces no puedo controlar donde empiezan los números, donde acaban, o si necesito llegar a una cifra en concreto etc..Me empieza en el frame 0 con el número 0, y luego a cada frame va aumentando de 4 en 4 (0-4-8-12...). Lo que no he sabido es lo que dices de "substituir con un deslizador quizas?" Al no poder controlar esto, me cuesta encontrar donde aparecen los tramos de números que necesito...
Mira, pegué esto en el source text de una capa de texto:
temp=0;
mil=0;
rest=0;
display=0;
inc=Math.round(time*100); // substituir con un deslizador quizas?
rest=inc%1000;
mil=(inc-rest)/1000;
if (inc >= 1000 && rest <10) {
display=mil +".00"+rest}
else if (inc >= 1000 && rest <100) {
display=mil +".0"+rest}
else if (inc >= 1000 && rest >=100) {
display=mil +"."+rest} else{display=inc}
display
Pues eso, si sabes como lo asocio al deslizador genial :-)))) En fin, de todos modos, gracias!!
maria
anders_hattne
buenas,
inc=Math.round(time*100); // substituir con un deslizador quizas?
no controlo la terminologia en español, pero, si añades un deslizador a traves de los efectos "contol de expresiones", luego marcas el time*100 y conectas eso con el pickwhip ese..
Como yo estoy durmiendo todavia, en el primero imagen aqui, la C es el pickwhip
http://help.adobe.com/en_US/AfterEffects/9.0/WS3878526689cb91655866c1103906c6dea-7a2ca.html
mariasleiva
Genial!!!! FUNCIONA!!!!
ya me parecía increíble :-))))
gracias otra vez
mariasleiva
Finalmente queda así:
temp=0;
mil=0;
rest=0;
display=0;
inc=Math.round(effect("Control de indicador 2")("Deslizador")); // substituir con un deslizador quizas?
rest=inc%1000;
mil=(inc-rest)/1000;
if (inc >= 1000 && rest <10) {
display=mil +".00"+rest}
else if (inc >= 1000 && rest <100) {
display=mil +".0"+rest}
else if (inc >= 1000 && rest >=100) {
display=mil +"."+rest} else{display=inc}
display
Está claro que tendré que estudiar las expresiones, realmente una vez las conoces, seguro que facilitan mucho el trabajo...
anders_hattne
2 meses más tarde.....
acabo de encontrar esta expresión por Dan Ebberts, el rey de las expresiones:
s = "" + Math.floor(effect("Slider Control")("Slider"));
n = s.length;
if (n > 3)
s.substr(0,n-3) + "," + s.substr(-3)
else
s
6 lineas de codigo en lugar de 14 ;-) Sospeche que habrá una manera más elegante de hacerlo. Espero que puede servirle a alguien!
sebastianbap Profesor Plus
A mi me cae mejor Dan (Ebberts) que Andrew (Kramer), ja!
De los comentarios mas freaks que he escrito por aqui, pero es que Dan me ha solucionado mas cosas.
anders_hattne
Acabo de tener que hacer la misma cosa y nos encontramos con problemas como el limite del deslizador es un millón. Modifiqué la expresión de arriba con el operador linear y unos comas más.. (Y luego Dan Ebberts tenía que corregirlo al final..)
num1=effect("Slider Control")("Slider");
num2=linear(num1,0,100000, 6000, 30000000); /* convierte de 0 a 100mil a 6mil a 30millones*/
s= "" + Math.floor(num2);
n = s.length;
if (n > 6){
s.substr(0,n-6) + "." + s.substr(-6,3) + "." + s.substr(-3)
}else if(n > 3){
s.substr(0,n-3) + "." + s.substr(-3);
}else{
s
}
..Extraño Lopes, creo que te ví cuando fui a ver Cisne Negro. Llevo ya un rato pensando cual de los dos me cae mejor, ¿ quien llevaría a una isla desierta o una fiesta? Me gusta el sentido de humor de Kramer, y todavía no he visto nada más que expresiones salir de Ebberts. Por lo tanto Kramer gana puntos. Hmm Cromos de "After Effects legends" podría ser un negocio..
makas
Hola! yo llego 4 años después con una duda similar, busco lograr hacer la secuencia pero con los números salteados (40-46-52…) es cosa fácil? no se me dan las expresiones y buscando encontré este tutorial que dice como agregar las comas https://vimeo.com/41167305 el video es de hace dos años así que supongo que no es nada que ya hayan visto.
Por cierto, Andrew me encanta, es muy fácil entenderle, en cuanto a Dan no lo conozco mucho pero si me ayudará con las expresiones creo que es hora de seguirlo. Saludos!!
anders_hattne
Hola,
No sé si te entiendo de todo, pero hacer que las incrementaciones son de 6 es fácil.
Del código de arriba (donde los simbolos > se han cambiado por > cuando domestika hizo el traslado supongo) he hecho pocos cambios..
num=effect("Slider Control")("Slider");
s= "" + Math.floor(num) *6;
n = s.length;
if (n > 6){
s.substr(0,n-6) + "." + s.substr(-6,3) + "." + s.substr(-3)
}else if(n > 3){
s.substr(0,n-3) + "." + s.substr(-3);
}else{
s
}
s= "" + Math.floor(num) *6; es más o menos lo único que he cambiado.
Lo de añadir comas, si tienes varios variables como a, b, c.. para que los veras separados por comas, tendrías que poner:
a + " ," + b + " ," + c + " ,"
irene_so
Genial este post. Muy útil. ¡Muchísimas gracias por compartir!
sireguau
Hola, cuando coloco el código en la expresión me dice que hay error en la linea 9, soy absolutamente ignorante en este campo de las expresiones, (a mi cerebro espongiforme-creativo le resulta bastante difícil asimilar estos conceptos...), se copia y se pega directamente? hay que modificar algo?... pongo capa de texto con numero 0 y le añado el efecto Deslizador.... Muchas Gracias
mariasleiva escribió...
Finalmente queda así:
temp=0;
mil=0;
rest=0;
display=0;
inc=Math.round(effect("Control de indicador 2")("Deslizador")); // substituir con un deslizador quizas?
rest=inc%1000;
mil=(inc-rest)/1000;
if (inc >= 1000 && rest <10) {
display=mil +".00"+rest}
else if (inc >= 1000 && rest <100) {
display=mil +".0"+rest}
else if (inc >= 1000 && rest >=100) {
display=mil +"."+rest} else{display=inc}
display
antonio_herrera
Este vídeo lo soluciona bastante bien.
https://www.youtube.com/watch?v=dsnaO2CBf10
elmaci
Gracias por el post! Muy util!
fusca
gracias por la ayuda
polmira
Muchas gracias, he modificado el script, he añadido € al final,
ahora este script (en inglés) pone punto y € al final,
es el que usa slider, a mi me ha funcionado.
s = "" + Math.round(effect("Slider Control")("Slider"))+"€";
if (s.length > 4){
s.substr(0, s.length -4) + "." + s.substr(-4);
}else{
s
}
jpinilla
por aquí un vídeo que lo explica guay y deja las expresiones feten:
https://www.youtube.com/watch?v=si1MCstuu34