안녕하세요 까만땅콩입니다.

이제 모드팩만들기의 뼈대를 세울시간입니다.

기초공사가 튼튼해야 사상누각이 안되겠죠...

사실 이부분이 잘 설계가 되어 있으면 뒤에 월탱이 업데이트가 되더라도

크게 손볼곳이 없습니다는 사실이 아니고....

네, 노가다하는 시간이 조금 많이 줄어듭니다....

시작해보죠~~~

6번, 7번 이 기초 설계 부분입니다.


---------------- 나만의 모드팩을 만들어 보자 연재 목록 ----------------

1. 설치형 모드팩의 화면구성

2. 모드팩을 만들기 위하여 기본적으로 알아야 할것은??

3. 모드팩의 인스톨 진행 순서 및 화면 설명

4. 까만땅콩 모드팩의 구조

5. 모드팩을 만들기 위해 필요한 프로그램 및 설정

6. 내가 원하는 모드팩 만들기 - 인스톨 화면 설계 편

7. 내가 원하는 모드팩 만들기 - 모드팩 구성 트리 설계 편

8. 내가 원하는 모드팩 만들기 - 모드 설명 이미지 파일과 사운드 넣기

9. 내가 원하는 모드팩 만들기 - 선택한 모드의 기능 설정 ON & OFF 설정하기

10. 대표적인 모드들의 공식 제작자 또는 꾸준한 팬 업데이트 사이트 링크

--------------------------------------------------------------

6. 내가 원하는 모드팩 만들기 - 인스톨 화면 설계 편

    인스톨 화면 설계는 본인이 만들고자 하는 모드팩의 성격을 드러낸다고 생각하면 됩니다.

    제가 추구하는 모드팩은 다음과 같은 목표를 두고 개발을 하였습니다.

    1) 모드를 인스톨 하더라도 윈도우의 레지스트리에 모드팩이 깔린 흔적이 남지 않아야 한다.

    2) 모드 설치를 위해서 나타나는 셋업화면의 갯수가 최소화 되어야 한다.

    3) 모드 선택시 시간이 걸리니까 배경음악이 들어 갔으면 좋겠다.

    4) 설치하고자 하는 모드의 텍스트 설명에 마우스커서가 올라가면 해당 모드의 샘플 이미지를 출력한다.

    5) 사운드 파일의 경우 해당 사운드 클릭시 샘플사운드가 나오도록 한다.

    6) 인스톨이 완료 되면 엔딩 페이지가 있어야한다.

    7) 모드팩을 만든사람과 도움을 준사람 그리고 사용자 라이센스에 대한 내용을 표시한다.

    이제부터 화면의 구성(갯수)을 시작해 보도록 하죠~

    INNO SETUP에서 인스톨러를 만들때 가장 기본적으로 나오는 페이지는 아래와 같습니다.
  

    a. Welcome Page

       - 인스톨 시작시 제일 처음 나오는 페이지





    b. Select Dir Page

       - 프로그램이 설치될 디렉토리를 지정하는 페이지




    c. Ready Page

       - 인스톨 되는 방식 및 디렉토리, 인스톨 되는 콤포넌트등 설치 정보를 확인하는 페이지.




    d. Installing Page

       - 파일이 인스톨되는 진행상황을 보여주는 페이지.




    e. Finished Page

       - 설치가 정상적으로 종료되었음을 알려주는 페이지.




    위 다섯개의 페이지가 기본페이지로 사용이 됩니다.

    이에 여기 기본에서 뺄것과 추가 해야 하는것을 생각해봅시다~

    WelcomePage는 뽀대가 안나니까 패쓰~!! 사실 '다음' 버튼 한번 누르는게 귀찮음....

    흠 내가 맹글었으니 사용자 라이센스는 알려줘야 겠죠...

    LicensePage는 제가 추가 한 페이지 입니다.

    모드의 저작권 관련 및 기타 권리사항들이 여기에 다 표기 되어야 그나마 시비 걸지는 않겠죠 -0-

    뭐 이런것도 귀찬다~!! 이 페이지도 빼도 됩니다. -_-;;;;;

    SelectDirPage는 왠만하면 손대지 맙시다...

    모드팩 소스안에 보면 월탱이 설치된 디렉토리의 정보를 윈도우 레지스트리 검색으로

    자동으로 찾아서 디렉토리가 나오도록 되어 있습니다.

    그런데~!! 디렉토리 자동 설정 기능이 모든 PC환경에서 자~~알 동작하지는 않습니다.

    특히나 PC방에 있는 PC들은 요즘 대부분 프로그램 설치 정보를 서버에 두고 숨켜두기에

    못찾습니다...

    어 그런데 제일 중요한 뭔가가 빠졌네요...

    모드 선택형 인스톨러를 만드는데 왜 선택 페이지는 어디갔지? 라고 생각하신다면

    흠 일단 100점 추가~!!

    흐름을 잘 이해하고 있다고 보시면 됩니다.

    INNO SETUP 에서 콤포넌트 선택 부분은 옵션기능인 것이었습니다~~~!!!

    요 아래에 나오는 모드팩 구성 트리 설계를 마치고 넣도록 하죠~

    모드를 선택하는 페이지의 이름은 SelectComponentPage로 기억해두세요.

    다음은 ReadyPage인데요 뭐 눈으로 한번 확인하고 설치하라는 나름의 배려인데

    이 페이지도 귀찮다 싶으면 빼면되요~

    이제 실제로 프로그램이 설치되는 과정을 보여주는 InstallingPage 입니다.

    이 페이지도 안보이게 해서 선택된 모드를 설치할 수 있습니다.

    그래도 보는게 조금은 안심이 되겠죠...

    마지막 페이지인 FinishedPage는 설치과정이 모두 완료 되었다고 알려주는 페이지이니

    내버려두도록하죠~

    위에서 얘기한 페이지를 넣고 빼고 안보이도록 숨기고 하는 기능은 모드팩 소스의 중심에 있는

    BlackPeanut.iss 파일에서 해당 명령어를 넣으면 됩니다.

    이렇게 저렇게 내맘대로 사용되는 페이지를 조정하고 싶다는 분은 공개한 소스를 가지고 먼저 만들어 본 다음에

    페이지 사용 설정과 관련되어서는 따로 설명할 부분을 기다리시면 됩니다.

    아니면 먼저 선행학습을 하셔도 되구요~

    자 요약해 봅시다.

    설치형 모드팩 프로그램에서 사용되는 기본 페이지는 아래와 같습니다.

    - LicensePage

    - SelectDirPage

    - SelectComponentsPage

    - ReadyPage

    - InstallingPage

    - FinishedPage
   
    WelcomePage는 스플래쉬 화면으로 대체를 하는것이니 빼버렸습니다.



