Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[XP] Escaleras laterales

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Escaleras laterales

Mensaje por Lithium el 2018-01-25, 16:29

Buenas otra vez !
Hoy traigo una duda (ya podría ser algún recurso, para variar xD) sobre cómo hacer para que subas o bajes unas escaleras laterales sin tener que ir haciendo zig-zag y que además, dé esa sensación de estar subiendo a mayor altura.
Lo he visto en bases como Pokémon Essentials y en otros juegos encriptados y la verdad que dice mucho del nivel de detalle que tiene un proyecto y yo, como soy una persona perfeccionista no puedo ignorar esto sin más
Si hay algún engine o script que pueda ayudarme con este problema existencial le agradecería que me lo hiciese saber; aclaro que mi duda surge tanto en escaleras de interior como exterior situando al personaje en un segundo piso o en una parte de una ciudad, por ejemplo, que esté a mayor altura.
Gracias de antemano, gente !
avatar
Lithium
Iniciado
Iniciado

0/3

Créditos 24

Gracias : 3

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Escaleras laterales

Mensaje por Wecoc el 2018-01-25, 17:30

Hay un script creado por Heretic que permite eso, llamado Heretic's Diagonal Stairs Deluxe. Puedes encontrarlo en su pack de scripts o buscándolo a parte... Si quieres un sistema complejo para las escaleras diagonales, lo recomiendo. En el mismo pack tiene scripts parecidos que también podrían llegar a servir para ese efecto de "subir" que dices.

También creo que el Pokessentials en sus scripts base incluye un atajo por script para hacerlo, de modo parecido, pero claro es un caso especial.

En la mayoría de casos simples es algo que puede hacerse por engine usando varios eventos con efecto Toparse con Héroe o Colisionar, comprobaciones de dirección del personaje y Mover Evento - Mover arriba-izquierda y parecidos... Seguramente hay tutoriales de eso por ahí pero si vas probando seguramente lo logres tú mismo.
avatar
Wecoc
Administrador
Administrador



Créditos 12211

Gracias : 632

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Escaleras laterales

Mensaje por Lithium el 2018-01-25, 18:47

Perfecto, ese script es justo lo que buscaba !
El script es tan sencillo como colocar los terrenos 5 y 6 en los tiles de las escaleras y entiendo lo que hace, básicamente es como si hiciese un engine con los comandos que me has dicho pero sin la necesidad de poner un evento en cada mapa para activarlo. Funciona perfectamente con escaleras que no ocupen más de 4 cuadros de ancho pero con las rampas tipo esta que uso yo:

Este tipo de tiles es bastante j*dido para que el personaje pueda pasar de un tirón porque choca con las zonas prohibidas así que el script le hace bien pero no del todo; o se choca o a mitad anda recto pero bueno, habrá que conformarse por ahora y se me ha ido un poco la olla xD.
Gracias una vez más, Wecoc !
avatar
Lithium
Iniciado
Iniciado

0/3

Créditos 24

Gracias : 3

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Escaleras laterales

Mensaje por Wecoc el 2018-01-26, 02:21

Con el maker por defecto solo puedes hacer el sistema ese con escaleras en las que se suba o baje un tile para cada tile, no mitades o cosas más complejas (como puentes en los que se sube/baja de modo no linael, por ejemplo).

Es fácil jugar con el "offset" (screen_y) del chara para subirlo o bajarlo de modo manual sin respetar los tiles. Dicho eso entonces parece factible hacer lo que he comentado, pero se complica cuadrarlo con la velocidad del chara, entre otras complicaciones que comentaré a continuación. Me voy un poco de tema pero creo que vale la pena hablar sobre ello xD

Hice hace un tiempo un script de implementación de offset pero no lo subí porque era para un proyecto. Orochii también hizo uno hace unos meses... Y creo que Heretic también tiene algo de eso hecho en esa demo. Igualmente aplicar la opción offset de modo rudimentario es un momento, aquí hice un pequeño arreglo hace un rato. Añadí también la variable slope que se usaría mediante engine para saber la inclinación de las escaleras actualmente, y un par de variables más sobre la velocidad del chara, pero el script en sí no usa nada de eso para nada.

Código:
#==============================================================================
# ** [XP] Character Offset Script
#==============================================================================

