Últimos temas
» Stats que no calzan (MV)
por Muzgar Hoy a las 1:49 pm

» Juego Base en Inglés (RPG MAKER MV)
por Muzgar Hoy a las 1:22 pm

» Problema con pantalla en negro (MV)
por The Ferydra Hoy a las 2:12 am

» [VXACE] Las Esferas de Capricornia. Actualizado 06.12.17
por Pocari Ayer a las 8:31 pm

» Hago BSO para tu proyecto
por RoryGRojas Ayer a las 4:53 pm

» 3ºC vs Kursaal (RPG2000) (Terminado)
por rpgero Mar Dic 12, 2017 4:52 pm

» No se ven/ejecutan eventos
por Pokefanmati Dom Dic 10, 2017 8:22 pm

» [ACE] El secreto de la estrella perdida
por TheHeroZX Mar Dic 05, 2017 7:28 pm

» Demo "Oblitian: La Búsqueda" (2017) [VxAce]
por Invark Lun Dic 04, 2017 4:07 am

» Procesos automáticos bloquean el movimiento de mi personaje
por KRiZaLiD Lun Dic 04, 2017 3:15 am

» las armas inferno(demo)
por conor Dom Dic 03, 2017 9:23 pm

» Pongámosle un Mote a nuestro Limo
por Stainler Dom Dic 03, 2017 5:01 am


[VXACE]Overlay Mappig + Map Screnshot

Ver el tema anterior Ver el tema siguiente Ir abajo

[VXACE]Overlay Mappig + Map Screnshot

Mensaje por facus26 el Vie Abr 04, 2014 8:23 pm

Buenas a todos, espero que les sirva este script, ya digo que no soy su autor solo lo traduje y lo compartí, el tuto si es mio, lo hice con lo que fue aprendiendo del script ya que no es difícil de usar, lo difícil es usar el photoshop XD.

Autores:
Overlay Mapping: Hanzo Kimura por el script original y Yami por pasarlo al VX ACE
Map Screenshot: Tsukihime
Dueño del tileset dedicado a overlay
(tile para la prohibición de movimiento): Drack Venamides

Introducción:
Este script está basado en la idea de tener, para el mapa en el cual está trabajando, una seria de capas, ya que el Rpg maker Vx Ace carece de esta función.
La genialidad de esta idea es que usted podrá incluir en sus mapas distintos recursos que no necesariamente estén en el tileset que utilice. Esto le ahorrara el trabajo de andar buscando tileset específicos para el programa y a la hora de mapear, el disgusto de que no tenga todos los objetos en las imágenes que tiene.

Bueno para empezar a utilizar esta maravillosa técnica necesitaras:
- Un editor de imágenes. Muy Recomendado Photoshop
- Tileset varios, para poder variar en lo que sería la decoración del mapa.
- Este y el script Map Screnshot colocados en el juego.

Nota: El script Map Screnshot es opcional, personalmente es una buena combinación con el Overlay Mapping.

El Map Screnshot se utiliza para poder sacar una imagen completa del mapa, solo tocando la tecla F7 (configurable en el script), a diferencia del botón “IMPR PANT” que saca una imagen de la pantalla, este te extrae el mapa entero en formato .png y lo guarda en una carpeta llamada Map Screnshot alojada en la carpeta raíz del proyecto.


Bueno pasemos a explicar como es el tema de las capas, que la verdad en muy sencillo de entender, y lo aremos mediante una simple imagen:


En esta imagen podemos apreciar las 6 capas finales que tendrá cada mapa de su juego en si.


Empecemos, la capa Map Editor es el mapa base que deberán crear en el Rpg maker, me refiero que para empezar hay que armar lo que seria, ejemplo, en una ciudad los edificios, sin ningún detalle solo la estructura de los edificios y las calles, el pasto, etc.

En la segunda capa, llamada Ground, va todo lo que usted quiera poner al nivel del personaje, esto es que pase por debajo de él, como puede ser una flor, o todo con lo que quiera que se choque, como lo es el tronco de un árbol (Aclaro SOLO el tronco).

La tercer capa es donde se encuentra el personaje, no significa que lo vallas a agregar aparte en el editor, sino que el script en un orden de prioridades coloca al personaje por encima de las capas 1 y 2, y por debajo de las otras capas.
Cuarta capa el parallax (la verdad no se la traducción XD) en esta capa se colocara todo lo que uno quiere que pase por encima del personaje.
Ejemplos: Copas de árboles, puentes, parte plantas, columnas, etc.

En la quinta capa iría todo lo referido a sombras y la sexta y última todo lo que son luces en el juego.

Este script se maneja aparte de por capa se maneja por 4 interruptores y 2 variables.
Los 4 primeros interruptores de tu proyecto tienen que estar dedicados al script al igual que las 2 primeras variables.
Los interruptores y las variables tendrían que estar de esta manera:


Los interruptores si están activados aparecen las capas, por defecto están activadas, y las variables sirven para tener mas de una imagen por capa.
Esto sirve para poder hacer por ejemplo el efecto de dia y noche cambiando las capas de sombras y luces, o poder hacer en un mismo mapa cambiar la estación del año, hacer 2 capas de ground y parallax, un par dedicado para el verano y otro para el invierno. Y millones de cosas mas.
Las variables sirven con las constantes:


Esto iría tal cual esta acá, para variar de imagen hay que cambiar la parte que dice constante por la que se requiera de 1 en adelante.
Bueno una vez explicado esto vamos a los pasos básicos para hacer tus mapas.
1- Muy recomendable es hacer el mapa base de tu mapa, lo que abarca todo lo que son pisos y paredes. Esto en realidad es opcional ya que solo es una guía para poder hacer el mapa en el photoshop.
Ejemplo:


Para poder conseguir rápido una imagen exacta del mapa les recomiendo usar el script de Map Screnshot, esté saca dese el juego apretando F7 una screnshot del mapa completo no de la pantalla, que es justo lo que necesitas para empezar con el photoshop.
2-Luego de tener el mapa, abrirlo con el photoshop y prepararlo la sección de capas de esta manera:


Así poder tener bien ordenada las distintas capas que vamos a ir agregando, se puede observar que la capa de personaje no hace falta agregarla y la capara Map Editor es la que dice Capa 1, que sería el fondo de todo el mapa.


3-Después de esta etapa está en la imaginación de ustedes como decorar todo  su mapa, solo es cuestión de copiar las cosas (ya sean muebles, plantas, etc.) y agregarla al mapa, recuerden para que sirve cada capa.


4-Una vez terminado el mapa hay que extraer cada capa para guardarla en la carpeta de Graphics/Overlay.

Las capas de gorund y paralax seguardan en este formato:

Gorund + MapID-1.png  
par + MapID-1.png
Shadow + MapID-1.jpg
Light + MapID-1.jpg
Siendo  ground y par prefijos configurables en el script.
MapID es el ID del mapa que se está trabajando, y el 1 sería la variable: 1, 2,3…. Etc.

Cuando vallan a guardar, una forma fácil es apretando en los ojitos que aparecen al lado de cada capa para ocultar o mostrar las capas, si van a guardar la capa ground ocultan toda las demás, menos el fondo para esta capa, y ponen “guardar como”, lo mismo con las demás.
Ahora, las sombras se guardan en color invertido, esto es, hacen toda la sombra como seles canta, a la ahora de guardar ocultan las demás ponen un fondo blanco y buscan una opción para invertir los colores y la guardan en jpg.
Las luces es casi lo mismo pero sin invertirlas, se guardan las luces con un fondo negro.

Bueno llegada esta etapa, lo ultimo que tienen que hacer en guardar las imágenes en Graphics/Overlay y correr el juego. Las capas aparecerán pero les faltara poner las prohibiciones de movimiento.
O NO QUE ES ESTO, tranka que es fácil, si lograron hacer todo lo demás, esto lo hacen en un toque.
En el demo va a ver configurado un tileset llamado DIRECCIONES que agregue yo para que puedan hacer esto mas rápido.

Primero se guardan una imagen del ground y el fondo, ósea, todo lo que el jugador interactúa, está la guarda en .png en la carpeta Grphics/Parallaxes, no importa lo que pasa por encima porque en un tema de movimiento el jugador pasa libremente por ahí.

Luego en el editor de rpg vas al mapa y con clic derecho presionan “propiedades de mapa”


