DgrayGT

Karaoker Aegisubs

Tags Variables & Shine FX para Scripts Lua

Decidí poner esto en un post nuevo solo para dar unas recomendaciones, que tal vez a alguien mas le lleguen a servir.

Siempre que vamos a usar una función en otro programa o en este caso de otra manera porque template y script lua son casi lo mismo divergiendo en un par de cosas. hay que tener en cuenta que todos los valores a usar sean los equivalentes bajo el modo que usemos:

La primera función Shine FX vemos que hace uso de las variables
-"j" & "maxj"
-"maxloop"
-"interpolate_alpha"

Usando scripts lua tendríamos que cambiar los primeros 2 valores, no estoy seguro pero creo que no podemos hacer uso de maxloop así que tendremos que usar un for para así generar el efecto. Los valores equivalentes para los 2 primeros serian el nombre de la variable usada para el for, Ejemplo:

for k = 1 , 20 do...


"j" seria igual a "k" que es el indice de la variable y "20" seria igual a "maxj" que es el numero maximo de iteraciones

luego tenemos interpolate alpha que usa un valor para ir desde el primer parámetro hasta el segundo que es igual a j/maxj bajo template, para usarlo en script lua seria: "k/20". "k" el indice y "20" el numero máximo de iteraciones.

ya con eso agregamos los valores necesarios a la función para que podamos generar el fx quedando así:
function Get_Shine(index,maxloop,strength,scale,x,y,mode1,mode2,time1,time2)
       if not mode2 then
            setmod = "pos"
            else
            setmod = "move"
       end
           set_a = _G.ass_alpha(math.ceil((strength*0.01)*255))
           int_alpha = _G.interpolate_alpha(index/maxloop , set_a , "&HFF&" )
           x_size,y_size = 100+(index*scale) , 100+(index*scale)
           tsh1,tsh2 = 0+(index-1)*2 , 0+(index)*2
            -- MODE 1--
           if mode1 == 1 then
               x_pos,y_pos = x-(index-1) , y+(index-1)
               elseif mode1 == 2 then
                   x_pos,y_pos = x , y+(index-1)
           end
           if mode1 == 3 then
               x_pos,y_pos = x+(index-1) , y+(index-1)
               elseif mode1 == 4 then
                   x_pos,y_pos = x-(index-1) , y
           end
           if mode1 == 5 then
               x_pos,y_pos = x , y
               elseif mode1 == 6 then
               x_pos,y_pos = x+(index-1) , y
           end
           if mode1 == 7 then
               x_pos,y_pos = x-(index-1) , y-(index-1)
               elseif mode1 == 8 then
                   x_pos,y_pos = x , y-(index-1)
           end
           if mode1 == 9 then
                x_pos,y_pos = x+(index-1) , y-(index-1)
           end
           --MODE 2--
           if mode2 == 1 then
               x_pos2,y_pos2 = x-(index-1) , y+(index-1)
               elseif mode2 == 2 then
                   x_pos2,y_pos2 = x , y+(index-1)
           end
           if mode2 == 3 then
               x_pos2,y_pos2 = x+(index-1) , y+(index-1)
               elseif mode2 == 4 then
                   x_pos2,y_pos2 = x-(index-1) , y
           end
           if mode2 == 5 then
               x_pos2,y_pos2 = x , y
               elseif mode2 == 6 then
                   x_pos2,y_pos2 = x+(index-1) , y
           end
           if mode2 == 7 then
               x_pos2,y_pos2 = x-(index-1) , y-(index-1)
               elseif mode2 == 8 then
                   x_pos2,y_pos2 = x , y-(index-1)
           end
           if mode2 == 9 then
                x_pos2,y_pos2 = x+(index-1) , y-(index-1)
           end
           if setmod == "pos" then
               intpos = x_pos..","..y_pos
               shine = "\\"..setmod.."("..intpos..")".."\\alpha&HFF&".."\\fscx"..x_size.."\\fscy"..y_size.."\\t("..tsh1..","..tsh2..",\\alpha"..int_alpha..")"
           elseif setmod == "move" then
               intpos = x_pos..","..y_pos..","..x_pos2..","..y_pos2
               shine = "\\"..setmod.."("..intpos..","..time1..","..time2..")".."\\alpha&HFF&".."\\fscx"..x_size.."\\fscy"..y_size.."\\t("..tsh1..","..tsh2..",\\alpha"..int_alpha..")"
           end
       return shine
  end

Si se dan cuenta quite el valor lenght y agregue index, maxloop. También cambie todos los valores que usaban "j" dentro de la funcion cambiando por "index" y de igual manera con "maxloop", en intepolate alpha. Igual solo puse "index/maxloop" para que funcione también.

Ya que tenemos la función lista para usar la podemos pegar para los usuarios de Zheolib en esta misma o si no crear otro archivo con las funciones no olvidándose de cargarlo en el script a usar.

Para la funcion GetVTags esta mas fácil, lo único a tomar en cuenta es el tiempo que usaremos para generar el fx. En la función para template use el valor retornado por line.duration que bajo template retorna el valor total de la duración de la linea donde se use la variable, no importando si agregamos o quitamos tiempo esta variable retorna el valor absoluto de la duración de la linea. En scripts lua creo que no funciona iwal si no que devuelve el valor total pero de la linea completa y no toma en cuenta si agregamos o quitamos tiempo de duración, sabiendo eso vamos a cambiar ese valor quedando la función así:

function GetVTags(ldur,valst,data1,data2,data3)
   		if not data3 then
   			setmode = 2
   			else
   				setmode = 4
   		end
   		sylvi = "" time1 = 0 index = 0
   		while time1 < ldur do
   			in2=1 index = (index+in2)%setmode
   			if setmode == 2 then
   				if index == 1 then
   					setdata = data1
  						elseif index == 0 then
  							setdata = data2
  				end
  				elseif setmode == 4 then
  					if index == 1 then
  						setdata = data1
  							elseif index == 2 then
  								setdata = data3
  					end
  					if index == 3 then
  						setdata = data2
  							elseif index == 0 then
  								setdata = data3
  					end
  			end
  			val = valst
   			sylvi = sylvi.."\\t("..time1..","..time1+val..","..setdata..")"
   			time1 = time1+val
   		end
   	return sylvi
   end

Como ven solo agregue el valor "ldur" y luego cambie "line.duration" de la función reemplazándolo por ldur, de esa manera ya tenemos las 2 funciones listas para usar bajo scripts lua solo como dije antes agregamos a la Zheolib o generamos otro archivo con las 2 funciones listas.

bien ahí esta, ahora podemos usarlas incluso en Nyu FX

ADJUNTOS

Script Con Las Funciones
Shine
Tags Variables

No se si la Zheolib ha cambiado mucho últimamente pero espero que no aunque no siendo así al menos los scripts les servirán de guía




Tags Variables Para TemplateEfectos Con Nyu FX

Comments

ALKOONalkoon Sunday, April 10, 2011 11:41:04 AM

thank you very much =D
I have question !

the function have 3 data (data1,data2,data3)
can be 4 data like --> (data1,data2,data3,data4)

??

Write a comment

New comments have been disabled for this post.