트리거 에디터

트리거 에디터는 월드 에디터 중 가장 강력하고 고급 기능이 많은 부분으로, 게임의 모든 요소를 빠짐 없이 관리할 수 있습니다. 초보자도 쉽게 사용할 수 있는 단순화된 프로그래밍 언어인 동시에, 숙련된 사용자도 충분히 만족할 수 있을 만큼 기능이 강력합니다. 트리거 에디터를 열려면 F4를 누르거나 모듈 메뉴에서 트리거 에디터를 선택하십시오.

트리거는 이벤트, 조건, 액션의 세 부분으로 구성되어 있습니다. 이벤트가 발생하고 조건이 만족되면 트리거의 액션이 시작됩니다.
 

이벤트

이벤트는 트리거가 시작될 수 있는 과정의 시작입니다. 트리거의 이벤트가 발생하면 조건이 평가된 후 액션이 시작됩니다. 지도의 기본 트리거는 "접근전 초기화"이며, 이 트리거의 기본 이벤트는 "지도 초기화"입니다. 이것은 기본적으로 지도 불러오기가 끝나는 즉시 트리거의 액션이 개시된다는 것을 의미하며, 충족시켜야 할 조건은 없습니다. 필요한 경우 이 이벤트를 "시간 - 진행 시간"으로 변경한 후 시간을 10초로 설정할 수 있습니다. 그러면 지도 불러오기가 끝나고 10초 후에 "접근전 초기화" 트리거가 실행됩니다.


조건

조건은 트리거 액션이 발생하기 위해 충족되어야 할 특수 요구 조건입니다. 트리거 액션이 실행되려면 조건이 참이어야 합니다. "False Equal to False"와 같은 조건이 가능하고 이것은 항상 참이기 때문에 이렇게 생각하면 헛갈릴 수도 있습니다. 기본 트리거 "접근전 초기화"에는 기본 조건이 없으므로 하나 추가해 보겠습니다. Ctrl + D를 누르고 "게임 속도 비교"를 선택합니다. 대화상자에 "(현재 게임 속도) Equal to Normal"이 파란색 텍스트로 표시될 것입니다. 조건을 그대로 둔 채 에디터에서 지도를 실행하면 다른 조건이 변경되지 않은 이상 "접근전 초기화" 트리거가 정상적으로 실행됩니다. 그러나, "Normal"을 "Fastest"로 변경하면 에디터에서 "접근전 초기화" 트리거가 실행되지 않습니다. 이것은 에디터에서 지도를 실행하면 게임 속도가 자동으로 "보통"으로 설정되기 때문입니다. 조건이 "Normal speed equal to Fastest speed"이 되므로 거짓이 됩니다.

조건이 속한 트리거의 이벤트가 발생한 경우에만 조건이 평가된다는 점에 조건과 이벤트의 차이점이 있습니다. 또한 트리거에는 여러 개의 이벤트가 있을 수 있으나 그 중 하나의 이벤트만 발생해도 트리거 액션이 실행되는 반면, 조건의 경우에는 모든 조건이 참이어야만 트리거 액션이 발생할 수 있습니다.

트리거에 필요한 것은 액션 뿐입니다. (엄밀히 말하면 이것이 완전히 참은 아니지만, 액션이 없는 트리거는 게임에 아무런 영향을 미치지 못하기 때문에 스크립트에서 아무 의미가 없습니다.) 그러나, 트리거에 조건이나 이벤트가 없어도 게임에서 액션이 수행될 수 있습니다. "트리거 - 실행(조건 무시)" 액션을 사용하면 트리거의 조건이나 이벤트 유무에 관계 없이 다른 트리거에서 트리거의 액션이 실행되게 할 수 있습니다.


액션

액션은 트리거의 결과입니다. 동영상에서처럼 카메라를 특정 유닛으로 이동하거나 특정 유닛이 다른 유닛을 공격하는 등의 액션이 가능합니다. 설계자는 액션을 통해 게임에서 일어나는 모든 부분을 제어할 수 있습니다.


트리거 만들기

트리거 에디터를 실행하려면 F4를 누르거나 모듈 메뉴에서 트리거 에디터를 선택합니다.

트리거를 만들기 위해서는 트리거를 배치할 범주가 있어야 합니다. 새로 만들기 메뉴에서 범주를 선택하여 새로운 범주를 만드십시오. 작성한 범주는 왼쪽의 트리 목록에 표시됩니다. 범주에는 파일 아이콘이 있습니다. 새로운 범주를 만든 후 즉시 범주 이름을 입력하거나, 범주를 선택하고 F2를 눌러 새 이름을 입력할 수 있습니다.

새 트리거를 만들려면 앞에서 만든 범주를 선택한 후, 새로 만들기 메뉴에서 트리거를 선택합니다. 만들어진 트리거를 선택하면 트리거 상자 오른쪽에 다음과 같은 두 개의 확인란이 나타납니다.

사용함 - 이 확인란이 선택되어 있지 않으면 게임 중 해당 트리거를 사용할 수 없습니다.
초기 사용 - 이 확인란이 선택되어 있지 않으면 게임을 처음 시작할 때는 트리거가 사용되지 않지만, 게임 도중 "트리거 - 사용"을 통해 트리거를 사용할 수 있습니다. 트리거 실행 명령은 트리거 켜짐/꺼짐 상태보다 우선합니다.

트리거 상자 오른쪽에는 다음 입력창이 있습니다.

주석 - 사용자 및 스크립트를 변경하고자 하는 사람들을 위한 메모를 남길 수 있는 곳입니다. 주석은 트리거의 기능에 전혀 영향을 미치지 않습니다. 개인적으로 자유롭게 메모를 남기실 수 있습니다.
트리거 함수 - 트리거의 내부 기능이 표시되는 곳으로, 이벤트, 조건, 액션이 모두 표시됩니다. 이벤트, 조건 또는 액션을 추가하면 이 곳의 해당 영역에 정리됩니다.

트리거 간 또는 지도 간에 이벤트, 조건, 액션을 복사하고 붙여넣을 수 있습니다. 이미 만든 이벤트, 조건, 액션을 편집하려면 해당 이벤트, 조건 또는 액션을 더블 클릭하십시오.

에디터의 다른 구성 요소로는 변수, 함수, 기본 설정값 등이 있습니다.


변수

Ctrl + B를 누르거나 트리거 에디터의 편집 메뉴에서 변수를 선택하면 에디터의 변수 부분이 표시됩니다. 변수는 BASIC이나 C와 같은 프로그래밍 언어의 변수와 유사합니다. 변수는 에디터에서 특정 유형의 데이터를 보관하는 버킷 같은 역할을 하지만, 까다롭게도 한 가지 종류의 데이터만 보관이 가능합니다. 예를 들어, 정수를 유닛 변수에 넣을 수는 없습니다.

트리거를 사용하여 지도에 미리 배치된 오브젝트를 참조할 수 있습니다. 유닛에 액션을 적용하는 경우를 예로 들겠습니다. 유닛에 적용하고자 하는 액션을 열고 해당 액션의 그래머 텍스트에서 적당한 부분을 왼쪽 클릭합니다. 변경할 수 있는 부분은 빨간색과 파란색 밑줄 친 텍스트로 표시됩니다. 유닛 선택 버튼을 클릭하고 지도에서 유닛을 선택합니다. 선택한 유닛의 변수 이름이 변수 목록에 표시됩니다.

다음과 같이 해보십시오. 빈 지도에 오크 피언을 배치합니다. F4를 눌러 트리거 에디터를 엽니다. Ctrl + G를 눌러 범주를 만들고, Ctrl + T를 눌러 트리거를 만듭니다. Ctrl + R를 눌러 새로운 액션을 만듭니다. 메뉴에서 U 키를 누르고 "유닛 - 죽이기" 액션의 위치를 찾습니다. 이 트리거의 그래머 텍스트는 "유닛 - 죽이기(트리거 중인 유닛)"입니다. 파란색 밑줄이 쳐진 "(트리거 중인 유닛)" 텍스트를 왼쪽 클릭합니다. 변수 편집 버튼 왼쪽에 있는 유닛 선택 버튼을 왼쪽 클릭하고 피언을 선택합니다. 성공입니다! 트리거가 지도 상의 피언에 연결되었습니다. 지도에 미리 배치된 모든 유닛에는 연결된 변수 이름이 있습니다.

변수에 대해 보다 자세히 알고 싶으시다면 컴퓨터 프로그래밍을 배우실 것을 권장합니다. (C++을 추천합니다!)


함수

트리거 에디터에는 이전의 Blizzard 에디터보다 뛰어난 유연성과 제어 기능을 제공하는 함수들이 많이 포함되어 있습니다. 함수는 일반적으로 변수 및 특정 데이터 유형과 함께 사용됩니다. 유용한 함수의 한 예로 "마지막으로 생산된 유닛"을 들 수 있습니다. 이 함수를 사용하면 "유닛 - 새로 만들기"를 통해 만든 유닛에 액세스할 수 있습니다. 또한 게임 실행 중에 만들어진 유닛을 참조할 수 있는 두 개의 함수 중 하나입니다(나머지 하나는 "마지막으로 생산된 유닛 그룹"입니다). 이 함수는 유닛 변수 또는 지도에 미리 배치된 유닛 대신 사용할 수 있습니다. 단, 함수는 값을 반환하므로, 변수에서처럼 일정 값과 같도록 수동으로 설정할 수 없습니다. 하지만 변수에 함수값을 부여할 수는 있습니다.

예를 들어, 이벤트를 통해 영웅의 레벨이 지정되었음을 알게 되었다면 "이벤트 반응 - 영웅 레벨 정하기"는 해당 영웅에만 적용됩니다. 함수를 다른 영웅과 같게 설정한 채 내버려두면 곤란합니다. 특정 영웅의 레벨을 올리려면 다른 방법(예: "유닛 - 플레이어 소유 유닛 이벤트" 이벤트 및 "유닛 종류 비교" 조건)으로 해당 영웅을 감지한 후, "영웅 - 레벨 지정"과 같은 적당한 액션을 적용해야 합니다.


기본 설정값

기본 설정값은 에디터에 저장되어 있는 데이터입니다. 아무런 조치를 취하지 않아도 사용할 수 있으며 절대로 변경되지 않습니다. 기본 설정값의 예로는 "플레이어 1(빨간색)"이 있습니다.


값

값 필드는 자주 변경할 수 있는 필드 중의 하나로, 정보를 직접 입력할 수 있습니다. 예를 들어, "게임 - 텍스트 메시지(자동 시간 지정)"에 이 필드가 나타납니다. 파란색으로 밑줄 쳐진 텍스트를 왼쪽 클릭하면 문자열 창이 열립니다. 이 창의 마지막 설정이 값입니다. 간단한 메시지인 경우 이 필드에서 직접 입력할 수 있으며, 새로운 변수를 만들거나 함수를 사용할 필요가 없습니다.