[워3에디터 강좌] 트리거 에디터의 시작 by storm

워크래프트3 월드 에디터에서 반드시 알아야할 주요 기능은 지형(Terrain) 에디터, 트리거(Trigger) 에디터, 사운드 에디터, 오브젝트(Object) 에디터 등의 4가지이다. 물론 이밖에도 캠페인 에디터와 AI 에디터 등이 있지만 몰라도 별로 상관 없으며 실제로도 그리 사용하지 않는 기능이다.

이 네가지 에디터 가운데에서 지형 에디터와 사운드 에디터는 기능도 그리 많지 않고 인터페이스만 봐도 어떻게 사용할지 쉽게 알 수 있는 구성이기 때문에 특별히 설명할 것이 없다. 그래서 이 두 에디터는 차후에 다루도록 하고 우선 트리거 에디터에 대해서 살펴보도록 하자.



트리거란?

트리거(Trigger)는 영어로 총기의 방아쇠를 뜻한다. 그래서 오작동이 아닌 이상 총은 방아쇠를 당겨야만 발사된다. 즉 방아쇠를 당기는 것이 원인이고 총알이 발사되는 것은 그에 따른 결과인 셈이다. 같은 이치로, 게임에서 트리거란 원인과 결과를 설정하여 레벨(level: 이 문장에서는 게임플레이가 이뤄지는 공간이라는 의미로 쓰였다) 안에서 기획의도에 맞는 사건과 현상이 일어나도록 설정한 것이다. 트리거는 비단 워크래프트3에서만 사용하는 것이 아니라 거의 모든 게임에서도 사용하는 개념이므로 확실히 이해하고 넘어가야만 한다.

트리거는 다음과 같은 세 가지 구성요소로 이루어진다.

  • 이벤트 Event : Ctrl + E
    이벤트는 게임 시스템이 인식할 수 있는 일련의 사건이나 현상이다. 특정 트리거에서 설정한 이벤트에 해당하는 일이 벌어지면 그 트리거는 가지고 있는 조건을 따져본다.
    예) 게임이 시작된 시점부터 특정 시간이 지난 경우, 어떤 유닛이 특정 구역에 들어서거나 나간 경우, 어떤 유닛이 어떤 명령을 받은 경우, 어떤 유닛이 공격 받거나 죽거나, 특정 스킬의 대상이 된 경우, 어떤 장치(오브젝트)가 파괴된 경우 등

  • 조건 Condition : Ctrl + D
    특정 트리거에서 설정한 이벤트가 발생하면 그 트리거는 설정해놓은 조건을 따져본다. 그래서 그 조건에 맞으면 액션에 설정해 놓은 것들을 실행한다.
    예) 이벤트를 발생시킨 유닛의 종류/소유주/레벨/상태 비교, 특정 유닛이 획득한 아이템의 종류/레벨 비교, 랜덤하게 추출한 값이 조건에 맞는지 비교 등

  • 액션 Action : Ctrl + R
    액션은 이벤트-조건에 부합하는 어떤 일이 벌어지면 실행할 사항들이다.
    예) 유닛 또는 오브젝트의 사운드/애니메이션 출력, 특정 장소에 유닛 또는 오브젝트 생성, 유닛에게 특정 명령 하달 등
자, 그러면 이와 같은 기초 지식을 바탕으로 아주 단순한 트리거를 한 번 짜보자. 나무로 둘러싸인 숲이 있는데, 플레이어의 유닛이 숲의 한 지점에 놓여진 보물상자에 접근하면 상자 뒤편 동굴에서 갑자기 몬스터가 등장하는 식의 레벨 구성이 필요한 경우 어떤 식으로 트리거를 설정해야 할까? 이와 같은 트리거의 이벤트/조건/액션은 다음과 같다.

  • 이벤트
    유닛이 보물상자에 접근한다

  • 조건
    접근한 유닛은 플레이어 소유의 유닛이어야 한다

  • 액션
    동굴 입구 지점에 지정한 몬스터를 생성한다
