이 글은 XVM 5.5.0 순정 버전으로 작성된 것임을 알려드립니다. 


순정 XVM 기반으로 작성하기 때문에 타 모드팩 등과 파일 구조가 다를 수 있음을 유의하시기 바랍니다. (기본 틀은 같음)



먼저 이 글은 아마도(...?) 시리즈로 쓰일 예정입니다.


일단 XVM에 대한 모든 수정방법을 적을 예정이며, 하나의 글로 쓰기는 무리이기에 


각 부분별로 나누어서 쓰도록 하겠습니다.




오늘은 2편 XVM 베슬마커 수정에 대해 설명하겠습니다.




XVM이 뭔지 모르겠다면?










0. 준비물이 필요합니다!


notepad++로 작업하기 때문에 이 글을 보는 여러분들도 notepad++로 작업하는걸 추천합니다




그리고 9.5버전에서 플레이한 리플레이 아무거나 한개도 같이 준비합시다.


다음에는 XVM폰트를 다운받아서 설치합니다


https://upload.inven.co.kr/upload/2013/09/28/bbs/XVMSymbol.zip <- 압축푸시고 폰트 더블클릭 후 왼쪽 상단 설치 


순정 XVM 기준으로 res_mods/xvm로 가시면 xvm.xc.sample 이라는 파일이 있는데요 이 파일의 이름에서


.sample을 뺀 xvm.xc 로 바꿔주셔야지만 본인이 수정한 내용이 적용됩니다.


반드시 해주시기 바랍니다.







1. XVM 베슬마커란 무엇인가요?


먼저 베슬마커부터 설명해야겠지요? 베슬마커란 각 전차들의 위에 뜨는 표식을 말합니다.


간단하게 예를 봅시다. 다음과 같은겁니다.



(순정 XVM 설정일경우에 나오는 베슬마커)



인게임에서도 설정가능하죠

ESC -> 설정 -> 표식으로 가봅시다.




근데 이걸 좀 더 본인이 원하는 방식으로 바꿔보는게 이번 글의 목표입니다.







2. 베슬마커와 관련된 파일들을 수정하자.


일단 베슬마커와 관련된 XVM파일을 먼저 찾아보도록 하죠


순정 XVM 기준으로 설명합니다.


markers로 시작하는 파일 5개입니다.



각각 파일을 설명하자면


markers.xc - 베슬마커를 적용할 설정파일들의 경로를 설정해줍니다. 수정할 필요 없음

markersAliveExtended.xc - 살아있는 모든 전차(적, 아군 포함)의 확장된 표식(=Alt 버튼 누른경우) 설정

markersAliveNormal.xc - 살아있는 모든 전차(적, 아군 포함)의 기본 표식 설정

markersDeadExtended.xc - 격파된 모든 전차(적, 아군 포함)의 확장된 표식(=Alt 버튼 누른경우) 설정

markersDeadNormal.xc - 격파된 모든 전차(적, 아군 포함)의 기본 표식 설정



베슬마커 설정파일들의 경우 4개 파일의 구조가 모두 같습니다.


세부적인 설정값만 다르죠. 그렇기 때문에 저는 markersAliveNormal.xc 파일만 수정하도록 하겠습니다.


나머지 3개의 파일도 똑같은 방식대로 수정해주시면 됩니다.



일단 수정 전, 후 비교를 위하여 순정상태의 베슬마커를 올려보겠습니다


닉네임은 가렸습니다.


왼쪽부터 순서대로


살아있는 전차 기본 표식, 살아있는 전차 확장 표식, 격파된 전차 기본 표식, 격파된 전차 확장 표식





3. 파일들을 열어서 설정들을 수정하자



먼저 markersAliveNormal.xc 파일을 notepad++로 열어봅시다



뭔가 내용이 어지럽게 있을 겁니다. 


내용이 많아서 글에는 추가하기 못했고, 첨부파일에 설정파일의 주석을 번역한게 있으니 같이 보시기 바랍니다.



