VX 스크립트

VX에서 포그 그래픽을 사용하자

스크립트의 사용법입니다. ^^;

[강좌보기]
   <--강좌 원본??



우선 아래 스크립트를 MAIN섹션 위쪽에 추가한다.

 

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 = 80
    @fog_blend_type = 0
    @fog_zoom = 100
    @fog_sx = 1
    @fog_sy = 1
  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
end

class Scene_Map < Scene_Base
 
  alias original_start start
  def start
    original_start
    $game_map.fog_show
  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.fog_show
  end
 
end

 



그리고나서 포그를 표시하고픈 맵이 벤트 커맨드로  아래 스크립트 명령어를 추가한다.

 

$game_temp.fog_name = "포그그래픽 파일명"
$game_temp.fog_zoom = 300
$game_temp.fog_sx = 1
$game_temp.fog_sy = 1
$game_temp.fog_target_opacity = 80
$game_map.fog_show

 


위의 스크립트가 화면에 포그 그래픽을 표시하는 명령인데.
보시면 대략 어떤 의미지는 알거라고 생각된다.
그리고 이벤트로 포그그래픽을 표시하다보니.
자동 또는 병렬처리로 이벤트를 시작하게 하고 셀프스위치로 꺼줘야겠죠?
굳이 말하지 않아도 다 아시겟지만 ^^


포그 그래픽은 Graphics/Pictures 폴더에 넣어준다.
사용자 삽입 이미지












TAG •
Comment '16'
  • ?
    사신 2008.02.18 19:21

    저... 오류뜹니다만...^^;;

  • ?
    salp2113 2008.08.12 15:12
    오 좋은데요 어두운 맵에 쓰면 멋져요
  • ?
    eldkfnrk 2008.08.13 19:00
    이벤트를 한후 다른곳으로 장소이동해도 계속포그그래픽이 남는데 어떻게해야 되요?
  • ?
    niceGame 2008.08.24 01:18
    아 인제 포그 사용법을 알게됬어요 ㅎㅎ
    아무렇게나 하다보니..
  • ?
    niceGame 2008.08.24 02:10
    아방스님
    포그 이벤트를 사용할때 병렬 처리로 스크립트를 써서 사용을 했는데요..
    아무리 셀프스위치로 이벤삭제.. 등 스위치등을 꺼도..
    eldkfnrk님 처럼 다른맵에도 포그 이벤트가 작용하는데
    어떻게 해야해요?
  • ?
    근성부족 2008.09.28 20:34
    끌때어떻게 꺼야할지 모르겠네요...
  • ?
    근성부족 2008.09.28 20:39
    끝내는 방법_

    $game_temp.fog_target_opacity = 80
    부분 숫자를 0으로 바꿔주시거나
    $game_map.fog_show
    이부분에서 show 를 hide로 바꿔주세요
  • profile
    카와이 2009.01.13 13:52
    아.. 저거 포토샵에서 필터가서 구름모양하면 되는거 ㄲㄲ
  • ?
    뉴공 2009.11.15 23:40

    이 스크립트만 적용하면 세이브시 자꾸 오류가 발생하네요....

  • ?
    1000℃ 복숭아 2010.02.17 18:24

    오.. 감사합니다.

  • ?
    소울◎이터 2010.12.28 20:33

    SyntaxError occurred while running script

    라고 뜨는데요

  • ?
    뾰롱뾰롱 2011.02.24 17:10

    같은 장소에서 바로 안개효과를 꺼도, 일단 불러진 안개효과가 바로 사라지지는 않는군요.


    장소이동을 하거나, 아니면 잠시 스테이츠창으로 넘어갔다 온다던지 하는 식으로

    화면 전환을 해줘야만 하는군요.

  • ?
    뾰롱뾰롱 2011.02.25 12:29

    아.. 다른 스크립트들이랑 충돌하는지 세이브 오류가 뜨네요

  • ?
    화염 2011.05.05 21:21

    좋은 자료 ㄳ

  • ?
    2K가2003 2011.07.24 13:01

    음... 이벤트 커멘드에 뭐에다 붙여넣기를 해야할지 모르겟네용 ;

  • profile
    왕왕왕 2012.08.08 14:16
    SyntaxError occurred while running script 라고 드는데 ㄷㄷ

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5408
257 몬스터 도감 [수정] 68 file RPGbooster 2008.10.08 6076
256 기타 몬스터 리얼한 효과 27 file 사람이라면? 2010.08.16 5074
255 메뉴 몬스터도감 Tankentai사이드뷰에 작동하도록 수정 13 카르와푸딩의아틀리에 2009.05.22 3775
254 메뉴 몬스터도감 심플버전! 52 file 카르와푸딩의아틀리에 2009.06.30 6907
253 메뉴 몬스터도감(유즈미짱님의엘카르디아같은종류) 1 작은샛별 2010.03.07 4201
252 스킬 무기 업그레이드 시스템 27 file 담먹캐 2009.11.01 5757
251 스킬 무기성장 랭크 시스템. 20 file 카르와푸딩의아틀리에 2009.07.08 4820
250 무기에 초필살기를 장착! 19 file RPGbooster 2008.10.08 4131
249 무슨 스크립트인지 모름 7 Man... 2008.10.26 1453
248 오디오 무작위 전투음악 12 file RPGbooster 2008.10.08 2335
247 메시지 문자픽쳐 표시 스크립트 7 file 좀비사냥꾼 2009.03.19 4144
246 메시지 문장 넘길대 소리나게 하는스크립트 19 아방스 2008.01.24 4186
245 메시지 문장 및 페이스 정렬 바꾸기 (Neonblack's Text Alignment and Face Flip script) MinaAubert 2012.09.19 2214
244 메시지 문장에서1글자마다소리내기 19 작은샛별 2010.03.07 3951
243 기타 문장의 스크롤! 13 루시페르 2009.06.06 2524
242 물반사 효과 32 file RPGbooster 2008.10.08 3723
241 기타 미니게임 로또??일까? 14 file 카르와푸딩의아틀리에 2009.06.30 2577
240 기타 미니게임테트리스 스크립트 ㅋㅋㅋ 27 file 카르와푸딩의아틀리에 2009.06.30 3689
239 미니맵 미니맵 띠우는 스크립트 ^^ 37 file 아방스 2008.06.02 7247
238 미니맵 미니맵 스크립트(아랫거랑 다른거) 75 file 츠키아 2008.08.08 6145
Board Pagination Prev 1 ... 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 32 Next
/ 32