그러면 이 트리거를 트리거 에디터에서 직접 설정해 보자. 이 트리거의 예제맵을 다운 받은 다음 에디터로 맵을 열고 단축키 F4를 누르면 트리거 에디터창이 열린다. 그다음 트리거 에디터에서 단축키 Ctrl + T를 눌러 새로운 트리거를 생성시키자. 그러면 '이름없는 트리거 001'이라는 새로운 트리거가 생성될 것이다.
★ 예제맵 다운로드: TriggerEX_01.w3x

트리거 이름은 어떻게 하든 작동되는 것과 무관하지만 가급적 한눈에 어떤 트리거인지 알아보기 쉬운 이름으로 하는 것이 좋다. 참고로 트리거 이름을 지을때에는 프로그래밍 언어에서 일반적인 변수명 선언 규칙과 거의 같은 제약을 받는다. 그래서 알파벳 또는 숫자로만 가능하며 맨 앞글자는 반드시 알파벳 문자이어야만 한다. 트리거 이름은 띄어쓰기가 가능하니까 적절한 띄어쓰기와 대소문자 활용을 통해 가독성을 높여주는 버릇을 들이는 것이 좋다. (예) TreasureOpen MobSpawn
[팁] 이미 설정한 트리거 이름을 변경하고 싶다면 트리거 이름을 한 번 클릭한 다음 그대로 1-2초 정도 기다리면 된다.

트리거 이름을 지었다면 이제 본격적으로 트리거의 구성요소인 이벤트, 조건, 액션을 만들 차례다.




이벤트/조건/액션 설정

트리거를 생성했다면 트리거 에디터 우측 하단에 있는 '트리거 함수'창에  이벤트 조건 액션 목록이 만들어져 있을 것이다. 이 항목들을 우클릭해서 '새로운 이벤트/조건/액션 만들기'를 하거나 아니면 단축키를 눌러서 원하는 이벤트/조건/액션을 만들어 넣으면 된다.

우선 Ctrl + E를 눌러 새로운 이벤트를 만들자. 그다음 이벤트 종류 항목에서 '유닛'을 선택하고 세부 이벤트로는 '어떤 유닛이든 구역에 들어가면 작동'을 지정하자. 그러면 그 아래에 이벤트 텍스트로 '어떤 유닛이든 구역에 들어가면 작동합니다'라는 문장이 나타날 것이다. 그리고 이 상태에서는 [확인] 버튼이 비활성화되어 이벤트 만들기가 완료가 안되는데, 왜냐면 어떤 구역에 들어가면 이벤트가 발생하는 것인지 규정되지 않았기 때문이다.

그러면 여기서  구역이라는 링크를 클릭해보자. 그러면 구역(rect)를 지정하는 새로운 창이 나타날 것이다. 여기서 변수 항목을 체크하자. 이미 만들어져 있는 ZoneTreasure <생성>이 선택될 것이다. 이 구역은 예제맵 상에 이미 만들어져 있는 구역이다. 이 구역이 어딘지 보고 싶다면 월드 에디터 메인화면에서 도구 팔레트를 연 다음, 지역 팔레트를 선택하면 된다. 그러면 ZoneTreasure 라는 구역이 이미 생성되어 있음을 알 수 있을 것이다. 이 구역 명칭을 더블클릭하면 에디터 화면시점이 그 구역의 중심으로 이동한다.
[주의] 한글화가 불완전해서 맵 에디터 상에서는 지역이라고 나오고 트리거 에디터에서는 구역이라고 나오는데 둘 다 같은 말이다.
[팁] 만약 화면에 구역이 보이지 않는다면, 월드에디터 상단의 [보기] 메뉴에서 [지역]을 체크하라, 단축키는 Ctrl + R 이다.

 

이제 이벤트 생성은 끝났다. 다음은 조건을 만들 차례다. 트리거 에디터에서 Ctrl + D 를 누르면 새로운 조건을 설정하는 조건 설정창이 뜬다. 그러면 조건 종류 세부항목 가운데에서 [유닛 비교]를 선택하자. 그 다음 아래 그림과 같이 을 클릭한 다음, 새롭게 나타난 유닛 (unit)창에서 [변수]를 체크하고 그 오른쪽에 있는 [유닛 선택] 버튼을 누른 다음 맵 에디터 화면의 왼쪽 아래에 있는 아서스 유닛을 지정하자.

