O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Aulas de Mapeamento no VX, VX Ace e XP: Aula 2

Iniciado por ique26, 30/11/2012 às 22:53

30/11/2012 às 22:53 Última edição: 30/11/2012 às 22:55 por ique26





Olá pessoal, depois de muito tempo sem postar aulas, resolvi parar de vagabundear e começar a trabalhar.
Hoje trabalharemos com o VX Ace, usando como base o Tileset Cliff Set 01 de Valkyrie Stories. Nesta aula usaremos um método diferente para mapear, usaremos o Ultimate Overlay Mapping. Se você não sabe o que é isso, se mata aconselho você à dar uma olhada no melhor tutorial aqui da MRM sobre o assunto: http://www.mundorpgmaker.com/forum/index.php?topic=86884.msg785136#msg785136. Não focarei no método de mapeamento, e sim, no resultado do mapa... Então se tiver alguma dúvida, veja o tutorial de que falei.

Ps: O tutorial que indiquei é para o VX mas serve como base para qualquer versão do UOM.




Antes de começar a mapear, precisaremos de dois scripts: Ultimate Overlay Mapping e Screenshot do Mapa Completo. Irei deixar o link para o tópico dos mesmos, no final da aula.

Yami Script Ace - Overlay Mapping
By: Hanzo Kimura
Convertido pela: Yami


Spoiler
#==============================================================================
# 
# ▼ Yami Script Ace - Overlay Mapping
# -- Last Updated: 2011.12.29
# -- Level: Easy
# -- Requires: n/a
# -- Credit: Hanzo Kimura for Original Script
# 
#==============================================================================

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

