domingo, 12 de abril de 2020

Ren'py (II) - Un sencillo diálogo

Intro

Vamos a ver cómo construir una historia en Ren'py. Va a ser una historia lineal con imágenes. De estos hay mil tutoriales por ahí, pero no quería empezar con un nivel intermedio, así que vamos a ver esto...

Ya vimos en el episodio anterior como crear un proyecto nuevo. Para este proyecto necesitaremos además dos imágenes:

Una imagen de fondo que será formato JPG ya que es la que ocupa menos espacio y una imagen PNG con fondo transparente que la pondremos sobre el fondo.

¿Dónde guardamos las imágenes?

Desde el menú de Ren'py podemos abrir directamente la carpeta de imágenes y guardar ahí las mismas.

Estructura proyecto en Ren'Py

Si en el menú pulsamos sobre script.rpy veremos el código que nos ha generado automáticamente en Ren'py. 


Vemos que hay dos partes:
  • La parte roja que es la de las declaraciones de los personajes e imágenes.
  • La parte amarilla es la que incluye el código, en este caso nuestro minidiálogo.
Para hacer este ejercicio eliminaremos lo que en la imagen anterior está recuadrado en rojo y en amarillo. Obsérvese que dejamos label start: y return.

Definir personaje

Se define, oh sorpresa, en la parte de definiciones o lo que hemos marcado en rojo. 
Pondremos:

define s = Character("Samantha")

Esto no hace nada y hace todo. A este nivel lo que hace es que yo me pueda llamar a mi personaje como s en lugar de como Samantha con lo que me ahorro de escribir,

Escribir diálogo

Ahora sí, vamos a escribir el código de este apasionante diálogo, así que escribimos en la zona amarilla, entre el label start: y el return.

NOTA: Veremos más adelante que podemos tener tropecientosmil label, pero es el start el que SIEMPRE se ejecutará primero.

Si os fijáis en la captura de código original, la etiqueta 'label start:' es un bloque. Sabemos lo que incluye un bloque porque está sangrado. Esto es que empezamos a escribir las líneas cuatro espacios más a la derecha.

Por tanto escribimos identando (que bonito palabro) cuatro espacios los siguientes líneas:


La primera línea, es un diálogo sin más, sin hacer referencia a ningún personaje. Esto es porque se trata del narrador. En el juego veremos algo asín:


En la segunda frase, hacemos referencia a Samantha. Si recordáis hemos relacionado la simple 's' con el carácter Samantha en la selección de definiciones:

define s = Character("Samantha")

Esto hace que el diálogo se vea así:


Mostrar imágenes

Las imágenes se definen así:


Esto lo ponemos en la sección de definiciones, dónde hemos puesto la definición de personajes.

Sin embargo hay dos tipos de imágenes:

Fondos:
Un fondo es un fondo, y como tal se mantendrá siempre ahí hasta que mostremos un nuevo fondo que sustituirá al anterior.
Lo suyo es que sea un .jpg porque ocupa menos espacio en disco y deberá siempre tener el tamaño que hemos definido del juego. En el ejemplo anterior se trata del colegio. 
Si os fijáis, en el ejemplo anterior lo asociamos a la imagen bg school.jpg .  La partícula bg que precede al nombre es una convención. Por convención todos los fondos se llamarán bg algo.jpg.

Lo mostraremos así:

scene colegio

Imágenes:
Las imágenes se colocarán sobre el fondo. Y si muestro otra imagen sobre la anterior. El hecho de que se muestren sobre otras requiere que el fondo sea transparente, con lo que usaremos imágenes ".png". Se muestra así:

show imagen

Ejemplo

Y con esto ya estamos en condiciones de escribir una historia lineal.
Os copio aquí todo el código de mi ejemplo en el que he añadido un nuevo personaje:


# Coloca el código de tu juego en este archivo.

# Declara los personajes usados en el juego como en el ejemplo:

define s = Character("Samantha")
define r = Character("Ron")

image colegio = "bg school.jpg"
image samantha = "samantha.png"
image ron = "ron.png"

# El juego comienza aquí.

label start:

    scene colegio
    "Hola, ¿cómo estamos? os presento a Samantha"
    show samantha
    s "Holi. Soy Samantha"
    show ron
    r "Muy buenas... y tan buenas..."
    return

