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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

 사용 에디터 : RPG Maker VX Ace Lite

   Gemini



 연구한 이유 : RPG Maker VX Ace Lite에서 Event 생성 제한(이벤트 생성 10개 초과 불가능)에 따른 문제점을 타파하기 위해 연구했습니다.


 문제점 : 스크립트가 길어집니다.

     Tool로 작업이 제한됩니다.(10개 초과된 이벤트를 선택시 오류 메세지가 작동됩니다.)

             쉽게 사용하기가 어렵습니다.

             이벤트 코드를 암기 및 알고 있어야합니다.(이벤트 코드에 관련된 것은 스크립트로 수정을 하여 처리가 가능합니다. 꼭 암기할 필요는 없습니다만, 알고있어야됩니다.)


 장점 : 일반화된 스크립트가 완성되면, Tool의 제약을 받지 않고 에딧팅 할 수 있습니다.



 스크립트

 Map001에 대해서만 기록합니다.

 선택지 로 1,2,3,4,5,6에서 고를시 텍스트 1,2,3,4,5,6이 나오게 되는 스크립트입니다.

 

data_map      = load_data("Data/Map001.rvdata2")

data_map.events.store(1,RPG::Event.new(0,0))

data_map.events[1].pages[0].list.clear

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(102,0,[["1","2","3","4","5","6"],0]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(402,0,[0,"1"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(101,1,["",0,0,2]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(401,1,["1"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(402,0,[1,"2"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(101,1,["",0,0,2]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(401,1,["2"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(402,0,[2,"3"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(101,1,["",0,0,2]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(401,1,["3"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(402,0,[5,"4"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(101,1,["",0,0,2]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(401,1,["4"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(402,0,[4,"5"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(101,1,["",0,0,2]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(401,1,["5"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(402,0,[3,"6"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(101,1,["",0,0,2]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(401,1,["6"]))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(403,0,0))

data_map.events[1].pages[0].list.push(RPG::EventCommand.new(0,0,0))#안전을 위한 Event 없으면 오류날 가능성 높습니다.

save_data(data_map,"Data/Map001.rvdata2")


설명

 data_map으로 맵을 불러와서 데이터를 메모리에 올린 후,

 이벤트들을 모아둔 해쉬 데이터인 events에, 첫번째 이벤트(key가 숫자 1인 이벤트)를 추가시킵니다.

 여기서 RPG에 정의된 클래스인 Event을 생성합니다.


  data_map.events.store(1,RPG::Event.new(0,0))


 여기서 1은 1번 이벤트(첫번째 이벤트)를 뜻하고, RPG::Event.new(0,0)는 새로 생성하는 이벤트 좌표가 0,0이라는 뜻입니다.

 

 이벤트 구조는 맵의 좌표값과 페이지를 저장시키고 있는 배열을 가집니다.(기타 강좌  을 참고)

 페이지는 이벤트 커맨드(실제 이벤트의 내용물)와 그래픽 행동 양식을 포장하고 있습니다.


 그래서 pages[0](첫번째 페이지)에 들어가서 list(이벤트 커맨드가 저장되어 있는 변수)를 변경해줍니다.


data_map.events[1].pages[0].list.clear


 new을 사용하면, 클래스는 최초에 초기화를 거치게 되어 간단하게 만들기 위해서 일단 다 비우는 스크립트입니다.


data_map.events[1].pages[0].list.push(RPG::EventCommand.new(102,0,[["1","2","3","4","5","6"],0]))

...


 이벤트 커맨드 입력 스크립트입니다.

 이벤트 커맨드는 이벤트 코드라는 것을 가지고 있으며( 참조), 코드에 따라서 행해지는 이벤트가 달라집니다.

 에 보면, 102는 선택지 추가이며, 0은 들여쓰기(이벤트 발동 위치; 만약, 이벤트가 1에 발동 하는 중에 0으로 가는 경우는 이벤트의 끝(선택의 경우 when cancel)이 정의 되지 않았을때는 발동되지 않습니다,) []매개변수(매개 변수가 없을 경우 []로 만들거나 0으로 할 것.)입니다.


 매개변수는 이벤트 코드에 따라서 바뀌며, 일반적으로, Tool에 있는 순서대로 따라갑니다.

 이벤트 코드에 따라서 단일 이벤트인 경우가 있고, 복합(2개 이상의 이벤트 구조)를 가집니다.

 선택지, 글자 같은 경우 복합 이벤트 구조이고, 스위치 on/off, 변수값 지정, 타이틀 화면으로 이동 같은 경우 단일 이벤트 구조입니다.


save_data(data_map,"Data/Map001.rvdata2")


 적용을 위해서 저장시킵니다.


 윗 코드를 적용 시킬시 선택지는 6개가 나타나게되고, 글자가 출력됩니다.


 만약,

      Tool로 작업이 제한됩니다.(10개 초과된 이벤트를 선택시 오류 메세지가 작동됩니다.)

 이게 문제라면, 윗 방법으로 처리할 수 있는 소스는 다음과 같습니다.


 Tools에서 제한 하는 것은 key 값이 10을 초과하면, 오류 메세지를 출력하도록 만들기 때문에, 다음과 같이 만드시면, 이상이 없습니다.


tt = 11

te = Hash.new

for i1 in data_map.events.keys

te.store(tt,data_map.events[i1])

tt+=1

end

data_map.events=te

save_data(data_map,"Data/Map001.rvdata2")


이런식으로 짜시면, 뒤로 밀리면서 Tool로 이벤트를 계속 추가 할 수 있습니다.(단, 뒤로 밀린 이벤트는 다시 수정 불가능합니다. 이거 쓰시기 전에 완전히 이벤트를 완성 시킨 후에 실행 시키시길 바랍니다.)

?
  • ?
    123123 2020.06.22 17:27
    Lite 뿐만 아니라 스크립트로 이벤트를 생성하는 방법을 찾고 있었는데, 도움이 되었습니다. 감사합니다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 초급강의실 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 7383 1
92 초급강의실 [MV] Iavra Splash Video(스플래시/인트로영상 제작 시 스킵기능 부여 플러그인) file 이니군 2017.09.11 1006 0
91 초급강의실 게임의 퀼리티를 높이자! 2편-진행불가 7 file ifeve 2016.01.25 13236 0
90 초급강의실 (ACE 기준)초보분들에게 유용한 10가지-1- 1 RPG란무엇인가? 2016.02.02 2688 0
89 초급강의실 게임의 퀼리티를 높이자! 1편-표지판 9 file ifeve 2016.01.18 4929 0
88 초급강의실 [동영상] 게임을만들자 (4편) - 마을과 상점을 만들자- file 천무 2016.02.10 1753 0
87 초급강의실 [동영상] 게임을만들자 (8편) - 맵에 포그, 광원적용 - 2 file 천무 2016.02.27 2270 0
86 초급강의실 [동영상] 게임을만들자 (7편) - 열쇠로 여는 문 만들기 - 3 file 천무 2016.02.23 3140 0
85 초급강의실 초보가쓰는 초보용 Rpg게임 만들기 (xp) 6 Marine 2016.03.13 6168 0
84 중급강의실 RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?- 3 file RPG란무엇인가? 2016.10.31 2171 0
83 초급강의실 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정) 3 file 이니군 2017.08.28 1475 0
82 초급강의실 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용) 약빨은ㄱㅏㅅㅣ 2017.11.28 1228 0
81 초급강의실 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정. file 약빨은ㄱㅏㅅㅣ 2017.11.28 1372 0
80 초급강의실 [DLC 매뉴얼] GENE 도움말 한글화 Part.2 이벤트 타입과 메뉴 바 컨텐츠 file 이니군 2018.04.25 679 0
79 초급강의실 [DLC 매뉴얼] GENE 도움말 한글화 Part.3 이용규약 file 이니군 2018.04.25 629 0
78 초급강의실 [ MV ] 1-1 " RPG MAKER MV에 대하여 알아보자! " file 수성의물 2018.07.01 1644 0
77 초급강의실 [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에. 케이디 2018.09.10 2401 0
76 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 20화 애니메이션 (특수효과) 2 file 작긔 2016.01.13 1695 1
75 고급강의실 Rpg Maker MV 함수 리스트(공식포럼) 2 plam 2016.01.10 1406 1
74 초급강의실 [동영상] RPG Maker MV 튜토리얼 강좌 18화 적 제작 및 특정지역 전투시스템 5 file 작긔 2015.12.30 1640 1
73 중급강의실 [RPG2003] 한단계 도약 : 되풀이 처리 3 A. 미스릴 2011.02.21 2774 1
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10






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

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