이번 시간에는 맵 제작의 꽃이라 불리우는 트리거(Triggers)에 대하여 알아봅시다.
트리거란 맵에 각종 조건과 그에 대응하는 실행부를 추가해서 다양한 컨텐츠를 만드는 언어(?)라고 생각하시면 되겠네요.
이러한 트리거를 실행하기 위해서는 맵을 실행할 때 반드시 유즈맵(Use Map Setting)으로 선택하셔야 합니다.
먼저 Scenario를 눌러서 Triggers...에 들어가 줍시다.
그러면 다음과 같은 창이 뜹니다.
기본적으로 트리거가 몇개 있는데 밀리로 플레이할 경우 적용되는 트리거랑 같은 것입니다.
필요하시다면 남기셔도 되고, 아니면 지우셔도 됩니다.
무슨 내용인지 잘 모르겠다면 아래 글을 마저 읽고나면 알 수 있게 될 것이에요.
일단 트리거를 하나 만들어 봅시다.
트리거를 새로 만드려면 New... 버튼을 눌러줍시다.
미션 브리핑 때와 마찬가지로 플레이어나 세력을 선택하는 창이 하나 뜹니다.
이 조건은 누구에게 적용될지 정하는 창으로 원하는 플레이어나 세력을 선택해 줍시다.
다 선택하셨으면 다음을 눌러줍시다.
그러면 조건을 정하는 창이 나옵니다.
New... 버튼을 눌러서 새로운 조건을 하나 만들어줍시다.
그러면 굉장히 많은 조건부를 선택할 수 있을 것이에요.
하나하나 살펴보도록 합시다.
1. ACCUMULATE
Player accumulates quantity resources.
플레이어가 얼마만큼 자원을 보유할 경우.
2. ALWAYS
Always.
항상.
3. BRING
Player brings quantity units to 'location'.
플레이어가 얼마만큼의 유닛을 '로케이션'에 위치할 경우.
4. COMMAND
Player commands quantity units.
플레이어가 얼마만큼의 유닛을 보유할 경우.
5. COMMAND THE LEAST
Current player commands the least units.
해당 플레이어가 유닛을 가장 적게 보유할 경우.
6. COMMAND THE LAST AT
Current player commands the least units at 'location'.
해당 플레이어가 '로케이션'에서 유닛을 가장 적게 보유할 경우
7. COMMAND THE MOST
Current player commands the most units.
해당 플레이어가 유닛을 가장 많이 보유할 경우.
8. COMMAND THE MOST AT
Current player commands the most units at 'location'.
해당 플레이어가 '로케이션'에서 유닛을 가장 많이 보유할 경우.
9. COUNTDOWN TIMER
Countdown timer is duration game seconds.
카운트다운 시간이 시간만큼 남았을 때.
10. DEATH
Player has suffered quantity deaths of unit.
플레이어가 해당 유닛을 얼마나 파괴당할 경우.
11. ELAPSE TIME
Elapsed scenario time is duration game seconds.
해당 시나리오를 시작한지 얼마나 지날 경우.
12. HIGHEST SCORE
Current player has highest score points.
해당 플레이어의 점수가 해당 분야에서 가장 높을 경우.
여기서 해당 분야를 누르면 다양하게 선택할 수 있는데 한번 살펴봅시다.
Total : 전체
Units : 유닛 생산 점수
Buildings : 건물 생산 점수
Units and Buildings : 유닛과 건물 생산 점수
Kills : 유닛을 처치한 점수
Razings : 건물을 처치한 점수
Kills and Razings : 유닛과 건물을 처치한 점수
Custom : 사용자 지정 점수
13. KILL
Player kills quantity units.
플레이어가 얼마나 유닛을 처치할 경우.
14. LEAST KILLS
Current player has least kills of unit.
해당 플레이어가 유닛을 가장 적게 처치할 경우.
15. LEAST RESOURCES
Current player has least resources.
해당 플레이어가 자원을 가장 적게 가질 경우.
16. LOWEST SCORE
Current player has lowest score points.
해당 플레이어의 점수가 가장 낮을 경우.
17. MOST KILLS
Current player has most kills of unit.
해당 플레이어가 유닛을 가장 많이 처치할 경우.
18. MOST RESOURCES
Current player has most resources.
해당 플레이어가 자원을 가장 많이 보유할 경우.
19. NEVER
Never.
절대로.
20. OPPONENTS
Player has quantity opponents remaining in the game.
플레이어와 적대 관계인 플레이어가 얼마나 남을 경우.
21. SCORE
Player score type score is quantity.
플레이어가 점수를 얼마나 얻을 경우.
22. SWITCH
Switch is set.
스위치가 켜질/꺼질 경우.
스위치 상태를 설정하려고 하면 다음과 같은 창이 뜹니다.
스위치는 1부터 256까지 있으며, Rename 버튼을 이용해서 스위치 이름을 지정할 수 있습니다.
또한 Switch State를 이용해서 켜진 상태로 할지, 꺼진 상태로 할지 지정할 수 있습니다.
그렇게 원하는 조건부를 지정하였으면 다음 버튼을 눌러서 실행부로 넘어가줍시다.
다음으로 실행부입니다.
조건부에서 지정한 조건을 만족할 경우 실행부가 실행되게 됩니다.
마찬가지로 New... 버튼을 눌러서 새로운 실행부를 만들어줍시다.
조건부보다 더욱 많은 목록의 실행부가 나타나게 됩니다.
마찬가지로 어떠한 실행부가 있는지 살펴봅시다.
1. CENTER VIEW
Center view for current player at 'location'.
화면을 '로케이션'으로 이동합니다.
2. COMMENT
Comment: comment
주석: 내용
주석을 달면 트리거 목록이 이렇게 주석에 적은 내용으로 간편하고 보기 쉽게 정리됩니다.
3. CREATE UNITS
Create quantity unit at 'location' for player.
플레이어의 유닛을 얼마나 '로케이션'에 생성합니다.
4. CREATE UNITS WITH PROPERTIES
Create quantity unit at 'location' for player. Apply properties.
플레이어의 유닛을 얼마나 '로케이션'에 생성합니다. 속성을 부여합니다.
위의 CREATE UNITS와 같은 실행부이지만 유닛에 속성을 부여할 수 있습니다.
이 때 속성으로 유닛의 체력이나 클로킹, 버러우 등을 설정할 수 있습니다.
참고로 이 트리거는 64번밖에 사용할 수 없으니 참고하세요.
5. DEFEAT
End scenario in defeat for current player.
해당 플레이어가 패배하게 됩니다.
6. DISPLAY TEXT MESSAGE
Display for current player: text
해당 플레이어에게 텍스트를 표시합니다: 텍스트
화면에 텍스트를 표시합니다.
마찬가지로 텍스트에 색깔을 넣을 수 있으니 원하신다면 넣어줍시다.
7.DRAW
End the scenario in a draw for all players.
모든 플레이어가 무승부가 됩니다.
8. GIVE UNIT TO PLAYER
Give quantity units owned by player at 'location' to player.
플레이어 소유의 '로케이션' 내에 있는 얼마만큼의 유닛을 플레이어 소유로 변경합니다.
9. KILL UNIT
Kill all units for player.
플레이어의 유닛을 모두 제거합니다.
10. KILL UNITS AT LOCATION
Kill quantity units for player at 'location'.
플레이어의 '로케이션' 내에 있는 얼마만큼의 유닛을 제거합니다.
11. LEADER BOARD (CONTROL AT LOCATION)
Show Leader Board for most control of units at 'location'. Display label: 'label'.
'로케이션' 내에 있는 유닛을 많이 보유한 순서대로 순위표에 보여줍니다. 순위표 제목: '텍스트'.
이 때, 유닛 항목을 선택하면 이러한 창이 뜹니다.
Any Unit : 아무 유닛이나 건물
Men : 유닛
Buildings : 건물
Factories : 유닛 생산 가능한 건물 (Ex. 베럭, 헤처리 등)
Specific Unit : 특정 유닛 (Pick Unit 버튼을 눌러서 특정 유닛을 지정할 수 있습니다.)
12. LEADER BOARD (CONTROL)
Show Leader Board for most control of unit. Display label: 'label'
유닛을 많이 보유한 순서대로 순위표에 보여줍니다. 순위표 제목: '텍스트'
13. LEADER BOARD (GREED)
Show Greed Leader Board for player closest to accumulation of number ore and gas.
자원을 숫자에 가장 근접하게 보유한 순서대로 순위표에 보여줍니다.
14. LEADER BOARD (KILLS)
Show Leader Board for most kills of unit. Display label: 'label'
유닛을 가장 많이 처치한 순서대로 순위표에 보여줍니다. 순위표 제목: '텍스트'
15. LEADER BOARD (POINTS)
Show Leader Board for most points. Display label: 'label'
점수를 가장 많이 얻은 순서대로 순위표에 보여줍니다. 순위표 제목: '텍스트'
16. LEADER BOARD (RESOURCES)
Show Leader Board for accumulation of most resource. Display label: 'label'
자원을 가장 많이 보유한 순서대로 순위표에 보여줍니다. 순위표 제목: '텍스트'
17. LEADER BOARD GOAL (CONTROL AT LOCATION)
Show Leader Board for player closest to control of number of units at 'location'. Display label: 'label'.
'로케이션' 내에 있는 유닛의 숫자에 가장 근접한 순서대로 순위표에 보여줍니다. 순위표 제목: '텍스트'
18. LEADER BOARD GOAL (CONTROL)
Show Leader Board for player closest to control of number of unit. Display label: 'label'
유닛의 숫자에 가장 근접한 순서대로 순위표에 보여줍니다. 순위표 제목: '텍스트'
19. LEADER BOARD GOAL (KILLS)
Show Leader Board for player closest to number kills of unit. Display label: 'label'
유닛을 처치한 숫자에 가장 근접한 순서대로 순위표에 보여줍니다. 순위표 제목: '텍스트'
20. LEADER BOARD GOAL (POINTS)
Show Leader Board for player closest to number points. Display label: 'label'
점수를 숫자에 가장 근접한 순서대로 순위표에 보여줍니다. 순위표 제목: '텍스트'
21. LEADER BOARD GOAL (RESOURCES)
Show Leader Board for player closest to accumulation of number resource. Display label: 'label'
보유 자원의 숫자에 가장 근접한 순서대로 순위표에 보여줍니다. 순위표 제목: '텍스트'
22. LEADER BOARD COMPUTER PLAYERS
Set use of computer players in leaderboard calculations.
순위표에 컴퓨터를 포함 여부를 정합니다.
Set을 누르면 이러한 창이 뜹니다.
Enable : 포함
Disable : 미포함
Toggle : 변경 (On시 Off로, Off시 On으로 변경)
23. MINIMAP PING
Show minimap ping for current player at 'location'.
'로케이션' 위치에 미니맵 핑을 보냅니다.
24. MODIFY UNIT ENERGY
Set energy points for quantity units owned by player at 'location' to percent%.
'로케이션' 내의 플레이어의 얼마만큼의 유닛의 마나 보유량을 퍼센트로 변경합니다.
25. MODIFY UNIT HANGAR COUNT
Add at most quantity to hangar for quantity units at 'location' owned by player.
'로케이션' 내의 플레이어의 얼마만큼의 유닛의 보유 유닛을 얼마만큼 추가합니다.
참고로 이 트리거는 리버의 스케럽 보유량이나 캐리어의 인터셉터 보유량을 추가할 때 사용되는 트리거입니다.
26. MODIFY UNIT HIT POINTS
Set hit points for quantity units owned by player at 'location' to percent%.
'로케이션' 내의 플레이어의 얼마만큼의 유닛의 체력을 퍼센트로 변경합니다.
27. MODIFY UNIT RESOURCE AMOUNT
Set resource amount for quantity resource sources owned by player at 'location' to quantity.
'로케이션' 내의 플레이어의 자원의 양을 얼마만큼으로 지정합니다.
미네랄이나 베스핀 간혈천의 남은 양을 지정할 때 사용되는 트리거입니다.
28. MODIFY UNIT SHIELD POINTS
Set shield points for quantity units owned by player at 'location' to percent%.
'로케이션' 내의 플레이어의 얼마만큼의 유닛의 쉴드 보유량을 퍼센트로 변경합니다.
29. MOVE LOCATION
Center location labeled 'location' on units owned by player at 'location'.
'로케이션' 내의 플레이어의 유닛으로 '로케이션'을 이동합니다.
혼동하실 수도 있으시겠지만 문장의 앞에 있는 로케이션이 이동할 로케이션입니다.
30. MOVE UNITS
Move quantity units for player at 'location' to 'destination'.
'로케이션' 내의 플레이어의 얼마만큼의 유닛을 '목적지'로 순간이동합니다.
31. MUTE UNIT SPEECH
Mute all non-trigger unit sounds for current player.
트리거의 영향을 받지 않는 모든 소리를 끕니다.
이것이 무슨 소리냐면 유닛을 선택하거나 명령을 내릴 시 나오는 소리나 자원을 채집하거나 건설할 때 내는 소리를 매우 작게 만듭니다.
32. ORDER
Issue order to all units owned by player at 'location': order to 'destination'.
'로케이션' 내에 있는 플레이어의 모든 유닛을 목적지로 명령을 내립니다.
명령으로는 Move, Attack, Patrol이 있는데
Move는 해당 유닛을 목적지로 이동 명령을 내리고,
Attack은 해당 유닛을 목적지로 공격 명령을 내립니다. 말 그대로 어택땅
Patrol은 해당 유닛을 목적지로 순찰을 내립니다. 순찰인 만큼 원래 위치와 목적지 사이를 왔다갔다합니다.
33. PAUSE GAME
Pause the game.
게임을 일시정지합니다.
게임을 일시정지한다고 하지만, 컴퓨터나 플레이어가 유닛을 조작하는 것만 막아둘 뿐, 트리거는 그대로 흘러갑니다.
또한 싱글플레이 시에만 적용되며 멀티플레이 시에는 적용되지 않습니다.
34. PAUSE TIMER
Pause the countdown timer.
카운트다운 시간을 일시정지합니다.
35. PLAY WAV
Play 'WAV file'.
소리를 재생합니다.
36. PRESERVE TRIGGER
Preserve trigger.
트리거를 반복합니다.
만약 이 트리거가 없으면 실행부가 한번만 발동되고 다시 발동되지 않지만
이 항목을 추가하면 조건만 맞다면 언제든지 다시 실행부가 발동됩니다.
37. REMOVE UNIT
Remove all units for player.
플레이어의 유닛을 모두 삭제합니다.
38. REMOVE UNITS AT LOCATION
Remove quantity units for player at 'location'.
'로케이션' 내의 플레이어의 유닛을 얼마만큼 삭제합니다.
39. RUN AI SCRIPT
Execute AI script 'script'.
인공지능을 부여합니다.
인공지능이 3가지가 있는데 하나하나 살펴볼까요?
Send All Units on Strategic Suicide Missions : 특정한 적 유닛을 무조건 공격합니다.
Send All Units on Random Suicide Missions : 무작위의 적 유닛을 무조건 공격합니다.
Switch Computer Player to Rescue Passive : 컴퓨터를 구조 가능한 플레이어로 변경합니다.
물론 인공지능인 만큼 컴퓨터에게만 적용됩니다.
40. RUN AI SCRIPT AT LOCATION
Execute AI script 'script' at 'location'.
'로케이션'에 인공지능을 부여합니다.
아까보다는 인공지능이 많이 늘어났는데 한번 살펴봅시다.
(종족) Custom Level : 해당 종족의 밀리 AI를 가집니다.
(종족) Expansion Custom Level : 브루드워 유닛을 사용하는 해당 종족의 밀리 AI를 가집니다.
(종족) Campaign Easy : 쉬운 난이도의 밀리 AI를 가집니다.
(종족) Campaign Medium : 보통 난이도의 밀리 AI를 가집니다.
(종족) Campaign Difficult : 어려움 난이도의 밀리 AI를 가집니다.
(종족) Campaign Insane : 미친 난이도의 밀리 AI를 가집니다.
(종족) Campaign Area Town : 자원만 채집하는 AI를 가집니다.
Expansion (종족) Campaign Easy : 브루드워 유닛을 사용하는 쉬운 난이도의 밀리 AI를 가집니다.
Expansion (종족) Campaign Medium : 브루드워 유닛을 사용하는 보통 난이도의 밀리 AI를 가집니다.
Expansion (종족) Campaign Difficult : 브루드워 유닛을 사용하는 어려움 난이도의 밀리 AI를 가집니다.
Expansion (종족) Campaign Insane : 브루드워 유닛을 사용하는 미친 난이도의 밀리 AI를 가집니다.
Expansion (종족) Campaign Area Town : 브루드워 유닛을 사용하는 자원만 채집하는 AI를 가집니다.
Set Player to Enemy : 관계를 적으로 변경합니다.
Set Player to Ally : 관계를 동맹으로 변경합니다.
Value This Area Higher : 특정 지역의 수비를 강화합니다.
Enter Closest Bunker : 테란 바이오닉 유닛을 근처의 벙커로 들어가게 합니다.
Enter Transport : 수송 가능한 유닛에 들어갑니다.
Exit Transport : 탑승한 유닛이 밖으로 나옵니다.
41. SET ALLIANCE STATUS
Set Player to Ally status.
플레이어의 관계를 변경합니다.
외교 관계로 3가지가 있습니다.
Enemy : 적대 관계
Ally : 동맹 관계
Allied Victory : 동맹 관계이며, 적이 없을 경우 승리하게 됩니다.
42. SET COUNTDOWN TIMER
Modify Countdown Timer: Set duration seconds.
카운트다운 타이머를 설정합니다: 숫자만큼 변경합니다.
43. SET DEATHS
Modify death counts for player: Set quantity for unit.
플레이어의 유닛 사망 수를 숫자로 변경합니다.
44. SET DOODAD STATE
Set doodad state for units for player at 'location'.
'로케이션'에 있는 플레이어의 유닛을 활성화/비활성화 합니다.
주로 Installation 지형의 문이나 트랩을 활성화할 때 사용됩니다.
45. SET INVINCIBILITY
Set invincibility for units owned by player at 'location'.
'로케이션' 내에 있는 플레이어의 유닛을 무적 상태를 변경합니다.
46. SET MISSION OBJECTIVES
Set Mission Objectives to: text
미션 오브젝트를 설정합니다: 텍스트
47. SET NEXT SCENARIO
Load 'scenario' after completion of current game.
승리 후 다음 시나리오를 로드합니다.
다음 시나리오로 넘어가려면 같은 폴더 내부에 위치해 있어야 합니다.
48. SET RESOURCES
Modify resources for player: Set quantity resource.
플레이어에게 자원을 정합니다: 얼마만큼의 자원을 지정합니다.
49. SET SCORE
Modify score for player: Set quantity points.
플레이어의 점수를 정합니다: 얼마만큼의 점수를 지정합니다.
50. SET SWITCH
Set switch.
스위치를 설정합니다.
51. TALKING PORTRAIT
Show unit talking to current player for duration milliseconds.
유닛이 말하는 모션을 시간만큼 보여줍니다.
52. TRANSMISSION
Send transmission to current player from unit at 'location'.
Play 'WAV file'.
Modify transmission duration: Set number milliseconds.
Display the following text: text
특정 플레이어의 '로케이션'에 위치한 유닛을 강조합니다.
소리를 재생합니다.
해당 시간만큼 대화 애니메이션을 합니다.
화면에 텍스트를 표시합니다: 텍스트
53. UNMUTE UNIT SPEECH
Unmute all non-trigger unit sounds for current player.
음소거를 해제합니다.
54. UNPAUSE GAME
Unpause the game.
일시정지를 해제합니다.
55. UNPAUSE TIMER
Unpause the countdown timer.
카운트다운 타이머의일시정지를 해제합니다.
56. VICTORY
End scenario in victory for current player.
해당 플레이어가 승리하게 됩니다.
57. WAIT
Wait for duration milliseconds.
숫자만큼 기다리게 됩니다.
다만 동시에 다수의 WAIT 트리거를 발동할 경우 서로 꼬이는 버그가 있으므로
되도록이면 사용을 자제하거나 다른 방법으로 시간을 카운트하는 것이 좋습니다.
Scmdraft 2에도 마찬가지로 트리거 편집 기능이 있습니다.
먼저 기존의 트리거 편집 기능입니다.
먼저 Triggers - Classic Map Triggers에 들어가 줍시다.
그러면 이와 같은 창이 뜹니다.
마찬가지로 New 버튼을 눌러서 트리거를 하나 추가해 봅시다.
원하는 플레이어나 세력을 체크하고 OK를 눌러줍시다.
마찬가지로 조건부를 선택해 줍시다.
New 버튼을 눌러서 새로운 조건부를 만들어줍시다.
조건부 목록은 위에 있으니 생략할게요.
원하는 조건부를 작성하고 OK를 눌러줍시다.
다음으로 실행부입니다.
마찬가지로 New를 눌러 새로운 실행부를 만듭시다.
실행부 목록도 위에 작성했으니 생략하겠습니다.
그렇게 작성하고 OK를 눌러주시면 트리거를 만들 수 있습니다.
그리고 고급자용 텍스트 트리거 에디터도 있습니다.
Triggers - Trigger Editor에 들어가주세요.
그러면 다음과 같은 텍스트로 된 트리거 편집 창이 뜹니다.
여기서 EUD같이 기본 트리거 에디터로는 설정할 수 없는 것들을 지정할 수 있습니다.
다만 문법 하나라도 틀릴 경우 실행을 보장할 수 없으니 일반 사용자들은 기본 트리거 에디터를 사용하도록 합시다.
맵메이킹의 꽃인 트리거에 대하여 알아보았습니다.
참고로 트리거를 만들어 보고 반드시 버그가 있는지 테스트해보는 습관을 가져줍시다.
그럼 열심히 맵만드세요.
댓글