유닛의 좌표에 따른 트리거 적용순서의 진실

※예제맵 다운로드
1. noname49.scm




안녕하세요? noname01입니다.
이번에는 유닛의 좌표에 따른 트리거 적용순서의 진실(?)에 대해 알아봅시다.

이 팁은 인투더맵 시절 팁 게시판의 한 게시물을 바탕으로 하며 그 팁이 올라온 뒤로도
많은 사람들이 잘 모르거나 오해를 하는것 같아 이렇게 제가 다시한번 정리해 봅니다.

우리는 보통 여러 유닛이 있을때 한 유닛씩 트리거를 적용하면 왼쪽아래에 있는 유닛부터
트리거가 적용된다고 알고 있습니다. 예를들면 유닛을 그리드에 맞춰서 깔아두고
트리거로 그 유닛 한기씩 파괴한다고 할때 가장 왼쪽에 있는 유닛, 만약 x좌표가 같다면
아래쪽에 있는 유닛이 먼저 파괴된다는 것입니다.

그런데 사실 이것은 올바른 사실이 아닙니다. 왼쪽의 유닛이 우선적으로 트리거가 적용되는것은
맞지만 x좌표가 같은 유닛의 경우 아래쪽에 있는 유닛이 우선적으로 트리거가 적용된다는 것은
잘못된 사실입니다.

그럼 도대체 무슨 순서대로 트리거가 적용되는 것일까요?? 그것은 바로 유닛의 인덱스 번호
입니다. x좌표가 같은 유닛들 중 인덱스 번호가 큰 유닛이 우선적으로 트리거 적용의
대상이 됩니다. 그럼 그것을 실험으로 증명을 해 봅시다.

먼저 설치된 유닛의 인덱스를, 살펴보고 편집할 수 있는 버젼의 SCMDraft2를 구해 설치한뒤
실행시킵니다. 그런뒤 아래 스크린샷(49-1)과 같이 플레이어12의 테란 시민 4기를 깔아줍니다.
이때 4기의 시민 모두 x좌표를 동일하게 깔아줍니다.

49-1 : 플레이어12의 테란 시민 4기를 이 스크린샷과 같이 깔아줍니다.

테란 시민을 모두 깔았다면 이제 이 시민 4기를 한꺼번에 선택하고 엔터키를 눌러줍니다.
그러면 아래 스크린샷(49-2)과 같이 창이 하나 뜰것입니다.

49-2 : 이 창으로, 깔아둔 유닛들의 인덱스 번호를 살펴보거나 수정할 수 있습니다.

이 창을 이용하여 깔아둔 4기의 테란 시민 인덱스를 뒤섞습니다. 저는 다음(49-3)과 같이
섞어 보았습니다.

49-3 : 테란 시민의 인덱스를 이렇게 설정해 보았습니다.

주의하실 점은 이렇게 인덱스 변하고 저장한 후 기본에디터(Starcraft Campaign Editor) 계열의
에디터(X-tra나 세디터 등)로 만든 실험용 맵을 열고 저장하면 안됩니다.

이제 적당한 스위치를 하나 만들고 그 스위치를 켜면 플레이어12의 테란 시민을 하나 파괴한뒤
스위치를 끄는 트리거를 만들어 줍니다. 저는 커멘드센터에서 SCV를 생산하면 SCV를 제거하고
플레이어12의 테란 시민 1기를 파괴하도록 트리거를 만들었는데 이 과정에 대한 설명은
생략합니다.

이제 완성한 실험용 맵으로 실험을 해봐야겠죠??

49-4 : 테란 시민 한기를 파괴했습니다.
49-5 : 두번째 시민을 파괴했습니다.
49-6 : 세번째 시민을 파괴했습니다.
49-7 : 마지막 시민을 파괴했습니다.

실험결과 SCMDraft2에디터로 수정한 인덱스가 큰 순서대로 파괴된 것을 확인할 수 있습니다.

그런데 우리는 왜 이런 x좌표가 같은 경우 아래쪽 유닛이 우선적으로 트리거에 적용된다고
알고 있을까요?? 그 이유는 기본에디터 계열의 에디터에서 찾을 수 있습니다.

여러분이 잘 알다시피 스타크래프트에서 공식적으로 제공하는 기본에디터와 그 기본에디터를
기반으로 만들어진 특수 에디터들이 있습니다. 엑스트라나 세디터 같은 경우가 이에 속하죠.
이런 에디터는 설치해둔 유닛의 인덱스를 설치해둔 좌표를 기준으로 재배치하는 특성을 갖고
있습니다. 이때 x좌표가 같은 경우 아래쪽에 있는 유닛이 더 큰 인덱스 번호를 배정받게
됩니다.

이때문에 기본에디터 계열의 에디터로 맵을 열고 저장하게 된 이후 모든 유닛들이 x좌표가
동일한 경우 아래쪽에 있는 유닛부터 트리거에 적용받게 됩니다. (물론 게임중 유닛이 이동하여
배치가 달라졌다면 꼭 아래에 있는 유닛이 우선적으로 트리거를 적용받지는 않겠지만요.)

지금처럼 SCMDraft2 에디터나Starforge에디터와 같이 인덱스를 재배열하지 않고 유닛을 설치한
순서 그대로 인덱스를 배정하는 에디터가 나오기 전에는 기본에디터 계열의 에디터를 사용했을
테고 이 시기에 왼쪽 아래에 있는 유닛이 우선적으로 트리거에 적용받는다는 사실이 알려졌으며
이러한 사실이 지금까지 이어져 내려와 굳어진 것입니다.



자 마치기 전에 정리를 해봅시다.

※요약

여러기의 유닛이 있을 경우 이중 한기의 유닛에게 트리거를 적용하면 가장 왼쪽에 위치한
유닛에게 우선적으로 트리거가 적용되며, 만일 가장 왼쪽에 위치한 유닛이 여러기라면 그
유닛들 중에서 인덱스 번호가 가장 큰 유닛에게 우선적으로 트리거가 적용된다.


끝까지 읽어주셔서 감사합니다. 이것으로 마치도록 하겠습니다.




다른 맵 제작 팁을 보려면 이 이미지를 클릭해 주세요.