여기서 주목해야 되는 설정값은


damageText - 데미지 값 떠오르는 수치 설정

vehicleIcon - 병과(=차종) 아이콘

healthBar - 체력 바

contourIcon - 전차 아이콘

clanIcon - 클랜 아이콘

levelIcon - 전차 티어

textFields - 실제 출력할 텍스트필드 설정


입니다.


이번에도 설정할게 많군요. 이 중 textFields를 주목해주세요 여기가 수정의 핵심입니다.




먼저 damageText 설정을 설명하자면 피격시나 공격성공시 깍이는 데미지 수치의 떠오르는 지속시간을 이야기합니다.


수정하고 싶으시다면 원하는 방식대로 수정하면 됩니다. 색상이나 위치, 숫자 크기 정도를 조절할 수 있습니다.


여기서 유폭된 전차의 유폭 메세지를 바꿀수 있습니다.





다음은 vehicleIcon입니다.


병과 표시로 보여지는 아이콘들의 출력설정할 수 있습니다. ◆▼■  <- 이런것들 말이죠.


저 모양 자체는 못바꾸고요, 위치와 크기를 설정가능합니다.(색상은 변경불가로 되어있음)




다음은 healthBar입니다.


각 전차들의 체력바 안의 표시되는 체력현황을 표시하게 해줍니다,


이 또한 위치랑 색상, 바 크기 등을 수정할 수 있으며


피격시 깍이는 바의 색상, 남아이는 체력바의 체력 등 도 설정가능합니다.




contourIcon은 전차 아이콘입니다.


여러분이 순정 아이콘 모드 쓴다면 일반 전차 표식이 나올 것이고,


콘트라베이스나 드루이드 아이콘 등을 쓴다면 해당 아이콘이 출력되는 곳이 바로 여기입니다.


여기서는 전차아이콘의 위치만 수정가능합니다.




clanIcon 설정은 베슬마커에서 클랜 아이콘도 보여줄 수 있도록 합니다.


위치와 폭, 넓이 설정 가능합니다. 거의 대부분 사용안함으로 해두기 때문에 딱히 의미는 없겠군요




다음은 전차 티어 설정인 levelIcon 입니다.


전차 아이콘 모드 쓰는분들에겐 필요없으나, 순정인 분들중에선 쓰기도 하죠, 위치 조절만 가능합니다.




마지막으로 textFields 입니다.


여기가 가장 중요한데요.


위에 설정하지 않은 것들은 모조리 커스터마이즈로 추가 할 수 있습니다.




위에서 설정하지 않은 부분이 뭐였죠?


바로 전차명, 플레이어이름, 레이팅, 승률 등을 표시할 수 있도록 해주는 설정입니다.




이해가 잘 안되신다고요?



간단하게 텍스트필드부분만 복사를 해보죠


