Views 3071 Votes 0 Comment 1
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

 사용 에디터 : 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
No. Category Subject Author Date Views Votes
Notice Beginner Classroom 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 8178 1
191 Beginner Classroom [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에. 케이디 2018.09.10 2892 0
190 Beginner Classroom RPG Maker MV에서 도트 느낌의 폰트 사용하기 1 file 러닝은빛 2018.07.15 5123 1
189 Beginner Classroom [ MV ] 1-1 " RPG MAKER MV에 대하여 알아보자! " file 수성의물 2018.07.01 2037 0
188 Beginner Classroom [DLC 매뉴얼] GENE 도움말 한글화 Part.3 이용규약 file 이니군 2018.04.25 1037 0
187 Beginner Classroom [DLC 매뉴얼] GENE 도움말 한글화 Part.2 이벤트 타입과 메뉴 바 컨텐츠 file 이니군 2018.04.25 1030 0
186 Beginner Classroom [DLC 매뉴얼] GENE 도움말 한글화 Part.1 씬 빌더의 개요와 씬빌더 시작하기 1 file 이니군 2018.04.24 2363 1
185 Beginner Classroom 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정. file 약빨은ㄱㅏㅅㅣ 2017.11.28 1746 0
184 Beginner Classroom 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용) 약빨은ㄱㅏㅅㅣ 2017.11.28 1557 0
183 Beginner Classroom [MV] Iavra Splash Video(스플래시/인트로영상 제작 시 스킵기능 부여 플러그인) file 이니군 2017.09.11 1475 0
182 Beginner Classroom RPG MAKER MV Tool Program-MADO 설치 및 적용기 1 file 이니군 2017.09.08 2655 0
181 Beginner Classroom 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정) 3 file 이니군 2017.08.28 1849 0
180 Advanced Classroom [RMMV] 크로노 엔진(Chrono Engine) 플러그인 사용법 1 러닝은빛 2017.07.16 4053 2
179 Intermediate Classroom 네코플에서 VXA 선택지 잘리는 버그 해결하는법 file 심심치 2017.06.22 1288 2
178 Beginner Classroom 변수를 이용한 식물 재배 3 file MoonJ 2017.05.28 3554 2
177 Beginner Classroom 누구나 쉽게 따라할 수 있는 액션/슈팅 이벤트 만들기! 4 file 이제리아 2017.01.26 4720 3
176 Intermediate Classroom RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?- 3 file RPG란무엇인가? 2016.10.31 2564 0
175 Intermediate Classroom 쯔꾸르 게임을 네코플레이어에 최적화 시켜보자! # 해상도 편 22 file 양갱님 2016.04.17 36570 10
174 Beginner Classroom 게임의 퀼리티를 높이자! 3편-맵배치 2 ifeve 2016.04.08 5546 2
173 Beginner Classroom Input 객체의 키코드 확장 8 file 러닝은빛 2016.04.05 1666 0
172 Beginner Classroom 초보가쓰는 초보용 Rpg게임 만들기 (xp) 6 Marine 2016.03.13 6506 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10


[privacy statements] | [Terms of Use] | [Contact us] | [Sponsorship] | [Indiside History]

Copyright © 1999 - 2016 INdiSide.com/CL3D Co., Ltd. All Rights Reserved.
Owner : Chunmu(Jiseon Lee) | kernys(Wonbae Kim) | Sasinji(Byungkook Kim)