¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [Ambientación y Armonía] Nubarrones. el Vie Abr 08, 2011 6:50 pm

Kululu

avatar
Parte 1: Introducción; Qué haremos.

Lo que haremos es algo más ‘real’ que las nubecillas predeterminadas del RPG Maker XP de una manera muy rápida y eficaz.

Parte 2: Cómo lo haremos.
Gráficos.

Primero, sepamos que el ‘efecto’ constará de una sola imagen, dependiendo del tamaño del mapa haremos el tamaño de la imagen. Recordemos que, por cada tile son 32 píxeles, entonces para hace un mapa de unos 20x15 tiles tenemos que hacer 20x32 (640 píxeles en la primera casilla) y 15x32 (480 píxeles), entonces ya sabemos que nuestra imagen deberá ser de 640x480 píxeles. Esta operación solo varía dependiendo del tamaño de nuestro mapa.

Engine.

El engine es simplemente activar la ‘niebla’ que usaremos como gráfico. Basta con poner un evento en ‘Inicio automático’ con dos páginas, la primera activa la fog y la segunda que active el ‘Interruptor Local A’.

Hagamos los gráficos.

Para empezar, abramos el Phtoshop y pongamos el tamaño que deseemos (ya que previamente habremos hecho el cálculo) y ya tenemos este lienzo en blanco.


Ahora, seleccionamos ‘Filtro/Filter’, ‘Interpretar/Render’ y ahora ‘Nubes/Clouds’. Recordemos que tenemos que poner como color principal negro y como secundario, blanco (apretamos ‘D’ para hacer esta acción).


Una vez hayamos hecho los pasos anteriores, debemos tener algo similar a esto.


Esta es la base de todo, así que ahora procedemos a aplicar un segundo filtro. De nuevo vamos a ‘Filtro/Filter’ y ahora ‘Galería de Filtros/Filter Gallery’, y buscamos una sección llamada ‘Bosquejar/Sketch’ y la abrimos. Nos saldrá un menú desplegable, uno de los filtros es el ‘Estilográfica/Graphic Pen’. Aplicamos este filtro con unos valores de 15, 41 y ‘Diagonal Derecha/Right Diagonal’. Nos quedará algo similar a esto.



Una vez lo tenemos, solo nos queda aplicar el tercer y último filtro. Vamos de nuevo a ‘Filtro/Filter’ y ahora a ‘Difuminar/Blur’, dentro del desplegable habrá uno que será ‘Gaussiano/Gaussian’, ese escogeremos. Con un valor aproximado de 4,0 (a gusto del usuario, todos los valores pueden ser escogidos).



Ahora solo nos queda guardarlos en la carpeta ‘Fog’ de nuestro proyecto.


Hagamos los eventos.

El evento es solamente un comando de ‘Cambiar Gráficos de Mapa’, seleccionamos cambiar la ‘Fog’ del mapa y una opacidad al gusto (yo dejaré una de 80), eso sí, recordad en ‘Paleta’ poner ‘Inversa’. Despues de esto ‘Operaciones de Interruptor Local’ y activamos el Interruptor ‘A’ y por último, abrimos una nueva página en el evento, y accionamos ‘Interruptor Local: A’.



Y ahora ya tenemos nuestro efecto totalmente terminado.



Salut!



     

¡Visita mis galerías de Tumblr y DeviantArt!

#2 Re: [Ambientación y Armonía] Nubarrones. el Vie Abr 08, 2011 7:41 pm

BlacklordXV

avatar
Disculpa, ¿esto se puede hacer de igual forma en VX? me interesa el efecto esta muy bueno D:

#3 Re: [Ambientación y Armonía] Nubarrones. el Vie Abr 08, 2011 8:03 pm

Kululu

avatar
Por supuesto que sí.

Salut!



     

¡Visita mis galerías de Tumblr y DeviantArt!

#4 Re: [Ambientación y Armonía] Nubarrones. el Jue Jul 21, 2011 2:59 pm

M3lk0rUPR

avatar
Excelente, me agrada la forma de estas nubes, son mucho mejores que las que uso en VX por tanto tomaré tu consejo y me dispondré a usar esto, es 100 veces mejor que las que uso actualmente. Gracias por este excelente post. Es de gran ayuda para muchos.

#5 Re: [Ambientación y Armonía] Nubarrones. el Dom Feb 12, 2012 3:17 am

UlisesBritos

avatar
kululu~labo♪ escribió:Por supuesto que sí.

Salut!
alguien podría decir donde pongo la imagen y que comando uso para mostrar la niebla en el VX?...

#6 Re: [Ambientación y Armonía] Nubarrones. el Dom Feb 12, 2012 3:27 am

