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
37 타이틀/게임오버 코아 코스튬씨의 랜덤 타이틀 스크립트를 VX용으로 변환 2 Alkaid 2012.09.14 1704
36 메시지 문장 및 페이스 정렬 바꾸기 (Neonblack's Text Alignment and Face Flip script) MinaAubert 2012.09.19 2214
35 영상 Avi 재생 스크립트! [고화질 재생 가능] 34 짭뿌C 2012.10.24 2952
34 장비 카드 슬롯 장비 스크립트[수정] 2 빙하 2012.11.11 2058
33 파티 파티원의 첫번째 멤버로 추가하기 5 허걱 2012.12.04 1865
32 기타 MSX - XP Characters on VX/VX Ace 2 Alkaid 2013.01.26 1346
31 메시지 Etude87_Item_Choice ver.1.00 file 습작 2013.02.16 1771
30 기타 reijubv - New Balloon Command (VXA에서도 작동) 1 file 혜인 2013.04.08 1332
29 키입력 No F1, F12 and Alt+Return (Kein F1, F12 und Alt+Eingabe) by cremno 습작 2013.04.19 1046
28 키입력 Key Simulator by Fantasist 습작 2013.05.01 1176
27 이동 및 탈것 장소이동시 효과 없애기 10 file 허걱 2013.05.05 1963
26 전투 Verus Tempus Proelium by Vlad 습작 2013.05.13 1246
25 전투 Requiem ABS Hero Edition by Falcao 습작 2013.05.13 2009
24 기타 Resize and Scale by OriginalWij 1 습작 2013.05.13 1349
23 맵/타일 SwapXT by bulletxt 습작 2013.05.13 1292
22 전투 VX_SRPG2 by tomoaky 1 습작 2013.05.13 2053
21 전투 GTBS for 2d_iso_x3 by Clarabel 2 습작 2013.05.13 1884
20 전투 SRPGコンバータ for VX by AD.Bank 습작 2013.05.13 2974
19 HUD 아방스님이 올린 HUD를 개조했습니다. 7 file 스리아씨 2013.09.30 2684
18 전투 [RPG VX]기술에 쿨타임을 부여하는 스크립트 3 스리아씨 2013.12.05 2352
Board Pagination Prev 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Next
/ 32