7. 내가 원하는 모드팩 만들기 - 모드팩 구성 트리 설계 편

    지금부터 본인이 만들고자 하는 모드팩의 구성 트리를 만드는 방법을 알아보겠습니다.

    사람마다 같은 모드들을 사용하더라도 이 기능은 ON 저 기능은 OFF~

    네 참으로 다양합니다. 그래서 이 트리 부분의 설계가 어찌보면 제일 짜증나는 작업이죠

    이런 기능은 기본적으로 쓰면되지 왜 넣었다 뺏다 해서리...

    뭐 모드 제작자들이 그런 기능 온/오프 설정을 하도록 만들었으니

    모드팩 제작자도 최대한 반영하는것이 원칙이나.......

    그렇게 되면 모드의 종류가 많아질 수록 선택 옵션은 기하 급수적으로 늘어나니 본인이 잘 판단하기를 바랍니다.

    제가 봤을때 가장 옵션부분에 신경을 많이 쓴것이 아슬란 모드팩입니다.

    저는 선뜻 아슬란 같이 무지많은 옵션을 주기가 꺼려지더군요....

    노가다 해야하니까...

    잡설은 여기까지 하고 이제 부터 진짜 실전입니다.

    앞으로 실전 부분은 제가 올린 소스를 기준으로 설명되며

    제꺼에는 너무 많은 모드들이 들어가 있으니 차근차근 쉽게 할 수 있도록 대부분의 모드들을 지우고

    단순화시킨 다음에 단계별로 진행 해보겠습니다.

    XVM 모드를 예를 들면 좋겠으나 머리가 아프도록 옵션이 많으니 단순하게 모드별 설정을 하지 않고

    사용을 할지 하지 않을지만 결정하면 선택된 모드들만 인스톨이 되는 간단한 부분 부터 해보죠~

    이제 부터 만들어질 모드팩은 아래의 그림에 있는 탱크아이콘으로 하겠습니다.

    

    이제 트리 구조에 대하여 먼저 설명을 하고 진행을 해야 본인의 모드팩 구성 트리를 만들때

    쉽게 할 수 있을듯합니다.

    위에 사용될 탱크 아이콘의 트리구조는 실제 소스코드에서는 아래와 같이 두가지를 정의해야 합니다.




    이해가 어려울수도 있지만 INNO SETUP은 외부에 보여지는 디스크립션을 한번 정의하고

    내부의 트리구조를 만드는 콤포넌트 네임에 이 디스크립션을 매칭하는것입니다.

    모드팩 프로그램에 보여지는 모드의 설명은 위의 그림에서 보듯이

    CustomMessages.iss 파일에서 정해놓은 문구가 그대로 출력이 됩니다.

    CompDesc163 이라는 배열에 '까만땅콩 Contour Icon' 이라고 문구가 정의가 되면

    Components.iss 파일에서는 TANKICON\BP 라는 콤포넌트 네임에 CompDesc163을

    사용한다라고 지정을 합니다.

    쉽게 구분하면 외부에 보여지는 이름은 CustomMessages.iss 에 지정하고

    프로그램 내부에서 해당 모드를 부를때 사용하는 이름을 Components.iss 파엘에서 지정하는 겁니다.

    일단 여기까지 이해를 하였으면 이제 소스 파일들을 위에서 언급한 대로 수정해 보겠습니다.

    소스 수정을 하는것은 제가 수정을 해서 첨부파일로 배포를 하는것이 가장 좋을듯 하나~!!!

    그렇게 하면 자기 스스로 해보는 학습의 효과가 없다고 판단되기 때문에

    특정파일의 몇 라인부터 몇라인까지 지우세요~!! 이렇게 하면서 진행 하도록 하겠습니다.


    이번은 여기까지 하고 커피한잔 드시고 다음 연재까지 트리구조 한번 생각해보세요~!!

    Bye Bye~!