팁과 노하우 게시판

전체보기

모바일 상단 메뉴

본문 페이지

[일반] 커스터마이징 파일 수정에 대한 고찰

린시앙
댓글: 19 개
조회: 26628
추천: 13
2021-04-05 11:01:41
안녕하세요.

마비노기 8년
메이플 3년 출신 왕의기사입니다.


어제 Na1c님의 팁글을 보고 영감을 받아서 커스터마이징 파일을 분석해보았습니다.
대부분의 유저분들이 "이게 뭐 소리야?"라는 반응이셨구요..

그래도 대충의 결과는 도출해야하지 않을까 하여 추가로 분석을 해보았습니다.



일단 저는 컴퓨터 전공자이고, 개발자는 아닙니다.
컴퓨터에도 여러 분야가 있는데 저는 개발에서 손을 놓은지는 꽤 되어서 현재는 컴퓨터분야의 다른 세부 전공으로 일을 하고 있습니다.


로아의 커스터마이징 파일의 분석은 코딩의 영역이라기 보다는 분석쪽, 즉 리버스 엔지니어링이나 어셈블리와 가까워 보입니다.
문제는 제가 이 두 분야를 공부해본적이 없어요...

그래서 나름 가지고 있는 지식과 새로운 지식을 공부하여 진행해보았습니다.



이에따라 도출된 결과를 먼저 말씀드리면
===========================================================
1. 커스터마이징 파일의 수정은 현재로써는 불가능하거나 매우 많은 시간과 인력이 요구된다.
2. 아바타 염색과는 달리 RGB 코드 입력이 불가능 할 것으로 판단된다.
3. 커스터마이징 시스템에서 RGB 코드 입력을 가능하게 하려면 컬러링 알고리즘을 일부분 뜯어고쳐야 한다.
===========================================================
라고 판단하였습니다.




아래는 제가 판단한 근거입니다.

1. 팔레트 시스템의 형태


로아에서는 다양한 색상 팔레트를 제공하고 있습니다.

위의 팔레트가 각각 어느 부위의 팔레트인지를 구분할 수 있으신가요?


정답은


머리 눈 홍채 피부 입술
입니다.

각 부위의 특징이 팔레트에서도 보이죠?

머리는 대부분의 색을 표현할 수 있을 것으로 보여집니다만 아마 전문가분께서 보시기에는 모든 색을 표현하지는 않을 것이라 보실것 같습니다.

반면 다른 부위의 경우에는 상당히 제한적인 색만을 표현할 수 있습니다.

따라서 '만약 올바르지 않은 색상이 배치될 경우, 이는 올바르지 않은 커스터마이징 파일로 볼 수 있다.' 라고 판단하게 됩니다.


결국 게임사에서 허용하는 색상 범위와 조합만이 가능한 것을 알 수 있습니다.


Q. 그럼 이 색 범위를 유저가 알 수 있을까요?
A. 알 수 있습니다.

Q. 그럼 이 범위에 따른 수정된 옵션을 만들어낼 수 있지 않을까요?
A. 가능합니다.

Q. 그럼 왜 못한다고 그러는건가요?
A. 제가 디자인 전문가가 아니라서 그렇습니다.


이 색상 범위를 이해하기 위해서는 색상코드(RGB)의 원리부터 파악해야합니다.
RGB는 아래 3원색의 조합으로 만들어집니다. 


따라서 이를 이용한 색상 팔레트는 다음처럼 구성될 수 있죠.



색깔+채도+밝기 조합으로 원하는 색을 표현할 수 있습니다.

그런데 로아 팔레트는 이런 형태가 아니죠?

저의 지식이 얕으므로 왜 로아 팔레트는 이런 모습을 하는 것인가 찾아봤는데, 이건 HSV라는 색상 시스템을 이용하더라구요

아래는 HSV 색상 팔레트입니다.

HSV 팔레트의 단면만을 본다면 로아 팔레트가 되겠죠?


로아에서는 HSV 팔레트를 이용하여 선택된 값을 RGB로 변환하여 사용자에게 보여주는것 같습니다.

