갤럭시 맵 에디터

1. 개요
2. 상세
3. 제작 방향
3.1. 섬멸전 지도
3.2. 아케이드 지도
4. 모듈
4.1. 지형 모듈
4.1.1. 지형
4.1.1.1. 텍스처
4.1.1.2. 언덕
4.1.1.3. 높이
4.1.1.4. 점막
4.1.1.5. 물
4.1.1.6. 텍스처 모음
4.1.1.7. 도로
4.1.1.8. 지형 개체
4.1.2. 장식물
4.1.3. 유닛
4.1.4. 지점
4.1.5. 구역
4.1.6. 카메라
4.1.7. 이동 경로
4.2. 트리거 모듈
4.2.1. 이벤트
4.2.2. 조건
4.2.3. 변수
4.2.4. 행동
4.2.5. 레코드
4.2.6. 주석
4.2.7. 라이브러리
4.3. 데이터 모듈
4.3.1. 유닛
4.3.2. 능력
4.3.3. 무기
4.3.4. 동작
4.3.5. 효과
4.3.6. 버튼
4.3.7. 행위자
4.3.8. 모델
4.3.9. 소리
4.3.10. 다른 데이터들
4.3.11. 기타
4.4. 가져오기 모듈
4.5. 기타 모듈
5. 의존 관계
6. 단점

1. 개요

블리자드 엔터테인먼트RTS게임 스타크래프트 2에서 지원하는 맵 편집 서비스로 스타크래프트 2 설치 시 함께 깔리며 같은 폴더에 위치해 있다. 블리자드 앱을 띄우고 편집기 실행 버튼을 누르면 실행된다. 전작인 브루드워와는 달리 기능이 EUD보다 강력하기에 서드파티 에디터가 없다. 무료 스타크래프트 2 사용자 계정으로도 사용할 수 있으나 게시는 불가능하며 또한 선택할 수 있는 의존 관계(게임 메타 정보가 담긴 데이터베이스)는 오직 자유의 날개 외엔 사용할 수 없다.

2. 상세

초기에는 '스타크래프트2 지도 편집기(StarCraft II Galaxy Map Editor)'였다가 어느 순간부터 '지도(Map)'가 빠지고 그냥 '스타크래프트2 편집기'가 되었다. 맵 제작 뿐만 아니라 모드, 컷신 영상 제작도 가능해졌기에 그런 것으로 보인다.

갤럭시 맵 에디터는 전작의 맵 에디터에서 혁명 수준의 진보를 보여줬던 워크래프트 3의 월드 에디터조차 구닥다리로 만들어버리는 수준의 엄청난 기능을 보여준다. 유닛의 경우 워크래프트 3과 달리 지나치게 세세해서 처음 입문하는 사람이라면 뭐가 뭔지 모를 정도로 세부적인 수치를 수정할 수 있으며, 에디터 자체에서 유닛의 모델링이나 스킨을 편집할 수도 있고[1], 적절한 능력과 모델만 있다면 캠페인 수준의 컷신까지 만들어낼 수 있게 되었다. 각종 트리거 역시 진일보해져서 장르를 넘나드는 게임을 보다 쉽게[2] 제작할 수 있고, 세이브 파일을 생성하는 기능도 있어 기존에 플레이한 내역을 저장할 수도 있게 되었다. 워크래프트 3의 경험치를 통한 레벨업과 스킬 습득, 아이템 획득 및 사용 등이 가능한 영웅 유닛은 본편에 전혀 등장하지 않지만, 본편에서 쓰지도 않을 이런 시스템을 유저들을 위해 조금만 손보면 모두 구현할 수 있도록 준비해 놓았다. 이 때문에 RPG 만들기 수준의 범용성을 가지는 툴로 평가 받을 정도.

2015년 2월 공개 테스트 서버에 워크래프트 3 모델링이 추가되었다.# [3] 하지만 라이브러리를 확인하기만 해도 블리자드가 모든 3D 모델을 리마스터해준 것은 아니라는 것을 알 수 있다. 진정으로 고수준의 그래픽의 워크래프트 3을 재현하고 싶다면 대부분의 모델을 직접 리마스터하는 과정도 필요하다.[4] 종족별 영웅들을 제외하면 리마스터된 모델은 거의 없다. 파일 변환만 되어있을 뿐.

공허의 유산이 발매된 이후 갤럭시 에디터의 실행을 위해서는 미국 서버의 계정이 필요하다. 즉 기존 아시아 서버에 이미 계정이 있다 하더라도 미국 서버에서 스타 2를 실행해 계정을 한 번 만들어줘야지만 갤럭시 에디터를 사용할 수 있게 되었다. 그리고 처음 갤럭시 에디터를 실행했을 때 인터페이스의 기본 언어가 영어로 나오는데 기본 설정(preference)의 일반(General)에서 언어(Locale)를 한국어(koKR)로 변경하면 다시 한국어로 바꿀 수 있다.

그런데 에디터를 한국어로 이용할 시 공허의 유산 때 새로 추가된 유닛의 효과 이름들이 대부분 비어있으며 유닛, 장식물 이름의 접두사, 접미사도 표시 되지 않으며, 트리거 텍스트도 공백으로 뜨는 데다가 트리거 컴파일 오류도 발생하는 등의 문제가 있다. 그래서 언어를 영어로 변경하거나, 일일이 직접 확인해야하므로 꽤나 불편하다. 블리자드 코리아는 이 문제에 관심이 하나도 없기 때문에 수정될 가능성은 없다. 물론 임시 해결책이 있는데, 데이터 에디터에서 상단에 미가공 데이터 보기를 누르면 데이터들의 고유 ID가 표시 되는데 이걸 이용해서 원하는 효과를 찾아서 수정하면 된다. (단축키는 Ctrl + D)

이뿐만 아니라 트리거를 열면 공허의 유산 이후에 추가된 함수 이름을 asdfwwqer 같이 정말 말도 안 되는 이름으로 보이는 경우가 있다. 이 역시 언어를 영어로 바꾸면 제대로 보인다. 그런데 사실 이 문제는 한국어만 아니라 다른 언어판에서도 보이는 문제다.

