tutorial subtítulos formato ssa o ass
TRANSCRIPT
Tutorial para subtítulos formato SSA o ASS Estructura del subtítulo y lista de comandos. El formato SSA/ASS es muy versátil para realizar subtítulos ya que se pueden introducir estilos y efectos, y hacer karaokes, lo que lo hace el formato manejado por los fansubs para desarrollar sus subtítulos. Este manual es para comprender la estructura de los subtítulos formato SSA (SubStation Alpha) y ASS (Advanced SubStation Alpha) (en realidad los dos formatos son similares, pero el formato ASS, más moderno, introduce más opciones en los "Estilos de Línea"). Con el tutorial les mostrare otros efectos que se logran con el VSFilter/Textsub. Recuerden siempre tener el VSFilter actualizado a la última versión, la forma más fácil de hacerlo es fijarse si tienen instalada la última versión del CCCP para visualizar videos, y la última versión del Aegisub para editar los subtítulos sino pueden ocurrir cosas como que no se muestren algunos de los efectos que hay en los subtítulos, ya que los programas que leen este formato ignoran todo lo que no entienden.
Software necesario - Aegisub, programa para trabajar con subtítulos, efectos y que trae características interesantes contra otros programas de subtítulos, entre estas características cabe resaltar la posibilidad de ver las coordenadas en pantalla para poder así facilitar el poner carteles y similares: (Imagen de la característica /pos
Para los que quieren hacer karaokes, la característica más importante de todas es que se puede usar programación para crear efectos avanzados o karaokes súper avanzados, pudiendo así utilizar condiciones, ciclos y muchas otras cosas, similar al asscalc. El lenguaje utilizado para esta programación es LUA. Aunque también esta el after effect. - Para visualizar los subtítulos con los efectos en forma de softsubs, necesitamos el VSFilterMod. Una vez lo tenemos instalado, ponemos los subtítulos y el video en la misma carpeta, así: mivideo.avi mivideo.ssa (Incluso para poner una imagen dentro de las letras mivideo.png) - Para visualizar los subtítulos en el Virtualdub programa que sirve para pegarlos, necesitamos el Textsub (sólo es necesario si pensamos pegar los subtítulos al video en formato .ass y no .ssa, además para Textsub debemos también tener Virtualdub con VSFilterMod instalado). Explicándoles como poner VSFilterMod en VirtualDub o VirtualDubMod, no solamente se logra descargándolo y poniendo este archivo en la carpeta plugins de cualquiera de estos, ya que aunque lo tengan no podrán ver todos sus efectos en los videos, sino que deben copiar ese archivo y pégalo en la carpeta donde tienen instalado el Virtualdub(Mod), en la carpeta de plugins (usualmente C:/Archivos de programa/Virtualdub(Mod)/plugins) Y además también cambiar la extensión de este que de ser VSFilterMod.dll, la deben cambiar a VSfilterMod.vdf luego de eso cuando abran el Virtualdub aparecerá un nuevo filtro llamado Textsub. Luego de eso con ese filtro podrán ver los subtítulos .ass sin tener que exportarlos a .ssa y perdiendo los efectos. Esto sucede debido a que están estos programas en otra codificación. Comandos de sustitución para utilizar en las líneas de diálogo Esta parte es un comentario del subtítulo, es decir, es información útil pero que no es visible
cuando el archivo es cargado en un video. Sólo lo que está en negritas es obligatorio para
reproducir el subtítulo, el resto es opcional. Cada información del encabezado debe ir en su
propia línea, después de la línea
Title: El título del subtítulo (Opcional)
Original Script: Autor del subtítulo original (Opcional)
Original Translation: Traductor del subtítulo (Opcional)
Original Editing: Editor del subtítulo (Opcional)
Original Timing: Creador de los tiempos o timer, como le dicen algunos (Opcional)
Synch Point: En qué momento del transcurso del video debe comenzar el script (Opcional). Con
esta utilidad se pueden sincronizar los subtítulos que al principio del video están desfasados (si
además están acelerados o desacelerados, hay otra utilidad explicada un poco más abajo).
Pero hoy en día es más fácil hacerlo con un editor de subtítulos que trasteando con estos
números así que se puede decir que es una utilidad obsoleta. Si esta línea no aparece en el
encabezado de un subtítulo, los programas que reproducen ssa/ass asumen que el punto de
sincronización es cero (es decir, el tiempo cero del subtítulo es también el tiempo cero del
video).
Script Updated By: Nombre de la persona que editó el subtítulo original (Opcional)
Update Details: Detalles de la actualización del subtítulo editado (Opcional)
Script Type: Qué versión de script se usa (en la práctica, si es un SSA o un ASS: por ejemplo si
es un ASS se escribe "ScriptType: v4.00+")
Collisions: Cuando dos o más subtítulos aparecen al mismo tiempo, qué ubicación tendrá cada
uno en la pantalla. Por ejemplo si se escribe "Normal", el programa que lee los subtítulos debe
ubicar el segundo subtítulo que aparece en el script, más arriba en la pantalla que el primero
que aparece, de esta forma no aparecen superpuestos en el mismo lugar y se pueden leer los
dos:
Personalmente yo no toco ni hago nada ahí xD
En cambio si se escribe "Reverse" se deben acomodar los subtítulos de forma que el primero
pase a la parte de arriba y el segundo aparezca abajo, pero como el segundo subtítulo puede
tardar un poco más que el primero en aparecer, esto puede provocar que el primer subtítulo
parezca que apareció por el centro de la pantalla sin razón, creando espacios vacíos en la parte
inferior, hasta que aparece el segundo subtítulo.
El VSFilter, que más se usa para reproducir subtítulos en ssa/ass, ignora esta línea.
Por lo tanto en la práctica, siempre se termina escribiendo "Collisions: Normal"
PlayResX: Ancho de la máscara del video sobre el que se ubican los subtítulos. El valor es en
píxeles. Si trabajan con el Aegisub verán que el programa pone este valor automáticamente sin
preguntarle al autor del subtítulo, y lo hace coincidir con la anchura del video en píxeles que se
ingresó en el Aegisub para editar el subtítulo. Pero no necesariamente tienen que coincidir.
PlayResY: Altura de la máscara del video sobre el que se ubican los subtítulos. El valor es en
píxeles. Nuevamente, si trabajan con el Aegisub verán que el programa pone este valor
automáticamente sin preguntarle al autor del subtítulo, y lo hace coincidir con la altura en
píxeles del video que se ingresó en el Aegisub para editar el subtítulo. AL MENOS ESTE VALOR
ES OBLIGATORIO PARA QUE EL VSFILTER RECONOZCA EL SUBTÍTULO (si no este valor, entonces
el PlayResX, pero al menos uno de los dos). Esto es porque el tamaño de los subtítulos y varios
de los comandos que veremos, dependen de este valor. Por ejemplo si su video tiene una
altura de 600 píxeles, al ingresarlo en el Aegisub, el programa pone automáticamente en esta
sección "PlayResY: 600".
PlayDepth: Profundidad del color. El formato SSA v4 determina esto automáticamente.
Normalmente es "PlayDepth: 0"
Timer: Velocidad del cronómetro de un subtítulo formato SSA/ASS. Sirve para acelerar o
desacelerar un subtítulo para ajustarlo a un video distinto. La velocidad del cronómetro es un
multiplicador de tiempos aplicado a los tiempos de las líneas del script, para estirar o
comprimir la duración de los subtítulos:
-Una velocidad mayor a 100% reducirá la duración global, y los subtítulos aparecerán antes
que lo indicado en el tiempo escrito en la línea (mientras más avanzamos en el script, más lejos
del valor original aparecerán los subtítulos).
-Una velocidad menor a 100% aumentará la duración de los subtítulos, y los subtítulos
aparecerán después que lo indicado en el tiempo escrito en la línea (mientras más avanzamos
en el script, más lejos del valor original aparecerán los subtítulos).
Con esta utilidad se pueden sincronizar los subtítulos que al principio del video están bien y a
medida que éste avanza van desfasándose. Pero es más fácil hacerlo con un editor de
subtítulos que trasteando con estos números
En la práctica por lo tanto, es más fácil ajustar los tiempos con un editor de subtítulos, y dejar
este valor en el valor por defecto, por defecto se pone "100,0000" que es exactamente 100%.
Por lo tanto normalmente se escribe "Timer: 100,0000"
WrapStyle: Cómo se corta la línea cuando el texto del subtítulo ocupa más de una línea. Sus
valores (que son los mismos del comando q) pueden ser:
* 0: Cortar automáticamente, cuando no quedan las dos líneas exactamente del mismo
tamaño, cortar de forma que la primer línea sea más ancha. Sólo \N fyerza los cortes de línea.
* 1: Cortar automáticamente sólo cuando en la primer línea ya no entra más texto. Sólo \N
fyerza los cortes de línea.
* 2: No cortar la línea de subtítulo aunque éste se extienda más allá de la pantalla. Tanto \n
como \N fuerzan los cortes de línea.
* 3: Cortar automáticamente como en 0, pero la línea de abajo es la más ancha.
En general se utiliza "WrapStyle: 0" Cuando hay una línea de texto en el script que no se
quiere cortar, se puede modificar el wrapstyle de esa línea con el comando \q2
Con las versiones nuevas de los filtros que reproducen subtítulos se agregó nueva información
en el encabezado:
ScaledBorderAndShadow: Cómo calcular el tamaño del borde y de la sombra. Sus valores
pueden ser 0 (que es el valor por defecto cuando no se especifica, y quiere decir que se
calculan a partir de la resolución del video) o 1 o "yes" (que se calculen según la resolución
dada por la máscara superpuesta al video dada por PlayResX y PlayResY). Por supuesto que si
queremos un script "multi-resolución" necesitamos que este valor sea 1 o "yes", de forma que
en un video tamaño VCD o tamaño HDTV, se vea el mismo tamaño de borde y sombra. Por lo
tanto en general conviene poner "ScaledBorderAndShadow: yes"
En resumen
Se puede decir que lo que hoy en día es "modificable" del encabezado de un script en SSA/ASS,
es la información de los autores del subtítulo (los créditos), y el PlayResX y/o el PlayResY (lo
demás está obsoleto o conviene dejarlo siempre igual).
Además, también en el encabezado como en todo el resto del script, se pueden agregar
comentarios si se empieza la línea con un punto y coma, y algunos editores de subtítulos
aprovechan esa opción para agregar información.
-------------------------
Particularidades del Aegisub. El Aegisub además agrega más información en la parte del
encabezado, que es para uso de ese programa, y no es en absoluto obligatoria para reproducir
el subtítulo, sólo sirve para que el Aegisub trabaje con él:
Video File: La ubicación del archivo de video que estamos utilizando para editar nuestro
subtítulo (solamente sirve en nuestra computadora, claro, porque en todas va a estar en un
lugar diferente y con un nombre diferente). De esta forma la segunda vez que abrimos el
subtítulo, el Aegisub ya sabe a qué video se corresponde y puede abrirlo también sin preguntar
dónde está por segunda vez.
Video Aspect Ratio: para uso en el visor de video del Aegisub
Video Zoom: para uso en el visor de video del Aegisub
Video Position: para uso en el visor de video del Aegisub
Además, si no se ingresa ningún video en el programa, el programa pone automáticamente los
valores de PlayResX y PlayResY por defecto:
PlayResX: 640
PlayResY: 480
Que son los valores de la resolución del VCD.
Como ejemplo del encabezado de un subtítulo hecho con el Aegisub abierto con el block de
notas tenemos:
[Script Info] ; Script generated by Aegisub 2.1.8 ; http://www.aegisub.org/ Title: Neon Genesis Evangelion Episodio 01 (castell ano neutro) Original Script: RoRo Script Updated By: versión 3.02 (tiempos carteles) ScriptType: v4.00+ Collisions: Normal WrapStyle: 0 PlayResX: 800 PlayResY: 600 PlayDepth: 0 Timer: 100,0000 ScaledBorderAndShadow: yes Video File: Evangelion Renewal - 01.mkv Video Aspect Ratio: 0 Video Zoom: 6 Video Position: 33250
Estilo de Línea de un subtítulo SSA/ASS La sección siguiente a la del encabezado es la que comienza con el título [V4+ Styles] en un ASS (o [V4 Styles] en un SSA). Es en esta sección donde se definen los "estilos de línea", y se ve más o menos como sigue:
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: DefaultVCD,Arial,30,&H00B4FCFC,&H00B4FCFC,&H80000008,&H80000008,-1,0,0,0,100,100,0,0,1,2,1,2,30,30,30,0 Style: televVCD,Arial,28,&H00FEFECD,&H00FEFECD,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,1,8,65,65,30,0 Los marcados de color verde están habilitados en el formato ASS, el resto ya estaba en el formato SSA. En los "estilos de línea" se definen el tipo de letra, tamaño de letra, color, características
del borde, y la posición y alineación de los subtítulos. Se pueden crear todos los "estilos de línea" que se necesiten, por ejemplo es común que los fansubs tengan un estilo de línea para cada personaje. Esta sección puede ser interpretada como una grilla de filas y columnas, donde cada renglón representa una fila, y cada coma divide a una columna. La primer fila es la que le da el nombre a todas las columnas, las filas siguientes son las de los estilos. La primer línea, que da nombre a las columnas, es la que empieza con Format: y todas las líneas de estilo comienzan con "Style:" ¿Cómo se encuentra un valor dado? En el ejemplo aquí dado, el "Fontsize" (tamaño de fuente) del estilo llamado DefaultVCD, debe estar en la celda que se corresponde a la tercer columna de la fila con estilo de ese nombre, es decir, vale 30 puntos. Este formato de tabla en la parte de los estilos, donde cada campo está definido en la primer fila donde se dan los nombres de las columnas, permite agregar campos en futuras versiones del subtítulo, sin perder compatibilidad con versiones antiguas del software que lee el script, ya que el software igual encuentra los campos que necesita aunque el orden sea alterado. Los "estilos de línea" se utilizarán posteriormente cuando se escriban las líneas de diálogos del script. Además de los momentos de aparición y desaparición de cada línea de subtítulo, y el texto contenido en él, se debe especificar con qué estilo de línea el subtítulo debe ser mostrado. Nota: los programas de edición de subtítulos como el Aegisub ponen toda esta información automáticamente, y en el Aegisub por ejemplo, no tenemos que escribir los estilos "a mano" como se ve en el bloc de notas, sino que se definen en la barra de herramientas, en subtitles > styles manager. Ese programa también permite almacenar los estilos en el programa en sí además de en el script, lo cual es una funcionalidad muy cómoda cuando queremos hacer más de un script con los mismos estilos (por ejemplo cuando hacemos una serie de varios capítulos). A continuación la definición de cada columna (se marcará en verde la columna que se definirá): Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto, Comic Sans MS, 48, &H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 Name: El nombre del estilo. Podemos poner el nombre que queramos, con la única salvedad de que no se debe escribir con comas.
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto, Comic Sans MS, 48, &H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 Fontname: El tipo de fuente, escrito tal como se lo encuentra en windows/fonts. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 Fontsize: El tamaño de la fuente usada. Este valor depende de lo que hayamos puesto en el encabezado, en la fila que comienza con PlayResY:, por lo tanto el mismo número puede significar un tamaño de letra diferente con un PlayResY diferente. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE, &HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 PrimaryColour: El color del estilo, se puede colocar los colores de dos formas. La forma hexadecimal: los colores son definidos por un número hexadecimal, por ejemplo el &H00ffff es el amarillo La forma numérica: por ejemplo el mismo amarillo es el 65535 Yo recomiendo que utilicen los colores en numeración hexadecimal ya que sera útil más adelante en los códigos de sustitución. Los programas de edición de subtítulos también suelen trabajar con la forma hexadecimal. Aquí les pongo una pequeña paleta para que utilicen los colores con numeración hexadecimal, de todas formas en los programas modernos de edición de subtítulos esta paleta ya está incorporada:
a1=&HFFFFFF a2=&HE0E0E0 a3=&HC0C0C0 a4=&H808080 a5=&H404040 a6=&H000000 b1=&HC0C0FF b2=&H8080FF b3=&H0000FF b4=&H0000C0 b5=&H000080 b6=&H000040 c1=&HC0E0FF c2=&H80C0FF c3=&H0080FF c4=&H0040C0 c5=&H004080 c6=&H404080 d1=&HC0FFFF d2=&H80FFFF d3=&H00FFFF d4=&H00C0C0 d5=&H008080 d6=&H004040 e1=&HC0FFC0 e2=&H80FF80 e3=&H00FF00 e4=&H00C000 e5=&H008000
e6=&H004000 f1=&HFFFFC0 f2=&HFFFF80 f3=&HFFFF00 f4=&HC0C000 f5=&H808000 f6=&H404000 g1=&HFFC0C0 g2=&HFF8080 g3=&HFF0000 g4=&HC00000 g5=&H800000 g6=&H400000 h1=&HFFC0FF h2=&HFF80FF h3=&HFF00FF h4=&HC000C0 h5=&H800080 h6=&H400040 Deben tener cuidado cuando sacan los colores de programas como Photoshop y Flash MX, ya que en estos programas el azul y el rojo están intercambiados, o sea en estos programas el azul se define como &H0000FF, y el rojo como &HFF0000, pero lo solucionan intercambiando los dos códigos de cada extremo. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC, &H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 SecondaryColour: Sirve sólo cuando se hacen karaokes. Es el color al que cambia el color del texto cuando pasa el karaoke por él. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 TertiaryColour: Esto en el formato ASS se llama OutlineColor. Aquí se define el color
del borde del subtítulo. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041, 1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 BackColour: En el formato SSA esto define el color del borde del subtítulo (lo mismo que OutlineColor en el formato ASS), y en el formato ASS define el color de la sombra (sí, qué desgracia que han puesto el mismo nombre para dos cosas distintas en los dos formatos). Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1, 1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 Bold: Si el texto estará en negrita, si es así vale "1" o si no será "0". Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 Italic: Si el texto será cursiva (o itálica) "1" o si no lo será "0". Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 Underline: Si el texto será subrayado "1" o si no lo será "0" (habilitado en el formato ASS).
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 Strikeout: Si el texto será tachado "1" o si no lo será "0" (habilitado en el formato ASS). Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 ScaleX: Modifica el ancho de la fuente, el valor se debe poner en porcentaje (habilitado en el formato ASS). Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100, 0,0.00,1,2,2,8,20,20,20,0,1 ScaleY: Modifica el alto de la fuente, el valor se debe poner en porcentaje (habilitado en el formato ASS). Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 Spacing: Espacio entre letras en píxeles. Habilitado sólo en el formato ASS. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour,
BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1
Imagen explicativa:
Angle: Ángulo del subtítulo con respecto a la "posición normal" (la horizontal, la de siempre, que se define como de un ángulo de cero grados), en grados. Cambia la orientación del subtítulo con respecto al eje "z" (un eje que corta al video como si lo clavara). Sólo existe en el formato ASS. Como muestra la imagen de abajo, el valor se debe colocar según el ángulo que se quiera obtener:
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 BorderStyle: Estilo de borde, que puede ser: "1", el subtítulo posee un borde en píxeles que rodea todo el texto. "3", el subtítulo se encuentra dentro de un rectángulo (antes el vsfilter no tenía habilitado el rectángulo pero ahora lo hace).
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 Outline: Tamaño del borde del texto en píxeles. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,8,20,20,20,0,1 Shadow: Tamaño de la sombra del texto en píxeles.
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,2,20,20,20,0,1 Alignment: Alineación. Es decir, cómo se alineará el subtítulo con respecto a la posición en la que debe ubicarse en la pantalla. Los valores pueden ser 1=superior izquierda, 2=superior centrado (es la alineación por defecto), 3=superior derecha, 5=inferior izquierda, 6=inferior centrado, 7=inferior derecha, 9=centro izquierda, 10=centro medio, 11=centro derecha Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,2,20, 20,20,0,1 MarginL: Margen izquierdo en píxeles. Esta es la distancia desde el límite izquierdo de la pantalla. Si el subtítulo se pasa de este margen, se cortará la línea y seguirá en una segunda línea. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,2,20,20,20,0,1 MarginR: Margen derecho en píxeles. Esta es la distancia desde el límite derecho de la pantalla. Si el subtítulo se pasa de este margen, se cortará la línea y seguirá en una segunda línea. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR,MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans
MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,2,20,20,20,0,1 MarginV: Margen vertical en píxeles. Es la distancia desde el límite vertical (y horizontal) de la pantalla. Esto define la posición en que saldrán los subtítulos con respecto al borde superior y también con respecto al borde inferior. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR,MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,2,20,20,20,0,1 AlphaLevel: Transparencia de un subtítulo. El valor oscila entre 0 que es lo más opaco posible, y 250 que es totalmente transparente. Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR,MarginV, AlphaLevel, Encoding Style: Texto,Comic Sans MS,48,&H7BD1FE,&HBCECEC,&H1B3041,&H1B3041,1,1,0,0,100,100,0,0.00,1,2,2,2,20,20,20,0,1 Encoding: Codificación de la fuente. Sirve cuando la fuente está codificada en diferente escritura, para la escritura "normal" (que se usa en el mundo occidental, como la de nuestro idioma) se encuentra en cero, y para la escritura japonesa debe estar en 128.
Una vez que han escrito línea de dialogo solo con la tecla Enter/Intro o el botón confirmar queda en la línea de subtitulo.
Comandos de Sustitución utilizados en los eventos
de líneas de diálogo
En esta sección se explica cómo se puede sustituir el estilo de un texto de subtítulos para que
sea mostrado en la pantalla de otra forma.
Todos los comandos de sustitución deben ir encerrados en llaves "{ }", excepto "\N" que debe
ir sin llaves, y antes de ellos debe ir un backslash "\".
Estos comandos pueden ser cancelados a mitad de la línea de subtítulo, para que sólo sea
mostrado en una parte del texto del subtítulo.}
Los comandos de sustitución son los siguientes:
Nota1: <0> significa que son los únicos valores que se pueden colocar en el determinado
comando. Pueden ser utilizados varios comando a la vez
Nota2:Todos los comandos de sustitución deben ir antes del subtítulo que se quiera modificar,
como se muestra abajo:
Dialogue:
Marked=0,0:00:52.70,0:00:55.10,Cancion1,NTP,0000,0000,0000,!Effect,{\bord2\be1\fscx90}D
espertándome por la mañana.
\N Este comando hace que la línea sea cortada siempre.
Ejem: Esta es la primera línea\Ny esta es la segunda línea.
\n Este comando hace que la línea sea cortada o no, dependiendo del valor de "wrapstyle" que
pusimos en el encabezado (o de si modificamos la línea con \q, que modifica al wrapstyle).
\h Este comando inserta un espaciado entre caracteres que no se puede cortar. Si en el
"wrapstyle" permitimos que se corte la línea automáticamente, nunca lo hará por este
espaciado.
A partir de aquí todos los comandos van entre llaves { }:
\b<0> Bold: Esto determina si el texto estará en negrita o no.
Ejem: {\b1}Esto está en negrita, {\b0}y esto no está en negrita.
Nota: algunas fuentes pueden soportar valores mayores a 1.
\i<0> Italic: Esto determina si el texto estará en cursiva o no.
Ejem: {\i1}Esta palabra esta en cursiva.
\u<0> Underline: Esto determina el subrayado en un subtítulo.
Ejem. {\u1}Este texto está subrayado.
\s<0> Strikeout: Esto determina el tachado en un subtítulo.
Ejem. {\s1}Esta frase está tachada.
\bord Bord: Esto determina el grosor del borde. 0= significa que no tiene borde.
Ejem. En este texto a partir de {\bord0}aquí no tiene borde{\bord5} y aquí tiene un borde
grueso.
\shad Shadow: Esto determina el tamaño de la sombra que tendrá el subtitulo, 0 = significa
que no tiene sombra.
Ejem. {\shad10}Este texto tiene una sombra grande.
\be<0> Blur Edges: Esto determina la distorsión del borde, esto se aplica al borde del subtitulo
ya sea el texto, borde, y sombra.
Ejem. {\be1\bord7}Aquí el código distorsiona el borde, {\be1\bord0}y aquí el texto.
En la imagen muestra cómo "be" altera el texto haciéndolo un poco borroso (nota: se nota
muy poco en comparación al nuevo comando \blur). Ahora \be puede tener valores más altos
que 1.
\fnFontname: Aquí se debe poner el nombre de la fuente que aparecerá en la pantalla, cuando
se usa una fuente que no está instalada en el sistema, la fuente por defecto sale en Arial.
Ejem. {\fnArial}Esta es una mezcla {\fnCourier New}de dos fuentes.
\fsFontsize: Esto determina el tamaño de la fuente.
Ejem. {\fs16}Este texto es pequeño, {\fs66}este texto es grande.
\fsc<x>Fontscale: Esto determina la escala de tamaño del subtítulo, x = escala horizontal, y =
escala vertical, el valor debe ser colocado en porcentajes.
Ejem. {\fscx130}Este texto es ancho, {\fscy130}este texto es largo.
\fspFontspacing: Esto determina la distancia entre las letras, el valor es determinado en
píxeles.
Ejem: {\fsp30}Las letras de este texto están separadas.
\fr<x>Fontrotate: Esto determina el ángulo que tendrá el subtitulo respecto a uno o varios
ejes, el valor debe ser introducido según el ángulo que se le quiera dar.
Ejem. {\frz30}Este texto tiene un ángulo de 30º en el eje z.
{\frx30}Este texto tiene un ángulo de 30º en el eje x.
{\fry30}Este texto tiene un ángulo de 30º en el eje y.
{\frz30\frx30\fry30}Y este texto tiene un ángulo de 30º en todos los ejes.
En la imagen se ve que el texto Green Green esta en con una inclinación en el eje y.
\feFont encoding: El número que se introduce después de "fe" especifica el código de fuente
del carácter, 1 = determina los caracteres de nuestra escritura.
Ejem. Cielo en kanji se escribe {\fe128}‹ó{\fe1}, y en romanji se escribe Sora
\cColour: Este código determina el color que tendrá el subtítulo, aquí solamente se deben
poner colores en numeración hexadecimal. Sinónimo \1c
También son utilizados los códigos "\2c, \3c, \4c" que determinan el color secundario, el color
del borde, y el color de la sombra respectivamente.
Ejem. En este texto desde {\c&H000000\3c&Hffffff\4c&Hc0c0c0}este lugar se cambian los
colores.
El color secundario es el color en el que aparece el karaoke para cambiar al color primario.
\a Alignment: Este código determina la posición en la que saldrá el subtítulo en la pantalla.
El valor 1 determina que el subtitulo aparecerá en la parte inferior izquierda.
El valor2 determina que el subtitulo aparecerá en la parte inferior central.
El valor 3 determina que el subtitulo aparecerá en la parte inferior derecha.
Si a los valores anteriores se les adiciona 4 los subtítulos aparecerán en la parte superior.
Si se les adiciona 8 aparecerán en la parte central.
Ejem. {\a5}Este es un subtítulo en la parte superior izquierda.
{\a10}Este es un subtítulo en la parte central.[/color]
\an Alignment: Éste también es un comando de alineación, alternativo al anterior. En éste, los
subtítulos se acomodan según el teclado numérico, como muestra la imagen. Pero les aconsejo
que utilicen los valores del comando "\a", ya que este comando utiliza los mismos valores que
el de alineación en la parte de "Estilos de Línea".
Ejem. {\an5}Este subtítulo está alineado por el comando "\an".
[color=red]\k Karaoke: Este comando determina el karaoke que se verá en la pantalla, los
valores se encuentran en centésimas de segundo.
Ejem. {\k94}Esta {\k48}es {\k24}una {\k150}línea {\k94}en karaoke.
también se puede utilizar "\kf" o "K", "\ko" el comando "kf" o "K" hace que las letras se
cambien de a poco a otro color.
Ejem.{\kf94}Esta {\kf48}es {\kf24}una {\K150}línea {\K94}en karaoke.
El código "ko" determina que durante el karaoke sólo aparezcan las letras sin borde y a medida
que éste avanza aparecen los bordes y cambia de color.
Ejem. {\ko94}Esta {\ko48}es {\ko24}una {\ko150}línea {\ko94}en karaoke.
En las imágenes de arriba se muestra un ejemplo de un karaoke normal, pero con ayuda de los
comandos de sustitución se pueden realizar karaokes como los de las imágenes de abajo.
Para realizar un karaoke de este tipo es necesario que el karaoke lo hagan para cada letra
como muestra el ejemplo de abajo
{\kf13}S{\kf14}W{\kf13}E{\kf30}E{\kf30}T {\kf50}m{\kf50}e{\kf50}n{\kf50}...
Y utilizando una buena gama de colores como la de la imagen, y usando los comandos de
sustitución a cada karaoke se le cambia el color primario:
{\c&H??????}{\kf13}S{\c&H??????}{\kf14}W{\c&H??????}{\kf13}E{\c&H??????}{\kf30}E{\c&Hc
??????}{\kf30}T
{\c&H??????}{\kf50}m{\c&H??????}{\kf50}e{\c&H??????}{\kf50}n{\c&H??????}{\kf50}...
Y listo con eso tienen un karaoke como muestra el ejemplo.
\alpha&H<0>Esto determina la transparencia de un subtítulo, para todo el subtítulo se utiliza
"\alpha&H" y para los colores, primarios, secundarios, borde y sombra se usa "\1a&H, \2a&H,
\3a&H, \4a&H" respectivamente.
FF es un valor en sistema Hexadecimal, que sería igual a 255 en sistema decimal.
Ejem. En este texto desde {\alpha&HFF}aquí las letras son transparentes.
\q<número>Esto se utiliza para cambiar el "wrapstyle" (estilo de corte de línea)
Puede valer 0, 1, 2, 3. Valores similares al "wrapstyle".
\rEsto se utiliza para terminar el efecto de un comando.
Ejem. {\i1}Esta frase es cursiva hasta aquí, {\r}luego el texto es normal.
Nota: este comando es de terminación de todos los comandos, a excepción de "\k, \a" y
tambien "\pos" o la función "\move" que no pueden ser terminados por ningún comando.
\r<estilo> Se utiliza para terminar todos los comandos si los hubiera, y además poner
determinado estilo.
Ejem. Esta frase tiene aquí el estilo especificado en la línea, {\rtelevVCD}y aquí el estilo
llamado televVCD.
[color=blue]Funciones
\t([<t1>, <t2>, ] [<aceleración>,] <estilos>)
Este comando determina la animación de un subtítulo.
"t1, t2" determinan el principio y el final de la animación, el tiempo esta determinado en
milisegundos.
"aceleración" determina la aceleración a la cual se desarrolla la animación, esto es opcional.
"estilos de cambio" determina el estilo de animación que se desea dar al texto, los estilos que
se pueden modificar aquí son "\c, \alpha, \fs, \fr[x,y,z], \fsc[x,y], \fsp, \bord, \shad,"
Ejem.
{\t(1000,2000,\fscx70\fscy130)}{\t(2000,3000,\fscx130\fscy70)}{\t(3000,4000,\frx90)}Este
texto está animado.
En el ejemplo pueden notar que di varios efectos a la animación, tienen que tener cuidado ya
que este comando es muy pesado para máquinas lentas por lo que recomiendo que lo
apliquen en máquinas Pentium IV.
Nota: este comando ignora las colisiones y si no se determina la posición en la que saldrá
puede superponerse a otro subtítulo
Este comando es muy utilizado para desarrollar karaokes especiales. Para desarrollar un
karaoke de esta forma primero se debe realizar el karaoke.
El karaoke debe ser realizado para cada sílaba para que así con el código "\t" se pueda dar un
efecto apropiado
A continuación está un ejemplo de cómo desarrollar un karaoke con este efecto:
Ejemplo. Primero se debe desarrollar el karaoke para cada sílaba como se muestra abajo
{\kf110}Sa{\kf110}a...{\kf100} {\kf25}da{\kf25}i{\kf25}ji {\kf120}to...
Una vez realizado el karaoke se deben utilizar los valores del karaoke, ojo, tomando en cuenta
que los valores del mismo están en centésimas de segundo, ahora se puede colocar el
comando para desarrollar una animación en el karaoke
Ahora vamos a dar el efecto de que a medida que avance el karaoke las letras se vayan
inclinando hasta desaparecer:
{\kf110}{\t(0,1100,\frx90)}Sa{\r}{\kf110}{\t(1100,2200,\frx90)}a...{\r}{\kf100}
{\kf25}{\t(3200,3450,\frx90)}da{\r}{\kf25}{\t(3450,3700,\frx90)}i{\r}{\kf25}{\t(3700,3950,\frx9
0)}ji {\r}{\kf120}{\t(3950,5150,\frx90)}to...
Como muestra el ejemplo el karaoke que estaba "{\kf110}" se lo usa de la forma
"{\t(0,1100,.....)}" cambiando 110 a 1100, y en la siguiente sílaba en el karaoke se encuentra
"{\kf110}" y en la animación esta "{\t(1100,2200,.....)}" como pueden notar a diferencia del
karaoke donde los tiempos se los ponen normalmente en la animación se los debe ir sumando.
Otro apunte: notarán que cuando se termina cada animación se finaliza con "{\r}" esto indica
que la animación termina en ese lugar, ya que si no se pone el comando \r, la animación
realizará el cambio a todo el texto.
Bueno este sólo es un pequeño ejemplo de cómo usar este comando para realizar karaokes ya
que como mencioné antes, se pueden realizar cambios de diferente tipo.
Con este efecto se pueden realizar karaokes como muestra la imagen:
\move(<x1>, <y1>, <x2>, <y2>[, <t1>, <t2>])
Este comando nos permite desarrollar subtítulos que se mueven por la pantalla, muy útil
cuando hay un cartel que se mueve en el video.
Como en el comando anterior, éste también ignora las colisiones.
<x1>, <y1> definen la posicion "x , y" iniciales.
<x2>, <y2> definen la posicion "x , y" finales.
<t1>, <t2> define el inicio y el fin del movimiento, esto es opcional.
ejem. {\move(100,100,500,500,1000,3000)}Este texto se está moviendo.
En la siguiente imagen se muestra cómo se puede mover un subtítulo.
\pos(<x>, <y>)
Con esta función se puede colocar el subtítulo en cualquier lugar de la imagen, y también se lo
puede utilizar para encontrar las coordenadas iniciales y finales para la función "\move".
Los valores de "x, y" tienen el punto "0" en la parte superior izquierda de la pantalla, como
muestra la imagen, hacia la derecha estan los "x" positivos, y hacia abajo los "y" positivos.
Las funciones "\t, \move, \pos" ignoran las colisiones.
Ahora mostraré cómo se hace el karaoke de las imágenes que están a continuación:
En este karaoke se utilizan las funciones "\t, \move y \pos" y los siguientes comandos de
sustitución: "\fr<x>, \fsc<x>,\shad, \1a&H y \3c&H", antes expliqué qué es cada comando y
para qué sirve, véanse los "comandos de sustitución".
Aquí esta el estilo de línea que utilizaré para el karaoke. Lo anoto porque para dar el efecto de
las letras que salen del karaoke se necesita que la función "\pos" trabaje al mismo tiempo con
la alineación, la fuente, el tamaño de fuente, la última a su vez depende de la escala del estilo
de línea o PlayResY, que se encuentra en el encabezado del subtítulo:
[Script Info]
; This is a Sub Station Alpha v4 script.
; For Sub Station Alpha info and downloads,
; go to http://www.eswat.demon.co.uk/
; or email [email protected]
Title: <untitled>
Original Script: <unknown>
ScriptType: v4.00
Collisions: Normal
PlayResY: 600
PlayDepth: 0
Timer: 100.0000
Aqui utilicé un PlayResY de 600 píxeles.
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour,
BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV,
AlphaLevel, Encoding
Style: Ejemplo,Monotype
Corsiva,42,&H98A348,&HA7767E,&HF5FDF2,&HF5FDF2,1,0,1,2,0,6,30,30,30,0,0
Ojo marque de color "rojo" la parte de la sombra del subtítulo en "0" para que así con los
comandos de sustitución demos el efecto en el karaoke que la sombra crezca, y lo que está en
azul es la alineación del subtítulo, lo puse en "6" para que así el subtítulo aparezca en la parte
superior de la pantalla y así en el efecto de las letras que salen del subtítulo se muevan hacia
abajo y no hacia arriba donde ya empezarían a salirse de la imagen.
Dialogue: Marked=0,0:01:44.47,0:01:44.97,Ejemplo,,0000,0000,0000,,
{\move(400,30,400,0,0,500)}
{\t(0,250,,\frx80\fry80\frz90)}{\t(250,500,,\frx160\fry160\frz180)}Kitto meguri awaseta
Dialogue: Marked=0,0:01:44.97,0:01:45.47,Ejemplo,,0000,0000,0000,,{\frx160\fry160\frz180}
{\move(400,0,400,30,0,500)}
{\t(0,250,,\frx300\fry240\frz270)}{\t(250,500,,\frx360\fry360\frz360)}Kitto meguri awaseta
Para dar el efecto de movimiento en el subtítulo se debe hacer que éste aparezca un poco
antes, en el ejemplo hice que aparezca 1 segundo antes, para que así en ese tiempo le de el
efecto de rotación y movimiento, y se debe terminar el subtítulo en ese tiempo, ya que si se lo
ponen con todo el karaoke, debido al comando "\r" limitará el movimiento de rotación sólo a
la primera sílaba que en este caso seria "Ki".
Una vez dado el efecto del movimiento se termina es subtítulo en este caso sólo dura 1
segundo.
Ahora vamos al karaoke:
Como ya expliqué antes, para realizar un karaoke de este tipo primero se tiene que realizar un
karaoke para cada sílaba como se muestra abajo:
{\kf38}Ki{\kf35}tto {\kf30}me{\kf29}gu{\kf33}ri {\kf33}a{\kf25}wa{\kf25}se{\kf25}ta
Y con los tiempos conseguidos en el karaoke se los utiliza en las funciones, ojo, considerando
que las funciones trabajan en milésimas de segundo y el karaoke en centésimas de segundo.
Ahora se aplican los comandos "\fsc<x>, \shad". Con la primera función se da el efecto de
crecimiento en el karaoke, y en la animación incluso debido a que las sílabas crecen, todo el
subtítulo se mueve con el karaoke, con el siguiente comando se da el efecto de que la sombra
crezca a medida que avanza el karaoke.
Ojo, tienen que tener cuidado al hacer la suma de los milisegundos ya que con tanto código
uno tiende a equivocarse, como un consejo en el último tiempo marcado en la función aparece
el tiempo en el que el subtítulo aparecerá en la pantalla, este tiempo y el tiempo del subtítulo
tienen que ser parecidos, mejor si son iguales.
En el ejemplo el último tiempo marcado por la función es "3730" que está en milisegundos en
realidad el tiempo es "3.730"
Ahora el tiempo del subtítulo lo sacas de la resta del tiempo final menos el tiempo inicial.
Aquí el tiempo inicial es "44.47" y el final es "48.40" haciendo la resta nos da "3.93" como ven
los tiempos son casi parecidos.
Dialogue: Marked=0,0:01:45.47,0:01:48.40,Ejemplo,,0000,0000,0000,,
{\t(1000,1190,\fscx110\fscy110}{\t(1190,1380,\fscx100\fscy100}{\t(1000,1380,\shad4}{\kf100}
{\kf38}Ki{\r}
{\t(1380,1555,\fscx110\fscy110}{\t(1555,1730,\fscx100\fscy100}{\t(1380,1730,\shad4}{\kf35}t
to {\r}
{\t(1730,1880,\fscx110\fscy110}{\t(1880,2030,\fscx100\fscy100}{\t(1730,2030,\shad4}{\kf30}
me{\r}
{\t(2030,2175,\fscx110\fscy110}{\t(2175,2320,\fscx100\fscy100}{\t(2030,2320,\shad4}{\kf29}g
u{\r}
{\t(2320,2485,\fscx110\fscy110}{\t(2485,2650,\fscx100\fscy100}{\t(2320,2650,\shad4}{\kf33}r
i {\r}
{\t(2650,2815,\fscx110\fscy110}{\t(2815,2980,\fscx100\fscy100}{\t(2650,2980,\shad4}{\kf33}a
{\r}
{\t(2980,3105,\fscx110\fscy110}{\t(3105,3230,\fscx100\fscy100}{\t(2980,3230,\shad4}{\kf25}
wa{\r}
{\t(3230,3355,\fscx110\fscy110}{\t(3355,3480,\fscx100\fscy100}{\t(3230,3480,\shad4}{\kf25}s
e{\r}
{\t(3480,3605,\fscx110\fscy110}{\t(3605,3730,\fscx100\fscy100}{\t(3480,3730,\shad4}{\kf25}t
a
Bueno eso es todo para hacer el karaoke del subtítulo
Ahora explicaré como se da el efecto de las letras que salen del karaoke, en esta parte se
utiliza las funciones "\t" y "\pos"
Ahora como muestra el ejemplo, cada sílaba tiene que tener su propio tiempo de duración
para que así sólo la sílaba que participa en el momento del karaoke se mueva y así no se afecte
a todo el subtítulo.
En la función "\t" se utiliza el comando de escala como en el karaoke pero aquí con una escala
mayor.
Como cada sílaba tiene su propio tiempo entonces el tiempo en la función se le realiza según el
tiempo que se obtuvo en el karaoke para dicha sílaba.
Los tiempos de las sílabas los consiguen sumando los tiempos del karaoke ya que el tiempo del
karaoke y del subtítulo están en centésimas de segundo, ahora para que solamente aparezca
nlos bordes de las letras y todo lo demás sea transparente, se utiliza el comando "\a" que nos
da el efecto de transparencia al color primario.
Dialogue:
Marked=0,0:01:45.47,0:01:45.85,Ejemplo,,0000,0000,0000,,{\t(0,190,\fscx110\fscy110}{\t(190
,380,\fscx100\fscy100}{\pos(270,30)}{\1a&Hffffff\3c&Hffffff}Ki
Dialogue:
Marked=0,0:01:45.85,0:01:46.20,Ejemplo,,0000,0000,0000,,{\t(0,175,\fscx110\fscy110}{\t(175
,350,\fscx100\fscy100}{\pos(305,30)}{\1a&Hffffff\3c&Hffffff}tto
Dialogue:
Marked=0,0:01:46.20,0:01:46.50,Ejemplo,,0000,0000,0000,,{\t(0,150,\fscx110\fscy110}{\t(150
,300,\fscx100\fscy100}{\pos(353,30)}{\1a&Hffffff\3c&Hffffff}me
Dialogue:
Marked=0,0:01:46.50,0:01:46.79,Ejemplo,,0000,0000,0000,,{\t(0,145,\fscx110\fscy110}{\t(145
,290,\fscx100\fscy100}{\pos(390,30)}{\1a&Hffffff\3c&Hffffff}gu
Dialogue:
Marked=0,0:01:46.79,0:01:47.12,Ejemplo,,0000,0000,0000,,{\t(0,165,\fscx110\fscy110}{\t(165
,330,\fscx100\fscy100}{\pos(415,30)}{\1a&Hffffff\3c&Hffffff}ri
Dialogue:
Marked=0,0:01:47.12,0:01:47.45,Ejemplo,,0000,0000,0000,,{\t(0,165,\fscx110\fscy110}{\t(165
,330,\fscx100\fscy100}{\pos(443,30)}{\1a&Hffffff\3c&Hffffff}a
Dialogue:
Marked=0,0:01:47.45,0:01:47.70,Ejemplo,,0000,0000,0000,,{\t(0,125,\fscx110\fscy110}{\t(125
,250,\fscx100\fscy100}{\pos(472,30)}{\1a&Hffffff\3c&Hffffff}wa
Dialogue:
Marked=0,0:01:47.70,0:01:47.95,Ejemplo,,0000,0000,0000,,{\t(0,125,\fscx110\fscy110}{\t(125
,250,\fscx100\fscy100}{\pos(505,30)}{\1a&Hffffff\3c&Hffffff}se
Dialogue:
Marked=0,0:01:47.95,0:01:48.20,Ejemplo,,0000,0000,0000,,{\t(0,125,\fscx110\fscy110}{\t(125
,250,\fscx100\fscy100}{\pos(535,30)}{\1a&Hffffff\3c&Hffffff}ta
Bueno con todo eso realizamos un karaoke con animación.
Traten de realizar el karaoke en forma ordenada, ya que si no lo hacen debido a tanto código y
letra pueden confundirse. En el momento de utilizar la función "\t" es cuando más se tiende a
equivocarse.
Ahora ustedes pueden realizar el karaoke que deseen utilizando los comandos de sustitución,
solo necesitan un poco de imaginación para realizarlos, éste es un ejemplo de lo que se puede
hacer con las funciones en especial con la funcion "\t":
\org(<x>, <y>)
Mueve el origen de rotación (x,y). Esto es útil cuando los subtítulos se mueven en rotación.
\fade(<a1>, <a2>, <a3>, <t1>, <t2>, <t3>, <t4>)
Este comando nos permite crear subtítulos que se desvanezcan.
"a1" Nos define el valor alpha antes del "t1"
"a2" Nos define el valor alpha entre los tiempos "t2" y "t3"
"a3" Define el valor alpha despues de "t4"
Loa valores de alpha están limitados entre 0 y 250, siendo 0 lo mas nítido, y 250 lo más
transparente.
<t1>, <t4> El comienzo y el fin de la animación, el tiempo se coloca en milisegundos.
<t1> - <t2> Es el tiempo en el cual la animación irá del valor alpha "a1" al valor alpha "a2".
<t2> - <t3> Es el tiempo en el cual la animación se mantendrá en el valor alpha "a2".
<t3> - <t4> Es el tiempo en el cual la animación irá del valor alpha "a2" al valor alpha "a3".
Esta opcion es útil para poner subtítulos en un video donde los carteles van desapareciendo.
Ejm. {\fade(250,10,250,0,1000,3000,4000)}Este texto está animado con el comando "\fade".
\fad(<t1>, <t2>)
Éste también es un comando para que las letras se desvanezcan, pero es más simple, como
ven, a diferencia de la función "\fade", en esta función no se puede elegir el nivel de
transparencia del subtítulo.
<t1> Es el tiempo en el cual el subtítulo aparecerá.
<t1> - <t2> Es el tiempo en el cual el subtítulo permanecerá nítido.
<t2> Desde este tiempo el subtítulo desaparece.
Ejm. {\fad(1000,3000)}Este texto está animado con la función "\fad".
Funciones Adicionales
\org(x1,y1) Básicamente esta función crea un punto de origen, pero este punto de origen es
creado para tener un punto de referencia de rotación cuando se usan las funciones \frx, \fry,
\frz.
Cuando se usa esta función, lo que se hace es que lo que se pone a girar, gira pero siempre a
una misma distancia de ese punto, es algo confuso así que lo mostraré con unas imagenes:
Los puntos rojos es una aproximación de en dónde se encontraría punto sobre el cual está
girando HOLA. Las primeras tres primeras imágenes muestran cómo el HOLA está girando
alrededor del punto 300,300 en el eje X, y las tres de abajo muestran al Hola girando alrededor
del mismo punto pero sobre el eje Z, el código usado fue:
{\org(300,300}{\t(3000,30000,,\frx10080}Hola
{\org(300,300}{\t(3000,30000,,\frz10080}Hola
Donde el valor de 100080 es simplemente para que de varias vueltas una y otra vez.
\clip([<scale>,] <comandos>)
Hace lo mismo que el clip pero dentro de la forma que se dibuje por medio de los comandos
de dibujo <scale> tiene el mismo significado que en el caso de \p<scale>, los cuales están
explicados en la parte más abajo.
Nuevos comandos del VSFilter
El VSFilter que se utiliza actualmente (actualizado por los chicos del Aegisub), a partir de la
versión 2.39, posee los siguientes comandos nuevos:
Y el comando \iclip que es igual a \clip pero invertido (es decir, en lugar de mostrar sólo lo que
está dentro del rectángulo, muestra sólo lo que está fuera del rectángulo). Al igual que con
\clip también puede utilizarse con gráficos vectoriales en lugar de rectángulos.
Además, a partir de esa misma versión del VSFilter los siguientes comandos nuevos pueden ser
animados con \t:
\fax \fay \be \blur \xbord \ybord \xshad \yshad \iclip
Para \clip e \iclip, solamente los rectángulos pueden ser animados. Los dibujos vectoriales no
pueden ser animados con \t.
Funciones de dibujo
Por medio del formato ASS se pueden hacer dibujos, el dibujo que uno haga siempre debe
estar cerrado no debe quedar abierto y si queda abierto el programa lo cerrara con una línea
recta, los colores de ese dibujo están dados por el color de la fuente que uno le ponga, así que
si el Outline está en verde, la figura tendrá el borde verde y así con las demás propiedades,
tras hacer el dibujo, al dibujo se le pueden aplicar todas las funciones que se le pueden aplicar
a las letras, así que de igual manera se pueden hacer Karaokes combinados con el dibujo que
uno haga y letras. Como en la imagen del karaoke siguiente:
Tras esa pequeña introducción pasemos entonces a los códigos para dibujar:
\p<scale>
<scale> Activa el modo de dibujo y pone el nivel de amplificación de las coordenadas al mismo
tiempo, dónde un número mayor significara un dibujo más pequeño y viceversa. Escala se
interpreta como dos elevado al numero de (<scale> menos uno). Por ejemplo {\p4} en la
coordenada (8,16) será lo mismo que {\p1} y (1,2), esta característica puede ser utilizada para
la precisión de sub-pixeles.
Si <scale> es cero el modo de dibujo se desactivara y el texto se interpretara como texto.
\pbo<y>
<y> Desviación de la linea base. Por defecto todos los dibujos se situan en la linea de escritura
actual. Con este valor es posible moverlos arriba o abajo en <y> pixeles. (Arriba y<0>0)
m <x> <y> Mueve el cursor a <x>, <y>
n <x> <y> Mueve elcursor a <x>, <y> (Las formas sin cerrar quedan abiertas)
l <x> <y> Dibuja una linea desde el punto actual hasta <x>, <y>
b <x1> <y1> <x2> <y2> <x3> <y3> Curva de tercer grado hasta el punto <x3> <y3> usando los
puntos 1 y 2 como puntos de control
Los siguientes tres comandos aún no los tengo muy claros pero sé que igual funcionan:
s <x1> <y1> <x2> <y2> <x3> <y3> .. <xN> <yN> Serie de curvas de tecer grado hasta el punto N
debe contener minimo 3 coordenadas.
p <x> <y> Extiende la serie de curvas hasta <x>, <y>
Cierra la serie de curvas
Ya con la explicación de eso toca aclarar que:
Los dibujos siempre deben empezar con un comando Move (m)
Las figuras que se encuentren se trataran por medio de una XOR entre ellas
Si un comando se va a repetir no hay necesidad de escribir la letra sólo las coordenadas.
Las coordenadas son relativas a la posición del cursor actual y a la alineación
Los comandos p y c sólo pueden ir después del comandos
Y ahora sí pasemos a una serie de ejemplos simples:
Si se desea hacer un cuadrado lo que se debería escribir seria algo como:
{\pos(200,200)}{\p1} m 0 0 l 100 0 100 100 0 100{\p0}HOLA
Aquí se utilizo primero el comando \pos para ubicar el cuadrado en cualquier parte de la
pantalla, despues le puse la escala en 1, activando así el comando de dibujo, tars eso movi el
cursos a la posición (0,0) que en nuestro caso seria la (200,200) e hice una linea hasta (100,0)
despues continue la linea hasta (100,100) y por último la movi hasta (0,100) no hice la linea
hasta (0,0) de nuevo por lo que ya habia dicho de que el se cierra con una linea recta solo, y
por último termine de dibujar y escribi algo para mostrar como se puede escribir algo tras
hacer un dibujo. el resultado fue:
Ahora para mostrar la opción b se utilizo la siguiente función:
{\pos(200,200)}{\p1} m 0 0 b 100 0 100 100 0 100 -100 100 -100 0 0 0{\p0}
Imágenes:
El {\p0} al final no es necesario, a la imagen se le hizo un rectángulo el cual encuadra el circulo
generado por la función, el punto en violeta es el punto inicial, los tres siguientes puntos en
azul fuerón los que generarón la primera mitad del Ovalo, el cual podemos ver a continuación:
{\pos(200,200)}{\p1} m 0 0 b 100 0 100 100 0 100
Los otros tres puntos o sea los puntos en rojo generaron la otra mitad del ovalo para dar como
resultado la imagen mostrada primero
Y por último para mostrar la función s se utilizo el siguiente comando:
{\pos(200,200)}{\p1} m 0 0 s 100 0 100 100 0 100 c
Ese comando por alguna razón que desconozco ya que no entiendo claramente la función p
puede ser remplazado por
{\pos(200,200)}{\p1} m 0 0 s 100 0 100 100 0 100 p 0 0 100 0 100 100
Donde se ve que se remplaza la función c por p y los primeros tres puntos o sea el punto de
inicio el primer punto de s y el segundo de s, pero de una u otra forma se obtiene el mismo
resultado.
La verdad no sé como llego a eso, así que hice una función la cual creí me daría un resultado
similar al de la función p o sea un cuadrado de las mismas dimisiones y poniéndole la misma
numeración de arriba llegue a: