Últimos temas
» [VX/Ace]PersonajesEscolares
por mdk3dd Hoy a las 3:30 pm

» Chaos of Destiny - The Origin
por mdk3dd Ayer a las 9:24 pm

» Laminación [VXACE] [NUEVO LAVADO DE CARA!]
por Pocari Ayer a las 8:22 pm

» [Avance] Chaos of Destiny - The origin
por IvalteK_Dev Ayer a las 7:11 pm

» Proyecto: "En busca del biberón perdido"
por IvalteK_Dev Ayer a las 6:59 pm

» Muz-taller: Charas
por Ruben_modder Ayer a las 2:30 pm

» 2 Dudas: Compatibilidad maker PC y Android
por Ruben_modder Ayer a las 1:36 pm

» Duda Bases Maker MV
por Ruben_modder Ayer a las 11:46 am

» [MV] Precognition
por JapoZero Sáb Dic 08, 2018 8:06 am

» ("TCG") Que RPG Maker es el recomendado?
por JKLmaster Vie Dic 07, 2018 7:48 pm

» Problema con los charas
por mdk3dd Dom Dic 02, 2018 5:55 pm

» Heartland | IGMC 2018
por InvariableZ Dom Dic 02, 2018 11:20 am


[VXAce] CKN Parallax Mapping

Ir abajo

[VXAce] CKN Parallax Mapping

Mensaje por Chaskarron el Miér Nov 08, 2017 4:01 pm

Script: CKN Parallax Mapping
Autor: Chaskarron
Descripcion: Permite la implementacion de mapeados mediante la tecnica de parallax mapping de forma sencilla y eficaz. Es necesario disponer del CKN Core Script.
Creditos: A Chaskarron para uso en proyectos comerciales y libres.
Utilizacion: Agregar el script debajo del CKN Core Script. El script permite usar 4 capas para cada mapa, o 5 si se usa un paralaje extra para el fondo. La capa 1 hara la funcion de suelo e ira debajo de los personajes y eventos. La capa 2 servira para crear las oclusiones por las que el personaje pasara por debajo, la capa 3 es para efectos de iluminacion, o como efectos extra de iluminacion si la capa anterior ya los lleva. Y se puede implementar una capa extra para generar efectos extras de sombreado, oclusiones, niebla, o lo que la creatividad pueda aportar. Esta ultima capa se puede implementar o no, dependiendo de que sea o no necesaria.

NOTA: Ya que el script busca el archivo correspondiente exista o no, si las circunstancias lo requieren es necesario crear una imagen transparente, de 1x1px para no usar la memoria en exceso con las capas que no se vayan a usar. Un ejemplo sencillo seria que vamos a crear un mapa que solo use las dos primeras capas, pues creamos las imagenes de esas capas, y usamos una imagen transparente de 1x1px nombrada como la tercera capa. Esto evitara que el script nos envie un error al no encontrar la imagen que busca por defecto.

Se pueden activar las opciones de desplazamiento en las opciones del mapa para generar mapas en bucle. Si activamos las opciones de bucle de las opciones del paralaje, nuestra capa "weather" se movera adquiriendo esos valores.

Ejemplo de uso:

He creado 4 imagenes para un nuevo mapa de 25x25 tiles, lo que traducido al maker resulta en una imagen de 800x800 pixeles dado que 25tilesx32pixels = 800pixeles totales.

imagen del resultado:



Para editar el mapa, agrego la imagen como parallax por defecto y le marco la opcion de "mostrar en el editor". Cubro los tiles del suelo con cualquier tile de suelo, estos tiles no se mostraran en el resultado final.

imagen del resultado:




Ahora agrego a las notas del mapa las capas que voy a usar para crear el mapeado en parallax. Y obviamente retiro la imagen de paralaje que he usado para editar el mapa.

imagen del resultado:



Y este es el resultado final de como queda el mapeado.

imagen del resultado:



Y aqui el codigo del script para su uso.
Código:
=begin
################################################################################
================================================================================
CKN Parallax Mapping Script
version: 1.0.0
credits: Chaskarron
contact: chaskarron[at]gmail.com

This script requires CKN-Core to works

INSTRUCTIONS:

Put this script behind CKN-Core.
This parallax system uses 4 images for parallax and weather purposes.

  -The first layer is the default parallax image of RPG Maker. Behind the tileset
   and must be implemented as default parallax image in engine.

  -The next three layers are in bellow and over the character layer and must be
   especified with notetags in map notes as <parallax:map_layer>, you must
   create 2 images named map_layer1, map_layer2 and map_layer3 with this example.
   All images must be in parallax folder of your project. In this case map_layer1
   is bellow character layer, map_layer2 and map_layer3 are over character layer.
  
  -The last layer is for weather, and must be especified in map notes as
   <weather:imagename>, you must create a image named imagename with this
   example.
  
CHANGELOG

  v1.0.0 Script finished
    
