
Son dos personas ya las que me han pedido que haga algún tutorial del RPG Maker así que quién soy yo para negarme. La versión que usaré es la MV, pero quizá podáis adaptarlo a otras versiones. Es posible que explique alguna cosa que ya sepáis, pero como no sé quién puede leer este post, prefiero hacerlo por si acaso.
Hoy os enseñaré a hacer esto que veis en el vídeo y que se resume en:
- teletransportar a un personaje de un mapa a un mapamundi
- que al hacerlo cambie su apariencia y la recupere al regresar a otro mapa
- mostrar una imagen al acercarse a un evento y que desaparezca al alejarse
- indicarle al programa que guarde la última posición del jugador (en el mapa en el que esté) para que nos pueda teletransportar a esa ubicación exacta
Es un tutorial largo, así que tened paciencia. No es necesario que utilicéis ningún tipo de plugin y, aunque el programa por defecto pone una resolución de 816x624 píxeles, yo se la he cambiado a 1280x720 px usando el plugin que se llama "Community_Basic" y que viene incluido en la lista de plugins de todos los nuevos proyectos. No es necesario que cambiéis la resolución, pero yo prefiero trabajar con esa porque maniática sí soy. En cuanto a los iconos que podáis ver en los nombres de los interruptores/variables (◆, ◇) los uso para identificar los que son importantes para el juego de manera rápida, así que no hace falta que los uséis si no queréis, al fin y al cabo, es un tutorial. En fin, empecemos.
Para este tutorial necesitaremos:
- Dos mapas, uno de inicio y un mapamundi
- Al menos una imagen
Hay varias maneras de hacer un mapamundi, bien usando los tilesets que trae el programa o usando imágenes (bien de fondo, bien usando el parallax mapping). A mí personalmente no me gustan los assets que trae el propio programa para los mapamundi, así que suelo usar una imagen de fondo (carpeta del juego > img > parallaxes. Recordad ponerle un ! delante para que la imagen esté fija y no se mueva cuando mováis al personaje) y edito el tileset para usar un camino transparente que el jugador pueda pisar. Esto lo podéis hacer con cualquier programa de edición; simplemente escoged uno de los tilesets creados y borrad uno y ya. El mío ha quedado así:

Como veis, la parte inferior izquierda está en negro y en el programa aparecerá transparente. Pero si lo seleccionáis a la hora de editar el mapa y usáis la herramienta rellenar en él, el personaje podrá caminar por todo el mapa. En mi caso, para la imagen del mapamundi he usado el del Octopath Traveler, que me lo empecé hace poco y me gustó el moverte por el mapa y que aparecieran los datos de los personajes para que pudieras escoger con quién querías empezar a jugar (que es lo que se ve en el vídeo). Puede ser útil si queréis hacer un juego en el que tengáis varios personajes principales (como en Octopath Traveler o, mismamente, Resident Evil 1 (Chris, Jill)). Si lo usáis en un mapamundi, también puede ofrecer información sobre el lugar seleccionado, a saber: pequeña historia del sitio, recursos disponibles ahí, etc. Que bueno, tampoco hace falta que sea un mapamundi porque esto se puede aplicar a cualquier mapa y evento, pero me lo habían pedido con un mapamundi y eso haré.
El propio RPG Maker tienen mapas ya hechos que podéis usar para probar el tutorial (yo lo he hecho), lo único que tenéis que hacer es clic derecho sobre el uno de los mapas (o del mapa general) y elegir "cargar" en el menú contextual que aparezca. Ahí podréis elegir el que queráis (incluso un mapa del mundo). Este es mi mapa inicial, al que he llamado Campamento.

Lo primero que haremos será crear un evento para teletransportar al personaje principal a nuestro mapamundi y, al hacerlo, cambiaremos su aspecto para darle otro. Esto no es obligatorio y podéis usar el mismo sprite del personaje para que deambule por el mapa, pero os lo enseño por si os parece que quedaría bien con vuestro juego. Podéis utilizar cualquier imagen que queráis.
Creamos el evento, lo renombramos si queréis (es útil si tenéis muchos eventos en el mapa) y le damos una imagen para verlo al probar el juego. En el contenido yo he añadido un mensaje ("¿Viajar al mapa del mundo?") y unas elecciones "Sí, No"; no son obligatorios. Lo realmente importante es lo que está dentro de la elección "Sí".
- Iniciar transición
- Transportar al jugador (al mapamundi)

La transición nos permitirá ocultar el cambio de sprite (imagen) del personaje principal, que siempre queda mejor si el cambio se hace con suavidad. Si no vais a realizar un cambio de imagen del personaje, no hace falta que la añadáis. Las transiciones sirven para "ocultar" ciertas cosas que el jugador no debería ver, como cambios de imagen del personaje, cambios en el escenario (mismo mapa, distinta estación; se puede hacer sin tener que duplicar los mapas), mostrar imágenes para escenas, etc.
Una vez hecho esto, pasamos al mapamundi.
(Esto es solo si queréis cambiar el aspecto del personaje principal al entrar en el mapamundi).
Una vez en este mapa, crearemos un evento que se ejecutará de manera paralela (en el apartado "Accionamiento > Proceso paralelo"). También podemos darle un nombre, pero no hace falta darle una imagen, aunque podéis hacerlo si queréis.
En el contenido escribiremos esto:

- Cambiar gráficos del actor (por defecto, el actor principal del juego siempre se llama Harold). Realmente esto es muy sencillo y tan solo tendréis que cambiar el aspecto del personaje
- Ajustar ruta de movimiento. "Personaje animado ON" significa que el personaje estará animado aunque no se mueva. Por ejemplo, si en lugar de un globo fuese un muñeco (como el sprite original de Harold), daría la impresión de que está caminando en el sitio aunque nosotros no lo movamos.
- Velocidad 5. Esto hará que el personaje se mueva más deprisa por el mapa. Si en lugar de un globo hubierais puesto una flecha, simularía que es un cursor.
- Esperar 10 fotogramas. 60 fotogramas (o frames) es un segundo, así que le damos tiempo al programa para hacer todo lo que tiene que hacer antes de que la persona que juega tome el control. De esta manera, nos aseguramos que no se ve nada que no tenga que verse (si además de cambiar el aspecto del personaje principal añadís una o varias imágenes (por ejemplo una que oscurezca las esquinas), la transición quedará más fluida).
- Finalizar transición. Indispensable para que no se quede la pantalla en negro y haya que reiniciar el juego (recordad que hemos iniciado una transición en el mapa anterior).
- Borrar evento. Borra el evento para que no siga ejecutándose todo el rato en segundo plano y, en cuanto se abandona el mapa en el que está, vuelve a aparecer.
(Esto es tanto si habéis cambiado la imagen del personaje como si no lo habéis hecho).
Ahora vamos a elegir otra ubicación del mapa para hacer un teletransporte al primer mapa (Campamento). Una vez hayáis elegido el lugar, creamos ahí un evento nuevo. En el contenido de este evento simplemente pondremos un teletransporte al primer mapa (donde queráis). El accionamiento será "Botón de acción" y en las opciones seleccionaremos "Dirección fija" y "Atravesable". En la prioridad pondremos "Debajo de los personajes". De esta manera, el personaje principal podrá caminar sobre el evento y tendrá que activarlo pulsando el botón.
Si no habéis añadido la opción de cambiar el aspecto del personaje, el teletransporte debería funcionar sin problemas. Si habéis añadido el cambio de aspecto, en este evento deberíais añadir "iniciar transición" después del teletransporte. Por otro lado, tendréis que hacer un nuevo evento en el mapa inicial (Campamento).
Este evento se ejecutará en modo "proceso paralelo" y en el contenido deberéis poner esto:

