조회 수 1749 추천 수 1 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

RPG Maker VX Ace에서 Title 씬 장면을 바꾸기 이전에 RPG Maker VX Ace가 흐르는 구도를 알 필요가 있습니다.


RPG Maker VX Ace의 흐름의 구조는

Logo->Main으로 시작합니다.

Logo는 $Test(Test하는 경우 true, 아니면 flase입니다.)일 경우에는 show_logo가 작동합니다.

(게임 실행장치(exe을 작동시키면 로고가 발동되는 부분입니다.)

로고.jpg


Logo가 끝나게 되면, Main에서

SceneManager.run가 발동됩니다.

여기서, SceneManager는 Scene에 관련된 정보들을 작동을 관리하는 모듈입니다.


SceneManager의 run는

DataManager에게 Data를 읽어와서 초기화하고, 게임의 장면을 보이게 합니다.

여기서 배틀 장면인지 아닌지를 구분지어서 거기에 맞춰서 객체를 만들고,

그 객체를 start함수를 불러서 장면을 보여줍니다.


여기서 Scene이란,

장면(배틀장면, 맵장면등등)을 관리하는 소스입니다.

씬.jpg


Window란,

창으로 커맨드창, 메세지창등을 관리하는 소스입니다.

윈도우.jpg 


Title의 장면들을 수정하기 원하신다면,

Scene_Title, Window_TitleCommand

을 수정하셔야됩니다.


Scene_Title에서의 함수는

start를 본다면,


def start

    super

    SceneManager.clear

    Graphics.freeze

    create_background#배경 그림 설정.

    create_foreground#앞쪽 그림 설정.

    create_command_window#커맨드 창 설정

    play_title_music#배경음 설정

end

씬.jpg


여기서 창을 변경 시키기 원하신다면,

Window_TitleCommand을 설정하셔야됩니다.

여기서 위치를 옮기기 원하신다면,


  #--------------------------------------------------------------------------

  # * Update Window Position

  #--------------------------------------------------------------------------

  def update_placement

    self.x = 50#(Graphics.width - width) / 2

    self.y = 10#(Graphics.height * 1.6 - height) / 2

  end


이렇게 설정하신다면,

수정.jpg

이렇게 적용이 되게 됩니다.


하지만, Window_TitleCommand는 Window를 상속 받기 때문에

상위 생성자를 이용해도 위치를 수정 할 수 있습니다.

  def initialize

    super(100, 250)

    #update_placement

    select_symbol(:continue) if continue_enabled

    self.openness = 0

    open

  end


make_command_list는 Window_Command에 있는 make_command_list를 오버라이트(재 정의)하여 선택지를 출력하게 만들어 놨습니다.

  #--------------------------------------------------------------------------

  # * Create Command List

  #--------------------------------------------------------------------------

  def make_command_list

    add_command(Vocab::new_game, :new_game)

    add_command(Vocab::continue, :continue, continue_enabled)

    add_command(Vocab::shutdown, :shutdown)

  end


이걸 수정하면, 선택지를 추가/변경을 할 수 있습니다.

예로

  def make_command_list

    add_command(Vocab::new_game, :new_game)

    add_command(Vocab::shutdown, :shutdown)

  end


씬.jpg


여기서 선택지를 추가/제거할 경우에 활동(작동)하지 않습니다.(그냥 선택지만 늘어납니다.)


선택지가 증가하여 제대로 작동하기 위해선 선택지와 함수를 연결 시켜야됩니다.


자바스크립트와 자바로 친다면 이벤트 리스트너같은 역활을 하는게 필요합니다.


이것은 Window_Selectable라는게 정의가 되어 있습니다.


set_handler라는 함수가 있습니다.


적용한 것의 예는 다음과 같습니다.

  #--------------------------------------------------------------------------

  # * Create Command Window

  #--------------------------------------------------------------------------

  def create_command_window

    @command_window = Window_TitleCommand.new

    @command_window.set_handler(:new_game, method(:command_new_game))

    @command_window.set_handler(:continue, method(:command_continue))

    @command_window.set_handler(:shutdown, method(:command_shutdown))

  end


변경을 하는 방법의 예제를 사용하겠습니다.


  def create_command_window

    @command_window = Window_TitleCommand.new

    @command_window.set_handler(:new_game, method(:close_command_window))

    @command_window.set_handler(:continue, method(:command_continue))

    @command_window.set_handler(:shutdown, method(:command_shutdown))

  end


이렇게 하면,

close_command_window라는 것은 window 창을 끄는 함수입니다.

적용해서 나오는 값입니다.

수정 작업.jpg

new game을 실행시켰을시 나오는 결과입니다.


그 외 효과

  def transition_speed

    return 100

  end


transition_speed는 fadein의 속도를 뜻합니다.

그래서 수치를 변경하면, 타이틀 화면을 표시되는 속도가 달라지게 됩니다.


dispose_background와 dispose_foreground는 그림을 제거하는 함수입니다.


draw_game_title는 타이틀 모습을 보여주는 함수입니다.

  def draw_game_title

    @foreground_sprite.bitmap.font.size = 48

    rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2)

    @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)

  end


