조회 수 2276 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

 DataManager에 있는 $data_tilesets를 이용해서 정리한 정보입니다.

 만약 RPG Maker VX Ace Lite를 사용하신다면, Tileset을 추가 시키고 싶은데 힘드시면, script로 넣을 수 있는 방법이 있다는걸 알려주기 위해서 작성합니다.


 주제 : Tilesets.rvdata2의 파일 형태와 뜻하는 것.

 사용한 Editor : RPG Maker VX Ace Lite

      Gemini


 Tilesets란, RPG Maker의 Map 지형을 저장하고, 관리하는 것들을 모아둔 데이터를 뜻합니다.

 Map의 데이터에서 지형을 뿌려줄때, 영향을 주기며, 지형의 기본적인 정보(지나 갈 수 있는 유/무, 겹쳐서 그려져야되는지, 어떤 형태의 지형이 있는지, 지형에 들어 올 시 데미지(HP감소)가 있는지 등)를 가지고 있기 때문에, 중요하고, 맵을 디자인할때나 그럴때 중요합니다.


 추가 하기 위해선, 데이터의 구조를 이해할 필요가 있습니다.(꼭 알 필요가 있는 경우는 스크립트로 Tilesets을 수정및 조작을 원할 경우이고, 추가만 원하고 RPG Maker VX Ace Lite 툴로 조작하길 원하신다면, 꼭 알 필요는 없습니다.)


 Tilesets.rvdata2 변수


 -RPG::Tileset:0x7088bec//클래스명과 주소 값

클래스명은, RPG::Tileset으로 구성된 RPG Maker VX Ace에서 만든 클래스를 뜻합니다.(정확한 경로는 module RPG에 class Tileset에 있습니다.)

주소 값은 현재 실행되고 있는 컴퓨터에게 뜻하는 것으로 현재 실행하는 것에 따라서 달라지기 때문에 저걸 안다고 해서 뭘 할 수 있거나 하는게 아닙니다.(OS에 관리에 통하여 할당된 값이기 때문에 서버 같이 항상 돌아가는 컴퓨터이며, 항상 돌아가는 프로그램이 아닌 이상은 알아 봤자 소용없습니다.)


 -@id=1//타일 ID

ID로 Tilesets로 저장된 위치값을 뜻합니다.

study-1.jpg

길 해당되는 값입니다.


 @name="Field"//타일명

타일 명칭으로 사용자가 입력한 타일 명입니다.

기본적으로 String형태의 Class로 구성된 문자열 값입니다.


 @mode=0//처리 방법 0~2

0 : Field Type

1 : Area Type

2 : VX Compatible

저장되거나 보여지는 형태를 뜻합니다.

RPG Maker Tool로 변형하면 위치나 그런게 변형이 생기는데, 테이블 저장 방식에 영향을 받습니다.


 @tileset_names=["World_A1", "World_A2", "", "", "", "World_B", "", "", ""]//그래픽 명칭 배열

그래픽 명칭 배열입니다.

그래픽 이름을 저장하는 배열로,

처음 부분에서 A1, A2, A3, A4, A5, B, C, D, E로 구성되어 있습니다.


 @flags=#<Table:0x7088a5c>//이동 및, 타일의 속성을 지정한 고차원 배열

Table은 일반적인 Ruby에선 존재하지 않는 형태입니다.(Ruby API을 다 뒤져봤는데 설명이나 그런게 없습니다.)

Table은 고차원 배열로 3차원 이상을 뜻합니다. 사용법도 특이하게 정의 되어 있는데,

일반적인 배열의 고차원은


예 arr[1][2]


이런식으로 작성을 합니다만, 이 Table은


예 table[1,2,3]

    table[1,2]

    table[1]


이런식으로 작성이 가능합니다.(그렇게 정의가 되어 있습니다.)


여기서 @flags의 Table형태는 3차원에서 1차원만 사용한 형태입니다.(2,3차원을 사용할시 오류가 납니다.)


@flags[0]은 nil의 지형을 뜻하기 때문에, RPG Maker 2000때는 절대로 수정이 불가능 한 지역을 말하는 것으로 값은 고정값이 16입니다.


@flags[1]부터 사용자가 지정하는 것이 되는데, Map의 data와 동일하게 Tile의 읽는 순서는 B-C-D-E-A1-A2-A3-A4-A5(수정)순으로 흐르기 때문에, B의 첫번째 타일(Tool로 보면 2번째 타일)가 선택이 됩니다.


저장되어 있는 데이터는 숫자로, 조사해본 결과

초기 값 : 1551

Passage : 1551

4 Dir : 1551에서 변동있을시 이동 불가가 풀린다.

Lader : 1583 (지형 설정값에서 32 추가)

Brush : 1615 (지형 설정 값에서 64 추가)

Counter : 1679