- Cambiar gráficos. Aquí volveremos a darle a Harold su aspecto normal
- Ajustar rutas de movimiento. También le pondremos su velocidad normal y desactivaremos la animación de personaje
- También finalizaremos la transición y borraremos el evento
Y ahora, el teletransporte también debería funcionar correctamente cambiando el aspecto del personaje.
Pero, Kaals, ¿qué pasa con las imágenes que salen en el vídeo? No me he olvidado porque, al final, son un complemento a lo que hemos hecho.
Volvamos al mapamundi para editar el evento que nos teletransporta al mapa inicial (Campamento). En el contenido borramos todo lo que habíamos escrito y activamos dos interruptores que llamaremos "MAP CAMPAMENTO" y "MAP TEXT IN" (se hace con el comando "Control de interruptores"). También cambiaremos el accionamiento ("Toque del jugador").
- MAP CAMPAMENTO. Mostrará la imagen que tiene el cartel de "Campamento"
- MAP TEXT IN. Activará un evento común (que vamos a crear ahora)
Accedemos a la base de datos y buscamos la pestaña de los eventos comunes. Ahí crearemos un nuevo evento que llamaremos "Map text in". El desencadenante será "proceso paralelo" y el interruptor será "MAP TEXT IN". ¿Qué significa esto? Que al activar el interruptor MAP TEXT IN el programa/juego ejecutará lo que hay dentro de este evento común.
En el contenido crearemos una derivación condicional. Indicaremos que el interruptor "MAP CAMPAMENTO" estará ON. Al crearse una derivación, aparecerán dos líneas en azul: "Si: MAP CAMPAMENTO es ON" y debajo ": Fin". Entre ellas podremos añadir más comandos, así que añadiremos uno para mostrar una imagen y otro para que cuando aparezca, no aparezca de golpe.
Por lo general, yo utilizo imágenes cuyas dimensiones son las del propio juego (1280x720 en este caso), porque me resulta cómodo; pero si queréis utilizar imágenes más pequeñas, podéis hacerlo, lo único que tendréis que ajustarlas de manera manual (en el apartado "Posición"). Es importante que la opacidad esté a cero (0). Y acordaros de hacer una imagen con el nombre "Campamento" (o lo que queráis poner).
Breve inciso: Las imágenes se numeran para establecer un orden y que no quitemos una por otra por accidente. Las que tienen el número más alto se mostrarán por encima de las que tengan el número más bajo. Tiene lógica pero a veces se nos puede olvidar.
Dicho esto, para las imágenes que muestren el nombre de las localizaciones en el mapamundi, usaremos el número 1. Principalmente porque no tenemos más imágenes, así que ya sabéis, podéis escoger el número que queráis, pero que sea el mismo para todas ellas.
Seguro que con la imagen lo veis mejor:

El otro comando será el de "mover imagen". Que tendrá esta configuración:

¿Que por qué este comando? Porque es el que hará que la imagen aparezca con un fundido (la opacidad estará a 255 (que es el 100%)) en lugar de hacerlo de golpe. Podréis editar el tiempo que tardará en aparecer con la duración (20 fotogramas). Como no queremos que aparezca cuando el personaje se haya ido, le pondremos una duración bastante corta. Después de ": Fin" apagaremos el interruptor MAP TEXT IN.
Una vez hecho esto, el evento común deberá tener este aspecto:

Volvemos al mapamundi y editamos el evento que nos teletransportará al mapa inicial (Campamento). Añadimos una nueva página.

El orden de los comandos es importante. Si el comando "Transportar al jugador" está después del resto, el juego podrá haceros un doble fundido a negro.
En el apartado Condiciones activaremos el check de interruptor y seleccionaremos el interruptor MAP CAMPAMENTO. En la Imagen pondremos la misma que pusimos en la página anterior (en mi caso es una tienda de campaña). Al hacerlo, es posible que la prioridad se haya cambiado a "igual que el personaje", así que lo pondremos "Debajo de los personajes". Y en el accionamiento elegiremos "Botón de Acción".
En el Contenido iniciaremos una transición; apagaremos el interruptor MAP CAMPAMENTO (para que el programa muestre el nombre del campamento cuando volvamos al mapa); borramos la imagen (que muestra el nombre del campamento, si no la borramos, aparecerá en los demás mapas); y transportamos al personaje al mapa del Campamento. También le indicamos que espere un segundo ("Esperar: 60 fotogramas") para darle tiempo a hacerlo todo.
Aceptamos para guardar los cambios y creamos un evento nuevo. Este nuevo evento será muy sencillo y es lo que hará que la imagen que informa del nombre ("Campamento") deje de aparecer en el mapamundi. Aquí crearemos un nuevo interruptor llamado MAP TEXT OUT. El accionamiento lo dejaremos en "Toque del jugador" y aceptaremos los cambios.