그런데 이 변환 알고리즘이나 색상을 제한하는 방법에 대한 지식이 저한테는 없습니다. ㅠㅠ

따라서 만들어진 커스터마이징 파일을 수정하여 게임사가 제공하는 색상 범위를 맞출 자신이 없습니다.


이 부분은 전문가분의 도움이 필요할 것 같습니다.



2. 커스터마이징 코드의 변화

커스터마이징 파일은 HEX(16진수) 파일로 구성되어있습니다.

예를 들면 다음과 같습니다.


뭔소리인지 모르시겠죠?

아래는 제가 만든 예시입니다.


각 설정은 고유한 값이 있습니다.

예를들면 머리는 A0, 눈은 E1이며, 각 항목에 별도의 고유값이 정해져 있는 것입니다.

여기서 제가 임의의 설정을 해보겠습니다.


머리에서는 A0
머리 형태는 07
머리 색은 FD12A0

눈에서는 E1
눈동자 크기는 80% = 16진수로는 50
눈색상은 011A2B
홍채 색상은 CA13B4
동공 형태는 0A

위와 같이 설정했다면 커스터마이징 코드는 아래처럼 만들어집니다.

A0 07 FD 12 A0 E1 50 01 1A 2B CA 13 B4 0A

크게 어렵지는 않죠?



그런데 이게 실제로는 힘든 이유가 있습니다.
1. 각 항목이 어떤 코드로 설정되어있는지 모른다.
2. 변칙적인 코드가 있는데, 그 규칙을 모른다.


1번은 계속 값을 변경하면서 비교해보다보면 알 수 있을겁니다.
그렇게 알아낸 것이 아래 팁글입니다.

그런데 문제는 2번입니다.

A0 07 A0 12 FD FA E1 50 01 1A 2B CA 13 B4 0A
라는 코드가 있을 경우, A0 12 FD는 FD 12 A0와 다른 색깔을 보여줍니다.

이를 통해 커스터마이징 파일의 머리 색상 코드는 역순으로 배치되었다는 것을 알 수 있습니다.
하지만 FA는 새로운 값이죠?

문제는 이 값입니다.
이 값이 뭘 의미하는지 알 수 가 없습니다.

똑같은 설정을 해도 
어떨땐 A0 07 A0 12 FD FA E1 50 01 1A 2B CA 13 B4 0A
어떨땐 A0 07 A0 12 FD C0 E1 50 01 1A 2B CA 13 B4 0A
의 파일이 생성됩니다.

이 값의 생성 원리를 알아내는 것이 관건입니다.



3. RGB 값을 입력하여 색깔을 선택할 수 없다.

RGB 값을 입력하여 색깔을 바로 선택할 수 있으면 좋겠죠..
그런데 이것은 디렉터님께서 색상 옵션을 풀어주지 않으면 힘들것 같습니다.


만약, 디렉터님께서 색상 코드를 입력할 수 있게 해주신 후,
아래 눈 팔레트에 초록(#00FF00, 0,255,0)을 입력하면 어떻게 될까요?


'사용할 수 없는 색입니다.'라고 뜰 것 같습니다.
왜냐면 이 팔레트에는 초록이 없거든요.

그런 다른색은요? 파란색 : 불가, 보라색 : 불가...

안되는 색이 너무 많으니 입력할때마다 안된다고 뜰겁니다.


그럼 게임사 입장에서 할 수 있는 좋은 방법은 유저가 원하는 색을 입력하면 되는지 안되는지 알려주는것보다,
차라리 되는 색을 선택할 수 있도록 해주는게 낫겠죠?




모든 팔레트에서 모든 색을 쓸 수 있도록 허용해주지 않는 이상 색상코드를 입력하게 하는 것은 힘들어보입니다.


만약 가능해진다면요?



이만 마치겠습니ㅏㄷ.

Lv26 린시앙

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

최근 HOT한 콘텐츠

  • 로아
  • 게임
  • IT
  • 유머
  • 연예
AD