Kululu

avatar
Se necesita un script que permita usar "fogs" en RPG Maker VX, como por ejemplo este creado por DeadlyDan.
Código:
#===========================================
# ¦ DeadlyDan_MapFog by DeadlyDan
#--------------------------------------------
#  Allows maps to have fogs like in RPG Maker XP
#============================================
# Usage:
=begin
 
  To initialize a fog for a current map you must:
 
  1) Create a map event and set it to only come on when Self Switch A is on.
  2) Rename it to FOG. (Case sensitive, so it has to be FOG)
  3) Set it to a Parallel Process.
  4) Add for example, the following code into a Script Code event command:
 
  $game_map.fog_name = "fog"              # Filename of fog image located in the Pictures folder
  $game_map.fog_zoom = 300                # How much to zoom into the fog image
  $game_map.fog_sx = 1                          # The scrolling speed across the x axis
  $game_map.fog_sy = 1                          # The scrolling speed across the y axis
  $game_map.fog_target_opacity = 80    # The opacity of the fog
  $game_map.fog_show                            # Always call this after changing fog variables 
 
  5) Then, add a Control Self Switch after that Script Code, and set it to turn A off.
 
  (Note)
  It is absolutely vital that you put the event name to FOG and set it to a Parallel Proccess and also set it to
  only run when Self-Switch A is on.
 
  Make sure you place this script after all other scripts except for Main.
 
  (Extras)
  You can also use extra commands to change the fog settings, such as the following example:
 
  $game_map.fog_tone = Tone.new ( 100, 0, 0, 0 )
  $game_map.fog_blend_type = 1 # ( 0 = NONE, 1 = ADD, 2 = SUBTRACT )
 
  (Important!)
  When you want to have a map with no fog, do all of the above but instead of seting the fog options and then
  calling $game_map.fog_show, just add a Script Code event command and place in it $game_map.fog_clear.
 
  This will clear the fog settings and the fog will dissapear, every map has to have a fog event in it, else maps
  will keep all other maps fog settings that might be unintentional on the users side.
 
=end

class Game_Temp
  attr_accessor :fog_name
  attr_accessor :fog_opacity
  attr_accessor :fog_target_opacity
  attr_accessor :fog_blend_type
  attr_accessor :fog_zoom
  attr_accessor :fog_sx
  attr_accessor :fog_sy
  attr_accessor :fog_tone
 
  alias original_initialize initialize
  def initialize
    original_initialize
    @fog_name = ""
    @fog_tone = Tone.new ( 0, 0, 0, 0 )
    @fog_opacity = 0
    @fog_target_opacity = 0
    @fog_blend_type = 0
    @fog_zoom = 100
    @fog_sx = 0
    @fog_sy = 0
  end
 
end