그러면 [설정 조건]창에서 조건 텍스트가 (트리거를 작동시킨 유닛) ==(서로 같다) 아서스(프로스트모어 사용중) 0001 <생성>으로 완성된 문장이 될 것이다. 여기서 '트리거를 작동시킨 유닛'이란 트리거가 설정한 이벤트를 발생시킨 유닛을 의미한다. 그렇다면 이 트리거에서 이벤트는 무엇인가? 어떤 유닛이 ZoneTreasure라는 지역에 들어온 것이 이벤트이다. 즉 이 트리거는 어떤 유닛이 ZoneTreasure라는 지역에 들어오면 그 유닛이 아서스(프로스트모어 사용중) 0001 유닛인지 체크한 다음, 맞으면 설정된 액션을 실행하고, 아니면 아무 일도 일어나지 않도록 하는 것이다.

그러면 트리거를 완성시키기 위해서 마지막으로 액션을 만들어보자. 트리거 에디터에서 Ctrl + R 을 누르면 새로운 액션을 만드는 [설정 액션] 창이 뜬다. 액션 종류 중에서 맨 아래쪽에 있는 [유닛] 항목을 선택하고 세부 액션으로는 '유닛 특정 각도로 한다'를 선택하자. 한글화가 좀 즈질이라 무슨 뜻인지 좀 불명확한데, 이 액션이 어떤 유닛을 특정 지점에 생성하는 액션이다.

이 액션에서는 총 6가지 옵션을 지정할 수 있다. 우선 맨 처음 몇 기를 생성시킬 것인지를 정하자. 일정 범위 안에서 랜덤하게 결정되도록 할 수도 있지만 그건 나중에 해보기로 하고 일단은 2마리가 나오도록 하자. '1명의~'에서 1을 클릭 한 다음 값을 2로 바꾸고 [확인]을 누른다. 그 다음에는 어떤 유닛이 생성되게 할 것인지 유닛 타입을 지정한다. 기본값은 풋맨으로 되어 있는데, 풋맨을 클릭한 다음 '값' 항목에서 '중립'을 선택하고 '아쉔베일'을 클릭해서 타일셋을 '로데론 여름'으로 바꾸자. 그러면 유닛 목록이 달라질 것이다. 이 가운데에서 일단 '오우거 워리어 - 레벨 3'을 지정하자.

그 다음은 생성될 유닛의 소유주(소속)을 정해야 한다. 기본값은 플레이어 1 (빨간색)으로 되어 있는데, 현재 이 맵의 기본 설정상 플레이어 1은 실제 게임 플레이를 진행하는 유저의 소속이므로 그대로 놔두면 이 트리거로 생성되는 오우거 2마리가 아군이 되어버린다. 여기서는 일단 '플레이어 그룹 - 중립 적대'로 지정하도록 하자. 그리고 일단 [확인] 버튼을 누르자.

이제는 유닛이 생성될 위치를 정해야 한다. 그러기 위해서는 맵 에디터에서 유닛이 생성될 지역(구역)을 설정해야 하는데, 잠시 맵 에디터로 가서 [도구 팔레트]에서 [지역 팔레트]를 선택한 다음 아래 그림과 같이 동굴안쪽에 새로운 지역을 그린다.

그러면 [지역 팔레트]'지역 001'이라는 새로운 지역이 생성될 것이다. 이것을 마우스 우클릭해서 [지역 속성 편집]을 선택하면 지역 명칭과 기타 세부 옵션을 설정할 수 있다. 지역 명칭은 편의상 ZoneGuardSpawn 정도로 해두자. 그리고 속성 편집에서 지역의 색상도 변경할 수 있는데, 이 색상은 어디까지나 에디터 상에서만 보여지는 것일뿐, 게임을 실행하면 지역은 플레이어에게 보여지지 않는다. 다만 내부적으로 작동할 뿐이다.

이제 다시 트리거 에디터로 돌아와서 아까 설정하다가 만 액션을 다시 더블클릭해서 열어보자. 그다음((플레이 가능 구역)의 중심)을 클릭하고 아래 그림과 같이 지역을 지정하자.

