Esta librería es el núcleo de gestión del propio Kara Effector. Contiene las funciones que manejan la creación y guardado de nuevos efectos, la importación de librerías, la configuración de la posición y el estado del efecto, y la lógica principal que ejecuta los efectos sobre los subtítulos. La mayoría de estas funciones son para uso interno del script, pero algunas como effector.create_fx o effector.addfx son esenciales para expandir la funcionalidad del KE.
effector.create_fx( new_fx_type, ... )Descripción: La función fundamental para definir un nuevo efecto y añadirlo a las librerías del Kara Effector. Toma todos los parámetros de configuración de un efecto (los mismos que se ven en la ventana "Modify") y los empaqueta en una estructura que el KE puede usar.
Argumentos:
new_fx_type (string): El tipo de efecto. Debe ser uno de: "LIfx" (leadin), "HLfx" (hilight), "LOfx" (leadout), "SHfx" (shape), "TLfx" (translation), o "FTfx" (function).... (34 argumentos): Una secuencia de 34 valores (string o boolean) que corresponden exactamente a cada una de las casillas de la ventana "Modify", en orden.Ejemplo de Uso:
-- Define un nuevo efecto de lead-in llamado "Mi Efecto"
Mi_Efecto = effector.create_fx("LIfx", "Mi_Efecto", "Syl", true, false, ...)
effector.keeptags( template_type, keeptags_type )Descripción: Recupera los tags originales de una sílaba o palabra (excluyendo los tags de karaoke y posición) para que puedan ser conservados en el efecto final. Esto es útil para no perder, por ejemplo, cambios de color o \fad que ya existían en la línea original.
Argumentos:
template_type (string): El tipo de template que se está ejecutando (ej. "Syl", "Word").keeptags_type (string): La unidad de la cual se quieren preservar los tags (ej. "Line", "Word", "Syl").effector.pos( t_move, t_pos, t_time )Descripción: Una función de utilidad interna para generar los tags \pos, \move y \org basados en los parámetros del efecto, incluyendo la corrección por el ángulo de la línea ($l_angle).
Argumentos:
t_move (number): Un código que indica si es un \pos (1) o un \move (>=2).t_pos (table): Una tabla de coordenadas.t_time (string): La parte de tiempo del tag \move.effector.knj( v_knj, reverse_fx )Descripción: Kanji. Calcula las coordenadas para texto vertical (kanji). Reajusta la posición (x, y) basada en el índice de la sílaba o caracter para apilarlos verticalmente en lugar de horizontalmente.
Argumentos:
v_knj (boolean): Activa o desactiva el modo kanji.reverse_fx (boolean, opcional): Si es true, invierte el orden del apilamiento.effector.import( Lua_file )Descripción: Carga un archivo de librería LUA externo, haciendo sus funciones y variables disponibles para el Kara Effector. Es un alias de la función include.
Argumentos:
Lua_file (string): El nombre del archivo .lua a importar (sin la extensión).effector.addfx( Library_fx, Name_fx )Descripción: Permite añadir dinámicamente un efecto existente a la cola de procesamiento actual. Esto es útil para crear "funciones" que aplican una secuencia de otros efectos.
Argumentos:
Library_fx (string | number): El nombre o índice de la librería del efecto (ej. "lead-in", 1).Name_fx (string | number): El nombre o índice del efecto dentro de esa librería.effector.savefx( New_fxname, File_fx )Descripción: Añade una nueva línea de texto al final de un archivo especificado. Se usa internamente para guardar nuevas configuraciones de efectos.
Argumentos:
New_fxname (string): El texto a añadir.File_fx (string): La ruta al archivo.effector.modify_pos( Offset_x )Descripción: Calcula el desfase (offset) de posición de un objeto karaoke causado por la presencia de tags \pos o \an en la línea original.
Argumentos:
Offset_x (boolean, opcional): Si es true, devuelve los offsets por separado {x, y}. Si no, los devuelve combinados.effector.new_pos( posx, posy )Descripción: Genera un tag \pos o \move a partir de coordenadas absolutas, teniendo en cuenta la posición y movimiento base del objeto (fx.move_x1, etc.).
Argumentos:
posx, posy (number): Las coordenadas de destino.effector.default_val( ), effector.default_val2( )fx.*) y las variables de conveniencia (val_*) para el objeto karaoke actual (sílaba, caracter, etc.).effector.decide( )effector.print_error( argument, type, function, pos )Descripción: El sistema de manejo de errores del Kara Effector. Comprueba si un argumento pasado a una función es del tipo correcto. Si no lo es, detiene la ejecución y muestra un mensaje de error detallado y amigable para el usuario.
Argumentos:
argument: El valor del argumento a comprobar.type: El tipo de dato esperado (ej. "string", "numbertable").function: El nombre de la función que se está validando.pos: La posición del argumento en la llamada a la función.effector.time( Time_i, Time_f )Descripción: Calcula la diferencia entre dos tiempos (en segundos) y la devuelve en formato H:MM:SS. Se usa para mostrar el tiempo de ejecución del script.
Argumentos:
Time_i, Time_f (number): Tiempos de inicio y fin (obtenidos con os.time()).effector.pos_config( )fx.pos_x, fx.move_l1, etc.) basadas en los parámetros de la GUI.effector.run_fx( subs, sett, index )effector.do_fx para cada una.effector.preprosses_styles( styles, subtitles, has_selected_lines )effector.preprosses_macro( subtitles, sett, fx__, selected_lines )effector.preprosses_lines( subtitles )linefx que contiene toda la información de tiempos, posiciones y estructura de cada línea, sílaba, palabra, etc. Es una de las operaciones más importantes y se ejecuta antes de aplicar cualquier efecto.effector.macro_fx( subtitles, selected_lines, active_line )