#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2011.12.29 - Bugfix for transfer.
# 2011.12.10 - Started and Finished Script.
#
#==============================================================================
# ▼ 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)
    load_bitmap("Graphics/Overlay/", filename)
  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: check_file
  #--------------------------------------------------------------------------
  def check_file(type)
    filename = "Graphics/Overlay/"
    filename += YSA::OVERLAY::GROUND if type == "ground"
    filename += YSA::OVERLAY::LIGHT if type == "light"
    filename += YSA::OVERLAY::SHADOW if type == "shadow"
    filename += YSA::OVERLAY::PARALLAX if type == "par"
    filename += $game_map.map_id.to_s
    filename += "-" + $game_variables[YSA::OVERLAY::GROUND_VARIABLE].to_s if type == "ground"
    filename += "-" + $game_variables[YSA::OVERLAY::LIGHT_VARIABLE].to_s if type == "light"
    filename += "-" + $game_variables[YSA::OVERLAY::SHADOW_VARIABLE].to_s if type == "shadow"
    filename += "-" + $game_variables[YSA::OVERLAY::PARALLAX_VARIABLE].to_s if type == "par"
    filename += ".jpg" if type == "light" || type == "shadow"
    filename += ".png" if type == "par" || type == "ground"
    return FileTest.exist?(filename)
  end
  
  #--------------------------------------------------------------------------
  # new method: create_overlay_map
  #--------------------------------------------------------------------------
  def create_overlay_map
    w = Graphics.width
    h = Graphics.height
    @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_viewport = Viewport.new(0, 0, w, h)
    @light_viewport.z = 10
    @light = Sprite.new(@light_viewport)
    @light.opacity = YSA::OVERLAY::LIGHT_OPACITY
    @light.blend_type = 1 
    # Shadow Layer
    @shadow_viewport = Viewport.new(0, 0, w, h)
    @shadow_viewport.z = 9
    @shadow = Sprite.new(@shadow_viewport)
    @shadow.opacity = YSA::OVERLAY::SHADOW_OPACITY
    @shadow.blend_type = 2
    # Parallax Layer
    @par_viewport = Viewport.new(0, 0, w, h)
    @par_viewport.z = 8
    @par = Sprite.new(@par_viewport)
    @par.opacity = YSA::OVERLAY::PARALLAX_OPACITY
  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
    @shadow_viewport.dispose
    @light_viewport.dispose
    @light.dispose
    @shadow.dispose
    @par_viewport.dispose
    @par.dispose
  end
  
  #--------------------------------------------------------------------------
  # alias method: update_parallax
  #--------------------------------------------------------------------------
  alias overlay_update_parallax update_parallax
  def update_parallax
    overlay_update_parallax
    # Parallax
    if @ground != nil
      if check_file("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
        @ground.tone = $game_map.screen.tone
        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
      else
        @ground.visible = false
      end
    end
    # Light
    if @light != nil && @light_viewport != nil
      if check_file("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
        @light.tone = $game_map.screen.tone
        @light_viewport.ox = $game_map.screen.shake
        @light_viewport.color = $game_map.screen.flash_color
        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
      else
        @light.visible = false
      end    
    end
    # Shadow
    if @shadow != nil && @shadow_viewport != nil
      if check_file("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
        @shadow.tone = $game_map.screen.tone
        @shadow_viewport.ox = $game_map.screen.shake
        @shadow_viewport.color = $game_map.screen.flash_color
        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
      else
        @shadow.visible = false
      end
    end
    # Parallax
    if @par != nil && @par_viewport != nil
      if check_file("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
        @par.tone = $game_map.screen.tone
        @par_viewport.ox = $game_map.screen.shake
        @par_viewport.color = $game_map.screen.flash_color
        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
      else
        @par.visible = false
      end
    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
# 
#==============================================================================
[close]

Screenshot do Mapa Completo [VX Ace]
By: Kyo Panda
Convertido por: Gab!


Cole esse Script acima do Main, mas abaixo do UOM. Para tirar a Screenshot, basta apertar "S", mas isso pode ser modificado no Script

Spoiler
#==============================================================================
# Screenshot do Mapa Completo [VXA]
#------------------------------------------------------------------------------
# Tira uma screenshot de todo o mapa onde está localizado e armazena em um 
# arquivo.
#------------------------------------------------------------------------------
# Autor      : Kyo Panda
# Conversão  : Gab!
# Site       : http://www.mundorpgmaker.com/
# Versão     : 1.0
# Lançado em : 23 de Abril de 2011
#==============================================================================

#==============================================================================
# Agradecimentos:
#------------------------------------------------------------------------------
# • Falco :
#   * Pelo módulo PNG utilizado na gravação das imagens.
# • Lu Sd 04 // stif.alown // Guedes:
#   * Por ajudar na localização dos bugs do script.
#==============================================================================

#==============================================================================
# Como usar:
#------------------------------------------------------------------------------
# 
# #--------------------------------------------------------------------------
# # Instalação
# #--------------------------------------------------------------------------
# 
# • Cole o script abaixo dos "? Scripts Adicionais" e acima do "? Principal" 
#   no Editor de Scripts do RPG Maker VX.
#
# • Configure o script na área "Configuração" logo abaixo, se desejar.
#
#==============================================================================

#==============================================================================
# Para scripters:
#------------------------------------------------------------------------------
# • $game_map.snap_to_bitmap 
#   Executa o comando de screenshot do mapa.
#==============================================================================

#==============================================================================
# Histórico de versões:
#------------------------------------------------------------------------------
# • 1.0 - 23 de Abril de 2011:
#   * Primeira versão do script.
# • 2.0 - 24 de Agosto de 2012:
#   * Versão para RPG Maker VX Ace; funcional
#==============================================================================

#==============================================================================
# Map_ScreenshotSettings
#------------------------------------------------------------------------------
# Módulo de configuração do script Screenshot do Mapa.
#==============================================================================
module Map_ScreenshotSettings
  #--------------------------------------------------------------------------
  # Configuração
  #--------------------------------------------------------------------------
  
  # Defina aqui se o script estará ativo ou não.
  # Defina true para ativar e false para desativar
  SCRIPT_ACTIVE = true
  
  # Defina aqui o nome da pasta onde suas screenshots serão armazenadas.
  # Se nenhuma pasta for definida, as screenshots serão gravadas na pasta 
  # principal do seu projeto.
  # Defina o nome da pasta entre apóstrofos ('') ou aspas ("").
  # Defina como '', "" ou nil, para não utilizar uma pasta em especial.
  DIRECTORY = "Screenshots"
  
  # Defina aqui o modo atribuído ao nome da screenshot que será armazenada.
  # Utilize a tag "%m" para que seja definido o nome do mapa. 
  # Utilize a tag "%{n}d" para definir a quantidade de números que será 
  # atribuído ao nome. Onde {n} siginifica o número de digitos no nome.
  # Se não for definido a tag "%{n}d", o número será adicionado ao final do
  # nome, por padrão.
  # Defina o nome entre apóstrofos ('') ou aspas ("").
  FILENAME = "%4d - %m"
  
  # Defina aqui a tecla utilizada para se tirar a screenshot do mapa.
  # Defina a tecla entre apóstrofes ('') ou aspas ("").
  # As teclas disponíveis serão mostradas à seguir, pela configuração padrão
  # do RPG Maker VX.
  #
  # Letra : Tecla
  #----------------------
  #   A   : Shift
  #   B   : X, Esc, 0
  #   C   : Z, Enter, Espaço
  #   L   : Q
  #   R   : W
  #   X   : A
  #   Y   : S
  #   Z   : D
  INPUT = :Y
  
  # Defina aqui se deseja exibir uma mensagem de que a screenshot foi
  # processada.
  MESSAGE_ACTIVE = true
  
  # Defina aqui a mensagem exibida antes que a screenshot seja processada.
  MESSAGE1 = "Gerando Screenshot..."
  
  # Defina aqui a mensagem exibida após a screenshot ser processada.
  MESSAGE2 = "Screenshot criada com sucesso!"
  
  #--------------------------------------------------------------------------
  # Fim da configuração
  #--------------------------------------------------------------------------
  
  # Criação da pasta de armazenamento de screenshots do mapa
  if !DIRECTORY.nil? && !DIRECTORY.empty?
    Dir.mkdir(DIRECTORY) if !Dir.entries("./").include?(DIRECTORY)
  end
end

if Map_ScreenshotSettings::SCRIPT_ACTIVE
  class Game_Map
    def snap_to_bitmap
      def updateMap
        Graphics.update
        SceneManager.scene.spriteset.update
      end
      
      oldpos = [@display_x, @display_y]
      
      gw, gh     = Graphics.width, Graphics.height
      bitmap     = Bitmap.new(@map.width * 32, @map.height * 32)
      sampleRect = Rect.new(0, 0, gw, gh)
      
      (bitmap.height/gh.to_f).ceil.times{|i| 
        (bitmap.width/gw.to_f).ceil.times{|j|
          y = gh * i > bitmap.height - gh ? bitmap.height - gh : gh * i
          x = gw * j > bitmap.width  - gw ? bitmap.width  - gw : gw * j
          
          set_display_pos(x/32,y/32)
          
          updateMap
          bitmap.blt(x, y, Graphics.snap_to_bitmap, sampleRect)
        } 
      }
      
      set_display_pos(*oldpos)
      updateMap
      
      msgbox(Map_ScreenshotSettings::MESSAGE1) if Map_ScreenshotSettings::MESSAGE_ACTIVE
      
      fullname = File.join(Map_ScreenshotSettings::DIRECTORY, "Screenshot#{Time.new.to_i}.png")
      bitmap.save(fullname)
      
      msgbox(Map_ScreenshotSettings::MESSAGE2)  if Map_ScreenshotSettings::MESSAGE_ACTIVE
    end
  end

  class Bitmap
    def save(file_name)
      def chunk(type, data)
        [data.size, type, data, Zlib.crc32(type + data)].pack("NA4A*N")
      end
    
      img_data = ""
      width, height = self.width, self.height
      
      for j in 0...(height)
        img_data << "\0"
        for i in 0...(width)
          pos_c = self.get_pixel(i, j)
          img_data << [pos_c.red, pos_c.green, pos_c.blue, pos_c.alpha].pack("C*")
        end
      end
      
      c = [
        "\x89PNG\r\n\x1a\n",
        chunk("IHDR", [width, height, 8, 6, 0, 0, 0].pack("N2C5")),
        chunk("IDAT", Zlib::Deflate.deflate(img_data)),
        chunk("IEND", "")
      ]
      
      File.open(file_name, "wb"){|file| c.each{|chunk| file.write(chunk) }}
    end
  end

  class Scene_Map
    attr_reader :spriteset
    alias mapscreenshot_update update
    
    def update(*args)
      mapscreenshot_update(*args)
      return unless Input.trigger?(Map_ScreenshotSettings::INPUT)
      $game_map.snap_to_bitmap
    end
  end
end
[close]




     Vamos começar a mapear a primeira camada do nosso mapa. Vamos começar colocando o nosso querido chão. O que seríamos sem ele?

Spoiler
[close]

     Acho que algumas montanhas cairiam bem não é? Então faça algumas, mas lembre-se de que a altura em toda parte da montanha, tem de ser a mesma.

Spoiler
[close]

     Depois de colocar nossa montanha, colocaremos outra montanha sobreposta.

Spoiler
[close]

     Essa parte você que escolhe como fará, eu prefiro fazer o riacho com o TileA5, mas se você preferir fazer com o TileA1, não faz diferença. O único problema é que se você fizer com o TileA1, demorará mais. Se você fizer com o TileA5, o riacho não será animado.

Spoiler
[close]

     Se você quiser pode fazer um caminho, recomendo que faço aleatoriamente porque se você ficar pensando em cada detalhe, fará algo muito simétrico. Eu adicionei mais algumas coisas além do caminho, em alguns lugares coloquei uma grama mais escuras e também uns "arbustos".

Spoiler
[close]

     Você também pode colocar alguns detalhes no mapa, pelo próprio maker. Não exagere, coloque apenas o que acha necessário.

Spoiler
[close]



     "Mas ique, porque você colocou aquele flor que é maior que a montanha?" Calma, aquela flor serve como escada para o personagem subir.Depois mostrarei o resultado e vocês verão o porque da flor.




     Agora precisaremos tirar a Screenshot do mapa, mas para isso temos de tirar o gráfico do char, caso o contrario, ele aparecerá na Screen.

Spoiler
[close]

     Teste seu jogo, e aperte "s" ou a tecla que você definiu no script.

Spoiler
[close]

     Agora é só esperar essa mensagem aparecer, e apertar "ok".

Spoiler
[close]




     Bom, já acabamos a primeira camada do nosso mapa, agora iremos fazer a segunda. A segunda camada chama-se: Ground. Como o nome já diz, é onde os objetos que ficam no chão serão colocados.

     Abra a Screenshot do mapa com o GIMP. As Screenshots tiradas pelo Script "Screenshot do Mapa Completo", ficam salvas em uma pasta chamada Screenshots, na pasta do seu projeto.

Spoiler
[close]

     Agora chegou a parte difícil, você terá de ter paciência para fazer isso. Abra com o GIMP o Tileset que você vai usar, no meu caso, trabalharei com os Tiles de um Pack da Celianna. O Download do mesmo, estará no final da Aula.

Spoiler
[close]

     Bom, essa é a parte que muitos tem dúvida, como colocar os Tiles no mapa. É simples, basta você copiá-lo, e posicioná-lo onde você quiser.

Spoiler
[close]

     Você também deve colocar uma parte das arvores que terá, nessa camada, caso o contrário o personagem irá passar por baixo das árvores.

Spoiler
[close]

     Se quiser, você pode deixar o lago um pouco mais bonito, e com efeito melhor:

Spoiler
[close]

     A camada Ground, ficou assim:

Spoiler
[close]

     Agora basta excluir o Background, como eu fiz, e salvar na pasta "Overlay" do seu projeto. O nome do arquivo deve ser ground + o nº do seu mapa + a variável que guardará a camada, no meu caso "ground1-1.png".

Spoiler
[close]



     Quando for escolher os Tilesets para as camadas, pegue algo parecido com o Tileset que usou para a camada "Map Editor" (que é feita no RM). Ao colocar a parte de baixo das árvores, sempre lembre aonde você cortou a árvore.




     Agora está na hora de fazer as outras camadas. Vamos trabalhar na camada do Parallax, que é onde as coisas ficam acima do personagem.

     Primeiramente, você deve pegar a Screenshot que tirou do mapa, e abri-la com o GIMP. Para facilitar, abra a do Ground layer também.

Spoiler
[close]

     Feito isso, faça como no passo anterior. Dessa vez, coloque tudo que ficará acima do héroi, ou seja, tudo que ele passará por baixo... Ex.: arvores. Não mostrarei como fiz porque expliquei isso no passo anterior, mas o resultado foi esse:

Spoiler
[close]

     Como no passo anterior, exclua o Background e o Ground, e salve. O nome do arquivo deve ser par + o nº do seu mapa + a variável que guarda a camada, no meu caso "par1-1.png".

Spoiler
[close]




     Devido ao jeito que fiz o mapa, não poderei mostrar como fazer a Shadow Layer. Mas é muito fácil faze-la, você só precisa sombrear quando houver uma montanha pequena, de preferência montanhas com um Tile de altura. Depois é só repetir o processo de salvar, como nos passos anteriores. Só que dessa vez o nome deve ser, no meu caso,"shadow1-1.png".




     Finalmente, essa é a ultima camada, é a Light Layer, é onde fica a Luz do mapa. Não é obrigatório colocar algo nessa camada, mas se quiser fazer uma coisa diferente e original, recomendo. Para fazer o efeito de luz, usaremos uma ferramenta do GIMP.

     Basta você abrir o GIMP e criar um novo projeto com o tamanho do seu mapa. Lembrando que um Tile tem 32 pixels, então você tem que fazer o tamanho X e Y vezes 32. Agora crie uma nova camada com o nome de Light, selecione essa camada e com o botão direito clique no mapa e vá em: Filtros > Luz e Sombra > Estrela Super nova.

Spoiler
[close]

     Configure os efeitos do jeito que quiser, e depois clique em "ok".

Spoiler
[close]

     Agora é só salvar, como nos passos anteriores. Dessa vez com o nome, no meu caso, "light1-1.jpg".

Spoiler
[close]



     Quando forem testar seu jogo, mudem a opacidade da camada Light no script do UOM.




     Acabamos a parte do mapeamento. Agora basta você criar um evento com início automático no mapa, inserir, com o botão direito, um novo comando e em "Controle de Switchs" selecionar a Switch que ativa as camadas do Overlay. Se você não modificou as configurações do Scripts, será a Switch 1 e 2.

Spoiler
[close]




     Bom, finalmente acabamos... E o resultado final foi esse:

Spoiler
[close]




Finalmente acabamos, agora preciso agradecer a:

Ultimate Overlay Mapping:
Hanzo Kimura
e Yami
Spoiler

Tilesets:
Hanzo Kimura
Celianna
Spoiler

Screenshot do Mapa Completo:
Kyo Panda
e Gab!
Spoiler

Eu coloquei o Script, mas a pasta do Overly não apareceu no meu projeto e também não consigo adicionar o controle de Switch, simplesmente não aparece. Meu mapa ficou muito bonito e eu gastei muito do meu tempo fazendo, queria saber se poderia tirar essas minhas duvidas.

Obrigada desde já.

:facepalm: