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


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



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


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


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




오늘은 1편 XVM 미니맵 수정에 대해 설명하겠습니다.




XVM이 뭔지 모르겠다면?







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


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




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


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


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






1. XVM 미니맵이란 무엇인가요?


XVM 미니맵이란 통칭 '소나 미니맵' 이라고 불리는 미니맵의 형태입니다. 


간단하게 예시를 들자면 아래와 같은 미니맵입니다



(순정 XVM만 설치한 경우에 볼 수 있는 XVM 미니맵)



이 미니맵을 본인이 원하는데로 수정하는게 이 글의 목표입니다.





2. 미니맵을 내 맘대로 바꿀려면 설정파일을 열어야지!


일단 미니맵에 관련된 XVM파일을 먼저 찾아보도록 하죠


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


가장 먼저 해야되는거!


바로 res_mods/xvm로 가시면 xvm.xc.sample 이라는 파일이 있는데요 이 파일의 이름에서


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


반드시 해주시기 바랍니다


위에꺼 수정했다면 res_mods/xvm/config/default 로 이동한 후에 minimap이 들어간 5개의 파일을 찾아봅시다.



각각 파일을 설명하자면


minimap.xc - minimap.swf에서 사용할 미니맵 설정들의 기본값과 추가 설정값들의 경로를 가지고 있습니다.

minimapAlt.xc - 미니맵 얼터너티브 모드를 사용할 경우에 이 설정파일을 씁니다. 

minimapCircles.xc - 미니맵에 그려지는 원들을 설정하는 파일입니다.

minimapLables.xc - 미니맵에 표시되는 전차아이콘, 전차이름 등을 설정하는 파일입니다.

minimapLines.xc - 미니맵에 그려지는 선들을 설정하는 파일입니다.





자 파일들을 찾았으면 이제 하나하나씩 열어서 뭘 어떻게 수정하면 되는지 알아보겠습니다.


여기서 minimapAlt.xc는 사용하지 않을 예정이기 때문에 설명은 생략하도록 하겠습니다.(없어도 되는 파일인지라)





3. 파일들을 열어서 설정들을 찾아보자



먼저 minimap.xc 파일을 notepad++로 열어보면


/**
 * General parameters for minimap.
 * Общие параметры миникарты. Видео по некоторым аспектам редактирования https://www.youtube.com/watch?feature=player_embedded&v=NBJcqWuEoLo
 */
{
  "minimap": {
    // false - Disable.
    "enabled": true,
    // Map image transparency.
    "mapBackgroundImageAlpha": 100,
    // Self icon transparency. White pointing arrow.
    "selfIconAlpha": 100,
    // Camera transparency and its attached geometry (green triangle).
    "cameraAlpha": 100,

    // Vehicles icon size. Does not affect attached geometry and textfields. Floating point allowed: 0.7, 1.4.
    "iconScale": 1,
    // Map zoom by key pressing. Key is defined at file "hotkeys.xc".
    "zoom": {
      // Number of pixels to get back from maximum size (screen height-minimap height).
      "pixelsBack": 160,
 
      // false - does not set zoomed minimap at display center.
      "centered": true
    },
    // Minimap labels.
    "labels": ${"minimapLabels.xc":"labels"},
    // Minimap circles.
    "circles": ${"minimapCircles.xc":"circles"},
    // Minimap lines.
    "lines": ${"minimapLines.xc":"lines"},
    // Square of the maximum units appearance (1000 m).
    "square" : {
      "enabled": false,
 
      // Show square if using artillerySPG vehicle.
      "artilleryEnabled": false,
 
      "thickness": 0.7,

      "alpha": 40,

      "color": "0xFFFFFF"
    }
  }
}


저런 내용이 있습니다. 원래 러시아어 주석도 있지만 가독성을 위해서 러시아어 주석은 다 지웠습니다.


기본적으로 여기서 건들만한 옵션은 square 안에 있는 부분입니다.


enabled를 false에서 true로 바꿔봅시다.


전차들의 렌더링 한계거리(본인을 중심으로 하는 1000mx1000m 정사각형)를 표시해줄 수 있기 때문이죠.


수정을 완료했으면 설정파일을 저장하시고 아까 준비한 리플레이를 재생해봅시다.




위 이미지에서 하얀색 정사각형이 추가된 걸 알 수 있습니다. 저게 하얀색 정사각형 안에 있는 전차만


실제로 렌더링되어서 볼 수 있습니다. 저 범위 밖에 있다면 절대 안보여요 미니맵에서만 확인가능합니다.


그런데 정사각형이 너무 눈에 안띄니 색깔을 바꾸고 두께도 좀 더 두껍게 수정할려면


바로 밑에 있는 thickness의 값을 늘리시고 color부분의 값을 바꿔주세요


color 부분은 네이버에서 'HTML 색상(링크)' 이라고 검색 한 후에 원하는 색을 찾으시고 # 뒤에 있는 6자리 문자를


0x 뒤에 붙여적어주시면 됩니다. 예를 들어 빨강으로 바꾸고 싶다면 0xFFFFFF를 0xFF0000 으로 적어주시면 됩니다.


artilleryEnabled 옵션을 쓰면 본인이 보고 있는 곳을 미니맵에 녹색 박스로 표시해줍니다 






그 외 다른 부분은 딱히 수정할 게 없으니 다음 파일로 넘어가도록 하겠습니다.



minimapCircles.xc입니다.


이 파일은 주석이 많은 관계로 주석을 모두 지우고 설정값만 올려보겠습니다.


/**
 * Minimap circles. Only real map meters. Only for own unit.
 * Круги на миникарте. Дистанция только в реальных метрах карты. Только для своей техники.
 */
{
    "circles": {
        "enabled": true,

        "view": [
            // Main circles:
            { "enabled":  true, "distance": "blindarea", "scale": 1, "thickness": 0.75, "alpha": 80, "color": "0x3EB5F1" },
            { "enabled":  true, "distance": 445,         "scale": 1, "thickness":  1.1, "alpha": 45, "color": "0xFFCC66" },
            // Additional circles:
            { "enabled": false, "distance": 50,          "scale": 1, "thickness": 0.75, "alpha": 60, "color": "0xFFFFFF" },
            { "enabled": false, "distance": "standing",  "scale": 1, "thickness":  1.0, "alpha": 60, "color": "0xFF0000" },
            { "enabled": false, "distance": "motion",    "scale": 1, "thickness":  1.0, "alpha": 60, "color": "0x0000FF" },
            { "enabled": false, "distance": "dynamic",   "scale": 1, "thickness":  1.0, "alpha": 60, "color": "0x3EB5F1" }
        ],

        "artillery": { "enabled": true, "alpha": 55, "color": "0xFF6666", "thickness": 0.5 },
 
        // Maximum range of shooting for machine gun
        "shell":     { "enabled": true, "alpha": 55, "color": "0xFF6666", "thickness": 0.5 },

        "special": [
          // Example: Artillery gun fire range circle
          // "enabled": false - выключен; "thickness" - толщина; "alpha" - прозрачность; "color" - цвет.
          //{ "ussr-SU-18": { "enabled": true, "thickness": 1, "alpha": 60, "color": "0xEE4444", "distance": 500 } },
        ]
    }
}



여기서 핵심은 view 안에 있는 circles들의 값입니다.

"dynamic" - 전차의 정지/이동 상태를 고려한 실제 관측범위를 표시
"motion" - 전차가 이동중일때의 실제 관측범위를 표시
"standing" - 전차가 정차중일때의 실제 관측범위를 표시
"blindarea" - 전차의 사각지대를 고려한 실제 관측범위를 표시 (50<=X<=445) (역주 : 50 이하는 강제스팟, 445는 스팟 최대거리이므로 그 사이값이 된다. 



여기서 사용하는 distance는 445, 50, dynamic 3개정도면 됩니다. 

blindarea, standing, motion은 dynamic 하나로 모두 대체가 가능하기 때문에 구태여 많은 원을 그릴 필요가 없죠



모든 원을 적용한 결과


빨간원 - 정지시 시야(쌍안경 장착)

노란원 - 반경 445m

하늘색원 - 현재 시야(동적값), 파란색 원도 나와야되는데 하늘색원이랑 겹쳐서 안나오는 상태

햐얀색원 - 반경 50m



본인이 필요하다고 생각되는 원은 true로, 아니다 싶으면 false로 하신 뒤에 저장하시면 됩니다. 


색깔과 두께는 위에서 렌더링 한계 거리 설명했던 부분과 같습니다. 알파값은 투명도라고 생각하시면 됩니다.


그 밑에 artillery 옵션은 자주포의 최대 사거리를 나타내줍니다. 


현재 지형과 부앙각을 생각하지 않고 단순히 최대 사거리를 반경으로 표시합니다.


4번째 이미지에서 옅은 자주색 계열 큰 원이 콩건캐의 최대사거리 반경 1000m를 표시해준 겁니다.


shell 옵션은 기관총의 최대 사거리를 표시해줍니다. 1호 c형같은 기관총은 거리가 멀어지면 관통력이 사라지기때문에


그 사거리를 표시해주는 기능입니다. 기본 색은 위에 자주포 사거리와 같습니다.


그 밑에 special에는 본인이 자주포 사거리를 직접 입력할 수도 있습니다. 딱히 입력하진 않지만요




다음은 minimapLables.xc입니다.


미니맵에 표시되는 전차 아이콘을 설정하는 파일입니다.


설정이 좀 긴 편입니다.


/**
 * Minimap labels. Basic HTML/CSS supported.
 * Надписи на миникарте. Поддерживают HTML.
 */
{
  "labels": {
      
 "vehicleclassmacro": {
        
"light": "u2022",
        
"medium": "u2022",
        
"heavy": "u2022",
        
"td": "u2022",
        
"spg": "u25AA",
        
"superh": "u2022"
      },
      
 "units": {
        
"revealedEnabled": true,
        
"lostEnemyEnabled": true,
        
"format": {
          
 "ally":           "<span class='mm_a'>{{vehicle}}</span>",
          
 "teamkiller":     "<span class='mm_t'>{{vehicle}}</span>",
          
 "enemy":          "<span class='mm_e'>{{vehicle}}</span>",
          
 "squad":          "<textformat leading='-2'><span class='mm_s'><i>{{nick%.5s}}</i>n{{vehicle}}</span><textformat>",
          
 "oneself":        "",
          
 "lostally":       "<span class='mm_dot'>{{vehicle-class}}</span><span class='mm_la'><i>{{vehicle}}</i></span>",
          
 "lostteamkiller": "<span class='mm_dot'>{{vehicle-class}}</span><span class='mm_lt'><i>{{vehicle}}</i></span>",
          
 "lost":           "<span class='mm_dot'>{{vehicle-class}}</span><span class='mm_l'><i>{{vehicle}}</i></span>",
          
          "lostsquad":      "<textformat leading='-4'><span class='mm_dot'>{{vehicle-class}}</span><span class='mm_ls'><i>{{nick%.5s}}</i>n   {{vehicle}}</span><textformat>",

          "deadally":       "<span class='mm_dot'>{{vehicle-class}}</span><span class='mm_da'></span>",

          "deadteamkiller": "<span class='mm_dot'>{{vehicle-class}}</span><span class='mm_dt'></span>",

          "deadenemy":      "<span class='mm_dot'>{{vehicle-class}}</span><span class='mm_de'></span>",

          "deadsquad":      "<span class='mm_dot'>{{vehicle-class}}</span><span class='mm_ds'><i>{{nick%.5s}}</i></span>"
        },

        "css": {
          "ally":            ".mm_a{font-family:$FieldFont; font-size:8px; color:#C8FFA6;}",
          "teamkiller":      ".mm_t{font-family:$FieldFont; font-size:8px; color:#A6F8FF;}",
          "enemy":           ".mm_e{font-family:$FieldFont; font-size:8px; color:#FCA9A4;}",
          "squad":           ".mm_s{font-family:$FieldFont; font-size:8px; color:#FFD099;}",
          "oneself":         ".mm_o{font-family:$FieldFont; font-size:8px; color:#FFFFFF;}",
          "lostally":       ".mm_la{font-family:$FieldFont; font-size:8px; color:#C8FFA6;} .mm_dot{font-family:Arial; font-size:17px; color:#B4E595;}",
          "lostteamkiller": ".mm_lt{font-family:$FieldFont; font-size:8px; color:#A6F8FF;} .mm_dot{font-family:Arial; font-size:17px; color:#00D2E5;}",
          "lost":            ".mm_l{font-family:$FieldFont; font-size:8px; color:#FCA9A4;} .mm_dot{font-family:Arial; font-size:17px; color:#E59995;}",
          "lostsquad":      ".mm_ls{font-family:$FieldFont; font-size:8px; color:#FFD099;} .mm_dot{font-family:Arial; font-size:17px; color:#E5BB8A;}",
          "deadally":       ".mm_da{font-family:$FieldFont; font-size:8px; color:#6E8C5B;} .mm_dot{font-family:Arial; font-size:17px; color:#004D00;}",
          "deadteamkiller": ".mm_dt{font-family:$FieldFont; font-size:8px; color:#5B898C;} .mm_dot{font-family:Arial; font-size:17px; color:#043A40;}",
          "deadenemy":      ".mm_de{font-family:$FieldFont; font-size:8px; color:#996763;} .mm_dot{font-family:Arial; font-size:17px; color:#4D0300;}",
          "deadsquad":      ".mm_ds{font-family:$FieldFont; font-size:8px; color:#997C5C;} .mm_dot{font-family:Arial; font-size:17px; color:#663800;}"
        },

        "shadow": {
          "ally":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 3, "strength": 4 },
          "teamkiller":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 3, "strength": 4 },
          "enemy":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 3, "strength": 4 },
          "squad":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 3, "strength": 4 },
          "oneself":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 3, "strength": 4 },
          "lostally":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 6, "strength": 4 },
          "lostteamkiller":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 6, "strength": 4 },
          "lost":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 6, "strength": 4 },
          "lostsquad":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 6, "strength": 4 },
          "deadally":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 3, "strength": 3 },
          "deadteamkiller":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 3, "strength": 3 },
          "deadenemy":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 3, "strength": 3 },
          "deadsquad":
           { "enabled": true, "color": "0x000000", "distance": 0, "angle": 45, "alpha": 80, "blur": 3, "strength": 3 }
        },

        "offset": {
          "ally":           {"x": 3, "y": -1},
          "teamkiller":     {"x": 3, "y": -1},
          "enemy":          {"x": 3, "y": -1},
          "squad":          {"x": 3, "y": -2},
          "oneself":        {"x": 0, "y": 0},
          "lostally":       {"x": -5, "y": -11},
          "lostteamkiller": {"x": -5, "y": -11},
          "lost":           {"x": -5, "y": -11},
          "lostsquad":      {"x": -5, "y": -11},
          "deadally":       {"x": -5, "y": -11},
          "deadteamkiller": {"x": -5, "y": -11},
          "deadenemy":      {"x": -5, "y": -11},
          "deadsquad":      {"x": -5, "y": -11}
        },

        "alpha" : {
          "ally": 100,
          "teamkiller": 100,
          "enemy": 100,
          "squad": 100,
          "oneself": 100,
          "lostally": 70,
          "lostteamkiller": 70,
          "lost": 70,
          "lostsquad": 70,
          "deadally": 50,
          "deadteamkiller": 50,
          "deadenemy": 0,
          "deadsquad": 50
        }
      },

      "mapSize": {
        "enabled": true,
        "format": "<b>{{cellsize}}0 m</b>",
        "css": "font-size:10px; color:#FFCC66;",
        "alpha": 80,
        "offsetX": 0,
        "offsetY": 0,
        "shadow": { // Тень.
          "enabled": true,
          "color": "0x000000",
          "distance": 0,
          "angle": 0,
          "alpha": 80,
          "blur": 2,
          "strength": 3
        },

        "width": 100,
        "height": 30
      }
    }
}



일단 설명부터 하자면

vehicleclassmacro - 미니맵에 표시되는 전차들의 위치를 나타내는 아이콘 모양을 설정

units - 상세한 전차 아이콘 설정

css - css를 이용한 미니맵에 전차 아이콘 출력 설정

shadow - 미니맵 전차 아이콘 그림자 설정

offset - 미니맵 전차 아이콘 위치 설정

alpha - 미니맵 전차 아이콘 투명도 설정

mapSize - 플레이중인 맵의 가로 세로 크기를 출력해주는 부분



입니다.



기본 설정대로 한다면 4번째 이미지에서 사라진 마우스 위치를 보시면 알겁니다 저렇게 출력됩니다.


저 경우 한눈에 알아보기 힘든 부분도 있고 해당전차가 무슨 병과인지 알기도 힘들기에 수정해서 주로 사용합니다.




미니맵 전차 병과 아이콘 수정하기


1. Arial 폰트를 모두 XVMSymbol로 바꾸자

XVM에서 사용하기 최적화된 XVMSymbol 폰트를 사용하도록 바꿔주시면 됩니다.

컨트롤f를 누르셔서 찾기창을 띄운 후 바꾸기에서 Arial을 찾을 내용에, 바꿀 내용에 XVMSymbol을 넣고 모두 바꾸기를 누르세요


2. vehicleclassmacro의 값을 바꿉시다

      "vehicleclassmacro": {
        "light": "L",
        "medium": "M",
        "heavy": "H",
        "td": "T",
        "spg": "G",
        "superh": "u2022"
      },


로 바꿔주시면 됩니다 XVMSymbol 폰트에서는 해당 알파벳 대문자가 각 각의 병과 아이콘을 나타내기 때문에

저렇게 바꿔주시기만 한다면 미니맵에서 정상적으로 사라진 적의 병과 아이콘이 보이게 됩니다.


예시



4번째 이미지에서 점모양이던 마우스의 병과 아이콘이 정상적으로 헤비 아이콘으로 나오게 됩니다.


그런데 바로 위 이미지를 보면 격파된 아군 전차의 아이콘이 보이실겁니다. 


이게 거슬리는 분들은

"deadally":       "{{vehicle-class}}",

에서 {{vehicle-class}} 를 지우세요

아래 이미지처럼 됩니다




미니맵 아이콘의 크기 설정은 css 부분에서 담당하며,

mm_dot{} 부분은 전차 병과 아이콘, 

mm_XXX{}는 해당 전차의 포지션(아군,적군,소대원, 격파된 적 등등)의 전차명 출력 부분입니다.

font-size의 픽셀값을 올리거나 줄이시면 됩니다. 8px -> 5px, 12px 등등 

색깔은 똑같이 html 색생 넣어주시면 됩니다.



미니맵의 병과 아이콘 위치들이 미묘하게 다르다면 offset에서 x,y값을 조절해보세요.






마지막으로 minimapLines.xc입니다. 사실 별거 없는 부분이죠 옵션은 딱 4개입니다


/**
 * Minimap lines. Only for owned vehicle.
 * Линии на миникарте. Только для своей техники.
 */
{
  "def": {
    "vehicle": { "enabled": true, "inmeters": true, "color": "0x60FF00" },

    "camera": { "enabled": true, "inmeters": true, "color": "0xFFCC66" },

    "dot": { "enabled": true, "inmeters": true, "color": "0xFFCC66" },

    "traverseAngle": { "enabled": true, "inmeters": true, "color": "0xCCCCCC" }
  },
  "lines": {
       "enabled": true,

       "vehicle": [
         { "$ref": { "path": "def.vehicle" }, "from": 50,  "to": 97, "thickness": 1.5, "alpha": 45 },
         { "$ref": { "path": "def.vehicle" }, "from": 100,  "to": 147, "thickness": 1.4, "alpha": 40 },
         { "$ref": { "path": "def.vehicle" }, "from": 150,  "to": 197, "thickness": 1.3, "alpha": 35 },
         { "$ref": { "path": "def.vehicle" }, "from": 200, "to": 248, "thickness": 1.2, "alpha": 33 },
         { "$ref": { "path": "def.vehicle" }, "from": 250, "to": 298, "thickness": 1.1, "alpha": 30 },
         { "$ref": { "path": "def.vehicle" }, "from": 300, "to": 398, "thickness": 1, "alpha": 30 },
         { "$ref": { "path": "def.vehicle" }, "from": 400, "to": 498, "thickness": 0.9, "alpha": 30 },
         { "$ref": { "path": "def.vehicle" }, "from": 500, "to": 2000, "thickness": 0.75, "alpha": 30 }
       ],

       "camera": [
         { "$ref": { "path": "def.camera" }, "from": 50, "to": 80, "thickness": 1.3, "alpha": 50 },
         { "$ref": { "path": "def.camera" }, "from": 120, "to": 180, "thickness": 1.2, "alpha": 45 },
         { "$ref": { "path": "def.camera" }, "from": 220, "to": 280, "thickness": 1.1, "alpha": 40 },
         { "$ref": { "path": "def.camera" }, "from": 320, "to": 380, "thickness": 1, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 420, "to": 480, "thickness": 0.9, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 520, "to": 580, "thickness": 0.8, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 620, "to": 680, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 720, "to": 780, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 820, "to": 880, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 920, "to": 980, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 1020, "to": 1080, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 1120, "to": 1180, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 1220, "to": 1280, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 1320, "to": 1380, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 1420, "to": 1480, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 1520, "to": 1580, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 1620, "to": 1680, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 1720, "to": 1780, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 1820, "to": 1880, "thickness": 0.75, "alpha": 35 },
         { "$ref": { "path": "def.camera" }, "from": 1920, "to": 2000, "thickness": 0.75, "alpha": 35 },

         { "$ref": { "path": "def.dot" }, "from": 99, "to": 100, "thickness": 2.2, "alpha": 70 },
         { "$ref": { "path": "def.dot" }, "from": 199, "to": 200, "thickness": 2.1, "alpha": 65 },
         { "$ref": { "path": "def.dot" }, "from": 299, "to": 300, "thickness": 2, "alpha": 60 },
         { "$ref": { "path": "def.dot" }, "from": 399, "to": 400, "thickness": 1.9, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 499, "to": 500, "thickness": 1.8, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 599, "to": 600, "thickness": 1.7, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 699, "to": 700, "thickness": 1.6, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 799, "to": 800, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 899, "to": 900, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 999, "to": 1000, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 1099, "to": 1100, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 1199, "to": 1200, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 1299, "to": 1300, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 1399, "to": 1400, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 1499, "to": 1500, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 1599, "to": 1600, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 1699, "to": 1700, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 1799, "to": 1800, "thickness": 1.5, "alpha": 55 },
         { "$ref": { "path": "def.dot" }, "from": 1899, "to": 1900, "thickness": 1.5, "alpha": 55 }
       ],

       "traverseAngle": [
         { "$ref": { "path": "def.traverseAngle" }, "from": 50, "to": 97, "thickness": 1.5, "alpha": 50 },
         { "$ref": { "path": "def.traverseAngle" }, "from": 100, "to": 147, "thickness": 1.4, "alpha": 48 },
         { "$ref": { "path": "def.traverseAngle" }, "from": 150, "to": 197, "thickness": 1.3, "alpha": 46 },
         { "$ref": { "path": "def.traverseAngle" }, "from": 200, "to": 248, "thickness": 1.2, "alpha": 44 },
         { "$ref": { "path": "def.traverseAngle" }, "from": 250, "to": 298, "thickness": 1.1, "alpha": 42 },
         { "$ref": { "path": "def.traverseAngle" }, "from": 300, "to": 398, "thickness": 1, "alpha": 40 },
         { "$ref": { "path": "def.traverseAngle" }, "from": 400, "to": 498, "thickness": 0.9, "alpha": 40 },
         { "$ref": { "path": "def.traverseAngle" }, "from": 500, "to": 2000, "thickness": 0.75, "alpha": 40 }
       ]
    }
}


"vehicle" - 차체 정면이 향하고 있는 방향(녹색)

"camera" - 현재 시점이 향하고 있는 방향(연한 황토색)

"dot" - 현재 시점이 향하고 있는 방향을 100미터 단위로 표시하기 위해 찍는 점

"traverseAngle" - 포각이 존재하는 전차 및 자주포의 포각 범위



밑에 부분은 선 그리는 부분 설정입니다. 선 색을 바꾸거나 굵기를 바꾸거나 투명도를 바꾸거나 정도를 할 수 있습니다.













이렇게 미니맵 설정을 바꾸는 방법을 알아봤습니다.


미니맵 관련된 설정들은 대부분 enabled의 true와 false로 사용여부를 결정하고, 색이나 두께를 바꿔주면 됩니다.


그나마 어려운 미니맵라벨의 경우에는 XVMSymbol 폰트만 설치하면 쉽게 해결되죠


글이 중구난방이고 소스코드도 있고 어지러워서 이해가 잘 안되는 부분이 있으시다면


댓글이나 쪽지로 문의주세요





P.S 제가 실제 사용하는 미니맵 설정 상황(전차 이름 옆에 숫자는 남은 체력입니다)


체력이 출력되는 부분을 제외하면 위에서 설명한 부분 그대로 적용한 겁니다






다음 글은 언젠간 올라옵니다. 다음 글은 베슬마커(전차머리 위랑 플레이어패널에 나오는 전차표식) 수정법입니다.