**스타크래프트 캠페인 에디터**(또는 StarEdit)는 블리자드 엔터테인먼트의 실시간 전략 시뮬레이션 게임 《스타크래프트》와 확장팩 《스타크래프트: 브루드 워》의 공식 레벨 에디터이다. 지금은 지원이 종료되어있다. 블리자드 측에서는 SCMDraft 2의 사용을 권장하고 있다.

구성 요소
-----

스타크래프트 켐페인 에디터는 외부적 구성 요소와 내부적 구성 요소가 있다.

### 외부적 구성 요소

외부적 구성 요소는 다음과 같은 것들이 있다.

* Terrain: 지형을 바꾼다. 크게 고지대, 중지대, 저지대로 나뉘며 이들 모두 다양하게 나뉜다. 건물을 형성할 수 없는 지형도 있다.
* Doodads: 장식물을 설치한다. 언덕, 다리 등이 여기에 포함된다.
* Units: 유닛의 위치를 설정한다. 건물이나 자원 등도 여기에 포함된다.
* Location: Triggers가 인식 하는데 필요한 창을 생성한다.
* Fog of War: 처음 시야가 확보되지 않은 곳에 대해 처리한다. 지형과 건물만 보여줄 것인지, 아무것도 보여주지 않을 것인지 설정할 수 있다. 구역별로 설정하는 것이며, 플레이어마다 따로 설정해야 한다.

### 내부적 구성 요소

내부적 구성 요소는 다음과 같은 것들이 있다.

* Forces: 세력 (4개까지 가능하며 설정에 따라서 세력 내에서도 적대적이다.)
* Sounds: 소리 (효과음을 맵에 직접 삽입하는 것이다. 많이 넣을수록 맵의 용량이 급격히 커진다.)
* Trigger: 동작 (보유 자원의 증감이나 승리, 패배 등) #트리거(Trigger) 참조.
* Mission Briefing: 미션이 시작되기 전에 등장하는 임무 사항

### 설정 사항

* Settings: 전체적인 설정이다. 플레이어의 종족이나 유닛의 생산 가능 여부, 업그레이드 한도 등을 설정할 수 있다.
* Unit and Hero Settings: 개개의 유닛에 대한 설정이다. 유닛의 체력과 방어력, 생산 비용과 시간, 타격치와 이름을 설정한다.
* Upgrade Settings: 개개의 업그레이드 비용과 시간을 설정할 수 있다.
* Special Ability Settings: 개개의 특수 능력 개발 비용과 시간, 사용 시 필요한 에너지를 설정할 수 있다.
* Properties: 맵의 제목과 설명을 설정한다. 게임 대기실에 맵의 제목이 나타난다.

### 트리거(Trigger)

스타크래프트 지도의 트리거는 유즈맵으로 플레이하는 맵에 있어서 가장 중요한 부분이다. 지도를 제작하는 사람은 마치 프로그래밍을 하듯 특정한 논리를 지도에 삽입시킬 수 있다.

트리거는 다음과 같은 구조로 되어 있다.

`A가 B를 만족하면 C를 수행하라.`
#### 스위치

여기서 A는 트리거를 동작시킬 플레이어를, B는 트리거를 동작시킬 조건을, C는 동작시킬 트리거의 명령을 의미한다. 예를 들어, Player 6이 미네랄과 가스를 1만 포인트 이상 캐면 승리하게 하는 것 등이다. 또한, Rpg 형식의 맵의 경우, 특정 트리거로 마력으로 사용할 미네랄이나 가스를 지속적으로 주고, 특정 스타게이트에서 스카웃을 뽑으면 스킬이 나오고 스카웃을 파괴하는 식으로도 만들 수 있다.

특이하게도 스위치라는 기능이 있다. 이는 말 그대로 On, Off가 가능한 스위치 기능을 응용한 것인데, 트리거 하나(예시: A가 B를 만족하면 C를 수행하라.)에는 위에서 서술되어 있듯이 트리거의 적용 대상, 조건문, 동작문의 세 단계가 있다. 이 때 동작문은 대부분 직접적인 명령어가 쓰인다(예시: 로케이션 A에 스카웃을 생성한다.) 하지만 동작문을 스위치 넘버로 설정할 수 있는데, 이 스위치는 또다시 하나의 조건문이 될 수 있다.

예를 들어 트리거 [A가 B를 만족하면 C를 수행한다]를 다음과 같이 고칠 수 있다.