이렇게 되어 있는 경우에서, 글 사이즈를 변경 하고 싶으시면,

  def draw_game_title

    @foreground_sprite.bitmap.font.size = 10

    rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2)

    @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)

  end


이걸 적용한 결과는 다음과 같습니다.

수정.jpg


    @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)


여기서 $data_system.game_title는 타이틀의 값을 표시됩니다.


씬 장면을 변경하는 방법으론 다음과 같습니다.

  def command_new_game

    DataManager.setup_new_game

    close_command_window

    fadeout_all

    $game_map.autoplay

    #SceneManager.goto(Scene_Map)

    SceneManager.goto(Scene_Debug)

  end


이걸 이용해서 command_new_game에 있는 값에서 SceneManager.goto을 이용하면 장면이동을 표현할 수 있습니다.

지금은 디버깅장면으로 넘어가도록 만들었습니다.

적용한 결과입니다.

디버깅스.jpg


긴 글 읽어 주셨어 감사합니다.


[첨부파일 디버깅스.jpg 다운로드]

[첨부파일 타이틀 수정.jpg 다운로드]

[첨부파일 수정 작업.jpg 다운로드]

[첨부파일 수정씬.jpg 다운로드]

[첨부파일 수정.jpg 다운로드]

[첨부파일 윈도우.jpg 다운로드]

[첨부파일 씬.jpg 다운로드]

[첨부파일 로고.jpg 다운로드]
?

  1. 게임제작강좌 A-Z 색인 (2016.1.24 ver)

    Date2016.01.12 Category초급강의실 By천무 Views7877 Votes1
    read more
  2. [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에.

    Date2018.09.10 Category초급강의실 By케이디 Views2761 Votes0
    Read More
  3. RPG Maker MV에서 도트 느낌의 폰트 사용하기

    Date2018.07.15 Category초급강의실 By러닝은빛 Views5000 Votes1
    Read More
  4. [ MV ] 1-1 " RPG MAKER MV에 대하여 알아보자! "

    Date2018.07.01 Category초급강의실 By수성의물 Views1895 Votes0
    Read More
  5. [DLC 매뉴얼] GENE 도움말 한글화 Part.3 이용규약

    Date2018.04.25 Category초급강의실 By이니군 Views850 Votes0
    Read More
  6. [DLC 매뉴얼] GENE 도움말 한글화 Part.2 이벤트 타입과 메뉴 바 컨텐츠

    Date2018.04.25 Category초급강의실 By이니군 Views913 Votes0
    Read More
  7. [DLC 매뉴얼] GENE 도움말 한글화 Part.1 씬 빌더의 개요와 씬빌더 시작하기

    Date2018.04.24 Category초급강의실 By이니군 Views2223 Votes1
    Read More
  8. 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정.

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1611 Votes0
    Read More
  9. 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용)

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1443 Votes0
    Read More
  10. [MV] Iavra Splash Video(스플래시/인트로영상 제작 시 스킵기능 부여 플러그인)

    Date2017.09.11 Category초급강의실 By이니군 Views1325 Votes0
    Read More
  11. RPG MAKER MV Tool Program-MADO 설치 및 적용기

    Date2017.09.08 Category초급강의실 By이니군 Views2536 Votes0
    Read More
  12. 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정)

    Date2017.08.28 Category초급강의실 By이니군 Views1708 Votes0
    Read More
  13. [RMMV] 크로노 엔진(Chrono Engine) 플러그인 사용법

    Date2017.07.16 Category고급강의실 By러닝은빛 Views3874 Votes2
    Read More
  14. 네코플에서 VXA 선택지 잘리는 버그 해결하는법

    Date2017.06.22 Category중급강의실 By심심치 Views1160 Votes2
    Read More
  15. 변수를 이용한 식물 재배

    Date2017.05.28 Category초급강의실 ByMoonJ Views3393 Votes2
    Read More
  16. 누구나 쉽게 따라할 수 있는 액션/슈팅 이벤트 만들기!

    Date2017.01.26 Category초급강의실 By이제리아 Views4530 Votes3
    Read More
  17. RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?-

    Date2016.10.31 Category중급강의실 ByRPG란무엇인가? Views2431 Votes0
    Read More
  18. 쯔꾸르 게임을 네코플레이어에 최적화 시켜보자! # 해상도 편

    Date2016.04.17 Category중급강의실 By양갱님 Views36387 Votes10
    Read More
  19. 게임의 퀼리티를 높이자! 3편-맵배치

    Date2016.04.08 Category초급강의실 Byifeve Views5324 Votes2
    Read More
  20. Input 객체의 키코드 확장

    Date2016.04.05 Category초급강의실 By러닝은빛 Views1501 Votes0
    Read More
  21. 초보가쓰는 초보용 Rpg게임 만들기 (xp)

    Date2016.03.13 Category초급강의실 ByMarine Views6395 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)