GUÍA: Scripts en DVD Studio Pro (I)

10

Los scripts son pequeños programas que podemos incluir en las autorías de DVD para realizar funciones avanzadas, interactuando en muchas ocasiones con el usuario final. Por ejemplo, podremos realizar una operación matemática en base al último botón pulsado, muy útil para juegos de preguntas y respuestas. O bien, contabilizar cuántas veces ha sido reproducido en bucle un menú para lanzar un clip automáticamente, de tal forma que el DVD tenga vida propia y lance vídeos cada cierto tiempo, algo que suele gustar a los distribuidores para poner el DVD en sus expositores.

portada_scripts_1

Iniciamos esta serie de artículos dedicados a la programación con scripts en DVD Studio Pro. Lo haremos explicando en primer lugar qué son lo GPRM y los SPRM, básicos para comprender todo lo concerniente a los scripts. Ambos son en esencia memorias que están a nuestra disposición en todos los reproductores de DVD para leer y escribir datos mediante los scripts.

SPRM

System Parameter Register Memory, o Memoria de Registro de Parámetros del Sistema. Son memorias sólo de lectura y disponemos de un total de 24. Cada una de ellas tiene asignada una función que no podremos cambiar, pero que nos interesará acudir a ellas desde el script para saber qué cosas están sucediendo en el reproductor del usuario, y así obrar en consecuencia.

Aquí una breve descripción de cada uno:

  • SPRM 0: Código de descripción del idioma del menú. Definido por el usuario en la configuración del reproductor
  • SPRM 1: Número del actual flujo (stream) de sonido. Definido por el usuario o el programa
  • SPRM 2: Número del actual flujo de subtítulos. Definido por el usuario o el programa
  • SPRM 3: Número del actual ángulo. Definido por el usurario o el programa
  • SPRM 4: Número del actual título en reproducción (Title). Asignado por el reproductor
  • SPRM 5: Número del actual Video Title Set (VTS). Asignado por el reproductor
  • SPRM 6: Número del actual título PGC. Asignado por el reprodutor
  • SPRM 7: Número de la actual parte del título (capítulo). Asignado por el reproductor
  • SPRM 8: Número del actual botón realzado. Definido por el usuario en el reproductor
  • SPRM 9: Temporizador de navegación. Asignado por el programa, y entonces termina
  • SPRM 10: Destino del temporizador. Pista a reproducir cuando el SPRM termina
  • SPRM 11: Modo de mezcla de sonido para Karaoke. Asignado por el programa o los ajustes del reproductor
  • SPRM 12: Código de País para control parental
  • SPRM 13: Nivel de control parental en efecto
  • SPRM 14: Configuración de vídeo del reproductor (Relación de aspecto, modo Letterbox)
  • SPRM 15: Configuración de sonido del reproductor (DTS, AC-3, MPEG, PCM, SDDS)
  • SPRM 16: Código inicial de idioma para sonido. Definido por el usuario en la configuración del reproductor
  • SPRM 17: Extensión de código inicial de idioma para el sonido
  • SPRM 18: Código inicial del idioma para para subtítulos. Definido por el usuario en la configuración del reproductor
  • SPRM 19: Extensión de código inicial de idioma para el subtítulo
  • SPRM 20: Código de Región del reproductor
  • SPRM 21: Reservado
  • SPRM 22: Reservado
  • SPRM 23: Reservado

Cada SPRM tiene unidades de medida diferentes y su interpretación puede resultar compleja, aunque trataremos de simplificarla. Para la mayoría de usos comunes nos centraremos en unos pocos, los más utilizados son el 7 y el 8. Iremos desarrollándolos y facilitando su comprensión a medida que los utilicemos en futuras entregas.

GPRM

General Purpose Register Memory, o Memoria de Registro de Propósito General. Son memorias de lectura y escritura, y son las que más utilizaremos. Tenemos un total de 8 disponibles y todas parten del valor 0 cuando insertamos el disco en el reproductor. Aunque se nombran del 0 al 7, no tienen un uso específico según su número, al contrario que los SPRMs. Podemos utilizarlos para alojar cualquier dato o cifra, y no necesitamos seguir ningún orden.