Lo que nos importa es la sección de Panorama, van a tildar la opción como en la imagen y en gráficos van a seleccionar la imagen recién guardada del mapa, con ello logramos q en el editor se vea la imagen y así poder agregar las prohibiciones de movimiento.

Deberia quedar masomenos asi ya con las prohibiciones:


Links demo Overlay y Map Screnshot . Los script no son míos yo solo los traduje y los subí a mediafire para compartirlos acá, agradezcan a ellos que fueron los que lo hicieron (nombres en el script XD) :

MediaFire

Bueno, porfin tuve el tiempo para portar este tuto a este foro, espero que les sirva de algo XD, hay cosas del photoshop que explicare, en cuanto tenga tiempo, en otro post dedicado a photoshop nada mas.

NUEVA VERSIÓN:
Esta es la ultima versión del script que arregla un montón de bugs, y que no esta incluido en la demo, si remplazan el de la demo con este les va a funcionar de maravilla.

Código:
#==============================================================================
#
# ¥ Yami Engine Ace - Overlay Mapping
# -- Last Updated: 2012.04.16
# -- Level: Normal
# -- Requires: n/a
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YSE-OverlayMapping"] = true

#==============================================================================
# ¥ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.04.16 - Reworked with Encrypted Game.
# 2012.04.13 - Ported into Yami Engine.
#
#==============================================================================
# ¥ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script based on Hanzo Kimura's idea. This will automatically load map's
# overlay by map ID, and a map can have more than one image per layer, so you
# don't have to create two or more map just for day/night or when an event occur.
#
#==============================================================================
# ¥ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Create a folder in Graphics and name it Overlay.
# Put all of your overlay into Graphics/Overlay.
# Your overlay file will have the name: "Filename Prefix" + Map-ID + "-" + Number
# which "Filename Prefix" is the one you will config below
# Map-ID is your map's ID
# Number is 1, 2, 3, ... using for Overlay Variables.
#
# Example: Graphics/Overlay/ground2-1.png
# Which means this will be ground layer, for map 2, variable = 1
#
# Light/Shadow must be .jpg
# Parallax/Ground must be .png
#
#==============================================================================

module YSA
  module OVERLAY
    
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Overlay Switches -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # These are switches which are enable overlay layers. Turn them on to show
    # them in your maps.
    #--------------------------------------------------------------------------
    # Default: ON
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    LIGHT_SWITCH = 1        # Turn on/off light layer
    SHADOW_SWITCH = 2       # Turn on/off shadow layer
    PARALLAX_SWITCH = 3     # Turn on/off parallax layer
    GROUND_SWITCH = 4       # Turn on/off ground layer

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Overlay Variables -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # A map can have more than one image per layer, that means you can have a
    # different light/shadow for day and night, or have a different ground when
    # an event occured.
    #--------------------------------------------------------------------------
    # Default: 1
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    LIGHT_VARIABLE = 2      # Switch to another light
    SHADOW_VARIABLE = 2     # Switch to another shadow
    PARALLAX_VARIABLE = 1   # Switch to another parallax
    GROUND_VARIABLE = 1     # Switch to another ground
    
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Filename Prefix -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # This will make this script automatic, it will check if there are layers in
    # overlay folder
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    LIGHT = "light"         # Light layer's filename prefix
    SHADOW = "shadow"       # Shadow layer's filename prefix
    PARALLAX = "par"        # Parallax layer's filename prefix
    GROUND = "ground"       # Ground layer's filename prefix
    
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Overlay Opacity -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # This will make this script automatic, it will check if there are layers in
    # overlay folder
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    GROUND_OPACITY = 255
    PARALLAX_OPACITY = 255
    LIGHT_OPACITY = 128
    SHADOW_OPACITY = 96
    
  end #OVERLAY
end # YSA

#==============================================================================
# ¥ Editting anything past this point may potentially result in causing
# computer damage, incontinence, explosion of user's head, coma, death, and/or
# halitosis so edit at your own risk.
#==============================================================================

#==============================================================================
# ¡ Cache
#==============================================================================

module Cache
  
  #--------------------------------------------------------------------------
  # new method: overlay
  #--------------------------------------------------------------------------
  def self.overlay(filename)
    begin
      self.load_bitmap("Graphics/Overlay/", filename)
    rescue
      self.empty_bitmap
    end
  end
  
end # Cache

#==============================================================================
# ¡ DataManager
#==============================================================================

module DataManager
  
  #--------------------------------------------------------------------------
  # alias method: setup_new_game
  #--------------------------------------------------------------------------
  class <<self; alias ovm_setup_new_game setup_new_game; end
  def self.setup_new_game
    ovm_setup_new_game
    setup_overlay_mapping
  end
  
  #--------------------------------------------------------------------------
  # new method: setup_overlay_mapping
  #--------------------------------------------------------------------------
  def self.setup_overlay_mapping
    # Control switches
    $game_switches[YSA::OVERLAY::LIGHT_SWITCH] = true
    $game_switches[YSA::OVERLAY::SHADOW_SWITCH] = true
    $game_switches[YSA::OVERLAY::GROUND_SWITCH] = true
    $game_switches[YSA::OVERLAY::PARALLAX_SWITCH] = true
    
    # Control variables
    $game_variables[YSA::OVERLAY::LIGHT_VARIABLE] = 1
    $game_variables[YSA::OVERLAY::SHADOW_VARIABLE] = 1
    $game_variables[YSA::OVERLAY::GROUND_VARIABLE] = 1
    $game_variables[YSA::OVERLAY::PARALLAX_VARIABLE] = 1
  end
  
end # DataManager

#==============================================================================
# ¡ Spriteset_Map
#==============================================================================