이렇게 ZoneGuardSpawn이라고 지역까지 지정해주면 거의 모든 준비는 끝났다. 마지막으로 설정 액션에 있는 기본 건물 방향 항목은 생성된 유닛이 처음에 어느 방향을 바라보게 할 것인가를 지정하는 것인데, 사실 큰 의미는 없다. 여기서 말하는 기본 건물 방향이란 소위 말하는 5시 방향을 뜻하며, 워크래프트3에서는 3시 방향이 0과 360도, 12시 방향이 90도, 9시 방향이 180도 6시 방향이 270도로 설정되어 있다. 여기서는 동굴의 입구가 대략 7시 방향으로 뚫려 있으므로 값을 245 정도로 해주면 자연스러워 보일 것이다.

자 여기까지 액션 설정이 끝났다면 이제 맵을 테스트 플레이해보자. Ctrl + F9 를 누르거나 맵 에디터 상단 메뉴 아이콘 중에 제일 오른쪽에 있는 버튼을 누르면 바로 맵을 플레이해볼 수 있다. 이 강좌에서 설명한대로 트리거를 잘 설정했다면 아서스가 동굴 앞 보물 근처에 가자마자 동굴에서 오우거 2기가 나타나 공격해올 것이다. 만약 제대로 나오지 않는다면 이벤트/조건/액션 중에 무언가가 잘못 설정된 것이니 찬찬히 다시 살펴보라. 정 안되겠다 싶으면 위 트리거까지 다 완성된 맵을 받아서 열어보도록 하라. TriggerEX_01_done.w3x

그런데 막상 플레이를 해보면, 무언가 연출이 부자연스럽게 느껴질 것이다. 그리고 또 보물 근처를 들락거리면 오우거가 계속 반복해서 생성되기도 한다. 이런 문제점들은 다음 강좌에서 고쳐나가도록 하자.

핑백