Podemos ver y cambiar su nombre en el Inspector de DVD Studio Pro. Para ello seleccionamos el disco en la pestaña Outline y acudimos al Inspector, en la pestaña Advanced. Ahí están los 8 GPRM. Si queremos cambiarles el nombre –recomendable para la posterior gestión de los scripts– desplegaremos la flecha del GPRM en cuestión y haremos doble-clic sobre el nombre que aparece. Al realzarse el texto ya podremos cambiarlo.

cambiar_nombre_gprm

Introducción

En esta primera entrega haremos un breve acercamiento a los scripts. Vamos a hacer un sencillo script que constará de dos órdenes o comandos, el primero para que retenga el último botón pulsado de un menú, y el segundo para que regrese al mismo menú. Procedamos. Partimos de un proyecto que tenga un menú con por ejemplo 3 botones.

Creamos ahora un script con el botón a tal fin de la barra superior.

boton_anadir_script

En la pestaña Outline aparecerá entonces el nuevo script llamado ‘Script 1’.

pestana_outline

Le hacemos doble-clic para acudir a su editor, la pestaña Script, donde lo configuraremos. Un script es un programa, un conjunto de órdenes o comandos. Podemos alojar en un script hasta 124 comandos y se ejecutarán en el orden que aparecen en esta lista, desde la línea 1 en adelante.

nop

En la primera línea siempre vamos a encontrar por defecto el primer comando, nop, (no operation), vamos a cambiarlo. Seleccionamos dicha línea y acudimos al Inspector. En el desplegable cambiamos para este ejemplo el nop por Set GPRM, que se utiliza cuando queremos asignar algo a un GPRM (donde dijimos que podemos escribir datos).

set_gprm

En este caso queremos guardar en nuestro GPRM el valor del SPRM 8, que conserva el valor del último botón realzado. Sigamos.

Al elegir Set GPRM vemos que aparecen debajo las opciones para dicho comando. En operación asignamos mov, en Source Type, SPRM, y en Source Value, SPRM 8. En Target nos aseguramos de que aparece el GPRM donde queremos que se guarde, aquél al que cambiamos el nombre al inicio.  Nosotros lo nombramos ‘Último botón pulsado’, así tenemos claro su cometido, en lugar del confuso nombre GPRM 0.

parametros_linea_1

Resumen de lo que acabamos de hacer:

  • Set GPRM —> Asignar algo en un GPRM
  • Operation: Mov —> Tipo de operación: mover
  • Source Type: SPRM —> Tipo de fuente: un SPRM
  • Source Value: SPRM 8 —> Valor de la fuente: el SPRM 8
  • Target: GPRM 0 —> Destino: GPRM 0 (o el nombre nuevo)

En definitiva, hemos cogido el valor del SPRM 8 y lo hemos guardado en el GPRM 0. Nuestra línea número 1 debería figuar así:

resumen_linea_1

Tenemos ahora que hacer una segunda línea para ordenar al programa que regrese al menú. Para añadir una nueva línea pulsaremos el botón con un símbolo más (+) de la barra superior.

boton_anadir_comando

Seleccionamos la nueva línea con el comando Nop y acudimos a su Inspector. En él cambiamos ahora el comando Nop por Jump, que sirve cuando queremos ‘saltar’ a algún elemento desde una línea de un script.

Por último, del desplegable inferior le decimos dónde queremos que salte, en este caso al mismo menú.

jump_to_menu

El aspecto de las dos líneas debería ser así:

resumen_2_lineas

Nuestro primer script ya está listo, ahora nos queda enlazarlo con los botones de nuestro menú. Es decir, queremos que el script se ejecute cada vez que el usuario pulse cualquiera de los botones del menú, por eso el Target o destino de cada botón va a ser nuestro script. Una forma rápida de hacerlo es arrastrando el script uno a uno sobre los botones del menú en el Menú Editor y eligiendo la única opción ‘Connect to Script’ de la Drop Palette.

connect_to_script