에디터 자체가 문제가 있어 만든 맵을 플레이 시 UI를 수정하지 않았는데 UI 오류가 나기도 하며, 이런 자잘한 오류들이 굉장히 많다. 기능 자체는 혁신적으로 개선되어 다양성은 크게 증가하였지만, 반대로 편의성과 직관성이 더 떨어지고 제작 난이도도 높아졌으며, 설상가상으로 안정성 막장에 접근성도 너무나도 나빠지게 되었다. 결국 이런 이유로 인해 스타크래프트 아케이드 몰락의 원인이 되어버렸다. 자세한 것은 스타크래프트 2/문제점을 참조.

섬멸전 지도를 제작하거나, 유즈맵을 제작할 수도 있다. 섬멸전 지도 외에도, 섬멸전 맵에 업적등을 적용시켜서 지도를 만들 수도 있다. 공식 명칭은 훈련 지도.

여담으로 이 에디터 자체가 워크래프트 3 월드 에디터의 영향을 받아서 그런지 아이콘들이 워크래프트 3 월드 에디터 시절의 아이콘을 그대로 사용한 흔적이 있다.

히어로즈 오브 더 스톰이 스타2 기반 엔진으로 만들어진 게임이라 히오스의 맵을 만들 때도 역시 이 에디터를 약간 개조해서 사용하는 것이 확인되었다. # 현재로서 히오스 관련 데이터는 지원하지 않지만 다른 방법을 이용해서 히오스의 데이터를 불러올 수 있다. 파일 불러오는 방법 [5]

3. 제작 방향

3.1. 섬멸전 지도

스타크래프트 2 래더, 사용자 지정 및 공식 경기에 사용되는 지도. 일명 밀리맵. 지형 모듈을 이용해 지형, 장식물과 중립 구조물(젤나가 감시탑, 광물, 풍부한 광물, 베스핀 가스, 파괴 가능한 바위 등)을 배치해야 한다. 전략적 독특함을 살리려면 게임에 대한 이해도가 높아야 한다.

3.2. 아케이드 지도

일명 유즈맵. 새로운 지도를 생성하고, 게임 모드를 아케이드로 정한다. 지도의 의존 관계, 지형 모음, 그리고 경계를 선택하면 생성한 지도의 지형이 눈 앞에 펼쳐진다. 이 창은 지형 모듈이다.

아케이드의 요소는 크게 지형, 트리거, 그리고 데이터로 나누어볼 수 있다. 여기서는 주로 지형, 데이터에 관해 설명한다.

4. 모듈

편집기의 각 창을 서술한다. 섬멸전 지도의 경우 특별한 경우를 제외하고는 지형 모듈만을 사용하게 된다.

4.1. 지형 모듈

지형 모듈. 편집기를 처음 실행했을 때 보이는 창이다. 섬멸전 지도를 제작할 때엔 거의 이 창만을 이용한다.

4.1.1. 지형

스타크래프트 캠페인에 나온 모든 행성, 위성 또는 우주 정거장의 텍스처와 모델을 지원한다. 기본적으로 8가지의 바닥 텍스처와 인공, 자연으로 구분되는 언덕(절벽), 저그 점막, 물, 굴곡, 도로, 초목 등을 지원한다. 따라서 전작보다 휠씬 디테일한 지형을 만들 수 있다. 워크래프트3와 달리 외부 툴을 동원한 노가다나 기존 텍스처의 희생 없이도 간편하게 지형 텍스처를 새로 불러와서 입힐 수도 있다.

4.1.1.1. 텍스처

맵에 잔디, 자갈, 모래, 타일 같이 텍스처를 칠할 수 있다.

텍스처 모음, 즉 지형 유형(Tileset)에 대한 자세한 정보는 아래에서 확인할 수 있다.

4.1.1.2. 언덕

높이 레벨이 한 단계 더 높거나 낮은 지형을 만든다. 전작과 다르게 3단계 레벨까지 있다. 기본적으로 쓸 수 있는 언덕 종류는 두 가지이며 대개 해당 타일셋과 잘 어우러지는 자연 언덕과 인공 언덕이 존재하며 데이터에서 언덕 종류도 수정이 가능하다.

높이 레벨이 다른 두 지형을 잇는 길을 만드려면 비탈길 브러시에서 만들 수 있다. 전작에서는 이 비탈길을 장식물 팔레트에서 불러와 모양과 크기도 일정하지만 여기서는 브러시로 직접 그릴 수 있기에 크기, 모양와 뻗은 위치도 마음대로 만들어낼 수 있다.

4.1.1.3. 높이

타일의 높낮이를 결정하며 언덕과 다르게 높이 레벨을 바꾸지는 않아 실제 게임에는 영향이 없다. 이 브러시로 울퉁불퉁한 지형을 만들어서 좀 더 현실적인 맵을 만들 수 있다.

4.1.1.4. 점막

저그의 점막을 구조물 없이 단독적으로 그릴 수 있다. 다만, 실제 게임에서도 여기서 칠해진 점막 위에 저그 건물을 지을 수 있으므로 밸런스가 중요한 래더 맵 제작 중에서는 사용하지 말 것.

참고로 저그의 점막은 독자적인 텍스처로 작용된다.

4.1.1.5. 물

맵에 물 또는 용암을 넣는다. 물 데이터는 블리자드가 직접 만든 타일셋 별로 다르지만 사용자가 편집할 수 있다.

물 편집에는 물의 종류(물, 용암), 물의 흐름 방향, 출렁거림, 색상, 반사도 변경이 가능하다.

4.1.1.6. 텍스처 모음

텍스처 모음은 기본 8개의 지형 텍스처만 가지고 있어 더 추가하지를 못 하지만 하나 이상의 텍스처 모음을 추가하여 8개보다 더 많은 텍스처를 사용할 수 있다. 다만, 텍스처 모음은 타일을 격자별로 구분하여 서로 다른 텍스처 모음의 텍스처를 겹치게 칠할 수 없다.

군단의 심장 캠페인의 진화 미션 같이 하나의 맵에 두 가지 이상의 환경을 가진 맵을 제작할 때 쓰인다.

4.1.1.7. 도로

아스팔트로 포장된 도로를 깔 수 있는 브러시다. 도로 모양은 3D 파일이기 때문에 직접 m3파일을 추출하여 3ds Max 같은 데서 수정을 하지 않는 이상 자유롭게 모양을 바꿀 수 없다.

4.1.1.8. 지형 개체

장식물과는 다른 밑이 보이는 유리 바닥 같이 특수한 개체를 배치할 수 있다.

4.1.2. 장식물

전작의 두데드(Doodad)와 같다.

플레이어 혹은 인공지능이 조종할 수 없는 관상용 물체. 유닛과는 달리 순수한 행위자로 구성된다. 그야말로 관상용이라는 뜻이다. 여러가지 테마 내에서 고를 수 있으나, 종류도 많고 각 지형 모음에 완벽하게 귀속된 것이 아니기에 그냥 모든 지형에서 원하는 장식물의 이름을 검색해서 찾는 것이 편하다. 변형 개수가 많은 장식물의 모델까지 세면 장식물의 경우의 수는 매우 많다.

장식물의 애니메이션을 트리거를 통해 설정할 수 있다.

장식물의 종류도 다양하다.

  • 구조물 - 크기가 큰 건물이나 인공물 등이 여기에 분류된다.
    • Ramp - 언덕 비탈길 위에 겹쳐서 배치해야하는 특수 계단. 보통의 비탈길보다 디자인이 좋다. 배치한 후에 이동불가 타일을 깔아주어야 유닛이 튀지 않는다.
  • 방해물, 이동 경로, 가시선 - 말 그대로 플레이어를 방해하는 장식물.
    • 건설 불가 장식물 - 벽돌, 바위, 그리고 금속판.
    • 이동 경로 방해물 - 보이지 않는 장애물. 정확하고 세밀하게 길을 막을 필요가 있을 때 좋다. 보다 넓은 지역에 적용할 때에는 아래의 '이동 경로'를 활용하자.
    • 가시선 방해물 - 건너편의 시야를 차단하는 장식물. 전략적으로 활용할 수 있다. 대부분의 맵에서 젤나가 감시탑 주위를 두르고 있는 것을 볼 수 있다.
  • 소품 - 워크래프트3 당시와 유사하게 잡다한, 적당한 크기의 장식물이다. 대부분 인공물이다. 빛, 언덕 장식, 지면 장식등이 여기에 포함된다.
    • Trim - 인공 텍스처를 배치할 때엔 자연 텍스처와는 다르게 테두리가 뭉개져있으면 부자연스럽다. 이때 그 경계에 이런 가장자리 장식물을 깔면 보다 깔끔하다.
    • Decal - 마찬가지로 바당 장식에 유용하다.
  • 언덕과 비탈길 - 말 그대로 언덕에 배치할 만한 장식물. Ramp와 언덕 충전재 등이 있다.
  • 잔해 - 문명의 잔해를 표현한 장식물.
  • 장식물 아님 - 정신 나간 이름의 유형. 날씨 효과가 포함된다.
  • 지형 개체 장식물 - 지형 툴의 지형 개체와 연계되는 장식물.
  • 추적 조각 - 모노레일 선로나 길 포장재가 있다.
  • 환경 - 자연물. 초목, 나무, 구름, 물길, 바위, 수정 등이 있다. 젤나가 선체나 프로토스 구조물 등 어울리지 않는 것들도 포함된다.

발자국은 유닛의 이동을 방해하는 속성으로, 이것이 부착된 장식물은 장애물의 역할을 한다. 나무나 암석이 대표적이다.

보다시피 장식물에는 종류가 매우 많으나 소품에 건물이 있는가 하면 환경에 인공물이 있는 등 그 구분이 체계적이지가 않다. 그래서 검색으로 원하는 장식물을 찾는 것을 권한다. 군단의 심장 당시 추가된 장식물들은 접두어로 '군단의 심장'이 포함되어있으므로 참고하자. 공허의 유산의 장식물은 영어로 검색하면 편하다.

4.1.3. 유닛

데이터에서 배치할 수 있게 허용된 유닛을 맵에 넣는다.

섬멸전 지도를 만들 때에는 오로지 중립 유닛만 신경 쓰면 된다. 이들은 보통 자원과 파괴물에 포함되어 있다.

섬멸전에서 활용 가능한 중립 유닛들:

각 링크에서 자세한 정보를 확인할 수 있다.

4.1.4. 지점

지도의 한 위치를 점 형태로 나타내는 데 사용한다. 아케이드 제작 시에 더 빛을 발하는 레이어. 일반 지점, 시작 시점, 소리 방출기, 3차원이 있으며 보통 시작 지점과 일반 지점을 많이 사용한다.

시작 지점은 전작의 유닛으로 취급하던 스타트 로케이션(Start Location)과 동일하며 플레이어 설정 창에서 플레이어의 고유 시작 지점을 설정할 수 있다.

소리 방출기는 특정 위치에서만 소리가 나는 스피커 같은 역할이다.

4.1.5. 구역

지점과 유사하나 이름 그대로 넓은 범위를 표시한다. 전작의 로케이션(Location)과 동일하다.

직사각형만 존재하던 전작과 다르게 원형, 마름모 모양도 있다.

4.1.6. 카메라

지도에 카메라를 미리 배치하여 트리거로 컷신처럼 해당 카메라가 담고 있는 화면을 볼 수 있다.

4.1.7. 이동 경로

유닛이 들어갈 수 없는 지점을 지형 텍스처를 깔듯이 조정할 수 있다. 이동 불가, 지상 이동, 건설 불가, 잠복 불가 및 비행 불가 지역을 생성하거나 제거할 수 있다.

4.2. 트리거 모듈

게임의 스크립트로 게임이 작동되는 걸 구현할 수 있는 범위이다. 트리거로 유닛 인공지능이나 TPS 등 매우 다양한 범위의 요소를 만들 수 있어 아케이드 맵을 만들 때 게임 데이터보다 더 중요하고 많이 사용된다.

4.2.1. 이벤트

스타1 트리거의 '조건'에 대응되는 개념 중 하나로, 명칭(event)에서 알 수 있듯이 이벤트는 해당 트리거가 발동되도록 하는 일종의 사건을 나타탠다. 어떤 일이 일어났을 때 사용자가 정해 놓은 행동을 실행시키는 것이 트리거의 과정이라면, 이벤트는 여기서의 '어떤 일'이 되는 것이다. 예를 들어 '제라툴이 죽었을 때, 플레이어는 패배한다'의 트리거를 작성한다고 할 때, 이벤트는 '제라툴이 죽음'이 되는 것이다.

  • 지도 초기화 : 지도가 처음 시작될 때 트리거를 발동시키는 이벤트이다. 이름에 걸맞게 주로 초기화 작업을 할 때 사용된다. 전작의 '무조건(Always)'와 1:1 대응되지는 않지만 비슷한 개념이다.
  • 주기적인 이벤트 : 일정 주기마다 트리거를 발동시킨다. 너무 많이 사용할 경우 성능 저하를 유발할 수 있으므로 이 이벤트보다는 '무한 반복' 행동을 이용하는 것을 권장한다.
  • 유닛 소멸 : 말 그대로 유닛이 죽을 때 발동된다. 여기서 유닛의 소멸은 다른 유닛에게 공격받아 처치되는 것과 트리거에 의해 소멸되는 것을 모두 포함한다.[6]
  • 구역 진입/나가기 : 유닛이 특정한 구역에 진입하거나 나갈 때의 이벤트이다. 순간 이동 포탈이나 신호소에 사용된다.
  • 플레이어가 트리거 건너뜀 : 행동에서 트리거 건너뛰기 허용을 한 트리거를 누군가 ESC키를 눌러 스킵을 시도하려 할 때 발생한다.
  • 키 누름 : 누군가 키보드의 특정 키를 눌렀을 때 발생한다.
  • 마우스 클릭됨 : 누군가 마우스의 버튼을 클릭했을 때 발생한다.

위에 외에도 이벤트는 엄청 많으니 직접 만져보면서 익혀보자.

4.2.2. 조건

이벤트와 마찬가지로 스타1의 '조건'에 대응되는 요소이다. 이벤트가 '어떤 일'을 나타내는 것이라면, 조건은 여러 값들이나 상태 비교를 통해 트리거가 실제로 실행될지를 제어한다. 한 마디로 조건은 트리거의 차단기 역할을 한다. 조건을 만족하면 차단기가 열리고, 조건을 만족하지 못하면 차단기를 닫아 트리거가 실행되지 않도록 한다.

다시 예를 들어 보자. 목표 지역에 해병을 보내면 플레이어가 승리하도록 하는 트리거를 작성할 때, 이벤트를 상술한 '유닛 구역 진입/나가기'로 정한다고 하자. 만약 이 상황에서 아무런 조건도 설정하지 않고 그저 플레이어가 승리하는 것으로 행동을 짜 놓기만 한다면, 이 트리거는 목적지에 해병뿐만 아니라 불곰이 들어와도, 전투순양함이 들어와도 플레이어가 무조건 승리하도록 하는 트리거가 될 것이다. 그러나 여기에 '진입한 유닛이 해병인가?'라는 조건을 달면, 플레이어는 다른 유닛이 아니라 해병만 목적지에 들어왔을 때 승리하게 된다. 실제로 조건은 이러한 단순한 비교뿐만 아니라 특정 유닛의 생사 여부나 플레이어가 자원을 얼마 만큼 보유하고 있는지까지도 판별 또는 들어간 유닛이 적이 아닌 플레이어인가[7] 판별도 할 수 있다.

  • 비교 : 가장 많이 쓰게 될 조건이다. 6가지의 비교 연산자를 사용하여 두 값이나 상태를 비교한다. 예를 들어 위의 '진입한 유닛이 해병인가?' 조건은 비교의 좌변에는 '트리거 발동 유닛' 함수를 넣고, 우변에는 '해병' 값을 넣고, 연산자로 '==(같음)'를 사용하여 구현할 수 있다. 또한 '!='를 사용하면 '해병' 값이 아닐 때 참을 반환하도록 설정할 수 있다.
  • 그리고 : 아래에 배열된 조건들이 모두 충족해야 한다.
  • 또는 : 아래에 배열된 조건들 중 하나라도 충족하면 된다.
  • 경계 안 : 1 <= x <= 2 와 같이 사용하여, 특정 값이 수의 범위 내에 있는지를 판별한다.
  • 아님 : 아님 아래에 배열된 조건이 충족하지 않으면 충족한다.

일반적으로 '그리고'나 '또는'을 사용하지 않고 단순히 트리거의 조건 란에 여러 개의 조건들을 나열할 경우, 이 조건들은 '그리고' 아래에 나열된 조건인 것처럼 작동해서, 모든 조건들이 다 만족하여야 트리거가 실행되게끔 한다. 반면 '아님' 아래에 배열된 조건들의 경우에는 모든 조건들이 다 만족하지 않아야 트리거가 실행되게 된다.

4.2.3. 변수

변수란 특정 값을 저장하는 공간을 말하며 (전역)변수와 지역 변수로 나뉜다. 전역 변수는 트리거 모듈 내의 모든 요소에서 사용할 수 있고 지역 변수는 한 요소 내에서만 사용할 수 있다.

변수에는 값의 유형이 있는데, 이 유형에 따라 정수 값을 넣을 수도 있고, 영웅 레이너처럼 게임상의 어떤 유닛을 가리킬 수도 있다. 물론 저장된 값을 다른 것으로 바꿀 수도 있다. 혹은 레코드의 변수로 설정하거나 미리 설정(프리셋)의 더 다양한 값으로 설정할 수 있다.

지역 변수를 가장 많이 사용하는 행동 중 하나인 For 문이 있는데, 변수의 값을 순차적으로 변화시키면서 특정 행동들을 반복 실행하는 역할을 한다.

변수 유형을 몇 개만 추려본다면

  • 정수 : 0과 음수, 자연수 값을 넣는다. 이 변수로 플레이어 번호나 유닛 개수 등으로 활용할 수 있다.
  • 실수
  • 플레이어 그룹 : 한 명 이상의 플레이어를 그룹 안에 넣는다.
  • 지점
  • 구역
  • 유닛
  • 부울 : 참과 거짓 두 가지로만 값을 저장한다.
  • DataTime : 가장 최근에 추가된 유형으로 날짜와 시간 값을 저장한다.

4.2.4. 행동

가장 중요한 부분이다. 유닛 처치, 플레이어 승리/패배 등 게임상에서 직접적인 영향력을 행사하는 행위이다.

if then else나 for 문 등을 이용해서 하위 함수를 배열해서 트리거의 출력 값을 만들 수도 있다. 기본적으로 제공되는 함수가 많고, 일일이 입력하는 형식이 아니라서 코딩보다는 쉽다.

4.2.5. 레코드

레코드는 간단하게 말하면 '하나의 변수 모음집'이라고 볼 수 있다. 레코드에는 요소가 하나라도 있어야 하며 그렇지 않을 경우 컴파일 오류가 생긴다. 또한 레코드를 사용하려면 유형이 레코드인 변수가 있어야 한다.

4.2.6. 주석

요소 안에 사람이 이해하기 쉽게 넣는 텍스트이며 실제 트리거 실행 시에 영향을 받지 않는다.

4.2.7. 라이브러리

여러가지 요소를 담아서 *.SCLib 파일로 저장하거나 불러올 수 있다. 스타2 유즈맵 제작 커뮤니티나 포럼에서 이용자가 자신의 라이브러리를 공유할 수도 있다.

4.3. 데이터 모듈

상단 메뉴의 모듈에서 데이터를 클릭하면 글자로 가득찬 새로운 창이 열린다. 게임 내의 모든 데이터를 여기에서 고칠 수 있다.

아케이드를 처음 제작할 때 가장 먼저 만들어보고 싶은 것은 바로 자신만의 유닛일 것이다. 갤럭시 에디터에서는 스타크래프트, 워크래프트3와는 달리 '유닛'이라는 정보에 시각적, 청각적 정보가 직접 담겨있지 않다. 이런 감각적 정보는 '행위자'라는 별도의 개체에 담겨있다. 이것을 유념해야 새로운 유닛을 만들기 쉽다.

스타크래프트 2 지도의 모든 데이터는 하나하나의 개체로 구성된다. 유닛과 행위자도 개체다. 개체 하위에 다른 개체가 있을 수 있으며, 쌍방간의 연결이 있을 수 있다. 개체와 개체는 대등한 관계에 있을 수 있다는 걸 알면 더 빨리 이해할 수 있다.

4.3.1. 유닛

편집기를 처음으로 실행하고 데이터 모듈을 열었을 때 기본적으로 볼 수 있는 탭이다. 플레이어가 직접 조종할 수 있거나 다른 유닛에게 피해를 입히는 등 게임 세계와 상호 작용이 가능한 개체를 유닛으로 본다. 해병, 연결체, 회복 가능 아이템, 광물지대, 밤까마귀가 날리는 대장갑 미사일, 신호소, 파괴 가능한 바위 전부 유닛이다.

유닛은 보급품, 명령창, 체력, 에너지, 속도, 시야, 방어력 등 게임 내 수치를 저장한다. 하나의 유닛 테이블에서 추가하거나 제거할 수 있는 하위 데이터는 다음과 같다.

여기 쓰일 것들은 기본적인 데이터 요소이다. 아무 유닛이나 불러오면 여기 데이터들은 모두 '(기본)'이라고 쓰여져 있다.

  • 능력
    • 능력 : 후술할 능력들을 추가할 수 있다.
    • 명령 창 : 해당 유닛이 갖고 있는 능력을 실행할 수 있는 버튼을 콘솔의 명령 창에 배치한다.
  • 전투
    • 무기 : 해병의 가우스 소총, 저글링의 발톱처럼 유닛이 가지고 있는 무기를 배열한다.
  • 동작

여기서부터는 유닛 탭에서 수정할 수 있는 유닛의 데이터 수치이다.

  • 능력치
    • 보급품 : 종족의 인구 수를 결정한다. 일반적으로 보급품을 차지하는 유닛일 경우 음수를, 대군주처럼 보급품을 늘려주는 유닛은 양수로 적는다.
    • 점수 - 생산/처치/손실 : 게임이 끝나고 나오는 점수판의 그 값을 수정할 수 있다.
    • 체력 시작량/최대치 : 유닛의 체력을 수정한다.
    • 에너지 시작량/최대치 : 유닛의 에너지(마나)를 수정한다.
    • 보호막 시작량/최대치 : 유닛의 보호막을 수정한다.
    • 시야 반경 : 유닛의 시야 반경
    • 시야 높이 : 유닛의 시야각
    • 탑승자 크기 : 수송기(의료선, 벙커, 땅굴벌레 등)에 실렸을 때 차지하는 칸의 크기를 조정한다. 탑승 크기는 0칸(탑승 불능), 1칸, 2칸, 4칸, 8칸이 있다.
    • 개체 방어력 : 유닛이 기본적으로 가지고 있는 방어력을 수정한다.
    • 보호막/에너지 방어력 : 보호막이나 에너지가 1이상의 수치를 가지고 있으면 적용되는 방어 수치이다.
    • 체력/에너지/보호막 재생 속도 : 매초마다 회복할 수 있는 체력, 에너지, 보호막 양이다.
    • 방향 : 360도 중 유닛이 바라보고 있는 방향을 설정할 수 있으며 건물 같이 회전이 불가능한 유닛에게만 적용된다.
    • 종족 : 유닛이 속한 종족을 고를 수 있다.
  • 비용
    • 비용 : 해당 유닛을 생산할 때 플레이어의 네 가지 자원(광물, 가스, 테라진, 사용자 지정 자원)이 소모되는 값이다.
  • 유닛
    • 이름 : 게임상에서 보여지는 유닛의 이름이다.
    • 특성 : 경장갑, 중장갑, 거대, 사이오닉, 영웅, 생체, 구조물 등의 특성을 선택할 수 있다.
    • 플래그 : 유닛이 가지고 있는 고유 플래그다. 선택할 수 있는가, F2를 누르면 선택 범위에 포함될 수 있는가, 무적인가, 영구 은폐 상태인가 등을 설정한다.
    • 효과 : 별도의 능력 발동이나 행동 소유 없이 효과 데이터를 기본적으로 발동할 수 있게 설정한다.
  • 이동
    • 가속
    • 감속
    • 속도 : 유닛의 기본적인 이동 속도
    • 반경 : 타 유닛과 충돌할 수 있는 범위
    • 내부 반경 : 건물과 충돌할 수 있는 범위
    • 전환 속도 : 유닛이 방향을 바꿀 때의 속도
    • 충돌 : 지면, 역장, 거신, 애벌레, 잠복 등에서 같은 값을 지닌 타 유닛과 충돌할 수 있는 플래그 모음
    • 평면 배열 : 유닛이 지상 유닛인지 공중 유닛인지 판별함.
  • UI
    • 개체 장갑 이름 : 콘솔에서 방어력 아이콘 위로 마우스 커서를 올렸을 때 뜨는 이름
    • 미니맵 반경 : 미니맵에서 점의 크기