덧글

  • 기역 2009/05/07 21:53 # 삭제 답글

    우왕, 저 게임 만들고 싶은 게 있었는데.. ㅋㅋ 감사합니다.ㅎ
  • storm 2009/05/07 23:33 # 답글

    기역// 재밌는 게임 만드세요 :)
  • Happy_2D 2009/08/13 00:39 # 삭제 답글

    으음 이해가안되고 이상하겤ㅋ 전안되네요
  • 와~ 2009/08/22 12:31 # 삭제 답글

    님때문애 쪼금 늘었음 감사해요!
  • ATree 2009/08/23 03:06 # 삭제 답글

    이해가 잘되도록 설명도 잘해주시고 너무 감사합니다! 정말 많은 공부가 되었어요 ^^ 이제 강좌 4로 넘어가서 또 공부!!
  • 좌절금지 2009/10/21 16:34 # 삭제 답글

    감사드려요! 유용한 정보입니다.
  • 블루토노 2009/12/05 06:50 # 답글

    좋은글 감사합니다~ 안그래도 워크래프트 맵 에디터 정도라면 내가 생각하는 최소한은 구현할텐데.........라고 늘 생각하던차에... ^^;; 이런글을 보게 되었네요~
  • 오오옹 2009/12/14 11:15 # 삭제 답글

    아 실수로 풋맨으로 했네요 ㅋㅋㅋㅋㅋ
    오우거가 아닌 풋맨 나와서 놀랐음 ㅋㅋ
  • 저글 2010/01/11 11:19 # 삭제 답글

    자작으로 하나 해버렸습니다. :9
  • 뭐지.. 2010/02/08 19:27 # 삭제 답글

    트리거 에디터가 완전 한글화네요? 제 에디터는 영어인데 -_-;
  • 소환은어떠케? 2010/03/28 13:42 # 삭제 답글

    소환은 漁떠케
    하는거지?
    소환을 트리거 스킬로 바꿀려면 어캐해야댐?
  • 처음 2010/05/19 14:49 # 삭제 답글

    처음부터 제가 직접 만들어서 들어가는데
    그냥 승리라고 나오고
    시작지점이라고 정한데에 건물 나오고 일군나오고 하는데 어떻게해요?
  • storm 2010/05/19 15:00 #

    1. 새 맵을 만들 때 맵에디터에서 F4 누르시면 트리거 에디터가 열립니다.
    2. 트리거 에디터에 보면 기본적으로 생성되어 있는 트리거가 1개 있는데요. (액션이 6개 정도)
    3. 그 트리거의 액션 중에서 밀리게임 시간 적용 (낮/밤의 변화를 주는 트리거) 하고 밀리 AI 액션 이 두 개만 빼고 다 지워버리세요. (액션 클릭 후 Del 키)

    그다음 맵 저장하시고 계속 작업하시면 됩니다.
  • 연습생 2010/07/14 16:31 # 삭제 답글

    에디터 한글화버전이 따로 있나봐요..

    제껀 영문이라 따라하기 넘 어렵네여 ㅠ
  • storm 2010/07/14 17:10 #

    http://sstorm.egloos.com/4933950 보시면 한글 설치법이 나옵니다.
  • ㄷㄷ 2010/07/18 22:42 # 삭제 답글

    님 저는 워크 프로즌쓰론 한글판을 샀는데 월드 에디터는 영문인데요 어떻게해야하나요 ㅠㅠ??
  • ㄷㄷ 2010/07/18 22:47 # 삭제

    예를 들면 유닛비교가 unit comparison , 그리고 그밑에는 님한테는 트리거를 작동시킬 유닛이라고 적혀있지만 트리거닝 유닛이라고 영어로 적혀서 어렵네요 해결방법좀 ㅠㅠ
  • storm 2010/07/19 09:15 #

    http://sstorm.egloos.com/4933950 여기나오는 5.번부터 해보세요. (W3M Utility 설치 및 에디터 강화패치 등등)
  • 초보 2010/09/01 21:13 # 삭제 답글

    감사합니다.
    이런걸 이용해서 파오캐의 몹소환같은걸 만들면 되겠네요
  • 동원참치 2010/09/16 22:36 # 삭제 답글

    정말 감사합니다. ^-^

    제 생애 최초로 워크래프트3 맵 에디터에 첫 발을 딛이게 되었네요.
    이렇게 이해하기 쉽고 알찬 강의를 만들어주셔서 감사합니다.
  • storm 2010/09/17 15:45 #

    열심히 하셔서 재미있는 맵 만드세요 :)
  • 워3팬 2010/09/24 21:50 # 삭제 답글

    덕분에 많은걸 배우고 있습니다..

    이 블로그 만큼 워3 에디터에 대해 자세히 알려주는 곳도 없는거같네요..

    앞으로도 좋은 강좌 기다리겠습니다
  • storm 2010/09/25 14:01 #

    헐 이거 강좌 계속 써야 하는 분위긴데요...!
  • 궁금합니다 2010/10/03 06:01 # 삭제 답글

    저기 죄송한데 질문좀할게요; 제가 워디터 키고 맵 불러오면(프로텍터안걸린거) 트리거 부분에서 잘못됫다고 꺼지는데 왜그런건가요?
  • storm 2010/10/03 12:22 #

    아마 불러온 맵이 공식적인 트리거 함수 외에 사용자가 만든 트리거 함수가 들어 있어서 그럴 것입니다.

    '손스월드 에디터'라는 것을 다운받아서 그 에디터로 맵을 열어보세요.
    이 에디터는 공식 맵에디터를 기반으로 국내 유저들이 수정, 보완한 별도의 맵에디터입니다.
    이 에디터에는 공식 에디터에 들어있지 않은 트리거 함수가 있기 때문에 그 트리거를 쓴 맵은 공식 에디터에서 열면 오류가 나서 열려지지 않아요.
  • 궁급합니다(2) 2010/10/05 13:01 # 삭제 답글

    친절한 답변 감사합니다
    근데손스월드 까려고하니까 unable to locate the target to patch 이게 뜨네요;;;
    혹시 해결할수 잇는 방법 없을까요?
  • storm 2010/10/05 13:57 #

    워3를 언인스톨 하고 다시 설치하신 다음에 1.24 패치만 하시고 손스월드를 깔아보세요.
  • , 2010/10/05 14:54 # 삭제 답글

    드디어 열엇다 정말 감사합니다 스톰님 ..
  • ShinYung 2010/11/09 11:10 # 삭제 답글

    으으..;; 트리거 에디터를 킬려고 f4키를 누르는데 아무련 변화가 없습니다..

    어떻게 해야될까요..;;
  • storm 2010/11/09 17:00 #

    제대로 설치가 되어 있다면, 맵 에디터 상단의 아이콘들에서 트리거 에디터 메뉴 아이콘을 찾을 수 있을 거에요. 그게 없다면 뭔가 잘못된 거죠.
  • bra0012002 2010/12/15 20:41 # 삭제 답글

    몬스터 죽으면 다시 태어나게 어캐하죠?
  • storm 2010/12/17 19:07 #

    몬스터 리젠 개념이라면 그냥 동일한 유닛타입을 죽은 위치에 생성하는 방법으로 하시면 됩니다.

    트리거
    이벤트: (몬스터가 소속된 플레이어)의 유닛이 죽으면 작동합니다.

    조건: 없어도 됨

    액션: (죽은 몬스터와 동일한 타입)의 유닛을 (몬스터가 죽은 위치)에 생성
  • asdf 2011/01/16 23:12 # 삭제 답글

    감사합니다!
  • 궁금해요! 2011/01/23 15:48 # 삭제 답글

    퀘스트는 어떤식으로 하나요? 트리거 한글패치는 했지만 어떻게 하는지 모르겠어요...계속 유닛이랑 지역만 가지고 놀고 있어요 ㅠㅠ
  • 토노! 2011/02/12 19:49 # 삭제 답글

    예전에 해보려고 하다가..포기했었는데. 다시 시작해봅니당!!
    일단 처음은 PASS네요!
  • 서랑 2011/03/10 13:41 # 삭제 답글

    정말 감사합니다. 게임기획자 지망생입니다.

    아무정보 없이 게임을 많이 접해보고 꿈을 가지고

    있다는 것 만으로 지망을 하였는데

    스톰님의 글을 읽고 많은 것을 배우고 있습니다.
  • superang 2012/08/27 18:16 # 삭제 답글

    저기여 죄송한데여 아까 몬스터 리젠트리거여 영어로 번역해서 써주시면 안될까여?.....정말죄송합니다.
  • superang 2012/08/27 18:23 # 삭제

    손스월드 에디터에서 볼륨~, 파일이름 등이 달라서 안되다고하네여 이문제는 어떻게하면 됩니까?(절대따지는거아님!)
  • storm 2012/08/28 22:58 #

    아마 영어로는 Units 카테고리에서 Create Unit with Direction 인가? 그럴겁니다.
    트리거에서도 검색기능이 있으니까 unit 으로 검색해보세요.
  • storm 2012/08/28 22:59 #

    손스월드는 제가 사용해본 적이 없어서 답변드릴 수가 없네요.
  • superang 2012/08/29 17:44 # 삭제 답글

    스톰님 데스크탑의 스피커말고 헤드셋을 이용하니 되는군여
    영어로 하는거 감사합니다.
  • 견해 2013/08/09 18:51 # 삭제 답글

    왓더!! 이렇게 좋은 자료가 있었다니!!!
  • 건나르 2013/11/17 00:06 # 삭제 답글

    즐겨찾기 해놓고 갑니다.
    브금넣는 방법도 알려주셨으면합니다 ^^
  • 감사합니다선배님 2013/12/29 07:13 # 삭제 답글

    감사합니다. ^~^
    유익하고 좋은 글이네요.
    쏚속 이해가 잘됩니다.
  • ^^ 2014/02/19 21:27 # 삭제 답글

    감사합니다 재밌네요 ㅎㅎ
  • skttlfqker 2014/08/29 21:06 # 삭제 답글

    안녕하세요 맵제작자입니다 이것떔에 몇개월을고민햇는데 손스월드 쓸거에요 이제
    감사합니다. 그럼이만
댓글 입력 영역



통계 위젯 (화이트)

1519
244
503012