class Game_Character
  
  attr_accessor :offset_x, :offset_y, :slope, :move_speed
  attr_reader :move_count
  
  unless $@
    alias offset_ini initialize
    alias offset_sx screen_x
    alias offset_sy screen_y
    alias offset_upd update
    alias offset_updm update_move
    alias offset_upds update_stop
  end
  
  def initialize(*args)
    offset_ini(*args)
    @move_count = 0.0
    @offset_x = 0
    @offset_y = 0
    @slope = 0
  end
  
  def screen_x
    return offset_sx + @offset_x
  end
  
  def screen_y
    return offset_sy + @offset_y
  end
  
  def restore_offset
    unless @offset_x == 0 && @offset_y == 0
      moveto(self.x + @offset_x / 32, self.y + @offset_y / 32)
    end
    @offset_x = 0
    @offset_y = 0
    @offset_timer = 0
  end
  
  def update_move
    offset_updm
    @move_count += (2 ** @move_speed).to_f / 128
    @move_count = @move_count % 1.0
    @move_count = 1.0 if @move_count == 0.0
  end
  
  def update_stop
    offset_upds
    @move_count = 0.0
  end
end

Para que entiendas rápido de qué va ésto, si pones que el chara tenga un offset Y de +4, pese a estar en el tile como siempre se verá 4 píxeles más abajo de lo normal. Eso vale para cualquier valor, con lo que puedes mover el chara a lo loco como si fuera una picture. Entenderás que jugando con ésto entonces es factible hacer que parezca que se mueva de modo diagonal, incluso con escaleras de medio tile de alto como las que has puesto. No solo eso sinó que eso del offset puede tener otros usos para el juego.

Si haces que al entrar en la escalera cambie la variable slope a 32 mediante evento y por engine lo montas de modo que el offset varíe según ese slope y la velocidad actual del chara, ya tienes el movimiento diagonal listo. Las escaleras del otro lado tendrían slope de -32. Y las que has puesto de medio tile de 16, y las del otro lado de -16.

Eventos:



Aún así con eso solo aún no es factible hacer ese sistema. El problema principal son los eventos a usar a lo largo de la escalera para definir el cambio de slope.
Se usaría un evento de entrada (E) a la escalera y uno de salida (S), tanto por arriba como por abajo.

Esquema:

El esquema de eventos sería así, supongo que se entiende.
Para simplificar solo hablaré de los de ir hacia arriba, olvidemos los de bajada.

El problema es la activación de esos eventos. Toparse con héroe se inicia cuando estás encima del tile de modo cuadrado con éste, mientras que colisionar se activa justo al tocarlo. En éste caso lo que se necesitaría es un punto intermedio, como un inicio al haber andado medio tile, a no ser que movamos las escaleras medio tile hacia la izquierda de modo que los laterales de ésta quedarán también a medio tile, un problema al mapear y al crear los tiles. Solo con esa activación a medio tile el subir y bajar del personaje queda bien cuadrado con los tiles y sus escaleras, tanto al entrar en ellas como al salir. Hacer eso bien entonces es todo un reto. Otro problema relacionado es que luego la fórmula que mostré antes en la imagen para calcular el offset se complica bastante si es iniciada y parada a medio tile, pero a lo largo de la escalera funciona a lo largo de todo el tile.

Esquema:





Es definitiva, un sistema así es factible pero si realmente se quiere hacer de modo que quede lo mejor posible en el juego, es todo un rompecabezas.
avatar
Wecoc
Administrador
Administrador



Créditos 12211

Gracias : 632

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Escaleras laterales

Mensaje por Lithium el 2018-01-26, 11:34

Vale, he probado el script más los eventos tal cual me lo has explicado y este es el resultado:
https://k50.kn3.net/3/E/0/0/2/1/032.gif
Me ha servido hasta el punto de crear más realismo al subir/bajar la rampa puesto que la velocidad del chara varía pero como ves, sigue ocurriendo que cada dos escalones vuelve a caminar recto y en la bajada parece que va bien pero se topa dos veces, ahí ya entramos en el tema de prohibiciones de paso pero bueno, ya es más, muchísimo más de lo que hubiese conseguido sin tu ayuda.

Reconozco que con unas escaleras adaptadas al script de Heretic no tendría ningún problema (en principio) pero en exteriores no todo van a ser escaleras, hay que pensar en las complicasione' xD.

Sin embargo, con el "engine" activado, al subir un cuadro el personaje se queda clavado en un punto prohibido y ya ni para adelante ni para atrás, realmente es un sistema muy puñetero con el que... te explota la cabeza, vaya

Por ahora daré zanjado el tema pero si se te ocurre algo más que pueda probar te estaré muy agradecido tio !
avatar
Lithium
Iniciado
Iniciado

0/3

Créditos 24

Gracias : 3

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Escaleras laterales

Mensaje por Eron el 2018-01-26, 13:54