4.3.2. 능력

능력은 말 그대로 유닛이 사용할 수 있는 스킬이다. 유닛 필드의 능력에서 추가할 수 있다. 정지, 공격, 이동에서부터 전투 자극제, 건물 건설, 변태, 요격기 사출까지 버튼으로 명령을 내리는 모든 것들이 능력이다.

능력의 종류에 따라 하위에 위치한 데이터가 다르다. 주로 생각되는 마법 같은 능력은 아래에 설명된 효과로 완성된다.

4.3.3. 무기

무기는 UI 공격 업그레이드란에 표시되는 바로 그것이다. 가우스 소총이 바로 그 예. 이것이 추가되지 않으면 유닛은 공격할 수 없다. 무기에는 공격 가능 대상, 피해 지점, 공격 선딜, 공격 주기 등의 정보가 담겨있다.

  • 무기
    • 효과

4.3.4. 동작

동작은 패시브 스킬을 뜻한다. 캠페인에 등장하는 약탈자의 주위 방사피해가 좋은 예다. 하지만 사이오닉 폭풍으로 인한 지속 피해가 걸린 상태, 진균 번식으로 멈춰버린 상태도 동작의 일부다. 유닛이 처한 상황으로 생각하면 알기쉽다.

  • 동작
    • 효과

4.3.5. 효과

가장 중요하고 많이 쓰이는 데이터 중 하나. 무기로 인한 피해가 대표적인 효과다. 무기에 피해 효과가 링크되어있지 않으면 피해량이 없다.

이러한 효과(피해) 말고도 전투 자극제로 인한 버프의 적용(강화 효과 생성), 사이오닉 폭풍의 커서 이동 시 범위 검색(검색), 사이오닉 폭풍의 시간당 다른 효과 적용(지속 효과 생성), 이러한 효과들의 집합(모음) 등 다양한 종류의 효과가 있다. 다양한 종류의 능력은 사실 효과를 이용해 만들어지는 것이다.

능력, 동작과 효과 활용의 쉬운 예시로 전투 자극제(능력)을 들자면,

  • 전투 자극제(능력, 효과-즉시)가 즉시 전투 자극제(효과, 강화 효과 적용)을 사용 유닛에게 부여한다.
  • 이 효과는 유닛에게 전투 자극제(동작, 강화 효과)를 적용한다.
  • 이 동작으로 인해 해병이 버프를 일정 시간 동안 받는다.

또 다른, 보다 어려운 예시로 사이오닉 폭풍을 들자면,

  • 사이오닉 폭풍(능력, 효과-대상)이 사이오닉 폭풍(효과, 지속 효과)를 일으킨다.
  • 이 지속 효과는 주기적으로 사이오닉 폭풍(효과, 검색)을 생성한다.
  • 이 검색은 생성될 때마다 일정 범위의 유닛에게 사이오닉 폭풍(효과, 강화 효과 적용)을 부여한다.
  • 이 강화 효과 적용은 유닛에게 사이오닉 폭풍(동작, 강화 효과)를 적용한다.
  • 이 동작, 강화 효과는 유닛에게 주기적으로 사이오닉 폭풍(효과, 피해)를 적용한다.
  • 이 피해 효과에 의해 폭풍에 맞은 유닛이 지속적으로 피해를 입는다.

4.3.6. 버튼

능력 하위에 추가함으로써 기본 버튼을 지정하거나, 유닛 테이블의 명령창에 배치할 수도 있다.

4.3.7. 행위자

유닛이나 장식물에게 3D모델을 부여하거나, 스킬에 화려한 시각적 이펙트와 사운드를 넣고싶을 때 알아야할 것이 바로 행위자(actor)다. 앞서 말했듯이 유닛 데이터 자체에는 시각, 청각적인 요소들이 직접적으로 연결되어 있지 않다. 게임상의 모든 개체들은 하나의 행위자를 가지고 있어야 한다.

해병(유닛)의 테이블에는 눈을 씻고 찾아봐도 해병(행위자)가 없다. 하지만 좌측하단의 계통도에는 분명 행위자가 있다. 이건 어떻게 된 것일까?

유닛과 행위자는 유닛과 다른 데이터들의 관계와 달리 생성의 원인과 소멸의 원인으로 이어져있다. 행위자 테이블의 '이벤트' 항목에는 간단한 문법으로 해당 행위자의 생성과 소멸 조건 등이 나타나있다. 여기서 생성 조건이 유닛의 생성이면 이 행위자는 유닛의 시청각 요소를 담당하고, 생성 조건이 능력, 동작, 효과면 이 행위자는 스킬의 시청각 요소를 담당하는 것이다.

유닛과는 달리 장식물은 순수하게 행위자로만 구성되어있는데, 이는 즉 장식물에는 능력치 등의 수치가 없고 오직 그래픽과 사운드만 존재한다는 것이다.

행위자의 하위 데이터는 다음과 같다.

  • 행위자
    • 모델
    • 소리

4.3.8. 모델

3D 모델. 모델 테이블에야 비로소 m3확장자의 모델 파일의 주소가 직접적으로 들어있다. 가져오기를 통해 가져온 파일을 여기에 링크하면 새로운 모델을 감상할 수 있다.

4.3.9. 소리

음성, 효과음, BGM 등 게임 내 모든 소리들을 포괄한다.

4.3.10. 다른 데이터들