class Spriteset_Map
  
  #--------------------------------------------------------------------------
  # alias method: initialize
  #--------------------------------------------------------------------------
  alias overlay_initialize initialize
  def initialize
    overlay_initialize
    create_overlay_map
    update
  end
  
  #--------------------------------------------------------------------------
  # new method: create_overlay_map
  #--------------------------------------------------------------------------
  def create_overlay_map
    @current_light = 0
    @current_shadow = 0
    @current_par = 0
    @current_ground = 0
    # Ground Layer
    @ground = Sprite.new(@viewport1)
    @ground.z = 1
    @ground.opacity = YSA::OVERLAY::GROUND_OPACITY
    # Light Layer
    @light = Sprite.new(@viewport1)
    @light.opacity = YSA::OVERLAY::LIGHT_OPACITY
    @light.blend_type = 1
   @light.z = 299
    # Shadow Layer
    @shadow = Sprite.new(@viewport1)
    @shadow.opacity = YSA::OVERLAY::SHADOW_OPACITY
    @shadow.blend_type = 2
    @shadow.z = 298
    # Parallax Layer
    @par = Sprite.new(@viewport1)
    @par.opacity = YSA::OVERLAY::PARALLAX_OPACITY
    @par.z = 297
  end
  
  #--------------------------------------------------------------------------
  # alias method: dispose_parallax
  #--------------------------------------------------------------------------
  alias overlay_dispose_parallax dispose_parallax
  def dispose_parallax
    overlay_dispose_parallax
    dispose_overlay_map
  end
  
  #--------------------------------------------------------------------------
  # new method: dispose_overlay_map
  #--------------------------------------------------------------------------
  def dispose_overlay_map
    @ground.dispose
    @light.dispose
    @shadow.dispose
    @par.dispose
  end
  
  #--------------------------------------------------------------------------
  # alias method: update_parallax
  #--------------------------------------------------------------------------
  alias overlay_update_parallax update_parallax
  def update_parallax
    overlay_update_parallax
    update_overlay
  end
  
  #--------------------------------------------------------------------------
  # new method: update_overlay
  #--------------------------------------------------------------------------
  def update_overlay
    update_om_ground
    update_om_par
    update_om_light
    update_om_shadow
  end
  
  #--------------------------------------------------------------------------
  # new method: update_om_ground
  #--------------------------------------------------------------------------
  def update_om_ground
    return unless @ground
    @ground.visible = $game_switches[YSA::OVERLAY::GROUND_SWITCH] if @ground.visible != $game_switches[YSA::OVERLAY::GROUND_SWITCH]
    @ground.ox = $game_map.display_x * 32 if @ground.ox != $game_map.display_x * 32
    @ground.oy = $game_map.display_y * 32 if @ground.oy != $game_map.display_y * 32
    if @current_ground != $game_variables[YSA::OVERLAY::GROUND_VARIABLE]
      filename = YSA::OVERLAY::GROUND
      filename += $game_map.map_id.to_s
      filename += "-" + $game_variables[YSA::OVERLAY::GROUND_VARIABLE].to_s
      @ground.bitmap = Cache.overlay(filename)
      @current_ground = $game_variables[YSA::OVERLAY::GROUND_VARIABLE]
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: update_om_par
  #--------------------------------------------------------------------------
  def update_om_par
    return unless @par
    @par.visible = $game_switches[YSA::OVERLAY::PARALLAX_SWITCH] if @par.visible != $game_switches[YSA::OVERLAY::PARALLAX_SWITCH]
    @par.ox = $game_map.display_x * 32 if @par.ox != $game_map.display_x * 32
    @par.oy = $game_map.display_y * 32 if @par.oy != $game_map.display_y * 32
    if @current_par != $game_variables[YSA::OVERLAY::PARALLAX_VARIABLE]
      filename = YSA::OVERLAY::PARALLAX
      filename += $game_map.map_id.to_s
      filename += "-" + $game_variables[YSA::OVERLAY::PARALLAX_VARIABLE].to_s
      @par.bitmap = Cache.overlay(filename)
      @current_par = $game_variables[YSA::OVERLAY::PARALLAX_VARIABLE]
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: update_om_light
  #--------------------------------------------------------------------------
  def update_om_light
    return unless @light
    @light.visible = $game_switches[YSA::OVERLAY::LIGHT_SWITCH] if @light.visible != $game_switches[YSA::OVERLAY::LIGHT_SWITCH]
    @light.ox = $game_map.display_x * 32 if @light.ox != $game_map.display_x * 32
    @light.oy = $game_map.display_y * 32 if @light.oy != $game_map.display_y * 32
    if @current_light != $game_variables[YSA::OVERLAY::LIGHT_VARIABLE]
      filename = YSA::OVERLAY::LIGHT
      filename += $game_map.map_id.to_s
      filename += "-" + $game_variables[YSA::OVERLAY::LIGHT_VARIABLE].to_s
      @light.bitmap = Cache.overlay(filename)
      @current_light = $game_variables[YSA::OVERLAY::LIGHT_VARIABLE]
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: update_om_shadow
  #--------------------------------------------------------------------------
  def update_om_shadow
    return unless @shadow
    @shadow.visible = $game_switches[YSA::OVERLAY::SHADOW_SWITCH] if @shadow.visible != $game_switches[YSA::OVERLAY::SHADOW_SWITCH]
    @shadow.ox = $game_map.display_x * 32 if @shadow.ox != $game_map.display_x * 32
    @shadow.oy = $game_map.display_y * 32 if @shadow.oy != $game_map.display_y * 32
    if @current_shadow != $game_variables[YSA::OVERLAY::SHADOW_VARIABLE]
      filename = YSA::OVERLAY::SHADOW
      filename += $game_map.map_id.to_s
      filename += "-" + $game_variables[YSA::OVERLAY::SHADOW_VARIABLE].to_s
      @shadow.bitmap = Cache.overlay(filename)
      @current_shadow = $game_variables[YSA::OVERLAY::SHADOW_VARIABLE]
    end
  end
  
end # Spriteset_Map

#==============================================================================
# ¡ Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
  
  #--------------------------------------------------------------------------
  # alias method: post_transfer
  #--------------------------------------------------------------------------
  alias overlay_post_transfer post_transfer
  def post_transfer
    @spriteset.dispose_overlay_map
    @spriteset.create_overlay_map
    @spriteset.update
    overlay_post_transfer
  end

end # Scene_Map

#==============================================================================
#
# ¥ End of File
#
#==============================================================================

Me despido y un saludo.

Fuente en general de donde mas aprendi:
Videos Overlay Mapping
Autor de los videos: Drack Venamides
avatar
facus26
PJ de Relleno
PJ de Relleno

Masculino
RPG Maker : Ace
Mensajes : 5
Monedas : 15
Reputación : 2
Edad : 25

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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