Oye pues en tu caso creo que estás bastante cerca a lo que buscabas, ¿probaste con igualar slope a 16 en vez de 32 en el E? Si consigues que suba la inclinación que debe, luego hacer algún arreglo para que vaya bien la pasabilidad no creo que sea problema x'D

Sobre el caso que plantea Wecoc, me pareció interesante, aunque quizá algo rebuscado lo del medio tile, no creo que fuera para tanto plantear los tiles de modo que no se necesitaran "medios tiles". Bueno, creo que haré alguna prueba. Lo de poder activar el evento a medio pasar con el siguiente podría valer para alguna otra cosa quizá, pero no se me ocurre nada x'D
avatar
Eron
Principiante
Principiante

0/3

Créditos 3599

Gracias : 60

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Escaleras laterales

Mensaje por orochii el 2018-01-26, 17:50

Ayer hablaba con Wecoc de añadir una propiedad nueva a los tiles en los tilesets, que se llame simplemente [line]offset[/line], requeriría un editor personalizado (y guardarlo en un archivo aparte) pero eso dejaría hacer automático el offset del personaje al pasar sobre un cierto tile, parecido a lo que lograste ahí Lithium, pero la idea es que eso deje poner por ejemplo 16 de [line]offset[/line] y mueva el personaje 16 pixeles hacia arriba. Eso también debería dejar moverlo solo 2 pixeles, o 4 o lo que sea, y "variar" alturas y se vea menos plano el suelo xD.

En teoría podría usar el mismo script de offset que puso Wecoc ahí. Nada más que se setee esa propiedad (o una similar) en el chara de acuerdo al tile donde esté parado. Es algo bastante reusable, y se podría unir con otro efecto de escaleras laterales para completar el efecto, o usarlo por su cuenta xD (aunque dependiendo de la escalera si lo haces sólo con offsets, necesitarás un tile distinto por cada altura...).
avatar
orochii
Reportero

0/3

Créditos 7724

Gracias : 436

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Escaleras laterales

Mensaje por Lithium el 2018-01-27, 05:38

@Eron escribió:Oye pues en tu caso creo que estás bastante cerca a lo que buscabas, ¿probaste con igualar slope a 16 en vez de 32 en el E? Si consigues que suba la inclinación que debe, luego hacer algún arreglo para que vaya bien la pasabilidad no creo que sea problema x'D

Sobre el caso que plantea Wecoc, me pareció interesante, aunque quizá algo rebuscado lo del medio tile, no creo que fuera para tanto plantear los tiles de modo que no se necesitaran "medios tiles". Bueno, creo que haré alguna prueba. Lo de poder activar el evento a medio pasar con el siguiente podría valer para alguna otra cosa quizá, pero no se me ocurre nada x'D

Está casi casi jajajajaja he probado todo lo que se me ha dicho en el post y los resultados han sido cada vez mejores, solo faltaría la continuidad de que el chara siga subiendo por la rampa (las escaleras, si tienen la misma estructura que en la demo de Heretic funciona genial) y que al bajar no se tope con las zonas prohibidas del tile porque al subir no se topa con nada, supongo que el script hará que el chara baje demasiados píxeles.

@orochii escribió:Ayer hablaba con Wecoc de añadir una propiedad nueva a los tiles en los tilesets, que se llame simplemente [line]offset[/line], requeriría un editor personalizado (y guardarlo en un archivo aparte) pero eso dejaría hacer automático el offset del personaje al pasar sobre un cierto tile, parecido a lo que lograste ahí Lithium, pero la idea es que eso deje poner por ejemplo 16 de [line]offset[/line] y mueva el personaje 16 pixeles hacia arriba. Eso también debería dejar moverlo solo 2 pixeles, o 4 o lo que sea, y "variar" alturas y se vea menos plano el suelo xD.

En teoría podría usar el mismo script de offset que puso Wecoc ahí. Nada más que se setee esa propiedad (o una similar) en el chara de acuerdo al tile donde esté parado. Es algo bastante reusable, y se podría unir con otro efecto de escaleras laterales para completar el efecto, o usarlo por su cuenta xD (aunque dependiendo de la escalera si lo haces sólo con offsets, necesitarás un tile distinto por cada altura...).

Madreee, eso sería una maravilla, Orochii ! Por ejemplo, ahora estoy mapeando una ciudad con sus aceras, carreteras... con algo así se podría dar un gran realismo al tileset en conjunto y poder diferenciar entre alturas, ya sean grandes o pequeñas; no quisiera emocionarme antes de tiempo pero si desarrolláis esa idea podría ser un antes y un después en el uso del programa O.o
avatar
Lithium
Iniciado
Iniciado

0/3

Créditos 24

Gracias : 3

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Escaleras laterales

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.