"textFields": [
      // Text field with the name of the tank.
      // 스톡탱크 구분 여무 설정
      {
        "name": "Tank name",     // 필드 설정 이름(설정에 영향 x)
        "visible": true,         // false - 사용안함
        "x": 0,                  // x좌표
        "y": -36,                // y좌표
        "alpha": 100,            // 투명도
        "color": null,           // 색상
        "font": {                // 폰트 설정
          "name": "$FieldFont",  // 폰트이름
          "size": 13,            // 폰트크기
          "align": "center",     // 폰트정렬
          "bold": false,         // true - 진하게
          "italic": false        // true - 기울이게
        },
        "shadow": {              // 그림자 설정
          "alpha": 100,          // 투명도
          "color": "0x000000",   // 색상
          "angle": 45,           // 각도
          "distance": 0,         // 거리
          "size": 6,             // 크기
          "strength": 200        // 강도
        },
        "format": "{{vehicle}}{{turret}}" // 출력 형식, 전차명 + *(스톡포탑이면 전차명 뒤에 *가 붙어 나온다)
      },
 
      // Text field with the remaining / maximum health.
      // 현재체력 / 최대체력 설정 텍스트 필드
      {
        "name": "Tank HP",       // 필드 설정 이름(설정에 영향 X)
        "visible": true,         // false - 사용안함
        "x": 0,                  // x좌표
        "y": -20,                // y좌표
        "alpha": 100,            // 투명도
        "color": "0xFCFCFC",     // 색상
        "font": {                // 폰트 설정
          "name": "$FieldFont",  // 폰트이름
          "size": 11,            // 폰트크기
          "align": "center",     // 폰트정렬
          "bold": true,          // true - 진하게
          "italic": false        // true - 기울이게
        },
        "shadow": {              // 그림자 설정
          "alpha": 100,          // 투명도
          "color": "0x000000",   // 색상
          "angle": 45,           // 각도
          "distance": 0,         // 거리
          "size": 4,             // 크기
          "strength": 100        // 강도
        },
        "format": "{{hp}} / {{hp-max}}" // 출력 형식, (현재체력 / 전체 체력)
      }
    ]



기본 틀은 이 형식입니다.


즉 여기에서 위와 같이 필드 설정을 추가해주면 됩니다.


간단하게 레이팅을 추가해보도록 하죠


구조는 위에꺼와 같습니다 필드설정 하나를 통째로 복사해서 다음과 같은 내용을 작성 후 추가해봅시다.


{
        "name": "rating",       // 필드 설정 이름(설정에 영향 X)
        "visible": true,         // false - 사용안함
        "x": -40,                  // x좌표
        "y": -65,                // y좌표
        "alpha": 100,            // 투명도
        "color": "{{c:wn8}}",     // 색상
        "font": {                // 폰트 설정
          "name": "$FieldFont",  // 폰트이름
          "size": 12,            // 폰트크기
          "align": "left",     // 폰트정렬
          "bold": true,          // true - 진하게
          "italic": false        // true - 기울이게
        },
        "shadow": {              // 그림자 설정
          "alpha": 100,          // 투명도
          "color": "0x000000",   // 색상
          "angle": 45,           // 각도
          "distance": 0,         // 거리
          "size": 4,             // 크기
          "strength": 100        // 강도
        },
        "format": "{{wn8}}" // 레이팅 출력 형식(wn8레이팅)
      }


요거를 아까 위에 있던 텍스트필드 끝에 붙여 넣도록 하겠습니다.


마지막 설정이던 체력바 안의 체력수치 설정 밑에 붙여넣어서


