Degradado Horizontal Multicolor
Monday, April 12, 2010 7:06:21 PM
Hace tiempo postearon una idea de como hacer esto, pero no dieron codigo que es lo que nos gusta; mas bien nos hicieron pensar xP, si son como yo y dicen "quiero saber como funciona esta shit" entonces pacense por AQUI que es la explicacion que puso nicles. luego de eso si son de los que dicen "quiero usarla ya!! no me importa como es posible hacer eso solo quiero que funcione" tonces aca la explicacion:
bueno para poder hacer el degradado multicolor luego de leer la explicacion de lo que dijo nicles no se me ocurrio nada D: y pues llegue a la conclusion de que habia que tener control sobre los valores de iteracion "j" "maxj" y luego hacer que hicieran las interpolaciones necesarias para cada color. facil se obtiene dividiendo el "maxj" por el numero de colores -1 pero y entonces "j" bueno pues el codigo queda mas o menos asi:
function degrad4you(cont,maxcont,setn,dgn, color1 , color2 , color3, color4 , color5 )
Amaxcont=maxcont/(dgn-1) Bcont=cont%Amaxcont== 0 and Amaxcont or cont%Amaxcont
colorset1=color1 colorset2 =color2
if cont > Amaxcont then
colorset1=color2 colorset2=color3
end
if cont > Amaxcont*2 then
colorset1=color3 colorset2=color4
end
if cont > Amaxcont*3 then
colorset1=color4 colorset2=color5
end
stcolor=string.format("\\%dc%s",setn,_G.interpolate_color(Bcont/Amaxcont, colorset1, colorset2 ))
clipping=string.format("\\clip(%d,%d,%d,%d)",math.floor(_G.interpolate((j-1)/maxj, math.floor(line.left-5), math.floor(line.right+5))),0,math.floor(_G.interpolate(j/maxj, math.floor(line.left-5), math.floor(line.right+5))), meta.res_y )
return clipping .."".. stcolor end
disculpen lo crappy de mi codigo pero la cosa esta me arruino el formato que traia D':
la manera en que funciona es facil, se divide el numero maximo de iteraciones por el numero de colores que se necesita -1 y luego se le da un limite a "j" para que pueda hacer las interpolaciones de el color1 a color2 y luego de color2 al color3 y asi sucesivamente, digamos si el valor de "maxj" es 30 se divide por 3 y queda 10 y luego ese numero se le pone de limite a "j" para que no vaya de 1-30 si no 1-10,1-10,1-10 y asi ira haciendo bien lo que queremos X3 eso fue lo que se me ocurrio, ideas para mejorar esto pues que diga ñ.ñ...
entonces con eso logramos tener el control de "j" y "maxj" que son los valores de "Amaxcont" y "Bcont" para poder hacer los degradados de cuantos colores se nos ronque la gana xP bueno ya con el codigo ya no hay mas que hablar, aca solo lo deje de 2 hasta 5 colores example:
los usuarios de lua solo tendran que mover un par de cosas ahi para que les funcione como el interpolate y los valores que retorna la funcion pero como yo no uso script lua no se si asi como esta les funcione asi que prueben.
para usarlo solo tienen que agregar la linea de codigo que esta en el .ass y poner el estilo del cual quieren aplicar el fx, la funcion esta asi:
degrad4you(cont,maxcont,setn,dgn, color1 , color2 , color3, color4 , color5 )
cont= contador de iteracion "j"
maxcont= maximo de iteraciones "maxj"
setn= color al cual aplicar degradado xP "me gusta todo facil" 1. relleno, 2. color secundario, 3. borde, 4 sombra
dgn= numero de colores que quieren para el degradado de 2-5
color1-5= colores para el degradado en formato .ass
Bueno con eso esta toda la explicacion, el template se los dejo para que vean y pues happyrip jajaja
Ejemplo














jiojal jiojal # Saturday, April 24, 2010 2:26:32 AM
AlexSkedgar # Saturday, October 2, 2010 2:36:00 AM
PD: Gracias.
Luis ADgrayGT # Saturday, October 9, 2010 7:00:12 PM
Originally posted by Skedgar:
jejeje si ya viendola hecha es facil pero como dicen lo dificil es comenzar.
PD. vere lo del link, saludos