Copiaremos este evento y lo pegaremos alrededor del evento que nos teletransporta al campamento. Así:

Ahora accedemos de nuevo a la base de datos y nos vamos a los eventos comunes.
Debajo del evento común que nos muestra las imágenes, crearemos otro al que llamaremos "Map text out". Configuraremos el desencadenante en "proceso paralelo" y el interruptor en MAP TEXT OUT.
En el contenido crearemos una derivación condicional que se activará si el interruptor MAP CAMPAMENTO está ON. Recordad que es el interruptor que, al activarlo mostraba la imagen con el nombre "Campamento". Dentro de la derivación pondremos en OFF el interruptor MAP CAMPAMENTO e insertaremos el comando "mover imagen" para que la imagen número 1 se vuelva transparente (opacidad = 0 (cero)); los fotogramas para ello los pondremos en 10. Debajo de la derivación condicional, desactivaremos el interruptor MAP TEXT OUT.
Como siempre, una imagen vale más que mil palabras, así que aquí la tenéis.

Vale. Tenemos un evento que nos teletransporta al mapa principal (Campamento) y que nos mostrará el nombre "Campamento" en la parte superior de la pantalla al estar sobre él. Esa imagen se muestra gracias a los interruptores que activan el evento común "Map Text In". Por otra parte, hemos rodeado el evento que nos teletransporta al mapa principal con cuatro eventos que activan el evento común "Map Text Out", que lo que hace es borrar la imagen que muestra el nombre "Campamento".
El proceso es el mismo para las otras imágenes que habéis visto en el vídeo, las que aparecen sobre los personajes al pasar sobre ellos. Lo único que tenéis que hacer es añadir los comandos en los eventos comunes "Map text in" y "Map text out" y en el mapamundi hacer sus eventos. Os dejo unas imágenes del evento de Therion para expresarlo mejor.



En esta segunda página he insertado el comando "mover imagen" para hacer desaparecer la imagen que informa sobre Therion. Esto es para evitar que la imagen se muestre de manera permanente hasta que vuelves a pasar por el evento de Therion.



Y esta parte ya estaría. Ahora solo nos queda regresar al personaje a unas coordenadas concretas.
Os pondré un ejemplo.
Imaginad que el personaje principal consigue el mapa del juego y que, al usarlo, se teletransporta al mapamundi. Pero, de repente, la persona que juega se da cuenta de que no quiere viajar a ningún sitio y quiere volver al sitio en el que estaba. Como ocurría en Pokémon al utilizar Vuelo. Pues eso es lo que haremos.
Vamos al mapa inicial (Campamento) y creamos un evento (yo lo hice al lado del otro cristal). Este evento es muy parecido al otro teletransporte, con la única diferencia de que añadiremos tres variables antes de teletransportar al jugador. Es importante que estén antes del comando de transportar al jugador.
Estas variables son:
- El ID del mapa en el que está el personaje principal
- La coordenada X del personaje
- La coordenada Y del personaje
Al hacer doble clic en el Contenido añadiremos la variable SAVE PLAYER MAPID, aceptamos y, sin cerrar esta pequeña ventana, buscaremos en Operando la opción "D. del juego". Nos saldrá por defecto "ID de mapa", así que lo dejaremos así.

Aceptamos y repetimos el mismo proceso para las otras dos variables (SAVE PLAYER X, SAVE PLAYER Y), con la diferencia de que en el apartado "D. del juego", tendremos que seleccionar otra cosa, así que haremos clic donde pone "ID de mapa" y saldrá otra ventana más. Aquí nos iremos a "Personaje" y en el desplegable seleccionaremos "Mapa X". Para la variable SAVE PLAYER Y, seleccionaremos "Mapa Y".

De esta manera, el evento del teletransporte nos quedaría así:

