본문 바로가기

Project/Zoom range patch

[How to make] Zoom range patch 01. Overview

마비노기 패키지 내의 world 폴더에는 마비노기상의 지역(또는 존)을 정의하는 여러 파일이 저장되어 있습니다.

여기서 ".rgn"과 ".xml" 확장자를 가진 파일을 적절히 수정하면 다음과 같은 기능을 구현할 수있습니다.
  • 마비노기 시야 제한 해제 (Zoom range patch)
  • 마비노기 시야각 변경 (Change camera fov)
  • distantmesh 변경
  • 풍경 시야 거리 수정
rgn 파일은 헥사 에디터를 이용해 보거나 편집할 수 있습니다.
아래는 ula_emainmacha.rgn을 Hex Workshop으로 열어본 화면입니다.

이 이멘마하 파일을 예로 상세한 수정 방법을 알아봅시다.

1. 이멘마하의 distantmesh를 변경하는 방법

그전에 distantmesh는 무엇일까요?
distantmesh는 특정 지역의 멀리 보이는 풍경 그림이라고 보시면 됩니다.
마비노기의 기본 풍경 시야거리는 짧아서, 그다지 멀지 않는 곳도 하얀 안개에 가려져 보이지 않게 되지요.
하얀 안개 위에 풍경 그림을 깔아줘서 안개의 어색함을 완화하는 장치라라고 보시면 됩니다.
distantmesh는 material/fx/distantmesh 폴더에서 확인하실 수 있습니다.(dds파일)


위: distantmesh 폴더 | 아래: 이멘 마하의 distantmesh

rgn은 어떤 지역에 대한 여러가지 정보를 가지고 있는 파일로.. 
내부에서 distantmesh 파일 명도 정의하고 있습니다.
해당 부분을 변경해주면 커스텀 distantmesh를 사용할 수 있겠죠?





distantmesh를 변경하려면 아래 값을 찾고 수정하면 됩니다.


HEXA
00003C0072006500670069006F006E003E003C006D006500730068002000640069007300740061006E0074006D006500730068003D002200640069007300740061006E0074005F0065006D00610069006E006D00610063006800610022002F003E00
CHARACTER
..<.r.e.g.i.o.n.>.<.m.e.s.h. .d.i.s.t.a.n.t.m.e.s.h.=.".d.i.s.t.a.n.t._.e.m.a.i.n.m.a.c.h.a."./.>.
PARAMETERS
distantmesh = "파일명"

distantmesh="distant_emainmacha" 부분을 찾으시고, 큰 따옴표 안의 문자열을 수정하면 distantmesh가 변경될 것입니다.

2. 이멘마하의 시야 제한을 해제하는 방법

위의 distantmesh를 변경할 때와 같이 시야 관련 부분을 찾고, 수정하면 됩니다.
그런데.. 이상하게도 이멘마하 파일에서는 카메라 관련 부분을 찾을 수가 없습니다.
원래부터 없었기 때문인데요.. 이럴때는 카메라 관련 부분을 삽입해주면 됩니다.
던바튼 rgn 파일에 해당 부분이 있기 때문에 복사하고 수정해서 붙이면 되겠습니다.

HEXA
3C00630061006D006500720061005F007A006F006F006D0020007A006F006F006D005F006D0069006E003D0022003400300030002E00300030003000300030003000220020007A006F006F006D005F006D00610078003D00220031003500300030002E0030003000300030003000300022002F003E00
CHARACTER
<.c.a.m.e.r.a._.z.o.o.m. .z.o.o.m._.m.i.n.=.".4.0.0...0.0.0.0.0.0.". .z.o.o.m._.m.a.x.=.".1.5.0.0...0.0.0.0.0.0."./.>.
PARAMETERS
zoom_min = "최소 시야 값"
zoom_max = "최대 시야 값"

3. 이멘마하의 시야 각, 그리고 풍경 시야 거리를 변경하는 방법

이멘마하에는 시야 각 관련 부분도 빠져있네요.
샘플로 사용하기 부적합한걸 고른 것 같습니다.
시야 제한과 마찬가지로 없는 부분은 삽입해주면 됩니다.
마찬가지로 던바튼에서 해당 부분을 복사해왔습니다.

HEXA
3C0066006100720070006C0061006E00650020006100700070006C0079005F0066006100720070006C0061006E0065005F006D0075006C00740069003D002200660061006C00730065002200200066006100720070006C0061006E0065005F006D0075006C00740069003D00220031002E00300030003000300030003000220020006100700070006C0079005F0066006100720070006C0061006E0065005F0063006F006E00730074003D002200660061006C00730065002200200066006100720070006C0061006E0065005F0063006F006E00730074003D00220037003000300030002E00300030003000300030003000220020006100700070006C0079005F00630061006D006500720061005F00640069007300740061006E00630065003D002200660061006C00730065002200200066006100720070006C0061006E0065005F006E003D00220035003000300030002E003000300030003000300030002200200066006100720070006C0061006E0065005F0066003D00220037003000300030002E003000300030003000300030002200200066006F0076003D002200340035002E0030003000300030003000300022002F003E00
CHARACTER
<.f.a.r.p.l.a.n.e. .a.p.p.l.y._.f.a.r.p.l.a.n.e._.m.u.l.t.i.=.".f.a.l.s.e.". .f.a.r.p.l.a.n.e._.m.u.l.t.i.=.".1...0.0.0.0.0.0.". .a.p.p.l.y._.f.a.r.p.l.a.n.e._.c.o.n.s.t.=.".f.a.l.s.e.". .f.a.r.p.l.a.n.e._.c.o.n.s.t.=.".7.0.0.0...0.0.0.0.0.0.". .a.p.p.l.y._.c.a.m.e.r.a._.d.i.s.t.a.n.c.e.=.".f.a.l.s.e.". .f.a.r.p.l.a.n.e._.n.=.".5.0.0.0...0.0.0.0.0.0.". .f.a.r.p.l.a.n.e._.f.=.".7.0.0.0...0.0.0.0.0.0.". .f.o.v.=.".4.5...0.0.0.0.0.0."./.>.
PARAMETERS
apply_farplane_mulit - farplane_multi를 사용할 것인지에 대한 여부
farplane_multi - ??던바튼의 값은 1.0 입니다만 무슨 의미인지 모르겠습니다.
apply_farplane_const - 기본 가시거리 높이 적용 여부(BOOL), true or false.
farplane_const - 기본 시야 높이
apply_camera_distance - 가시거리 적용 여부 (BOOL)
farplane_n - 카메라가 가까울 때의 가시거리
farplane_f - 카메라가 멀리 있을때의 가시거리
fov - 시야각

마비소원꾸러미 제작자님의 글을 참고하여 작성했습니다.

(원문) 블로거


'Project > Zoom range patch' 카테고리의 다른 글

[Work] Zoom&Fov fix - 1. Making HEX Viewer.  (1) 2013.05.25