class Game_Map
  attr_accessor :fog_name
  attr_accessor :fog_opacity
  attr_accessor :fog_target_opacity
  attr_accessor :fog_blend_type
  attr_accessor :fog_zoom
  attr_accessor :fog_sx
  attr_accessor :fog_sy
  attr_accessor :fog_ox
  attr_accessor :fog_oy
  attr_accessor :fog_tone
  attr_accessor :fog_start_loop
  attr_accessor :fog_eventid
  attr_accessor :fog_visible
  attr_accessor :fog
 
  alias original_initialize initialize
  def initialize
    original_initialize
    @fog = Plane.new ( @viewport1 )
    @fog_ox = 0
    @fog_oy = 0
  end
 
  alias original_setup setup
  def setup ( map_id )
    original_setup ( map_id )
    fog_event
  end

  alias original_update update
  def update
    original_update
    if ( @fog_visible and @fog )
      fog_update
    end
  end 

  def fog_init
      @fog_name = $game_temp.fog_name
      @fog_tone = $game_temp.fog_tone
      @fog_opacity = $game_temp.fog_opacity
      @fog_target_opacity = $game_temp.fog_target_opacity
      @fog_blend_type = $game_temp.fog_blend_type
      @fog_zoom = $game_temp.fog_zoom
      @fog_sx = $game_temp.fog_sx
      @fog_sy = $game_temp.fog_sy
      @fog_tone_target = Tone.new ( 0, 0, 0, 0 )
      @fog_tone_duration = 0
      @fog_opacity_duration = 0
      @fog_opacity_target = 0
      @fog_previous_name = ""
      fog_setup
  end
 
  def fog_setup
    fog_hide
    if ( ( @fog_previous_name != @fog_name ) and ( @fog_name != "" ) )
      @fog.bitmap = Cache.picture ( @fog_name )
      @fog_name_previous = @fog_name
      @fog_opacity = @fog_target_opacity
      @fog.opacity = @fog_opacity
      @fog.blend_type = @fog_blend_type
      @fog.zoom_x = @fog_zoom / 100
      @fog.zoom_y = @fog_zoom / 100
      @fog.ox = @fog_ox
      @fog.oy = @fog_oy
      @fog.tone = @fog_tone
      @fog.z = 99
      @fog_visible = true
    else
      fog_hide
    end
  end
 
  def fog_update
    @fog_ox -= @fog_sx / 8.0
    @fog_oy -= @fog_sy / 8.0

    if ( @fog_tone_duration >= 1 )
      d = @fog_tone_duration
      target = @fog_tone_target
      @fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d
      @fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d
      @fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d
      @fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d
      @fog_tone_duration -= 1
    end
    if ( @fog_opacity_duration >= 1 )
      d = @fog_opacity_duration
      @fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d
      @fog_opacity_duration -= 1
    end
    @fog.opacity = @fog_opacity
    @fog.blend_type = @fog_blend_type
    @fog.zoom_x = @fog_zoom / 100
    @fog.zoom_y = @fog_zoom / 100
    @fog.ox = @fog_ox
    @fog.oy = @fog_oy
    @fog.tone = @fog_tone
  end
 
  def fog_show
    fog_init
  end
 
  def fog_hide
    @fog_visible = false
    @fog_opacity = 0
    $game_temp.fog_opacity = 0
  end
 
  def fog_clear
    @fog_visible = false
    @fog_opacity = 0
    $game_temp.fog_opacity = 0
    @fog_target_opacity = 0
    $game_temp.fog_target_opacity = 0
    fog_show
  end
   
  def scroll_up ( distance )
    if ( loop_vertical? )
      @display_y += @map.height * 256 - distance
      @display_y %= @map.height * 256
      @parallax_y -= distance
      @fog_oy -= distance / 8.0
    else
      last_y = @display_y
      @display_y = [@display_y - distance, 0].max
      @parallax_y += @display_y - last_y
      @fog_oy += ( @display_y - last_y ) / 8.0
    end
  end
 
  def scroll_down ( distance )
    if ( loop_vertical? )
      @display_y += distance
      @display_y %= @map.height * 256
      @parallax_y += distance
      @fog_oy += distance / 8.0
    else
      last_y = @display_y
      @display_y = [@display_y + distance, (height - 13) * 256].min
      @parallax_y += @display_y - last_y
      @fog_oy += ( @display_y - last_y ) / 8.0
    end
  end

  def scroll_left ( distance )
    if ( loop_horizontal? )
      @display_x += @map.width * 256 - distance
      @display_x %= @map.width * 256
      @parallax_x -= distance
      @fog_ox -= distance / 8.0
    else
      last_x = @display_x
      @display_x = [@display_x - distance, 0].max
      @parallax_x += @display_x - last_x
      @fog_ox += ( @display_x - last_x ) / 8.0
    end
  end
 
  def scroll_right ( distance )
    if ( loop_horizontal? )
      @display_x += distance
      @display_x %= @map.width * 256
      @parallax_x += distance
      @fog_ox += distance / 8.0
    else
      last_x = @display_x
      @display_x = [@display_x + distance, (width - 17) * 256].min
      @parallax_x += @display_x - last_x
      @fog_ox += ( @display_x - last_x ) / 8.0
    end
  end
 
  def setup_events
    @fog_eventid = 0
    @events = {}
    for i in @map.events.keys
      @events[i] = Game_Event.new(@map_id, @map.events[i])
      if ( @events[i].name == "FOG" )
        @fog_eventid = i
      end
    end
    @common_events = {}
    for i in 1...$data_common_events.size
      @common_events[i] = Game_CommonEvent.new(i)
    end
  end
   
  def fog_event
    if ( @fog_eventid != 0 )
      key = @events[@fog_eventid].selfswitch
      $game_self_switches[key] = true
    end
  end

end

class Scene_Map < Scene_Base
 
  alias original_start start
  def start
    original_start
    $game_map.fog_show
    $game_map.fog_event
  end

  alias original_terminate terminate
  def terminate
    original_terminate
    $game_map.fog_hide
  end
 
end

class Game_Player < Game_Character
 
  alias original_perform_transfer perform_transfer
  def perform_transfer
    original_perform_transfer
    $game_map.setup_events
    $game_map.fog_event
    $game_map.fog_show
  end
 
end

class Game_Event < Game_Character

  def name
    return @event.name
  end
 
  def selfswitch
    key = [@map_id, @event.id, 'A']
    return key
  end
 
end

Usando esto, será posible hacer el efecto fácilmente.



     

¡Visita mis galerías de Tumblr y DeviantArt!

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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