트리거 1 [A가 B를 만족하면 스위치 1이 On 된다.]

트리거 2 [적용 대상: 모든 플레이어, 스위치 1이 On되면 C를 수행한다.]

이 스위치 함수의 활용은 한 조건문으로부터 여러 가지 결과를 얻고자 할 때 트리거를 여러 개 만들어야 하는 불편을 덜어주고, 이는 결과적으로 트리거 오류를 줄여준다.

또한 때에 따라 On, Off기능을 설정할 수 있어 예외와 경우의 수를 고려한 고차원적인 트리거 논리를 작성할 수 있다.

스위치 함수의 활용은 사실상 하나의 프로그래밍이라고 볼 수 있다.

영향
--

스타크래프트 켐페인 에디터로 인해 스타크래프트에서 사용되는 대전용 맵이 무한히 늘어날 수 있게 되었다. 주로 초보자들이 즐기는 속칭 '무한맵' 류의 창작 뿐만 아니라, 기존의 맵을 조금씩 수정하여 변화를 주는 등 게임을 오랫동안 질리지 않게 만드는 데 큰 역할을 하였다.

특히 지형 편집 부분은 트리거 편집과는 달리 전문적인 지식이 거의 필요가 없기 때문에 많은 멀티플레이용 맵들이 등장할 수 있었다. 예를 들면 가장 인기 있는 8인 멀티플레이용 맵인 The Hunters의 경우, 블리자드 엔터테인먼트에서 처음 선보인 The Hunters외에 수백여 가지의 변종(The Hunters-Gamei, The Hunters-KPGA 등등)이 존재하며, 같은 이름의 The Hunters 라 해도 지형이 조금씩 다른 부분이 많다. 또한 스타에디트 덕분에 스타크래프트가 큰 인기를 끌고 있는 한국에서는 프로리그를 위한 경기용 공식 맵을 필요한 만큼 만들 수 있게 되었다.

### EUD

확장된 유닛 죽음(Extended Unit Deaths)의 약자인 EUD는 유닛의 죽은 수 관련 트리거를 최댓값보다 높게 설정해 오버플로우를 일으켜 스타크래프트 메모리 자체에 접근하는 것이다. 해킹을 통한 기술이기는 하지만, 이 기법을 통해 스타크래프트에서 기본적으로 지원하던 트리거의 한계를 넘어 유닛 무기를 변경하거나, 실드가 없는 유닛에게 실드를 주거나, 현재 체력 수치를 감지하는 등의 다양한 추가 조건문과 액션문을 가능하게 했다.

하지만 이 방법은 버퍼 오버플로우를 통해 맵 자체를 해킹한 것이기 때문에 맵에 바이러스를 담을 수 있게 되었다. 이 때문에 블리자드는 패치를 통해 EUD 트리거의 사용을 제한했다. 현재는 조건문만이 사용 가능하며, 액션문은 싱글이거나 특수한 프로그램의 도움을 받아야 사용 가능한 상태이다.

그러나 아쿠아런처, wlauncher 등의 프로그램을 통해 EUD트리거가 사용된 맵을 이용할 수 있게 되었다.

**EUD Trig**라는 프로그램을 통해 EUD트리거를 제작할 수 있다..

프로텍션과 언프로텍션
-----------

스타크래프트 맵 파일은 누구나 수정할 수 있다는 한계점으로 인해 중요한 난관에 부딪히게 되었다. 일부 사용자들이 공식맵을 무단으로 수정하여 공식맵이 수정된 것처럼 배포하기도 했고, Use Map Settings 맵의 경우에도 개조를 통해 자신이 유리하게 하였다.

이로 인해, 프로텍터가 등장하게 된다. 프로텍션(보호)는 맵 파일 형식을 수정함으로써 일반적인 맵 에디터가 접근하지 못하도록 하는 기술이며, 이를 적용하는 프로그램을 프로텍터라고 통칭한다. 한편, 프로텍터의 등장으로 인해 스타포지를 제작한 Heimdal의 SCU를 필두로 언프로텍터도 등장하게 되었는데, 이러한 추세는 곧 맵 제작자들과 언프로텍터 사용자들 사이의 분쟁을 불러일으켰다.

스타크래프트 개발사인 블리자드 엔터테인먼트의 최종 사용자 사용권 계약에 따르면 스타크래프트에서 파생된 2차 저작물의 저작권 또한 블리자드 엔터테인먼트의 소유이다.