"textFields": [
      // Text field with the name of the tank.
      // 스톡탱크 구분 여무 설정
      {
        "name": "Tank name",     // 필드 설정 이름(설정에 영향 x)
        "visible": true,         // false - 사용안함
        "x": 0,                  // x좌표
        "y": -36,                // y좌표
        "alpha": 100,            // 투명도
        "color": null,           // 색상
        "font": {                // 폰트 설정
          "name": "$FieldFont",  // 폰트이름
          "size": 13,            // 폰트크기
          "align": "center",     // 폰트정렬
          "bold": false,         // true - 진하게
          "italic": false        // true - 기울이게
        },
        "shadow": {              // 그림자 설정
          "alpha": 100,          // 투명도
          "color": "0x000000",   // 색상
          "angle": 45,           // 각도
          "distance": 0,         // 거리
          "size": 6,             // 크기
          "strength": 200        // 강도
        },
        "format": "{{vehicle}}{{turret}}" // 출력 형식, 전차명 + *(스톡포탑이면 전차명 뒤에 *가 붙어 나온다)
      },
  
      // Text field with the remaining / maximum health.
      // 현재체력 / 최대체력 설정 텍스트 필드
      {
        "name": "Tank HP",       // 필드 설정 이름(설정에 영향 X)
        "visible": true,         // false - 사용안함
        "x": 0,                  // x좌표
        "y": -20,                // y좌표
        "alpha": 100,            // 투명도
        "color": "0xFCFCFC",     // 색상
        "font": {                // 폰트 설정
          "name": "$FieldFont",  // 폰트이름
          "size": 11,            // 폰트크기
          "align": "center",     // 폰트정렬
          "bold": true,          // true - 진하게
          "italic": false        // true - 기울이게
        },
        "shadow": {              // 그림자 설정
          "alpha": 100,          // 투명도
          "color": "0x000000",   // 색상
          "angle": 45,           // 각도
          "distance": 0,         // 거리
          "size": 4,             // 크기
          "strength": 100        // 강도
        },
        "format": "{{hp}} / {{hp-max}}" // 출력 형식, (현재체력 / 전체 체력)
      },

{
        "name": "rating",       // 필드 설정 이름(설정에 영향 X)
        "visible": true,         // false - 사용안함
        "x": -40,                  // x좌표
        "y": -65,                // y좌표
        "alpha": 100,            // 투명도
        "color": "{{c:wn8}}",     // 색상
        "font": {                // 폰트 설정
          "name": "$FieldFont",  // 폰트이름
          "size": 12,            // 폰트크기
          "align": "left",     // 폰트정렬
          "bold": true,          // true - 진하게
          "italic": false        // true - 기울이게
        },
        "shadow": {              // 그림자 설정
          "alpha": 100,          // 투명도
          "color": "0x000000",   // 색상
          "angle": 45,           // 각도
          "distance": 0,         // 거리
          "size": 4,             // 크기
          "strength": 100        // 강도
        },
        "format": "{{wn8}}" // 텍스트 출력 형식(wn8레이팅)
      }
    ]


로 수정 되었습니다.


아까 위에 비교스샷 보셨죠? 추가된 내용이 적용됬는지 리플레이를 다시 켜봅시다.


(183 왼쪽 위에 1938이라는 WN8 레이팅 수치가 표시되고 있다)



그런데 레이팅 수치가 너무 붕 떠있는거 같지 않나요?


딱 붙이고 싶다면 y값을 조절하셔서(현재 -65니까 값을 좀 더 올려서 -55나 -50쯤으로 저장) 리플레이로 테스트해보세요



텍스트 필드에 추가로 출력하고 싶은 정보가 있다면,


지원하는 매크로 내에서는 모든 걸 출력 할 수 있습니다.


지원 하는 매크로가 뭐가 있는지 확인하고 싶으시다면


res_mods/xvm/doc/macros.txt를 열어보시면 됩니다.


저기서 베슬마커에 지원하는 매크로를 확인하시고


위와 같은 형식을 맞춰서 추가해주시면 됩니다.






아 그리고 아군쪽에만 수정하면 아군만 표식이 수정되니 밑으로 내려서 enemy 부분에도 똑같이 해주셔야 됩니다.


반드시 ally 안의 설정값과  enemy 안의 설정값을 같이 수정해줘야지 아군 적군 모두의 베슬마커가 수정됩니다.


이처럼 텍스트필드에서는 지원하는 매크로로 레이팅, 승률, 전차이름 등등 XVM에서 지원하는 기능 대부분은


본인이 원하는 방식대로 출력하게 할 수 있습니다.


여러분이 원하는 베슬마커는 이렇게 만드시면 됩니다.





마지막으로 제가 커스터마이즈하여 쓰고 있는 베슬마커 스샷을 올리고 마무리하겠습니다.





전차 이름 출력 - 사용안함
전차 아이콘 출력 - 사용(콘트라베이스 아이콘 출력)
플레이어 이름 및 클랜 출력 - 사용(검정색으로 지워진 부분)
전차 티어 출력 - 사용안함
체력바 출력 - 체력바 색상 변경
레이팅 출력 - wn6 레이팅 출력



다음에는 xvm에서 지원하는 매크로들에 대한 설명을 하도록 하겠습니다.