5.2.1  Opciones de animación

El bucle interno de animación, la numeración automática en los nombres de los archivos de salida y la interfaz con el sistema operativo para que las utilidades externas puedan ensamblar los fotogramas individuales en una animación, mejoran enormemente la capacidad de animar. El bucle interno de animación es simple y flexible. Aún así todavía se pueden usar programas externos o archivos .bat para crear animaciones sin el bucle interno.

5.2.1.1  Bucle externo de animación

Clock=n.n Establece el identificador de tipo flotante clock a n.n
+Kn.n Igual que Clock=n.n

La opción Clock=n.n o el parámetro +Kn.n se usa para pasar un sólo valor flotante al programa para una animación básica. El valor se aloja en el identificador flotante clock. Si un objeto tuviera una rotación rotate <0,clock,0> asignada entonces se podría rotar el objeto en diferentes cantidades de radianes a lo largo de diferentes fotogramas estableciendo +K10.0, +K20.0... etc. en sucesivas generaciones de imágenes. Está a cargo del usuario invocar repetidamente a POV-Ray con un valor diferente para Clock y un Output_File_Name diferente para cada fotograma.

5.2.1.2  Bucle interno de animación

Initial_Frame=n Establece el fotograma inicial a n
Final_Frame=n Establece el fotograma final a n
Initial_Clock=n.n Establece el valor inicial del reloj a n.n
Final_Clock=n.n Establece el valor final del reloj a n.n
+KFIn Igual que Initial_Frame=n
+KFFn Igual que Final_Frame=n
+KIn.n Igual que Initial_Clock=n.n
+KFn.n Igual que Final_Clock=n.n

El bucle interno de animación releva al usuario de la labor de generar complicados conjuntos de archivos .bat para invocar a POV-Ray múltiples veces con diferentes configuraciones. Mientras la multitud de opciones quizá parezcan intimidantes, el inteligente conjunto de valores por defecto significa que probablemente tan sólo se necesita especificar la opción Final_Frame=n o el parámetro +KFFn para especificar el número de fotogramas. Todos los otros valores pueden quedarse con sus valores por defecto.

Algún valor de Final_Frame distinto de -1 disparará el bucle interno de animación de POV-Ray. Por ejemplo Final_Frame=10 o +KFF10 causa que POV-Ray genere la escena 10 veces. Si se especificó Output_File_Name=file.tga entonces cada fotograma tendría la salida como file01.tga, file02.tga, file03.tga etc. Los números 0 del dígito de relleno en el nombre del archivo dependen del número del fotograma final. Por ejemplo +KFF100 generaría file001.tga hasta file100.tga. El número del fotograma puede sobrepasar los límites del nombre del archivo. En MS-DOS con un límite de ocho caracteres, myscene.pov quedaría como mysce001.tga hasta mysce100.tga.

El valor por defecto Initial_Frame=1 probablemente nunca tenga que ser cambiado. Sólo se debería cambiar si se está ensamblando una secuencia de una animación larga en varias piezas. Una escena podría ir desde el fotograma 1 hasta el 50 y la siguiente desde el 51 hasta el 100. La opción Initial_Frame=n o el parámetro +KFIn es para este propósito.

Nota: Si se quiere generar un subconjunto de fotogramas como por ejemplo desde el 30 al 40 en una animación que va desde el 1 hasta el 100, no se debería cambiar el valor de Initial_Frame o Final_Frame. En lugar de eso se debería usar el subconjunto de comandos descritos en la sección "Subconjuntos de fotogramas de animación".

A diferencia de algunos paquetes de animación, la acción en las escenas animadas de POV-Ray no depende del número de fotogramas. Más bien se deberían diseñar las escenas en función del identificador clock. Por defecto, el valor de clock es 0.0 para el fotograma inicial y 1.0 para el fotograma final. Todos los otros fotogramas son interpolados entre esos valores. Por ejemplo si suponemos que vamos a rotar un objeto una vuelta completa a lo largo del curso de una animación, se podría especificar rotate 360*clock*y. Entonces como clock va desde 0.0 hasta 1.0, el objeto rota sobre el eje Y desde 0 hasta 360 grados.

La mejor ventaja de este sistema es que se pueden generar animaciones de 10 fotogramas, de 100 fotogramas, 500 fotogramas o 329 fotogramas y se sigue obteniendo una rotación completa de 360 grados. Generaciones de pruebas de pocos fotogramas trabajan exactamente igual que las generaciones finales con muchos fotogramas.

En realidad se define el movimiento sobre un parámetro flotante continuo (la variable clock) y se toman muestras discretas a intervalos fijos (los fotogramas). Si coges una película o cinta de video de una escena real verás que funciona de la misma manera. El movimiento actual de un objeto depende sólo del tiempo. No depende de la tasa de fotogramas de la cámara.

Muchos usuarios han creado escenas para POV-Ray 2 que usan valores para clock en un rango mayor que el 0.0 a 1.0 que tiene por defecto. Por esta razón se da la opción Initial_Clock=n.n o el parámetro +KIn.n y Final_Clock=n.n o +KFn.n. Por ejemplo para que clock vaya desde 25.0 hasta 75.0 se debería especificar Initial_Clock=25.0 y Final_Clock=75.0. Entonces clock debería ser 25.0 para el fotograma inicial y 75.0 para el fotograma final. En los fotogramas intermedios habrán valores para clock interpolados desde 25.0 hasta 75.0 proporcionalmente.

Los usuarios que están acostumbrados a usar los números de los fotogramas en lugar de los valores de clock pueden especificar Initial_Clock=1.0 y Final_Clock=10.0 y Frame_Final=10 para una animación de 10 fotogramas.