이외에도 많은 데이터 유형들이 있다. 그 중 주목할 만한 것들은:

  • 업그레이드: 데이터에 링크되어 데이터 변경, 수치 조정 혹은 능력 활성화를 제공한다. 이는 공격력 업그레이드만 아닌 모델 변경, 와이어프레임 변경, 버튼 변경 등까지 다양하다.
  • 요구 사항: 능력의 명령에 링크되어 특정 조건을 만족했을 때 그 능력을 발동할 수 게 허용해주는 사항을 만든다. 예를 들어, 전투 자극제를 연구해야 사용 가능하게 한다든지 모선이 1개 이상 존재하면 더 생성할 수 없게한다.
  • 발자국: 행위자 배치 시 지도에서 차지하는 칸을 지정할 수 있다. 포탑은 2x2, 사령부는 5x5와 같은 식. 대각선 형태도 가능하다. 장애물형 장식물은 이것이 꼭 필요하다.
  • 종족: 종족 유형을 새로 추가할 수 있다.
  • 지형 유형들: 기존에 존재하는 지형 모음(tileset)에 포함된 텍스처와 언덕을 건드릴 수 있다. 얼음과 사막이 공존하게 할 수 있는 것.
  • 조명: 게임 화면에 보여지는 화면 색을 수정이 가능하다. 반사 배수, 발광 배수, 색감, 채도, 명암, 대비, 태양의 위치까지 정말 다양하게 고칠 수 있다.
  • 사운드트랙: 각 종족의 브금도 여기서 고칠 수 있다.
  • 이동 장치: 투사체가 어떻게 움직일지 결정한다. 미사일이 일직선으로 날아갈지 포물선을 그리져 날아갈지 결정한다.
  • 유효성 검사기: 예를 들어 능력의 자동 시전을 사용하기 전에 능력이 발동될 조건이 맞는지 검토한다. 유닛 유형, 종족 유형, 열거 영역 등 다양하다.
  • 포탑: 거신의 머리, 공성 전차와 화염차의 포 부분, 미사일 포탑, 모선 등 모델의 빙글빙글 돌아가는 부분을 수정할 수 있다.

4.3.11. 기타

이렇게 전작은 물론이요, 워크래프트 3의 에디터와 비교해도 유닛 하나를 새로 만드는 데에도 정말 고려해야 할 것이 많아졌다.

편집기에 대한 깊은 이해 없이 빠르게 새로운 유닛을 만드는 방법이 있다. 만일 기존의 유닛이 필요없다면, 그저 그 유닛을 고치면 된다. 행위자와 모델, 무기 등이 이미 연결되어있으므로 이름과 주소를 모두 고쳐주면 된다.

이번엔 기존의 유닛이 꼭 필요하거나 새로운 유닛의 별개의 데이터를 만들고 싶다면 복제 기능을 사용하면 된다. 먼저 자신이 구상한 유닛과 가장 비슷한 기존 유닛을 복제한다. 이 때 무기, 행위자, 모델, 소리를 변경이 필요할때 체크해주자. 이렇게 하면 새로운 유닛과 새로운 행위자가 연결된 채로 만들어진다.

능력도 이와 마찬가지로, 복제할 때 연결된 모든 동작과 효과를 체크해주어야 깔끔하게 새로운 스킬을 만들 수 있다.

더 이상의 설명은 블리자드 공식 설명서에 서술이 잘 되어있으니 시작하기 전에 읽으면 좋다.

스타크래프트 2히어로즈 오브 더 스톰은 엔진을 공유하므로, 갤럭시 맵 에디터로 히오스의 데이터를 얻을 수 있다고 한다.

물론 모델과 소리는 다시 연결해야 하기에 참고용으로만 쓸 수 있을 것이다.

4.4. 가져오기 모듈

외부 파일을 맵에 업로드해 사용할 수 있다. 3D 모델은 m3, 2D 이미지 파일은 dds나 tga를 업로드해야한다. 맵을 게시할 때 최대 용량은 300MB이므로 맵 용량을 줄일 수 없다면 모드를 따로 만들어 게시한 후 그 모드에 의존하는 지도를 따로 제작하는 방법도 있긴하다.

4.5. 기타 모듈

  • 텍스트: 유닛 이름, 툴팁 이름, 버튼 이름, 툴팁 내용, 편집기의 접두사 등 텍스트들은 모두 고유의 ID를 갖고 있는데 이 ID들을 한 테이블로 모아서 보여준다.
  • 인공지능: 캠페인 인공지능의 플레이어를 언제 어떻게 공격할지를 정할 수 있다.
  • UI: 게임 내의 UI를 수정할 수 있다.
  • 컷신: 게임의 모델들을 이용하여 컷신을 편집할 수 있으며 여러 모델의 애니메이션 상태, 사용 텍스처, 부착 지점 등을 확인할 수 있다.
  • 통합 관리자: 본인 수정한 맵의 정보들을 하나의 창에서 요약해준다.

5. 의존 관계

Dependency

데이터 모듈에서 만든 데이터베이스와 트리거 라이브러리를 담고 있는 확장자이며 의존 관계 없이는 맵을 제작할 수가 없다. 블리자드에서 만들어 제공하는 표준 의존 관계와 온라인에서 사용자들이 만든 의존 관계를 다운로드하여 사용할 수 있다.

2019년 2월 기준 사용 가능한 표준 의존 관계:

6. 단점

대부분 한국어로 번역되어 있다. 공허의 유산에서는 기본 인터페이스가 영어로 바뀌었으나 기본 설정(preference)의 일반(General)에서 언어(Locale)을 변경하면 다시 한국어로 바꿀 수 있다. 다만, 블리자드의 지원을 공식적으로 받은 게 아니기에 공식 설명에는 한계가 있다. 일부 트리거는 한글화가 되어 있지 않고, 오역이 되어 있고, 아예 비어 있기도 하다. 군단의 심장 때까지만 해도 오역은 있어도 전부 번역은 해줘서 별 문제는 되지 않았지만 공허의 유산 되면서 번역되지 않은 유닛과 능력, 동작 이름을 제외한 데이터 이름들이 대거 생겼다. 사실 유닛, 능력 등의 이름은 인게임에 나와야 되니까 무조건 번역해야 한다.

워크래프트 3는 초심자라도 기능에 제한이 있는 만큼 직관적이라 새로운 유닛이나 스킬 등을 추가하기 쉽지만[8], 스타크래프트 2는 '행위자' 개념이나 데이터 구조를 이해하지 못하면 새로운 유닛 하나 만들어 보는 데에도 애로사항이 꽃 핀다. 이 때문에 접근성이 낮은 편이지만 전편보다 기능은 월등하고, 무엇보다 한국어로 읽을 수 있기에 일단 제대로 사용하는 법을 알게되면 정말 막강한 툴이 된다. 거의 게임 개발툴의 일종이라는 평가.

스타크래프트 2에서 워크래프트 3의 모델링을 지원하지 않아서 워크래프트 3 모델링을 쓸려면 3ds Max로 변환을 해야만 하는데... 이게 단순히 유즈맵을 만들고 싶어하는 사람들에게는 간단하게 할 일이 안 된다.

근데 이 접근성 문제보다 더 큰 문제가 있으니 바로 오류가 잦다는 것. 실제 맵을 제작하다보면 기능이 많아진 것은 좋은데 기능 내부끼리 충돌하거나 게임 내부적으로 제공하지 않는 기능을 억지로 쓰다보면 맘대로 종료되거나 저장이 안 되는 현상이 매우 잦다. 설령 그렇지 않더라도 정상적으로 저장도 마쳤는데 지도를 불러올 수 없다면서 불러오지 못하는 경우도 있다. 수십 시간 걸쳐서 맵 만들어놨는데 이런 오류가 나면 분노를 금할 수 없으니 백업은 필수.

팁이라면 대부분 이런 개체값 데이터는 영문판을 기준으로 트리거나 기능이 짜여 있는데 한글판에서는 일부 기능을 제공하지 않다보니 없는 주소값을 참조하여 그리 되는 것이므로 혹시 본인이 영어 실력이 된다면 영문판으로 갤럭시 에디터를 사용하는 걸로 어느 정도는 막을 수 있다. 물론 100% 막을 수 있는 건 아니라서 이래도 못 막는 오류는 어쩔 수 없다.

그나마 프로그래밍적 지식이 있는 사람이라면 저장에서 오류가 나거나 매개 변수가 없다면서(실제로는 찾지 못하는 것일 뿐이지만) 맘대로 데이터를 삭제하는 것을 일일히 수동으로 해당 주소로 찾아가 수정하거나 복구하는 굉장한 장인력 넘치는 행위로 무마가 가능하지만 그럴 능력이 안 되는 사람은 안타깝지만 지금까지 제작하던 맵을 포기하는 수 밖에 없다.

즉 접근성이 떨어진다는 문제는 제쳐두고서라도 에디터의 안정성이 극단적으로 낮다는 것도 문제. 사실 접근성이 떨어진다는 이야기는 그만큼 복잡도가 증가했다는 것이고, 증가된 복잡도가 최적화되지 않기에 안정성이 낮은거라 결국은 같은 문제다. 일단 블리자드 측에서는 게임을 제공하는 것이고 맵 에디터는 부가적으로 제공하는 것이므로 이에 대한 문제나 하소연은 받지 않겠다고 공언했으므로(아예 맵 에디터 실행할 때마다 이 메세지가 출력된다) 고쳐질 가능성은 없다고 봐도 된다. 결국 누가 서드파티 에디터를 만들어 주길 빌자

그 밖에 새로운 캠페인이 출시되었을 때마다 각 종족의 테크트리나 유닛의 기능 등이 그대로 덧씌워졌기 때문에, 각 패치 때마다 추가된 부분이나 삭제된 부분이 서로 뒤엉킨 경우도 많다. 게임 내에서는 업그레이드 버튼이 있는데도 정작 이미 적용되어 있기에 필요가 없다거나 업그레이드를 해 주어야 하는 상황인데도 버튼을 아무리 해도 추가할 수가 없는 것이다[9].


  1. [1] 워3 시절에는 따로 만들어진 유틸리티를 통해 편집한 것을 삽입해서 적용하는 과정의 반복이였다. 게다가 모델링이나 모션을 조금만 뜯어 고치는 데도 3ds Max를 써야만 했다
  2. [2] 세간의 인식과 달리 FPS, 슈팅게임, 세이브/로드가 가능한 RPG 등은 모두 워크래프트 3 시절에도 있긴 있었다. 다만 무지막지한 노가다와 코딩이 필요했을 뿐.
  3. [3] 이에 따라 해외에서 스타크래프트 2로 돌리는 워크래프트 3 유즈맵이 제작 중에 있다.영상 게임 플레이 영상 얼라이언스vs호드 제목은 Armies Of Azeroth. 플레이 영상을 보면 워크래프트 3 특유의 UI를 완벽하게 구현했으며, 거기에 스타2로 넘어오면서 편리해진 랠리포인트, 부대 컨트롤 등을 차용한 듯 보인다.
  4. [4] 결국 진정한 리마스터 게임인 워크래프트 3: 리포지드가 2019년 내에 나오는 것으로 발표되었다.
  5. [5] 게임 데이터까지 불러오는 방법은 없지만 효과, 모델, 텍스쳐, 소리 등의 파일을 불러오는 방법에 대한 내용이다.
  6. [6] 오류가 좀 있는 편이다. 예를 들어 아르타니스의 번개 돌진 스킬을 사용했는데 이벤트가 발동된다 거나
  7. [7] 적 유닛이 이벤트 지역에 들어가서 이벤트를 발생시키는 것을 방지한다.
  8. [8] 다만 월드 에디터도 깊게 파고 들면 꽤 어렵다. 애당초 스타1 에디터가 월드 에디터 수준으로 향상되기만 했어도 EUD가 나올 일은 없었다고 하니(...)
  9. [9] 저그의 오버로드를 예로 들면 자유의 날개 캠페인 당시에는 이동 속도 업그레이드와 수송 업그레이드가 필요한 반면 군단 캠페인에서는 이동 속도 업그레이드가 기본적으로 적용되어 삭제되었고, 공허의 유산에서는 수송 업그레이드도 삭제되고 그 대신 수송용 오버로드로 변태시킬 수가 있게 되었다. 그런데 정작 건물에는 연구해 봐야 실제로 적용되지도 않는 이동 속도 업그레이드와 수송 업그레이드가 그대로 남아 있는 것.

최종 확인 버전:

cc by-nc-sa 2.0 kr

Contents from Namu Wiki

Contact - 미러 (Namu)는 나무 위키의 표가 깨지는게 안타까워 만들어진 사이트입니다. (45.71ms)