Damage Floor : 1807

Terrain Tag 1 : 5647 (특징 지형 설정값에서 4096씩 추가 된다.)


초기 값 : 1536

Passage : 1536

4 Dir : 1536 에서 1551까지 점점 값이 증가한다.

Lader : 1568 (지형 설정값에서 32 추가)

Brush : 1600 (지형 설정 값에서 64 추가)

Counter : 1664 (지형 설정 값에서 128 추가)

Damage Floor : 1792 (지형 설정 값에서 256 추가)


초기 값 : 1552

Passage : 1552

4 Dir : 1552 에서 1567까지 점점 값이 증가한다.

Lader : 1584 (지형 설정값에서 32 추가)

Brush : 1616 (지형 설정 값에서 64 추가)

Counter : 1680 (지형 설정 값에서 128 추가)

Damage Floor : 1808 (지형 설정 값에서 256 추가)


이걸 보시면, 감 잡으신 분이 있을지 모르겠지만,


모든 데이터의 저장이 Bit형태를 띄게 됩니다.


1551 = 0110 0000 1111(2)

1583 = 0110 0010 1111(2)

1615 = 0110 0100 1111(2)


이렇게 나옴을 알 수 있고,

이걸 일반화시키면,


0000[Terrain Tag] 0110[0 1 1 DF] 0000[C, B, L, Star] 0000[N, E, W, S](여기서 0이 이동가능, 1은 이동 불가로 표시된다.)

(DF : Damage Floor, C : Counter, B : Brush, L : Lader, Start : , N : North, E : East, W : West, S : South)


이런 형태를 띄게 됩니다.


 @note=""//메모

사용자가 적은 메모장같은 역할을 합니다.


덤.) Tilesets 추가 방법

 Tilesets을 추가 하는 방법은 간단합니다.

 $data_tilesets에서, Tile을 추가 시키면 됩니다.


 예 $data_tilesets.push(RPG::Tileset.new)

     save_data($data_tilesets,"Data/Tilesets.rvdata2")


 이렇게 해서 게임을 실행시키면, 추가되어 나옵니다.(한번 실행시킨 후 지우지 않으면 계속 추가 됩니다.)


[첨부파일 study-1.jpg 다운로드]
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 초급강의실 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 7372 1
92 고급강의실 RPG Maker VX ACE - Classes 데이터 구조. JunkMan 2014.10.07 836 0
91 고급강의실 RPG Maker VX Ace - Event 추가 하기/ Event Command 추가하기. 1 JunkMan 2014.10.06 2811 0
90 고급강의실 RPG Maker VX ACE - Actor 데이터 구조 JunkMan 2014.10.06 1064 0
89 고급강의실 RPG Maker VX Ace - RPG::Event의 구조. 4 JunkMan 2014.10.05 2650 0
88 고급강의실 RPG Maker VX ACE - MapInfos.rvdata2 데이터 구조. JunkMan 2014.10.05 3625 0
87 고급강의실 RPG Maker VX ACE - Map.rvdata2 데이터 구조 3 JunkMan 2014.10.04 1592 0
» 고급강의실 RPG Maker VX ACE Lite -Tilesets.rvdata2 데이터 구조 JunkMan 2014.10.04 2276 0
85 고급강의실 아이템 한번에 받기  운 2014.08.24 1147 0
84 중급강의실 대쉬몬스터만들기 2 만두카레 2014.08.24 1215 0
83 중급강의실 xp 타이틀 화면 바꾸기 8 주섬주섬 2014.07.20 1832 0
82 고급강의실 캐릭터그래픽 픽셀 3  운 2014.07.19 3621 0
81 고급강의실 배틀창 이름 체력 레벨 좌표 변경하기 1 Seed 2014.06.19 1032 0
80 중급강의실 잠와서 실수가 많은 저 게임만들고 싶어요 -1- 데이터베이스-1- 1 시버암 2014.06.14 1165 0
79 중급강의실 저 게임만들고 싶어요!! -0- 기초 4 시버암 2014.06.13 1725 0
78 중급강의실 RPG XP에서 소를 집적타보자!! -일명 음모XP - (자작 이벤트) 7 BY_RAIN 2014.06.09 1168 0
77 중급강의실 이벤트에 지도넣기 (그림의 표시) 5 물판 2014.05.07 2275 1
76 중급강의실 맵으로 이동되었을때 자동으로 타이머 실행 3 물판 2014.05.01 1189 1
75 중급강의실 10퍼센트 확률로 당첨되기(브금추가) 12 천둥번들 2014.04.30 1370 1
74 중급강의실 한글암호 만들기 5 치와도라 2014.04.26 1855 0
73 중급강의실 RPG 만들기 VX 한글 도움말 0.8버전 1 Omegaroid 2014.03.29 2602 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10






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

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