Para nuevas escenas, se recomienda no cambiar Initial_Clock o Final_Clock de sus respectivos valores por defecto 0.0 y 1.0. Si se desea que clock varíe dentro de un rango distinto a 0.0 hasta 1.0, se recomiendo usar lo siguiente en las escenas...

  #declare Start    = 25.0;
  #declare End      = 75.0;
  #declare My_Clock = Start+(End-Start)*clock;

Así se usa My_Clock en la descripción de la escena. Esto mantiene los valores críticos de 25.0 hasta 75.0 en el archivo .pov.

Nota: se dan más detalles concernientes al trabajo interno del bucle de animación en la sección "Interfaz con el sistema operativo".

5.2.1.3  Subconjuntos de fotogramas de animación

Subset_Start_Frame=n Establece el fotograma inicial del subconjunto a n
Subset_Start_Frame=0.n Establece el fotograma inicial del subconjunto al porcentaje n
Subset_End_Frame=n Establece el fotograma final del subconjunto a n
Subset_End_Frame=0.n Establece el fotograma final del subconjunto al porcentaje n
+SFn o +SF0.n Igual que Subset_Start_Frame
+EFn o +EF0.n Igual que Subset_End_Frame

Cuando se crean animaciones largas, puede ser cómodo generar sólo una porción de la animación para ver cómo va. Supongamos que tenemos una animación de 100 fotogramas pero queremos generar tan sólo los fotogramas 30 hasta 40. Si se establece Initial_Frame=30 y Final_Frame=40 entonces clock iría desde 0.0 hasta 1.0 en los fotogramas 30 hasta 40 en lugar de 0.30 hasta 0.40 como debería. Por consiguiente se debería dejar Initial_Frame=1 y Final_Frame=100 y usar Subset_Start_Frame=30 y Subset_End_Frame=40 para ir generando selectivamente partes de la escena. Entonces POV-Ray calculará apropiadamente los valores para clock.

Usualmente se especificará un subconjunto usando los números enteros de los fotogramas, sin embargo una alternativa para estos comandos es que tomen valores flotantes en el rango 0.0 <=n.nnn <=1.0, los cuales se interpretan como una fracción de la animación entera. Por ejemplo, Subset_Start_Frame=0.333 y Subset_End_Frame=0.667 generaría el segundo tercio de la animación indiferentemente del número de fotogramas.

5.2.1.4  Animación cíclica

Cyclic_Animation=bool Establece la animación cíclica a on/off
+KC Establece la animación cíclica a on
-KC Establece la animación cíclica a off

Muchas secuencias de animación generadas por ordenador están diseñadas para que sean vista en un bucle continuo. Supongamos que tenemos un objeto que rota exactamente 360 grados a lo largo de una animación y que pusimos rotate 360*clock*y para hacerlo. Ambos, el primero y último fotograma serían idénticos. Durante la reproducción de la animación habría una breve sacudida de un fotograma. Para eliminar este problema se necesita ajustar la variable clock de modo que el último fotograma no coincida con el primero. Por ejemplo una animación cíclica no debería usar la variable clock desde 0.0 a 1.0. Debería ir desde 0.0 hasta 0.9 en incrementos de 0.1. Sin embargo si se cambia a 20 fotogramas debería ir desde 0.0 hasta 0.95 en incrementos de 0.05. Esto complica las cosas porque hay que cambiar el valor final para clock cada vez que se cambia Final_Frame. Establecer Cyclic_Animation=on o usar +KC hará que POV-Ray ajuste automáticamente el valor final para clock en las animaciones cíclicas sin importar el número total de fotogramas. El valor por defecto para esta opción es off.

5.2.1.5  Generación de líneas alternas

Field_Render=bool Establece la generación de líneas alternas a on/off
Odd_Field=bool Establece el indicador de líneas alternas impares
+UF Activa la generación de líneas alternas
-UF Desactiva la generación de líneas alternas
+UO Activa el indicador de líneas alternas impares
-UO Desactiva el indicador de líneas alternas impares

La generación de líneas alternas se usa algunas veces para animaciones que van a ser vistas en televisión. Los televisores sólo muestran líneas de escaneado alternas en cada refresco vertical. Cuando cada fotograma está siendo mostrado, las líneas de escaneado alternas se entrelazan para dar la impresión de una imagen de mayor resolución. Las líneas de escaneado pares componen las líneas alternas pares, y se dibujan primero (por ejemplo líneas de escaneado 0, 2, 4, etc.), seguidas de las líneas alternas impares, compuestas de las líneas de escaneado impares, que son dibujadas después. Si los objetos en una animación se mueven muy deprisa, su posición puede cambiar notablemente de una línea alterna a la siguiente. Como resultado, sería deseable en esos casos que POV-Ray generase líneas alternas a la actual razón de líneas alternas (que es el doble de la razón de los fotogramas), en lugar de generar los fotogramas completos a la razón normal de los fotogramas. Esto ganaría una gran cantidad de tiempo comparado con generar la animación entera al doble de fotogramas, y entonces sólo usaría la mitad de cada fotograma.

Por defecto, la generación de líneas alternas no se usa. Establecer Field_Render=on o usar +UF causará que los fotogramas alternativos en una animación sean sólo de líneas alternas pares o líneas alternas impares. Por defecto, el primer fotograma se forma con líneas alternas pares, seguido de líneas alternas impares. Se puede hacer que POV-Ray genere el primer fotograma con las líneas alternas impares especificando Odd_Field=on, o usando el parámetro+UO.