Esto se verá así:





Como veis Ron se monta sobre Sam (más querría él). Lo suyo sería que una imagen saliera a la derecha y la otra a la izquierda. Pero eso ya lo veremos.

Nota final y chin pum.

Sólo decir que si colocamos las imágenes en la carpeta que tenemos predeterminado para ello y no usamos caracteres raros (ni mayúsculas) en la nomenclatura, no hará falta definirlas. Basta con llamarlas por su nombre sin extensión.

Así que:

image colegio = "bg school.jpg" scene colegio
Podía haberse sustituido sólo por:

scene bg school
Si queréis ver esto en un tutorial de YouTube os aconsejo éste del gran Sedac, en el que me he basado para hacer este pequeño tutorial.

Un besi.

sábado, 11 de abril de 2020

Genesis 8 Daz Studio Freebies

Daz Studio tiene es la herramienta perfecta para que los que no sabemos dibujar hagan algo decente.
Sin embargo,  los caracteres, poses y objetos se han de escoger entre una gran oferta a menudo de pago.

Localizar lo que quieres es harto difícil y puede significar horas de búsqueda que no siempre son fructuosas.

Para solucionar este problema existe esta página que intenta indexar los diferentes elementos para Genesis 8. Es un poco cutre pero para localizar una pose que se nos ajuste va muy bien.

Es más... es lo que uso...  XD

Esta es la dirección:

http://furnitube.es/furniman




Ren'py o cómo hacer una novela visual

Muy buenas, hace muy mucho que no nos leemos. Durante este tiempo he estado con varios proyectos, pero al final estoy desarrollando una novela / simDate para adultos en Ren'py.
Si bien la herramienta, suele ser usada para este tipo de juegos, su mecánica es muy sencilla y puede ser usada también por niños para hacer cuentos infantiles o desarrollar su propia historia.

Por tanto os animo a que déis un vistazo a esta herramienta que es muy interesante.

Instalar Ren'py

Para instalar Ren'py tenemos que ir a https://www.renpy.org/. Si no lo cambian, es esta misma página, veréis el enlace de descarga.

Pinchando sobre él, veremos varias opciones de descarga. A nosotros nos interesará la que lleva extensión .exe


Lo descargamos y ejecutamos. Nos solicitará la carpeta dónde instalar.
Realmente lo que hace es descomprimir. Podéis coger la carpeta que os ha creado y moverla donde queráis. Yo personalmente la cuelgo de C:\

Entramos a la carpeta y ejecutamos renpy.exe y... ya está!!!!

Si vamos a preferencias:


Podremos elegir la carpeta dónde guardaremos nuestros proyectos y también podremos elegir el idioma del juego.




Una vez volvamos... vamos a crear nuestro primer proyecto...



Nos pedirá el nombre del proyecto y que le demos a continuar. Imagino que para esto, no necesitamos pantallazo...

Después nos pedirá la resolución. Yo le pongo la que sale por defecto 1280 x 720. Pensad que esto determina el tamaño de los fondos que tendrá el juego (es decir, el tamaño que van a tener que tener las imágenes que pongáis). Le damos a continuar.

Seguidamente podréis escoger el color del juego. Se refiere a menús y fondos. También si queréis que de entrada el juego se ejecute a pantalla completa o ventana, y la velocidad del texto. La velocidad la dejáis igual... o no... no es mi problema. Y le damos a continuar...



Y ya está... ya tenemos el proyecto creado.

Este proyecto, de hecho ya tiene un minúsculo código demo. Lo podemos ejecutar.

Nos colocamos sobre él y pulsamos sobre Ejecutar Proyecto.


Veremos algo asín:


Cuando salgamos, podremos investigar el código. Para ello, colocados sobre el proyecto pulsamos sobre todos los scripts.

Si es la primera vez que editamos código, Ren'py nos preguntará qué editor queremos usar. Personalmente yo uso Atom que es el que Ren'py recomienda.

Y nada más... en el próximo pisodio veremos como hacer un diálogo con imágenes. Lo más básico de Ren'py.

¿Tiene espejos en su casa? Pues nos vemos.