(En el vídeo edité el texto para que se supiera la diferencia entre ambos cristales, pero no volví a sacar captura).
Recordad que la transición es solo si vais a cambiar la imagen del personaje y/o incluir alguna imagen en el mapa del mundo (como líneas que simulen una pantalla, una viñeta para oscurecer los bordes, etc.).
Volvemos al mapamundi. Aquí creamos un nuevo evento cuyo accionamiento será "proceso paralelo". En el contenido de este evento añadiremos una derivación condicional. Cuando se nos abra la ventana de la derivación, nos iremos a la pestaña 4 y buscaremos la opción "botón". Al lado tiene un desplegable en el que podremos elegir qué botón queremos que sea pulsado para volver al lugar inicial. Tened en cuenta que es un mapa por el que el personaje se moverá, así que las teclas de dirección y aceptar están descartadas; tampoco os recomiendo utilizar las asignadas a "cancelar". Os quedan las opciones de shift (usado para correr) y RePág y AvPág. Yo usaría estas últimas por ser las que menos conflictos generarían. Aunque también podéis usar un script para asignar la tecla que queráis (sin que entre en conflicto con las que usa el RPG Maker para cancelar, aceptar, etc.).
Justo antes de la derivación condicional, hacemos doble clic y nos vamos a la pestaña 3 y buscamos "Script..." al final de la segunda columna. Hacemos clic y escribimos esto:
Input.keyMapper[##] = 'nombre de la tecla'
Donde ## son el número de la tecla (creo que son los valores de las teclas o las teclas virtuales); el "nombre de la tecla" (sin comillas), es la letra pulsada. En mi caso, he escrito esto:
Input.keyMapper[80] = 'P'
Da igual que pongáis la letra mayúscula que minúscula, ya que el nombre es para saber qué tecla es, ya que el programa leerá el valor numérico de dicha letra (el 80).
Aceptamos y editamos la derivación condicional (si la tenemos hecha, si no, pues la hacemos de cero). Nos vamos a la pestaña 4 y buscamos la última opción, "Script". Ahí escribiremos esto:
Input.isTriggered("nombre de la tecla")
En mi caso es esto:
Input.isTriggered("P")
Aceptamos y ya estaría. De esta manera, cuando se pulse la letra P, el programa activará este evento y nos preguntará si queremos regresar. Os dejo la foto de ambas versiones, una con la tecla RePág y la otra con el script, para que uséis la que más os guste.


Da igual qué hayas decidido para que se ejecute el evento, si pulsas la tecla asignada aparecería el mensaje de "¿Quieres volver?" y las elecciones de "Sí/No". Lo que sucede debajo de la opción "Sí" es lo que hemos estado haciendo hasta ahora: iniciar la transición, borrar la imagen 1, cambiar los gráficos del personaje, etc., la diferencia está en el comando de transportar al jugador. Aquí, en lugar de elegir el lugar de manera manual, lo que haremos será indicarle que debe transportarlo según tres variables que nos pedirá: ID del mapa, coordenada X y coordenada Y.
Como al teletransportarnos al mapamundi con el nuevo teletransporte nos guardó las coordenadas en unas variables, usaremos dichas variables para que nos devuelva al lugar en el que estábamos. No se ve bien en la imagen, pero la primera variable es SAVE PLAYER MAPID.

Y de esta manera, si pulsamos RePág/P volveríamos al mismo punto desde el que usamos el objeto Mapa para abrirlo.
Seguramente haya plugins que faciliten estas cosas, pero así a bote pronto solo me viene a la cabeza uno gratuito de Mr Trivel; sirve para mostrar iconos, texto o imágenes sobre los eventos. Yo lo he usado en un juego que tengo pausado para mostrar el nombre de los sitios en el mapa.

De esta manera, os evitaríais el tener que gestionar los interruptores y los eventos comunes para los nombres de los lugares del mapamundi. La única pega es que el nombre del evento aparecerá encima de este; con la imagen tenéis más control sobre dónde queréis que salga.
¡Y ya estaría! 3500 palabras para esto, socorro. Espero que se haya entendido, para mí explicar cómo hago las cosas con el rpg maker es bastante difícil porque no sé cuánto sabe la otra persona y a veces me explico de más o de menos y uf. En fin. Si tenéis cualquier duda, me podéis escribir que os ayudaré encantada 💚
No hay comentarios:
Publicar un comentario