El trabajo está terminado, hemos creado un script y lo hemos enlazado con el menú, sólo nos queda comprobarlo, y el mejor aliado que tenemos en las tareas de testeado de scripts es el Simulator. Lo activamos mediante el botón Simulate de la barra superior de DVD Studio Pro, o bien pulsando la combinación de teclas Comando+Alt+0.

Cuando lo tengamos activado, pulsamos del simulador el botón Info, identificado con una ‘i’.

boton_info_simulator

Se despliega entonces un tablero que nos muestra todo lo que está sucediendo en nuestra autoría, incluídos los valores de los GPRMs y SPRMs. Podemos activar o desactivar ambos en los botones inferiores. En este caso desactivemos los SPRMs, para comprobar solamente los GPRMs.

botones_gprm_sprm_inspector

Como dijimos, los GPRMs parten del valor 0, así que si navegamos en el Simulator por los diferentes botones del menú y pulsamos cualquiera de ellos, veremos cómo cambia el valor del GPRM en el que estamos alojando el valor del SPRM 8. Observaremos que los valores no son 1, 2, 3, etc, sino 1024, 2048, 3072, etc. Esto es porque este SPRM se mide en incrementos de 1024, teniendo por lo tanto el botón 1 un valor de 1024, el 2 de 2048, y así sucesivamente. La mejor manera de calcular el valor de un botón es dividir su valor entre 1024. Desarrollaremos más a fondo y sacaremos partido a este SPRM y otros en futuras entregas.

Puedes descargarte el proyecto para este ejemplo pinchando aquí.

Compartir

Acerca del autor

Fundador de La Peonza Digital, productora audiovisual. Editor de finalcutpro.es. Realizador, editor, formador y locutor.

10 comentarios

  1. Rodrigo Lago el

    Joder! estos si que son buenos apuntes y no los que cogí yo, :-)
    Qué grande! Un abrazo Pedro!

  2. Rodrigo Lago el

    Flipa! estos si que son buenos apuntes y no los que cogí yo, :-)
    Qué grande! Un abrazo Pedro!

  3. Los scripts son mi asignatura pendiente en DVD SP así que ¡muchas gracias! Ya estoy deseando la segunda entrega.

  4. Hola, no se si es el lugar para plantear esta duda pero por el tema de los scrpits pienso que puede ser aquí.
    Hay alguna manera de hacer que un video dentro de un dvd se “comporte” a manera de salvapantallas, es decir, que se reproduzca constantemente hasta que alguien mueve el mouse o aprieta algún botón?
    Sé que no se puede controlar el sistema desde el dvd pero me pregunto si habrá alguna manera de hacer esto con scripts o de alguna otra forma.

  5. Pingback: finalcutpro.es | GUÍA: Scripts en DVD Studio Pro (II)

  6. hola
    tengo un problema con el dvd studio pro, AL momento de quemar el dvd no me reproduce en los dvds convencionales, sale error de disco
    ALGUIEN ME PODRIA AYUDAR………..

  7. Me gustaría saber si es posible mediante un script cambiar a otro track de video pero en el mismo código de tiempo que se estaba reproduciendo el anterior. Si es posible realizar esta operación: ¿Cómo sería el script?

  8. mar montávez el

    Hola, me gustaría si alguien me puede ayudar con el siguiente asunto.

    Estoy montando un menú y necesito el mismo audio para diferentes track. No se como hacerlo sin tener que duplicarlo. O sea, si hay alguna manera, creando algún script…
    Muchas gracias por adelantado. Por cierto, fantástica esta ayudita…

  9. Hola, tengo un problema a la hora de reproducir el dvd quemado en un dispositivo DVD conveccional, me sale error de disco, alguien sabe porque es? espero que podais ayudarme, muchas gracias!

Escribe una respuesta

He leído y acepto la Política de Privacidad

En finalcutpro.es no guardamos ningún dato personal de nuestros usuarios. Puedes participar en los comentarios si lo deseas pero no se te pide que aportes tu nombre real, tu correo electrónico ni cualquier otro dato personal.
Política de Privacidad