Insertar y controlar videos cortos en Ren'Py

¡Hola, creadores de novelas visuales! Bienvenidos de nuevo a esta guía de Ren'Py en español. Han pasado unos meses desde nuestra [última entrada], donde implementamos un medidor de días con acciones. Hoy retomamos los temas avanzados con una mecánica emocionante: **insertar y controlar videos cortos** en tu novela visual. Aprenderemos a usar el comando `movie` de Ren'Py y a manejar la reproducción con Python. ¡Empecemos!

1. ¿Por qué usar videos en una novela visual?
Los videos cortos pueden añadir cinemáticas, transiciones dinámicas o incluso escenas interactivas a tu historia. Por ejemplo, podrías usar un video para mostrar un atardecer animado o una secuencia de introducción. Ren'Py permite insertar videos en formato MP4 y controlarlos con código, lo que nos da flexibilidad creativa.

2. Preparativos
Necesitarás:
- Un archivo MP4 (recomendado en 720p o menor, menos de 20 MB para un uso fácil). **Nota**: Por ahora, usa un archivo propio (como un clip de naturaleza o una animación). Más adelante, compartiré un asset SFW gratuito que podrás descargar.
- El proyecto de Perrito y Gatita (del [post del 18 de abril]. Guarda el archivo MP4 en la carpeta `game` (por ejemplo, `intro.mp4`).

3. Insertar un video con el comando `movie`
Ren'Py usa el comando `movie` para reproducir videos. Vamos a crear un archivo `video_system.rpy` para manejar esta mecánica.

1. En la carpeta `game`, crea un nuevo archivo llamado `video_system.rpy`.
2. Añade el siguiente código:

```
# Label para mostrar el video
label play_video:
    scene black # Fondo opcional antes del video
    $ renpy.movie_cutscene("intro.mp4") # Reproduce el video
    with dissolve
    return

# Pantalla para controles interactivos
screen video_controls():
    frame:
        xalign 0.5
        yalign 0.9
        hbox:
            textbutton "Pausar" action PauseMovie()
            textbutton "Reanudar" action UnpauseMovie()
            textbutton "Detener" action StopMovie()

init python:
    def play_custom_video():
        renpy.show_screen("video_controls")
        renpy.movie_cutscene("intro.mp4")
        renpy.hide_screen("video_controls")
```

4. Integrar el video en tu novela visual
Modifica el proyecto existente para incluir el video.

1. **Añadir la llamada al video**:
   - En `script.rpy`, añade una llamada al video al inicio:
     ```
     label start:
         call play_video # Añade esta línea
         scene bg playa with fade
         call definiciones
         call rutas
         call finales
         call mini_game
         return
     ```

2. **Opcional: Control interactivo**:
   - Para usar los controles, llama a `play_custom_video` en lugar de `play_video` y asegúrate de que la pantalla esté activa durante la reproducción.

5. Explicación del código
- **`movie_cutscene`**: Reproduce el video `intro.mp4` y pausa el juego hasta que termine. Si el video termina, regresa al flujo normal.
- **`PauseMovie()`, `UnpauseMovie()`, `StopMovie()`**: Funciones de Ren'Py para pausar, reanudar y detener el video manualmente.
- **Pantalla de controles**: La pantalla `video_controls` muestra botones para interactuar con el video, activada por la función `play_custom_video`.

6. Probar el video
1. Coloca un archivo MP4 llamado `intro.mp4` en la carpeta `game`.
2. Crea `video_system.rpy` con el código proporcionado.
3. Modifica `script.rpy` para incluir `call play_video`.
4. Ejecuta tu proyecto en Ren'Py y verifica:
   - El video se reproduce al inicio.
   - Si usas `play_custom_video`, los botones de control funcionan (pausar, reanudar, detener).

7. Ejercicio: Personaliza tu video
Ahora te toca a ti. Usa este código como base y experimenta:
- Crea un video corto propio (por ejemplo, graba un clip de 5 segundos con tu celular).
- Añade un botón para reiniciar el video usando `ReplayMovie()` en la pantalla `video_controls`.
- Integra el video en otra escena (por ejemplo, después del mini-juego).
- **Nota futura**: Cuando comparta un asset SFW, úsalo como `intro.mp4` y compárteme tus resultados.

8. ¡Tu turno!
Prueba este código con tu propio MP4 y comparte tus experiencias en los comentarios. ¿Lograste que el video se reprodujera correctamente? ¿Funcionaron los controles? Mantente atento, porque pronto añadiré un asset gratuito para que practiques. En la próxima entrada, exploraremos más temas avanzados, como sistemas de guardado personalizados. ¡Nos leemos pronto!

Comentarios

Entradas más populares de este blog

Introducción a Ren'Py - Tu primer paso para crear novelas visuales

Importar un segundo personaje y hacer que interactúen en Ren'Py

Crear rutas alternas con el comando `if` en Ren'Py