================================================================================
################################################################################
=end
msgbox('Missing Script: CKN Core Script! This plugin requires this
script to work.') if !$imported["CKN-Core"]
$imported["CKN-ParallaxMapping"] = true
################################################################################
# Game_Map class
################################################################################
class Game_Map
  #--------------------------------------------------------------------------
  # * Alias Setup
  alias ckn_parallax_game_map_setup setup
  #--------------------------------------------------------------------------
  def setup(map_id)
    ckn_parallax_game_map_setup(map_id)
    $ckn.get_datanotes(@map.note).each { |key, value|
      @ckn_data[key] = value
    } if CKN.enabled?
 p @ckn_data
  end
end
################################################################################
# Spriteset_Map class
################################################################################
class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Alias Create Parallax
  alias ckn_spriteset_map_create_parallax create_parallax
  #--------------------------------------------------------------------------
  def create_parallax
    ckn_spriteset_map_create_parallax
    create_ckn_parallax
  end
  #--------------------------------------------------------------------------
  # * Alias Update Parallax
  alias ckn_spriteset_map_update_parallax update_parallax
  #--------------------------------------------------------------------------
  def update_parallax
    ckn_spriteset_map_update_parallax
    update_ckn_parallax
  end
  #--------------------------------------------------------------------------
  # * Alias dispose
  alias ckn_core_dispose dispose
  #--------------------------------------------------------------------------
  def dispose
    dispose_ckn_parallax
    ckn_core_dispose
  end
  
  def update_ckn_parallax
    (0..4).each { |n|
      if !$game_map.ckn_data["parallax"].nil? && !$game_map.ckn_data["weather"].nil?
        if n == 1 || n == 2 || n == 3
          @parallax_content[n].bitmap = Cache.parallax($game_map.ckn_data["parallax"]+n.to_s)
          @parallax_content[n].ox = $game_map.display_x * 32
          @parallax_content[n].oy = $game_map.display_y * 32
        elsif n == 0
          @parallax_content[n].bitmap = Cache.parallax(@parallax_name)
          @parallax_content[n].ox = $game_map.display_x * 32
          @parallax_content[n].oy = $game_map.display_y * 32
        else
          @parallax_content[n].bitmap = Cache.parallax($game_map.ckn_data["weather"])
          @parallax_content[n].ox = $game_map.parallax_ox(@parallax_content[n].bitmap)
          @parallax_content[n].oy = $game_map.parallax_oy(@parallax_content[n].bitmap)
        end
      elsif !$game_map.ckn_data["parallax"].nil? && $game_map.ckn_data["weather"].nil?
        if n == 1 || n == 2 || n == 3
          @parallax_content[n].bitmap = Cache.parallax($game_map.ckn_data["parallax"]+n.to_s)
          @parallax_content[n].ox = $game_map.display_x * 32
          @parallax_content[n].oy = $game_map.display_y * 32
        elsif n == 0
          @parallax_content[n].bitmap = Cache.parallax(@parallax_name)
          @parallax_content[n].ox = $game_map.display_x * 32
          @parallax_content[n].oy = $game_map.display_y * 32
        else
          @parallax_content[n].bitmap = Cache.empty_bitmap
        end
      elsif $game_map.ckn_data["parallax"].nil? && !$game_map.ckn_data["weather"].nil?
        if n == 1 || n == 2 || n == 3
          @parallax_content[n].bitmap = Cache.empty_bitmap
        elsif n == 0
          @parallax_content[n].bitmap = Cache.parallax(@parallax_name)
          @parallax_content[n].ox = $game_map.display_x * 32
          @parallax_content[n].oy = $game_map.display_y * 32
        else
          @parallax_content[n].bitmap = Cache.parallax($game_map.ckn_data["weather"])
          @parallax_content[n].ox = $game_map.parallax_ox(@parallax_content[n].bitmap)
          @parallax_content[n].oy = $game_map.parallax_oy(@parallax_content[n].bitmap)
        end
      else
        @parallax_content[n].bitmap = Cache.empty_bitmap
      end
    }
  end
  
  def create_ckn_parallax
    @parallax_content = []
    @parallax_content[0] = Plane.new(@viewport1)
    @parallax_content[1] = Plane.new(@viewport1)
    @parallax_content[2] = Plane.new(@viewport2)
 @parallax_content[3] = Plane.new(@viewport2)
    @parallax_content[4] = Plane.new(@viewport3)
    @parallax_content[0].z = -100
  end
  
  def dispose_ckn_parallax
    (0..3).each { |n|
      @parallax_content[n].dispose
    }
  end
end
################################################################################
# CKN_Core class
#==============================================================================
# Used to provide global methods for ckn scripts. Data is included in save.
################################################################################
class CKN_Core
  #--------------------------------------------------------------------------
  # Alias Initialize
  alias ckn_parallax_initialize initialize
  #--------------------------------------------------------------------------
  def initialize
    ckn_parallax_initialize
    CKN.addScript("CKN-ParallaxMapping")
    CKN.showScript(CKN.includes.size - 1)
  end
end



Es un script facil de usar y con el que el esfuerzo recae unicamente en el trabajo que conlleva crear las capas ya que no requiere de ninguna configuracion adicional. Personalmente creo que este script bien utilizado puede dar lugar a grandes proyectos y mapeados que rompen la actual estetica de los tiles.

Cualquier duda o aclaracion sobre su uso no dudeis en comentarla y espero que este script os sirva para dejar correr vuestra imaginacion a la hora de mapear vuestros proyectos.

Saludos!!!!
avatar
Chaskarron
PJ Secundario
PJ Secundario

Masculino
España
RPG Maker : MV
Mensajes : 149
Monedas : 484
Reputación : 27
Edad : 37
Localización : Mordor

Volver arriba Ir abajo

Volver arriba

- Temas similares

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