스타크 맵 트리거좀 가르쳐주세요

스타크 맵 트리거좀 가르쳐주세요

작성일 2007.08.06댓글 2건
    게시물 수정 , 삭제는 로그인 필요

안녕하세요 제가 트리거를 이용해서 맵을 만들려고 하는데요.(디플로메시 같은거요.)

 

 

일단 제가 사용할 트리거는

 

 

1. 화면 상단에 타이머가 표시되고 타이머가 2:00이 되면 미네랄이 자동으로 들어온다.

 

2. 비콘 옆에 서플라이를 짓거나 파일런을 지으면 타이머가 지나면 미네랄이 비콘 한개

 

당 1000원씩 들어온다.

 

3. 어떤 건물에서 유닛생산을 하면 그 유닛이 즉시 다른 유닛으로 바뀐다.

(Ex : 팩토리에서 벌쳐를 생산하면 영웅벌쳐로 바뀜)

 

4. 처음 맵을 시작하면 시민이 나오고 정해진 비콘에 들어가면 그 지역의 유닉특성을

 

지닌 국가로 선택이 된다  (Ex : 디플로메시 맵에서 첨에 국가 선택하는 것처럼.)

 

이상입니다. 꼭 가르쳐주세요 ^^ 내공 푸짐하게 드림  정확한 답변이면 감사내공도

 

드려요

 

 


#스타크 맵핵

profile_image 익명 작성일 -

윗분 답변에 스크롤 압박 주의하세요 ㅎㅎ

 

참고로 전 X-tra로 설명 할께요

혹시 세디터면 질문 추가 시키세요

트리거 이름 맞는걸로 바꿔드릴께요

 

1. 화면 상단에 타이머가 표시되고 타이머가 2:00이 되면 미네랄이 자동으로 들어온다.

 

우선은 타이머를 표시 해야겠죠

Condition 부분은 Always로 해줍니다

Action 에 Set Countdown timer 를 해주시면

Modify Countdown Timer: (A)Set (B)duration seconds.

A에 Set 을, B 에 0을 해줍니다

그리고 Pause Timer 로 해줍니다

 

그리고 다른 트리거로

컨디션은 Always

Action 에 다시 Set Countdown timer 을 해주시고

Modify Countdown Timer: (A)Set (B)duration seconds.

A에 Add 로, B 에 1 을 해줍니다

그리고 Preserve trigger를 설정 해줍니다

참고로 여기서 플레이어가 Allpayer이면 플레이어 수만큼 오르니까

한명만 선택 해주시는걸 주의 해야 합니다

(예를 들어 총 플레이어가 2명 일때 AllPlayer를 하면 2초씩 오릅니다)

 

다른 트리거를 만들어서

컨디션에 Countdown timer 로 해주셔서

Countdown timer is (A)duration game seconds.

A에 2분이니까 120 을 넣어줍니다

액션에서 SET RESOURCES를 선택 해줍니다

Modify resources for (A)player: (B)Set quantity (C)resource.

A에 미네랄을 줄 Player를 정해 주시고

B 에 원래 미네랄이 없다면 Set, 더해주고 싶다면 Add를 해주시고

지급 할 양을 정해줍니다

C에 미네랄이니까 Minerals 를 선택 해주셔야겠죠

 

2. 비콘 옆에 서플라이를 짓거나 파일런을 지으면 타이머가 지나면 미네랄이 비콘 한개

당 1000원씩 들어온다.

 

이건 상당히 애매한 질문이네요

제가 해본 디플로메시는 그냥 일정 시간 내에 몇개의 서플라이나 파일런이 있으면

미네랄이 일정량이 들어 온다 정도 였는데

이건 정확한 답변을 못드려서 죄송합니다

 

3. 어떤 건물에서 유닛생산을 하면 그 유닛이 즉시 다른 유닛으로 바뀐다.

(Ex : 팩토리에서 벌쳐를 생산하면 영웅벌쳐로 바뀜)

 

예를 주신걸로 하겠습니다

컨디션에 Always를 설정 해주시고

액션에 MOVE LOCATION 로 설정 해주시면

Center location lableled (A)location on (B)units owned by (C)player at (D)location

A에 벌처에게 따라갈 로케이션 B에 벌쳐, C 에 벌처를 소유한 플레이어

D는 Anywhere로 하시면 모든 맵에 있는 벌쳐로 할수 있고

특정한 공간을 만들어주시면 그 공간 안에 있는 벌처에게 로케이션이 따라갑니다

그 다음 REMOVE UNIT AT LOCATION 으로 설정 해주시고

Remove (A)quantity (B)units for (C)player at (D)location.

A에 1, B에 벌쳐, C에 벌쳐를 소유한 플레이어(여러 플레이어를 할수도 있겠죠)

D에 아까 Move Location에서 A로케이션

그리고 Create Unit 으로

Create (A)unit at (B)location for (C)player

A에 영웅 벌처, B에 A로케이션 C에 영웅벌처를 소유할 플레이어

Preserve Tigger 를 필수로 해주시고요

터보 트리거가 있으면 빠르게 됩니다

없으면 꽤 느리죠;

 

이렇게 해주시면 될것 같습니다

그냥 제 방식이고요 다른방법도 있을듯 하네요

 

4. 처음 맵을 시작하면 시민이 나오고 정해진 비콘에 들어가면 그 지역의 유닉특성을

지닌 국가로 선택이 된다  (Ex : 디플로메시 맵에서 첨에 국가 선택하는 것처럼.)

 

이것은 어느 국가로 선택 된다는게 애매한듯 하네요

만약 Flag 가 영국 이라면

어느 지역에 Flag 가 생기면 그 플레이어는 영국이 된다 로 설정 할수 있을듯 하고요

 

우선 컨디션에 Bring 을 해줍니다

(A)Player brings (B)quantity (C)units to (D)location.

A에 시민을 소유한 플레이어, B에 1

C에 시민, D에 위에서 말씀하신 비콘

그럼 액션에서 Create Unit을 해주세요

Create (A)quantity (B)unit at (C)location for (D)player

A에 1 , B에 Flag, C에 위에서 말했던 어느 지역 , D에 아까 시민을 소유한 플레이어

 

이렇게 하시면 비콘에 시민이 들어가면 어느 지역에 Flag가 생기게 됩니다

추가로 위에서 봤던 Remove Unit At Location 트리거로

시민까지 제거 해주시면 깔끔 하겠네요

 

영국이 되서 얻는 효과는 불분명 하기 떄문에 정확하게 해드리기 힘드네요

 

 

궁금증이 풀리셨으면 좋겠네요

더 궁금한거 있으시면 쪽지 주세요

profile_image 익명 작성일 -

<!--StartFragment-->

◆ CONDITIONS

1) ACCUMULATE : 뭔가를 ‘모으다, 축적하다’는 의미입니다.

Player accumulates quantity resources.

◇ Player : 이번 경우 자원을 모으는 주체를 말합니다. 그런데 이전 player 선택에서는 보지 못했던 player들이 있습니다.

․Current player - 이번 trigger가 적용되는 player

․Foes - 적군입니다.

․Allies - 같은 Force 안에 있는 player들이나, 동맹을 선택한 player들을 의미합니다. Foes와는 반대 의미입니다.

․Neural Player - Player 메뉴의 Settings...에서 Neutral(중립)로 선택했던 player들

․Non Allied Victory Players - Multiplayer 게임 중에는 Communication 대화상자에서 Allied Victory를 선택할 수 있지요. 그런데 Non Allied Victory Players들 사이에는 allied victory 체크박스(□)가 나타나지 않습니다.

◇ quantity : 수량을 지정할 때는 항상 Qualified Number 대화상자가 나타납니다. Number는 수량을 입력하는 곳인데 나머지 3가지는 무엇일까요?

At Least는 ‘적어도 Number에 입력된 수량만큼만 되면’이라는 의미이므로 ‘그 숫자 이상이 되면’이라는 말입니다.

At Most는 ‘그 숫자 이하가 되면’

Exactly는 ‘정확히 그 숫자만큼’.

◇ resources : 여기를 누르면 Resource type 대화상자가 나타납니다. 역시 3가지의 선택이 있습니다. Ore는 ‘광석’이라는 의미로 Mineral을 나타내고 Gas는 Vespene Gas를 나타내며 Ore and Gas는 두 가지 모두를 나타냅니다. 즉 quantity에서 500을 설정하고 Ore and Gas를 선택하면 Mineral과 Gas가 각각 500 이 됩니다.

2) ALWAYS : 말 그대로 ‘항상’ 그렇다는 것이므로 다른 Condition들과는 사용하지 말아야 합니다. 왜냐하면 다른 Condition들의 의미가 ALWAYS에 의해 묻혀버리기 때문이지요.

일반적으로 ALWAYS는 게임 시작 때 일어날 action들에 대한 상황으로 사용됩니다. ‘초기 자원의 양이나 초기점수’, 그리고 게임 시작할 때 나오는 ‘지시사항들’을 보내기 위한 상황으로써 ALWAY를 사용합니다.

3) BRING

Player brings quantity units to 'location'.

Player와 quantity는 앞에서와 같은 것입니다. 따라서 units와 location에 대해서만 설명합니다.

◇ units를 선택하면 Unit 대화상자가 나타납니다. 선택할 수 있는 Unit의 종류가 5가지 있습니다.

Any Unit은 모든 Unit을 포함하는 말입니다. 지상 유닛들(Ground Unit)과 공중 유닛들(Air Units)은 물론이고 건물들(Buildings)도 포함합니다.

Men은 지상 Unit과 공중 Unit들을 의미합니다. Men이라고 해서 Terran에게만 적용되는 것이 아니고 3종족 모두를 포함합니다.

Buildings는 건물들을 의미하지만 Factories는 건물들 중에서 생산이 가능한 건물을 의미합니다. Terran을 예로 들면 Barrack, Factory, Starport, Command Center(SCV 생산) 등이 그런 건물입니다. 실제 이동이 가능한 건물은 Terran의 건물들뿐이지만 그 위치에 건물을 짓는 것도 Bring에 해당됩니다. 즉 그 위치로 SCV, Probe, Drone을 이동시켜 건물을 지으면 Bring이 실행되는 것입니다.

Specific Unit을 선택하고 Pick Unit을 누르면 특정 Unit을 선택할 수 있습니다. Specific Unit 대화상자는 Mission Briefings 메뉴의 SHOW PORTRAIT에서 사용한 것과 같은 것입니다.

◇ location : 이 부분을 누르면 Location 대화상자가 나옵니다.

Layer 메뉴의 Location에서 지정한 지역(Location) 중 하나를 선택하면 됩니다. 만약 지도 전체를 대상으로 하려면 Anywhere를 선택하시면 됩니다.

Starcraft 게임들 중에는 ‘누구를 어디로 데려가면 승리하도록’ 만든 것들이 종종 있습니다. 예를 들면 ‘Zeratul을 Warp Gate 앞으로 보내면 승리하도록’한 것 같은 것입니다. 그런 게임은 Trigger의 Condition을 ‘BRING’으로 설정하고 Action 부분을 ‘VICTORY’로 한 경우입니다.

Location을 설정할 때, 높이와 unit의 종류(공중 or 지상)에 따라 6 가지로 나누었던 것을 기억하시죠? 그 설정에 따라 결과에는 심한 차이가 있다는 잊지 마세요.

4) COMMAND

Player commands quantity units.

여기서 Unit들은 ‘Player 메뉴의 Settings...’에서 Rescuable로 설정한 Unit도 포함한 것입니다.

예를 들어 Triggers 대화상자의 초기화면에 있던 3가지의 Trigger 중에서 2번째 것을 봅시다

CONDITIONS:

- Current player commands at most 0 buildings.

ACTIONS:

- End scenario in defeat for current player.

‘현재 선택된(Current) player가 0개 이하의 건물을 통제할 때, 즉 남아있는 건물이 없을 때는 current player가 게임에서 진(defeat) 것으로 하고 scenario를 끝낸다’라고 되어있습니다. 경우 주의할 것은 building들 중 Properties...에서 Invincible을 선택한 건물은 제외하고 quantity의 양을 지정해 주어야 한다는 것입니다. 왜냐하면 Invincible로 되어 있는 건물들은 언제까지나 파괴되지 않고 남아있으니까요.

그리고 Unit의 Properties...가 Hallucination으로 되어 있는 Unit들은 COMMAND에서 제외됩니다.

5) COMMAND THE LEAST

Current player commands the least units.

이 때 비교대상은 computer가 통제하는 player는 물론이고 중립(neutral) player 그리고 rescuable로 설정된 player들까지 모두 포함합니다.

6) COMMAND THE LEAST AT

Current player commands the least units at 'location'.

COMMAND THE LEAST와 같은 명령이지만 숫자를 비교할 때 특정지역(location)에 있는 Unit들의 숫자만을 비교한다는 점이 다르지요. 만약 특정지역에 한 player의 unit들이 들이 닥쳤을 때 어떤 action을 설정해 주고 싶으면 이 condition을 이용하면 됩니다.

7) COMMAND THE MOST : COMMAND THE LEAST와 반대.

Current player commands the most units.

8) COMMAND THE MOST AT : COMMAND THE MOST AT과 반대.

Current player commands the most units at 'location'.

9) COUNTDOWN TIMER : 카운트다운은 뒤에 나올 action의 하나입니다. 따라서 Set Countdown Timer를 포함한 action을 하나 만든 후에 이번 condition을 지정할 수 있습니다. 자세한 내용은 action 부분을 참고하세요.

Countdown timer is duration game seconds.

10) DEATHS

Player has suffered quantity deaths of unit.

또는

이해를 돕기 위해 예를 들어볼까요.

가령 ‘Fenix는 반드시 살아야 함’ 또는 ‘Jim Raynor는 반드시 살아야 함’이라고 되어 있는 게임에서 Fenix나 Jim Ranor가 죽으면 게임은 끝이 납니다. 물론 게임에서는 지는 것이죠. 그런 게임을 만들 경우 위의 DEATHS 명령을 이용하여 누군가 죽으면 게임에서 지는 것으로 설정을 할 수 있습니다.

또 ‘Command Center를 지켜라’라고 게임목표가 나왔을 때도 마찬가지겠죠. 이 때는 Command Center가 파괴되면 게임이 끝나도록 설정을 해 주면 됩니다.

11) ELAPSED TIME : ‘경과시간’을 의미합니다.

Elapsed scenario time is duration game seconds.

그런데 위에서 시간이 scenario time 또는 game seconds로 되어있지요. 이것은 우리가 일반적으로 생각하는 시간개념이 아니라 게임 상에서 또는 시나리오 상에서 계산하는 시간을 의미합니다. 예를 들어 시스템이 별로 좋지 못한 컴퓨터(가령 펜티엄 90 정도)로 게임을 한다고 합시다. 속도가 느려서 게임을 제대로 시작도 못했는데 시간은 게임과 상관없이 흘러서 공격을 해 온다거나 하면 좀 곤란하겠죠. 따라서 실제 게임의 속도에 따라 시간을 계산하는 것입니다. 이를 game second라고 부르지요.

ELAPSED TIME을 이용하는 예를 몇 가지 들어볼까요.

가령 ‘게임 시작 후 20초 후에 총공격’을 하도록 computer에게 명령을 내리고 싶을 땐 condition에서 ELAPSED TIME을 이용하고 action에서 AI Script라는 것을 사용하면 됩니다.

또 ‘게임 시작 후 몇 초 후에 지원군을 어느 위치에 보내고 싶으면 condition에서 ELAPSED TIME을 선택하고 action에서 CREATE UNITS(유닛생성)을 사용하면 됩니다.

12) HIGHEST SCORE : 최고의 점수를 획득했을 경우...

Current player has highest score points.

points를 선택하면 Score 대화상자가 나타납니다.

Total : Units, Buildings, Kills, Razing의 합한 점수.

Units : 생산한 Unit의 수와 종류에 따른 점수.

Buildings : 만든 건물의 수와 종류에 따른 점수.

Units and Buildings : Unit과 건물에 따른 점수.

Kills : 죽인 Unit의 수에 따른 점수.

Razings : 파괴시킨 건물의 수에 따른 점수.

Kills and Razings : Kills와 Razings를 합한 점수.

Custom : 사용자가 지정하는 점수로 action에서 설정.

근데 점수를 어떻게 아느냐 고요?

Action 부분에 가면 LEADER BOARD…라고 되어있는 기능들이 있는데 바로 그 기능들을 이용하면 화면에 점수가 나타나도록 할 수 있습니다.

그리고 condition에 HIGHEST SCORE만 선택해주면 곤란합니다. 왜냐하면 게임 시작 시에는 모든 player의 점수가 같은 상태이므로 모두가 최고점수를 가지고 있는 것이 됩니다. 따라서 설정해 놓은 action이 바로 실행되게 되지요. 그러므로 다른 condition들과 조합하여 사용해야만 합니다.

13) KILL :

Player kills quantity units.

또는

예를 들어 ‘Zerg의 Cerebrate 3개를 없애라’고 게임목표를 설정하고 싶으면 condition에 KILL을 이용하여 quantity에 3을 unit에 ‘Zerg Cerebrate’를 지정하고 action 부분에 VICTORY를 넣으면 됩니다.

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 : 지도를 만들다보면 이것저것 시험을 해보고 그 기능들을 익혀나가거나 확인해나가는 경우가 자주 있습니다. 이럴 때, 이미 만들어 놓은 Trigger들을 매번 지우고 새 Trigger들을 입력한다는 것은 신경 쓰이는 일입니다. 특히 지워야할 Trigger를 잠시 후 다시 사용해야 한다면 어떻게 해야할까요? 이런 겨우 condition에 NEVER를 입력하면 그 trigger는 절대 실행되지 않습니다.

물론 이미 만들어놓은 condition들이나 action들 앞에 있는 □에서 체크표시를 해제해 주어도 되지만 그 수가 많을 때는 이 또한 귀찮은 일이지요.

20) OPPONENTS :

Player has quantity opponents remaining in the game.

최대 8명의 player 가운데서 선택한 Player와 적대 관계에 있는 Player들, 그 중에서도 아직 패배하지 않고 남아있는 player의 수에 따라 어떤 action을 삽입하고자 할 때 사용하는 condition입니다. 가령 친구들과 연합해서 게임을 한다고 합시다. 그런데 모두 패배하고 혼자 남았을 때 경고하는 메시지가 뜨도록 하고 싶으면 어떻게 할까요?

OPPONENTS 메뉴에서 Player를 상대편 중에서 하나 또는 상대편 Force로 선택하고 quantity를 1로 해주면 되겠지요. 그런 후에 (경고)메시지를 보내는 action을 삽입해 주면 됩니다.

앞의 Force 메뉴에서 뒤로 설명을 미루었던 Allied Victory의 이야기를 해봅시다. 적(opponent)이 아닌 모든 player들은 ‘Allied Victory’로 연결되어 있습니다. 즉 OPPONENT condition에서 남은 적의 수가 0일 때는 현재 남아있는 player들은 모두 'Allied Victory'로 연결된 것입니다. 따라서 이 condition과 VICTORY action을 이용하면 ‘Allied Victory'를 가능하게 하는 지도를 만들 수 있는 있습니다. 즉 남은 적의 수가 0일 때 승리(Victory)하도록 만들면 되는 것이지요.

.21) SCORE :

Player score type score is quantity.

score type은 위의 points에서와 같이 ‘Score 대화상자’에서 설정합니다.

22) SWITCH

Switch is set.

스위치(Switch)란 것이 뭔가를 켜고 끌 때(On/Off) 사용하는 것 아닙니까. 여기서도 Switch는 Set과 Cleared의 2가지 값을 가집니다. 게다가 Switch의 개수가 256개나 되니까 총 512개의 경우가 존재합니다. Switch가 Set인지 Clear인지는 이전의 trigger에 있는 SET SWITCH action의 값에 따라 결정됩니다. (SET SWITCH에 대해서는 뒤에 나오는 Action 부분에서 다루게 됩니다.)

즉 이전에 있는 trigger에서 Switch가 설정되었다는 것은 앞의 trigger가 실행되었다는 것입니다. 앞의 trigger가 실행되면 Switch의 값도 설정되고 이어서 이번 trigger도 실행되는 것입니다. 마치 몇 개의 스위치들을 조합해서 불을 켰다 껐다하는 것과 같은 이치입니다.

좀 복잡하게 들릴지 모르겠는데, 어쨌거나 이 Switch란 것을 이용하여 몇 개의 trigger를 연결할 수 있습니다. 즉 앞의 trigger가 실행되면 그 다음 trigger가 실행되고 또 그 다음 trigger가 실행되는 식으로 말이죠. 이해가 잘 안 되실 지도 모르겠지만 뒤에 나오는 ‘SET SWITCH’ action을 보고 나면 이해가 되시리라 생각됩니다.

위에서 Switch Set을 누르면 Switch Condition 대화상자가 나타납니다.

앞에서 언급한 것처럼 각 Switch에는 2개의 값이 가능합니다. 왼쪽 그림의 Switch State 부분에 있는 Set과 Cleared가 바로 그것입니다. 즉 ‘어느 Switch가 Set 되었는지 Cleared’ 되었는지를 나타내는 것이지요.

아래 Rename... 버튼을 눌러서 Switch의 이름을 바꾸어 줄 수 있습니다.

◆ ACTIONS

1) CENTER VIEW

Center view for current player at 'location'.

게임 중 갑자기 화면이 다른 곳으로 옮겨가는 것을 본 적이 있을 겁니다. 일반적으로 게임을 하는 사람에게 무언가 알려주고자 할 때 그런 방식을 이용합니다. 화면이 옮겨진 후 그 지역에 대해 설명하는 말이 글자와 함께 나타납니다.

이렇게 화면을 player의 의도와는 관계없이 특정 위치로 옮기고 싶을 때 CENTER VIEW 액션을 이용합니다. 옮기고자하는 지도상의 위치를 location에서 설정해 줍니다.

2) COMMENT

Comment: (Trigger의 내용을 요약하는 설명)

comment

Triggers 대화상자를 열면 기존에 만들어 놓은 trigger들이 나타나는데 모두 CONDITIONS:와 ACTIONS:로 나뉘어져 다. 그런데 이것만 보고는 무슨 내용인지 쉽게 감이 오지 않는 경우가 있다. 그럴 때는 Actions에 COMMENT을 하나 추가한다. comment 부분을 누른 후 ‘trigger에 대한 설명이나 이름이 될 만한 내용’을 입력한다. 그러면 trigger 대화상자에는 comment에서 적어준 내용만 나온다. 이후에 지도를 편집할 때도 훨씬 알아보기가 좋다.

3) CREATE UNITS

Create quantity unit at 'location' for player.

어떤 게임을 하다보면 게임 시작 시에는 없던 unit들이 갑자기 나타나는 경우가 있습니다. 물론 어떤 상황을 설정해 놓고 그 상황과 맞아떨어졌기 때문이지요. 그런 경우에 이 action을 선택합니다.

location에서 Anywhere를 선택하면 지도의 중심 부분에 나타납니다.

for player 부분에 대해서 조금 더 설명을 할까요. 예를 들어 지금 게임에 4명의 player가 있다고 합시다. 그리고 4명 모두에게 CREATE UNITS action이 지정되어있습니다. ‘Create 1 Zealot at Location 0 for Player 1’라고 말이지요. 그러면 지정된 condition이 4명 모두에게 만족될 때까지 1명씩 총 4명의 Zealot이 Location 0에 나타나게 됩니다. 즉, 현재 trigger의 주체가 되는 player가 Player 1의 적이든 동맹이든 관계없이 실행된다는 것입니다.

또 재미있는 것은 Player 1이 Terran이나 Zerg라도 Zealot (Protoss의 unit)이 Player 1의 일부로서 나타난다는 것입니다. 이 명령을 이용하면 rescuable을 이용하지 않고도 2 이상의 종족을 가지고 게임을 할 수 있습니다.

4) CREATE UNITS WITH PROPERTIES

Create quantity unit at 'location' for player.

Apply properties.

CREATE UNITS와 같은 명령입니다. 다른 점은 ‘나타나는 unit의 속성을 설정’할 수 있다는 것이지요. unit의 properties에 대해서는 Edit 메뉴에서 설명했습니다.

5) DEFEAT :

End scenario in defeat for current player.

6) DISPLAY TEXT MESSAGE

Display for current player:

text

게임 중 뭔가 설명하는 글이 화면에 나타나는 것을 보았을 겁니다. 때로는 대화형식으로 되어 있는 경우도 있고 혼자 나와서 설명하는 경우도 있었지요. 바로 그런 글들을 여기서 입력합니다. 경고 메시지 같은 것도 여기서 입력하시면 됩니다.

text를 누르면 Action Text 대화상자가 나타납니다 이곳에 원하는 글을 적어주면 됩니다. 그런데 주의 할 것은 이 글들이 게임 중 화면에 보여지기 위해서는 대화상자 ‘오른쪽에 있는 Always Display’를 선택하거나 게임 시작 후 MENU(F10)에서 Options를 선택하고 Sound를 선택한 후 □Subtitles On을 선택해 주어야합니다.

7) DRAW

End the scenario in a draw for all players.

모든 player들이 이기거나 지는 것 없이 비긴 것으로 합니다. 참고로 여기서 ‘draw’란 게임들이 ‘비기는 것’을 의미하고 ‘end in a draw’란 ‘동점으로 끝나다’라는 뜻입니다. 영어사전 찾아 확인해보세요.

8) GIVE UNITS TO PLAYER

Give quantity units owned by player at 'location' to player.

① ②

특정위치(location)에서 ②번 player에게 준다 >

①번 player가 가진 unit들을 ②번 player에게 줄 수 있다. 즉 소속을 ①번에서 ②번 player로 바꾸는 것입니다.

player의 종족이 같지 않아도 됩니다. 가령 ②번 player가 Protoss이고 ‘Terran인 ①번 player’가 가진 Medic이 필요하다면 GIVE UNITS TO PLAYER를 이용하여 Medic을 줄 수 있습니다.

9) KILL UNIT

Kill all units for player.

물론 이 action의 실행은 computer가 합니다. 여기서 지정된 unit들은 어디에 있든 모두 죽거나 파괴됩니다. 예를 들어 게임 시작 때나 게임 중에 건물이 갑자기 폭발하는 것을 종종 볼 수 있습니다. 그런 효과를 내기 위해서 바로 이번 action을 사용하는 것이지요. 또는 게임 목표를 정해두고 목표가 실행되면 적의 모든 기지와 unit들이 폭파되도록 한 다음 게임을 끝내면 아주 그럴 사하게 보입니다.

10) KILL UNITS AT LOCATION

Kill quantity units for player at 'location'.

player에게 소속된 unit들 중에서 특정한 지역 내에 있는 몇 명(quantity)을 죽이라는 명령입니다. 물론 빌딩의 경우도 가능합니다.

quantity를 누르면 Number of Units 대화상자가 나타납니다. 기본적으로 아랫부분의 All Units가 선택되어 있는데 이것은 선택된 종류의 unit을 모두 죽이라는 것입니다. 원하는 숫자를 지정하려면 All Units 부분의 체크표시를 해제하고 1~255 사이의 숫자를 입력합니다.

11) LEADER BOARD(CONTROL AT LOCATION)

Show Leader Board for most control of units at 'location'.

Display label: 'label'.

보는 사람이 무슨 의미인지 알도록 표식(label)을 써준다. >

Leader Board란 ‘순위나 성적을 보여주는 판’이란 뜻입니다. 여기서는 특정지역에서 지정된 unit을 가장 많이 가진 순서와 그 수를 보여줍니다. Leader Board는 게임 중 화면의 왼쪽 상단에 나타나며 색깔로 player를 구분합니다.

label는 Leader Board의 성격을 나타내는 말로서 ‘가장 순위가 높은 player의 옆’에 표시됩니다. 따라서 보는 사람이 leader board의 내용이 의미하는 것을 쉽게 알 수 있도록 적절한 내용을 적어주어야 합니다.

12) LEADER BOARD (CONTROL)

Show Leader Board for most control of unit.

Display label: 'label'

위치와 상관없이 unit의 수에 따른 점수입니다.

13) LEADER BOARD (GREED)

Show Greed Leader Board for player closest to accumulation of number ore and gas.

player들이 모은 자원의 양을 보여주는데 number 부분에 지정해준 양이 기준이 됩니다. 다시 말해서 게임 시작 때 자원의 양이 number 부분의 수에 가장 근접한 player가 제일 위쪽에 위치하는 것이지요.

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'.

목표로 한 숫자(number)에 가까운 순서대로 Leader Board를 보여줌 >

unit의 많고 적음과 관계없이 number 부분에 입력한 숫자가 순위의 기준이 됩니다. 즉 목표(GOAL)를 정해두고 목표에 가까울수록 순위가 결정됩니다.

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'

number 부분에 적어준 숫자가 목표(GOAL)가 됩니다. 따라서 ‘많이 죽이고 적게 죽이고’를 떠나 number에 적어준 숫자에 가까울수록 순위가 올라갑니다.

20) LEADER BOARD GOAL (POINTS)

Show Leader Board for player closest to number points.

Display label: 'label'

points에서 어떤 점수로 할 것인지 선택하고 기준이 될 숫자를 number에 적어줍니다.

21) LEADER BOARD GOAL (RESOURCES)

Show Leader Board for player closest to accumulation of number resource.

Display label: 'label'

resource에서 어떤 자원으로 할 것인지 선택하고 기준이 될 숫자를 number에 적어줍니다.

22) LEADER BOARD COMPUTER PLAYERS

Set use of computer players in leaderboard calculations.

지금까지 본 것처럼 LEADER BOARD에 표시되는 player는 computer가 통제하거나 중립(neutral), rescuable로 설정된 player들을 모두 포함한 것이었지만 여기서 그들이 leader boarder에 나타날 지 아닐지를 선택할 수 있습니다.

Set을 누르면 Set State 대화상자가 나타납니다. 위에서 열거한 player들을 모두 포함하려면 Enable을 그렇지 않으려면 Disable을 선택합니다. 그리고 Toggle을 Enable된 것은 Disable로 또는 그 반대로 만드는 것입니다. 예를 들어 한 trigger에서 이번 action을 Enable이나 Disable로 선택한 상태로 포함하고 있다고 합시다. 그리고 그 아래에 위치하는 또 다른 trigger에서 이 action을 실행하고 Toggle을 선택했습니다. 그러면 원래 Enable로 되어있던 것은 Disable로 Disable로 된 것은 Enable로 바뀐다는 것입니다.

게임 시작 시에는 자신의 Leader Board만 보여주다가 시간이 얼마 지난 후부터는 다른 player들의 Leader Board도 함께 보여주기를 원한다면 어떻게 할까요?

우선 이번 action을 trigger에 삽입하되 Disable을 선택한 상태로 삽입합니다. 그리고 또 다른 trigger를 만든 후에 이번에는 Toggle을 선택한 상태로 이번 action을 삽입합니다. 그러면 두 번째 trigger가 실행될 때까지는 현재 player의 성적만 보여주다가 두 번째 trigger가 실행되면 모두의 성적을 함께 보여줍니다. 이해가 되시는지?

Enable, Disable, Toggle의 선택은 뒤에 나오는 다른 action에서도 사용됩니다.

☞ 지금까지 Leader Board에 대한 내용들을 알아보았습니다. 한 가지 주의 할 것은 여러 개의 Leader Board를 action에 포함시키더라도 제일 마지막에 적어준 하나만이 화면에 나타난다는 것입니다. 따라서 게임 내내 같은 내용만을 보여줍니다. 만약 내용의 변화를 원한다면 위에서 설명한 대로 Toggle을 이용하면 됩니다.

23) MINIMAP PING

Show minimap ping for current player at 'location'.

mini-map(미니 맵)이란 게임화면의 왼쪽아래에 있는 조그만 지도를 말합니다. 물론 Campaign Editor에 있는 조그만 지도도 mini-map이라고 부르지요. 그런데 가끔씩 게임 중 mini-map에 녹색 막대가 4방향에서 모여서 하나의 사각형을 만드는 것을 본적이 있을 겁니다. 마치 과녁(Target)을 나타내듯 말입니다. 이런 것을 여기서 ‘minimap ping’이라고 합니다. 이것은 게임 하는 사람들의 시선을 어떤 곳으로 끌기 위해서 사용하는 방법입니다.

24) MODIFY UNIT ENERGY

Set energy points for quantity units owned by player at 'location' to percent%.

Wraith, Ghost, Battlecruise, Queen, Dark Archon 등 Energy를 가진 unite들의 에너지량을 게임 중에 설정할 수 있는 방법입니다. 가령 특정 사건이 발생하면 이들의 에너지를 100%로 채워준다던가 할 때 사용합니다. 게임 시작 시의 에너지량을 정해주려면 Edit 메뉴의 Properties...를 이용한다는 것 기억하시죠.

25) MODIFY UNIT HANGAR COUNT

Add at most quantity to hangar for quantity units at 'location' owned by player.

게임 중 Carrier나 Reaver에게 Interceptor나 Scarab을 채워주기 위한 명령이다. quantity에 적어준 숫자 이하의 양을 채워줍니다. 이것 역시 Edit 메뉴의 Properties...를 이용해서 게임 시작 시의 보유량을 지정할 수 있던 것 기억하시죠.

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.

① ②

그 보유량을 ②만큼으로 바꾼다 >

자원은 Neutral Units로 되어 있으므로 특정 player에게 소속되지는 않습니다. 그러나 일단 Vespene Gas를 얻기 위해서 ‘Terran의 Refinery’나 ‘Protoss의 Assimilator’ 또는 ‘Zerg의 Extractor’를 설치하면 일단 Gas의 소유는 건물을 설치한 player에게로 넘어갑니다. 물론 그 건물이 파괴되기 전까지 만입니다. 여기서 player가 설정되는 것은 바로 그런 이유입니다. 따라서 위의 건물이 설치되지 않은 Gas들은 영향을 받지 않습니다. 그리고 resource라고 되어있지만 Mineral은 포함되지 않고 Vespene Gas에만 해당되는 내용입니다.

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'.

① ②

이번 action은 말 그대로 location을 원하는 곳으로 옮기는(move) 것이다. 즉 Campaign Editor에서 만들어 놓은 location들은 게임 중에라도 그 위치를 옮길 수 있다는 것이다. 만약 특정 Unit(들)에게 시선을 집중시키고 싶으면 MOVE LOCATION을 이용해서 location을 Unit(들)에게로 옮긴 후 CENTER VIEW를 이용하면 항상 원하는 Unit에게로 화면을 옮길 수 있는 것이다.

그리고 ②번 location 안에 지정한 unit들이 없을 때는 ②번 location의 중앙에 ①번 location을 위치시키게 된다.

30) MOVE UNITS

Move quantity units for player at 'location' to 'destination'.

일반 unit들은 물론 Building들도 옮길 수 있습니다. 이동 불가능한 Terran의 건물들과 Protoss․Zerg의 건물들을 옮기고 싶을 때 MOVE UNITS을 이용하면 됩니다.

31) MUTE UNIT SPEECH

Mute all non-trigger unit sounds for current player.

‘치열한 전투 중 갑자기 소리가 작아지고 어떤 unit이 말을 합니다. 다른 모든 소리가 작아졌으므로 말하는 소리가 확실히 들립니다’. 이런 경우가 게임 중 간간이 있습니다. 어떤 메시지를 말로서 전달 하고자 할 때 다른 unit들의 말소리나 전투에서 나는 소리들이 그대로 다 들리면 제대로 전달이 되지 않을 겁니다. 그럴 때 사용하는 것이 바로 이번 action입니다. 이 action을 실행하면 말소리는 모두 사라지고 그 외에 음악소리나 전투음향들은 반정도로 소리가 줄어듭니다. 일반적으로 뒤에서 설명할 TRANSMISSION과 함께 사용합니다.

32) ORDER

Issue order to all units owned by player at 'location':

order to 'destination'.

destination 지역으로 움직이거나(Move) 순찰을 하거나(Patrol) 공격을 하도록(Attack). >

드디어 unit들의 행동을 지정하는 action이 나왔습니다. 명령의 종류는 3가지인데 order 부분을 누르면 나타납니다. Move나 Attack 선택하면 지정한 위치(location)로 이동하거나 공격해갑니다. 그리고 Patrol을 누르면 현재 위치에서 지정한 위치 사이를 왔다갔다하면서 적이 나타나면 죽이고 다시 왔다갔다하기를 반복합니다.

33) PAUSE GAME

Pause the game.

게임을 잠시 중단합니다. 해제하려면 UNPAUSE GAME을 같은 trigger에 추가해 줍니다. 만약 UNPAUSE GAME이 없으면 trigger 안의 모든 action들이 끝나는 순간 자동으로 해제됩니다. PAUSE GAME은 Multiplayer 게임에서는 적용이 안됩니다. 그리고 computer가 통제하는 player에게 이 action을 적용해봤자 아무 의미가 없겠죠.

Game이 pause되어있을 때는 다음과 같은 action들은 실행이 되지 않습니다.

․CENTER VIEW

․CREATE UNITS

․KILL UNIT

․KILL UNITS AT LOCATION

․REMOVE UNIT

․REMOVE UNIT AT LOCATION

34) PAUSE TIMER

Pause the countdown timer.

35) PLAY WAV

Play 'WAV file'.

36) PRESERVE TRIGGER : 정상적인 trigger들은 trigger 안의 모든 action들이 실행되고 나면 기능을 상실합니다. 즉 trigger들은 단 한번만 실행됩니다. 만약 어떤 trigger가 게임 중 계속해서 유효하도록 하고 싶을 때, 이번 action을 추가해주면 됩니다.

어떤 trigger에서 condition이 Always로 되어있고 action 부분에 PRESERVE TRIGGER가 추가되어 있으면 매 2초마다 trigger가 실행됩니다.

37) REMOVE UNIT

Remove all units for player.

앞에서 설명한 KILL UNIT과 거의 같지만 unit들이 죽는 것이 아니라 단지 사라지는 것이 다르지요. 아무런 흔적도 남기지 않고 화면상에서 깔끔하게 사라집니다.

38) REMOVE UNITS AT LOCATION

Remove quantity units for player at 'location'.

39) RUN AI SCRIPT

40) RUN AI SCRIPT AT LOCATION

※ 39와 40 번은 action의 설명이 끝난 후 따로 하도록 하겠습니다.

41) SET ALLIANCE STATUS

Set Player to Ally status.

현재 trigger의 주체가 되는 player와 여기서 선택된 Player와의 동맹관계를 결정합니다. 가령 처음에는 중립(Neutral)으로 해 두었다가 누군가 침입을 하면 경고 메시지를 보내고 경고를 무시하면 적(Enemy)으로 바뀌도록 할 수 있는데 Starcraft의 Protoss Campaign 중 Terran에게 그런 설정을 해놓은 경우가 있었지요.

42) SET COUNTDOWN TIMER

Modify Countdown Timer: Set duration seconds.

게임들 중에는 시간을 정해놓고 그 시간 안에 어떤 일을 끝내도록 정해놓은 것들이 있습니다. 화면 위쪽에 시간이 분ː초(가령 2ː34)의 형식으로 나타납니다. 바로 여기서 그 시간을 설정하고 나타나게 합니다. duration 부분에서 시간을 정해줍니다.

Set 부분을 눌러서 3가지의 선택을 해야합니다.

Set은 시간을 지정하는 것입니다. 즉 ‘시간을 얼마로 정한다’라고 할 때 사용하는 것입니다.

Add는 시간을 더해 주는 것입니다. 처음에 시간을 조금만 준 상태에서 어떤 일을 하면 그때마다 시간을 조금씩 더 추가해 줄 때 사용하면 됩니다.

Subtract는 시간을 줄입니다. 즉 해서는 안될 일을 했을 때 주어진(Set) 시간에서 얼마간을 뺄 수 있습니다. ‘Subtract 50 seconds’이라고 지정해 주면 위에서 Set으로 지정해준 시간에서 50초를 빼버립니다.

43) SET DEATHS

Modify death counts for player: Set quantity for unit.

특정 unit의 죽은 수를 count합니다.

44) SET DOODAD STATE

Set doodad state for units for player at 'location'.

새 지도를 만들 때 총 8개의 Tileset 중에서 하나를 골라서 사용했습니다. 기억하시겠죠? 그 중에 Installation이라는 Tileset이 있는데 그 안에는 특이한 Doodad들을 많이 포함하고 있습니다. 가령 땅속에서 나타나는 포탑(Turret)이나 아래위로 열고 닫히는 문(Door)들, 벽에서 불이나 미사일을 발사하는 장치 등 다른 Tileset의 지도에서는 볼 수 없는 요상한(?) 것들이지요. 여기서는 그런 Doodad들의 상태를 설정하는데 이것도 설명하려면 양이 좀 많습니다. 따라서 자세한 내용은 뒤의 예제에서 따로 다루고자 합니다.

45) SET INVINCIBILITY

Set invincibility for units owned by player at 'location'.

Edit 메뉴의 Properties...에서 설정했던 Invincible이란 것을 기억하시죠. 바로 Unit을 슈퍼맨으로 만드는 설정이었는데요. 바로 그 Invincible을 게임 중에 설정할 수 있는 것입니다. Set을 선택하면 역시 Enable, Disable, Toggle의 3가지 선택이 있습니다. Enable은 unit을 무적으로 만드는 것이고 Disable을 선택하면 원래 무적이었던 unit을 정상적으로 만들어 줍니다. 바로 인간이 된 슈퍼맨이지요. Toggle은 unit의 현재 상태에 따라 결과가 달라집니다. 즉 현재 unit이 보통상태이면 무적으로 만들고, 무적으로 되어있으면 정상상태로 만듭니다.

46) SET MISSION OBJECTIVES

Set Mission Objectives to:

text

게임 중 Mission Objective를 바꿀 때 사용합니다. 게임을 하다보면 처음에 주어진 임무를 끝내고 나서 새로운 추가임무가 주어지는 경우가 있습니다. 그런 것을 설정할 때 이action을 사용합니다. 물론 여기에 입력한 내용이 실제 게임 내용에 영향을 미치는 것은 아니지요. 처음부터 2개 이상의 게임 목표를 정해놓고 게임 초반에는 한 개의 임무만 던져주고 그것을 해결하면 두 번째 임무를 해결하라고 알려주는 것뿐입니다. 잘 아시다시피 Mission Objective의 내용은 Mission Briefings...에서 입력합니다. 그것이 게임시작부터 게임목표로서 MENU(F10)의 Mission Objectives에 나타납니다. 그러나 일단 SET MISSION OBJECTIVES가 들어있는 trigger의 condition이 만족되기만 하면 text에 입력해준 내용이 MENU의 Mission Objectives에 나타납니다. 물론 이내용은 화면상에 나타나는 것이 아닙니다. 따라서 앞에서 했던 DISPLAY TEXT MESSAGE를 이용해서 player들에게 새로운 Mission Objective가 생겼다고 알려주어야 합니다.

47) SET NEXT SCENARIO

Load 'scenario' after completion of current game.

여러 개의 game을 연결해서 한 개의 큰 게임을 만들 때 사용하는 action입니다. 줄거리를 정한 후에 여러 개의 시나리오를 연결해서 하나의 게임을 만들 수 있지요.

48) SET RESOURCES

Modify resources for player: Set quantity resource.

player에게 줄 자원의 양을 결정합니다. Set 부분을 누르면 역시 Set, Add, Subtract의 세 가지가 나타납니다.

Set은 자원의 양을 지정해 주는 것이고 Add는 현재 가지고 있는 자원에 얼마(quantity)를 추가해 줄 때 사용하고 Subtract는 현재 자원에서 얼마를 뺄 때 사용합니다.

49) SET SCORE

Modify score for player: Set quantity points.

위의 명령과 같지만 자원이 아니라 점수(Score)를 지정해 줍니다.

50) SET SWITCH

Set switch.

앞의 Condition에서 SWITCH condition에 대해서 설명을 드렸었죠. 바로 여기 나오는 SET SWITCH action과 연결해서 사용하는 것입니다.

Set switch. 부분을 누르면 Switch Action 대화상자가 나타납니다. Set은 Switch를 Set으로 설정하는 것이고 Clear는 Cleared로 설정하는 것입니다. 그런데 Toggle과 Random은 무엇일까요?

Toggle은 앞에서도 여러 번 보았듯이 이전 값에 따라 결과가 달라지는 것입니다. 즉 Switch가 Set으로 되어있는 것은 Cleared로 Cleared로 되어있는 것은 Set으로 만듭니다. Random은 두 값 중에서 임의로 하나를 고르는 것입니다. Rename...버튼을 눌러 Switch의 새로운 이름을 지정할 수 있습니다.

51) TALKING PORTRAIT

Show unit talking to current player for duration milliseconds.

게임이 끝날 때쯤, 중심 되는 인물 몇 명이서 대화를 하는 것을 종종 봅니다. 실제 그 대화가 게임의 줄거리에 대한 내용이지요. 그 때 원하는 unit의 얼굴이 화면 아래에 나타나게 하려면 이번 action을 사용합니다. 이것은 DISPLAY TEXT MESSAGE와 함께 사용하면 됩니다. 즉 어떤 메시지를 글로 보여주면서 마치 특정 unit이 말하는 것처럼 보이게 하지요. 게다가 WAV 파일을 이용해 목소리까지 넣으면 금상첨화(錦上添花)이겠군요.

하지만... 이제 나오는 TRANSMISSION을 이용하면 이 모든 것을 한꺼번에 해결할 수 있습니다.

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

Show speaking animation for Slot Number.

Play 'WAV file'.

Modify transmission duration: Set number milliseconds.

Display the following text:

text

( Mission Briefing에서의 Transmission 내용 )

이번 action은 Scenario 메뉴의 Mission Briefings...에서 했던 TRANSMISSION과 거의 같습니다. 제일 위의 한 줄이 약간 다른데요. 여기서는 unit의 얼굴이 나타나는 곳이 한 곳 뿐이므로 Slot Number를 지정해 줄 필요가 없습니다. 그러나 SHOW PORTRAIT 명령이 없기 때문에 unit을 지정해 주어야 합니다. unit은 지도상의 특정위치(location)에 있는 unit을 지정해 줍니다. TRANSMISSION이 실행되면 작은 지도(mini-map)에 앞에서 설명한 ping이 나타납니다. 이때 키보드의 스페이스 바를 누르면 transmission을 보내는 unit이 있는 곳으로 화면이 이동합니다. 게임을 통해 보았듯이 transmission이 실행되는 동안에는 다른 기능들은 모두 멈춘 상태가 됩니다.

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.

실질적인 Mission Objective(s)를 설정하는 곳이 바로 여기입니다. 즉 VICTORY action의 앞에 설정해준 condition들이 실제로 게임목표가 되는 것이지요. 그 condition들이 만족되어야 현재 player가 승리한 것으로 되니까요.

57) WAIT

Wait for duration milliseconds.

DISPLAY TEXT MESSAGE 등을 이용하여 메시지를 보낼 때와 같이 다른 action의 실행을 잠시 중지시키고 싶을 때 WAIT action을 사용합니다.

☞ Action들 중에는 'Blocking Action'이라는 것이 있습니다. 배구에서 보듯 Blocking이란 ‘어떤 일이 일어나지 못하도록 저지하는 것’을 의미합니다. 따라서 Blocking Action이 실행 중 일 때에는 다른 Action들은 실행이 정지된 상태입니다. Blocking Action에는 다음과 같은 것들이 있습니다.

․CENTER VIEW

․TRANSMISSION

․WAIT

◆ AI script

Action Trigger의 39․40번 명령에 대한 설명을 여기서 합니다. 바로 AI script에 관한 내용인데요. ‘AI’란 Artificial Intelligence(인공 지능)의 약자입니다. 즉 컴퓨터에게 인공 지능을 부여하는 것이 바로 AI script입니다. 좀 거창하죠? 그리고 script(스크립트)란 대본이나 각본을 의미합니다.

Use Map Setting을 이용해서 게임을 할 경우 AI script를 설정해주지 않으면 computer가 통제하는 player들은 오직 자신들의 방어만 수행합니다. 새로운 건물을 짓거나 병력을 모아 공격을 해오거나 전략을 짜는 행동 따위는 절대 하지 않지요. 그러나 일단 AI script를 이용하면 다양한 행동이 나타나게 할 수 있습니다. 게임의 난이도를 지정하는 것도 바로 이 부분입니다. 설정에 따라서는 아주 교활한 행동들도 보여줍니다.

1) RUN AI SCRIPT

Execute AI script 'script'.

script 부분을 클릭하면 실행 가능한 AI script들의 목록이 나타납니다. 여기는 3가지의 script가 있습니다.

▷ Send all Units on Strategic Suicide Missions :  컴퓨터가 통제하는 모든 unit들이 때지어 공격을 해옵니다. 한 번에 한 개의 목표물(target)을 정해서 파괴되거나 죽을 때까지 공격합니다. 이러한 공격은 ‘공격당하는 player’의 모든 unit들과 건물들이 파괴될 때까지 계속됩니다. 물론 그렇게 되기 전에 막아야겠죠.

▷ Send all Units on Random Suicide Missions : 이 번에도 때지어 쳐들어옵니다. 그런데 이번 script를 실행하면 눈에 보이는 것은 닥치는 대로 공격을 합니다. 즉 위에서처럼 목표를 정한다음(Strategic) 공격하는 것이 아니라 눈에 보이는 것은 아무 것이나(Random) 공격을 하는 것입니다. 따라서 각 unit들이 모두 모여 한 target을 공격하는 것이 아니라 따로따로 공격을 합니다.

▷ Switch Computer Player to Rescue Passive : 컴퓨터가 통제하는 모든 unit들과 건물들 그리고 중립(neutral)으로 되어있는 player가 모두 rescuable로 바뀝니다. 즉 이 script가 실행되면 1인용 게임의 경우 지도상의 모든 unit을 사람이 통제하는 unit으로 바뀌게 됩니다. 즉 적이 모두 사라지는 것이지요. 따라서 게임을 끝내기 위한 것이 아니라면 혼자 하는 게임에는 별 의미가 없습니다.

Multi-player 게임을 할 때 많이 밀리는 player에게 지정해 줄만한 script입니다.

2) RUN AI SCRIPT AT LOCATION

Execute AI script 'script' at 'location'.

이번 script는 RUN AI SCRIPT에 장소(location)설정만 추가된 것처럼 보입니다. 그러나 script를 눌러 보면 그렇지 않다는 것을 아시게 됩니다. 이번에는 총 42개의 명령이 존재합니다. 바로 이 명령들이 게임의 레벨(난이도)을 지정하고 특수한 기능들을 가능하게 하는 부분입니다.

어떤 scrip들은 종족의 이름만 다를 뿐 나머지는 같은 내용입니다. 따라서 게임레벨은 같고 적용되는 종족만 다를 뿐입니다. 그리고 자세히 보면 어떤 것들은 같은 내용인데 이름 맨 앞에 ‘Expansion’이란 말이 붙어있는 것이 있고 그렇지 않은 것도 있습니다. 그것은 Brood War에서 추가된 unit이나 기능을 사용하는지 아닌지에 대한 차이입니다. 즉 Expansion이란 말이 앞에 붙은 script를 실행하면 Brood War에서 추가된 unit과 기능들을 사용하지만 그렇지 않은 script를 실행하면 Starcraft에서 사용했던 unit들과 기능만 이용합니다.

▷ Terran (Expansion) Custom Level

Zerg (Expansion) Custom Level

Protoss (Expansion) Custom Level

컴퓨터가 통제하는 unit들은 건물을 짓고 계속해서 새로운 자원을 찾아서 기지를 확장해 나갑니다. 그리고 적을 발견하면 공격을 시작합니다.

▷ (Expansion) Terran Campaign Easy : 오직 기본적인 건물과 unit들만 생산합니다. 따라서 Wraith의 ‘Clocking’이나 Goliath의 ‘Charon Boosters’, Tank의 Siege 모드 등 특수기능들은 사용하지 않습니다.

▷ (Expansion) Terran Campaign Medium : 기본적인 unit들은 모두 생산하고 특수기능들을 발전시키고 upgrade도 합니다. 그러나 Science vessel과 Bunk는 생산하지 않습니다.

▷ (Expansion) Terran Campaign Difficult : 이제 모든 unit들을 생산하고 그에 따른 모든 기능을 발전시킵니다.

▷ (Expansion) Terran Campaign Insane : 모든 unit들을 생산하고 모든 기능을 발전시키고 upgrade합니다. 그러고 난 후 공격을 해옵니다. 게임 제작사(Blizzard사)의 표현을 빌리자면 ‘school you in the art of playing Starcraft’ (게임 하는 법에 대해서 한 수 가르쳐준다)라고 합니다. 그러나 이 script만으로는 그런 기능이 부족한 듯합니다. 앞에서 설명한 action들과 다른 script들을 조합해야 원하는 효과가 나올 것입니다.

▷ (Expansion) Terran Campaign Area Town : 컴퓨터는 오로지 자원을 모으기만 합니다. 절대로 공격은 하지 않지요. 따라서 Starcraft를 처음 대하는 사람들에게 이것을 이용해서 게임을 만들어주면 좋겠지요.

▷ (Expansion) Zerg Campaign Easy : 모든 기본 unit을 생산합니다. (Zergling, Mutalisk 등)

▷ (Expansion) Zerg Campaign Medium : 모든 기본 unit들을 생산하고 기능 등을 개발합니다. 여기서는 Ultralisk까지 생산합니다.

▷ (Expansion) Zerg Campaign Difficult : 모든 unit들을 생산하고 가능한 모든 기능들을 개발합니다.

▷ (Expansion) Zerg Campaign Insane : 모든 unit을 생산하고 모든 기능들의 개발합니다. 그리고 공격도 해오지요. Terran의 경우와 같습니다.

▷ (Expansion) Zerg Campaign Area Town : 역시 자원을 모을 뿐 공격을 하지 않습니다.

▷ (Expansion) Protoss Campaign Easy : ‘Scout’이 생산될 때까지 모든 기본 unit들을 생산합니다.

▷ (Expansion) Protoss Campaign Medium : ‘Carrier’가 생산되기 전까지 모든 unit들과 기능을 개발합니다.

▷ (Expansion) Protoss Campaign Difficult : 모든 unit들과 기능을 개발합니다.

▷ (Expansion) Protoss Campaign Insane : 역시 모든 unit들과 기능을 개발하고 공격도 해옵니다.

▷ (Expansion) Protoss Campaign Area Town : 자원을 모으기만 합니다.

▷ Set Player To Enemy : 지금까지는 computer가 통제하는 player들은 어느 Force에 있던 관계없이 서로 공격을 하지 않았습니다. 즉 최소한 서로간에 적대관계는 아니란 말이지요. 하지만 이 script를 실행하면 location내에 있는 모든 unit들을 trigger의 주체가 되는 player와 적대관계로 만들 수 있습니다. 예를 들어 player 2가 컴퓨터가 통제하는 것이라고 해봅시다. 우선 새로운 trigger를 만들어 player를 2로 해줍니다. 그리고 적당한 condition을 설정해주고 난 후 action에서 Set Player To Enemy를 지정해주면 location내에 있는 모든 player 2의 unit들이 적으로 되어서 location 바깥에 위치하는 unit들과 싸우게 됩니다. 물론 다른 player의 unit들을 대상으로 해도 됩니다. 즉 player 2와 player 3를 서로 적대관계로 만드는 것이지요. 만약 player 3도 컴퓨터가 통제한 팀이라고 한다면 말입니다. 게임 타입 중에서 ‘Free For All’과 같은 효과를 얻을 수 있습니다.

▷ Set Player To Ally :  위와는 반대로 이번에는 location에 있는 모든 unit들을 ‘trigger의 주체가 되는 player’와 동맹관계가 되도록 할 수 있습니다.

▷ Value this Area Higher : 컴퓨터에게 특정지역을 ‘중요한 지역(High Value Area)'으로 여기도록 만듭니다. 게임에서 공격목표가 되는 지역들을 이 script로 설정해주면 컴퓨터는 이 지역을 방어하기 위해서 병력을 보내게 됩니다.

▷ Enter Closest Bunker : 게임을 만들 때 Bunk 안에 unit을 위치시킬 수는 없습니다. 따라서 Bunk 주위에 unit들을 놓아둘 수밖에 없습니다. 그러나 이 script를 이용하면 특정지역(location)안에 위치하는 모든 unit들은 가장 가까운 Bunk를 찾아 들어가게 됩니다. 가령 게임 시작 시에 이것이 실행되도록 해 놓으면 게임시작과 함께 주위의 unit들은 Bunk를 찾아 들어가는 것입니다.

▷ Enter Transport : 3 종족에게는 unit을 수송할 수 있는 수송선이 있습니다. Zerg의 경우, Overlord가 그 기능을 하지요. 이 script가 실행되면 location내의 모든 Unit들은 수송선에 올라타게 됩니다.

▷ Exit Transport : 수송선 안의 모든 unit들이 수송선에서 내리도록 합니다.

☞ Campaign Area Town을 제외하고는 ‘Campaign이라는 말이 들어간 모든 script (Campaign AI script)’들은 한 player에게 한 개씩만 적용할 수 있습니다. 한 player에게 Easy, Medium, Difficult, Insane을 한꺼번에 지정해 줄 수는 없을 테니까요. 또 이들을 적용할 때는 자원과 가까운 지역에 적용해야 합니다.

☞ Player들에게 Campaign AI script를 적용할 때는 초기 Mineral과 gas의 양을 6000 정도로 해주는 것이 좋습니다. 충분한 자원이 주어져야 적극적으로 개발을 하고 공격을 하게 됩니다.

☞ Use Map Setting과 달리 ‘Melee’나 ‘Free For All’로 게임을 할 때는 게임 수준을 정해주지 못합니다. 그러면 그 때의 게임 수준은 어느 정도일까요? 그것은 Custom Level입니다. Custom Level은 게임시작 시에 모두 같은 양의 자원을 가지고 시작하게 되어있고 새로운 자원을 차지하기 위해 분주히 움직이며 계속해서 공격을 해옵니다. 당연한 이야기지만 Custom Level을 Campaign AI script와는 함께 사용할 수 없습니다.

-펌..

그리고 혹시 스타크레프트의 기본 에디터를 쓰시는게 아닌지...

제가아는 트리거 X-tra나 스타포지 추천요......

그리고 세디터라고 x-tra의 한글판 있습니다.. 아마 해깔리시면 그 프로그램으로 쓰세요..

세디터는 모든 트리거가 한글로 되있어서 초보분들에게는 사용이 편리...

그리고 x-tra나 세디터(스타포지는 사용 안해봣는데 맵수정하는데에 좋다고 제 친구가 말

한-가끔 유즈맵 보면 기본 에디터로 절대 수정 불가능한 맵구조 있잔아요.ㅡㅡ...)에서 보

면 한플레이어안에 저그,프토,테란 유닛,건물들이 전부 있습니다.. 그부분은 어떻게 한것이

아니라 x-tra나 스타포지 등을 설치해서 보면 기본적으로 되 있는 그런 기능이라 해야하

나.

어째든 맵 만들라면 영어가 더 편하다하면 x-tra나 스타포지. 한글이 더 낫다하면 세디터

(스타포지와 같이 쓰시는 분들도 있다고 함... 제 친구.;; 맵으로 인해..)로 쓰세요...

그리고 intothemap.com에 가시면 트리거 활용한거(유즈맵

제작 팁에 가시면 있음)도 보시고 필요하다 싶으면 너으시고요..

그럼 맵 열심히 잘 만드세요~~!!

출처 : [email protected] (곽재성)님의 글.. 밑에것은 제 생각..

re: 스타크레프트맵만들기

anfrjs2 (2007-04-22 12:14 작성)

신고|이의제기

1) ACCUMULATE : 뭔가를 ‘모으다, 축적하다’는 의미입니다.

Player accumulates quantity resources.

◇ Player : 이번 경우 자원을 모으는 주체를 말합니다. 그런데 이전 player 선택에서는 보지 못했던 player들이 있습니다.

․Current player - 이번 trigger가 적용되는 player

․Foes - 적군입니다.

․Allies - 같은 Force 안에 있는 player들이나, 동맹을 선택한 player들을 의미합니다. Foes와는 반대 의미입니다.

․Neural Player - Player 메뉴의 Settings...에서 Neutral(중립)로 선택했던 player들

․Non Allied Victory Players - Multiplayer 게임 중에는 Communication 대화상자에서 Allied Victory를 선택할 수 있지요. 그런데 Non Allied Victory Players들 사이에는 allied victory 체크박스(□)가 나타나지 않습니다.

◇ quantity : 수량을 지정할 때는 항상 Qualified Number 대화상자가 나타납니다. Number는 수량을 입력하는 곳인데 나머지 3가지는 무엇일까요?

At Least는 ‘적어도 Number에 입력된 수량만큼만 되면’이라는 의미이므로 ‘그 숫자 이상이 되면’이라는 말입니다.

At Most는 ‘그 숫자 이하가 되면’

Exactly는 ‘정확히 그 숫자만큼’.

◇ resources : 여기를 누르면 Resource type 대화상자가 나타납니다. 역시 3가지의 선택이 있습니다. Ore는 ‘광석’이라는 의미로 Mineral을 나타내고 Gas는 Vespene Gas를 나타내며 Ore and Gas는 두 가지 모두를 나타냅니다. 즉 quantity에서 500을 설정하고 Ore and Gas를 선택하면 Mineral과 Gas가 각각 500 이 됩니다.

2) ALWAYS : 말 그대로 ‘항상’ 그렇다는 것이므로 다른 Condition들과는 사용하지 말아야 합니다. 왜냐하면 다른 Condition들의 의미가 ALWAYS에 의해 묻혀버리기 때문이지요.

일반적으로 ALWAYS는 게임 시작 때 일어날 action들에 대한 상황으로 사용됩니다. ‘초기 자원의 양이나 초기점수’, 그리고 게임 시작할 때 나오는 ‘지시사항들’을 보내기 위한 상황으로써 ALWAY를 사용합니다.

3) BRING

Player brings quantity units to 'location'.

Player와 quantity는 앞에서와 같은 것입니다. 따라서 units와 location에 대해서만 설명합니다.

◇ units를 선택하면 Unit 대화상자가 나타납니다. 선택할 수 있는 Unit의 종류가 5가지 있습니다.

Any Unit은 모든 Unit을 포함하는 말입니다. 지상 유닛들(Ground Unit)과 공중 유닛들(Air Units)은 물론이고 건물들(Buildings)도 포함합니다.

Men은 지상 Unit과 공중 Unit들을 의미합니다. Men이라고 해서 Terran에게만 적용되는 것이 아니고 3종족 모두를 포함합니다.

Buildings는 건물들을 의미하지만 Factories는 건물들 중에서 생산이 가능한 건물을 의미합니다. Terran을 예로 들면 Barrack, Factory, Starport, Command Center(SCV 생산) 등이 그런 건물입니다. 실제 이동이 가능한 건물은 Terran의 건물들뿐이지만 그 위치에 건물을 짓는 것도 Bring에 해당됩니다. 즉 그 위치로 SCV, Probe, Drone을 이동시켜 건물을 지으면 Bring이 실행되는 것입니다.

Specific Unit을 선택하고 Pick Unit을 누르면 특정 Unit을 선택할 수 있습니다. Specific Unit 대화상자는 Mission Briefings 메뉴의 SHOW PORTRAIT에서 사용한 것과 같은 것입니다.

◇ location : 이 부분을 누르면 Location 대화상자가 나옵니다.

Layer 메뉴의 Location에서 지정한 지역(Location) 중 하나를 선택하면 됩니다. 만약 지도 전체를 대상으로 하려면 Anywhere를 선택하시면 됩니다.

Starcraft 게임들 중에는 ‘누구를 어디로 데려가면 승리하도록’ 만든 것들이 종종 있습니다. 예를 들면 ‘Zeratul을 Warp Gate 앞으로 보내면 승리하도록’한 것 같은 것입니다. 그런 게임은 Trigger의 Condition을 ‘BRING’으로 설정하고 Action 부분을 ‘VICTORY’로 한 경우입니다.

Location을 설정할 때, 높이와 unit의 종류(공중 or 지상)에 따라 6 가지로 나누었던 것을 기억하시죠? 그 설정에 따라 결과에는 심한 차이가 있다는 잊지 마세요.

4) COMMAND

Player commands quantity units.

여기서 Unit들은 ‘Player 메뉴의 Settings...’에서 Rescuable로 설정한 Unit도 포함한 것입니다.

예를 들어 Triggers 대화상자의 초기화면에 있던 3가지의 Trigger 중에서 2번째 것을 봅시다

CONDITIONS:

- Current player commands at most 0 buildings.

ACTIONS:

- End scenario in defeat for current player.

‘현재 선택된(Current) player가 0개 이하의 건물을 통제할 때, 즉 남아있는 건물이 없을 때는 current player가 게임에서 진(defeat) 것으로 하고 scenario를 끝낸다’라고 되어있습니다. 경우 주의할 것은 building들 중 Properties...에서 Invincible을 선택한 건물은 제외하고 quantity의 양을 지정해 주어야 한다는 것입니다. 왜냐하면 Invincible로 되어 있는 건물들은 언제까지나 파괴되지 않고 남아있으니까요.

그리고 Unit의 Properties...가 Hallucination으로 되어 있는 Unit들은 COMMAND에서 제외됩니다.

5) COMMAND THE LEAST

Current player commands the least units.

이 때 비교대상은 computer가 통제하는 player는 물론이고 중립(neutral) player 그리고 rescuable로 설정된 player들까지 모두 포함합니다.

6) COMMAND THE LEAST AT

Current player commands the least units at 'location'.

COMMAND THE LEAST와 같은 명령이지만 숫자를 비교할 때 특정지역(location)에 있는 Unit들의 숫자만을 비교한다는 점이 다르지요. 만약 특정지역에 한 player의 unit들이 들이 닥쳤을 때 어떤 action을 설정해 주고 싶으면 이 condition을 이용하면 됩니다.

7) COMMAND THE MOST : COMMAND THE LEAST와 반대.

Current player commands the most units.

8) COMMAND THE MOST AT : COMMAND THE MOST AT과 반대.

Current player commands the most units at 'location'.

9) COUNTDOWN TIMER : 카운트다운은 뒤에 나올 action의 하나입니다. 따라서 Set Countdown Timer를 포함한 action을 하나 만든 후에 이번 condition을 지정할 수 있습니다. 자세한 내용은 action 부분을 참고하세요.

Countdown timer is duration game seconds.

10) DEATHS

Player has suffered quantity deaths of unit.

또는

이해를 돕기 위해 예를 들어볼까요.

가령 ‘Fenix는 반드시 살아야 함’ 또는 ‘Jim Raynor는 반드시 살아야 함’이라고 되어 있는 게임에서 Fenix나 Jim Ranor가 죽으면 게임은 끝이 납니다. 물론 게임에서는 지는 것이죠. 그런 게임을 만들 경우 위의 DEATHS 명령을 이용하여 누군가 죽으면 게임에서 지는 것으로 설정을 할 수 있습니다.

또 ‘Command Center를 지켜라’라고 게임목표가 나왔을 때도 마찬가지겠죠. 이 때는 Command Center가 파괴되면 게임이 끝나도록 설정을 해 주면 됩니다.

11) ELAPSED TIME : ‘경과시간’을 의미합니다.

Elapsed scenario time is duration game seconds.

그런데 위에서 시간이 scenario time 또는 game seconds로 되어있지요. 이것은 우리가 일반적으로 생각하는 시간개념이 아니라 게임 상에서 또는 시나리오 상에서 계산하는 시간을 의미합니다. 예를 들어 시스템이 별로 좋지 못한 컴퓨터(가령 펜티엄 90 정도)로 게임을 한다고 합시다. 속도가 느려서 게임을 제대로 시작도 못했는데 시간은 게임과 상관없이 흘러서 공격을 해 온다거나 하면 좀 곤란하겠죠. 따라서 실제 게임의 속도에 따라 시간을 계산하는 것입니다. 이를 game second라고 부르지요.

ELAPSED TIME을 이용하는 예를 몇 가지 들어볼까요.

가령 ‘게임 시작 후 20초 후에 총공격’을 하도록 computer에게 명령을 내리고 싶을 땐 condition에서 ELAPSED TIME을 이용하고 action에서 AI Script라는 것을 사용하면 됩니다.

또 ‘게임 시작 후 몇 초 후에 지원군을 어느 위치에 보내고 싶으면 condition에서 ELAPSED TIME을 선택하고 action에서 CREATE UNITS(유닛생성)을 사용하면 됩니다.

12) HIGHEST SCORE : 최고의 점수를 획득했을 경우...

Current player has highest score points.

points를 선택하면 Score 대화상자가 나타납니다.

Total : Units, Buildings, Kills, Razing의 합한 점수.

Units : 생산한 Unit의 수와 종류에 따른 점수.

Buildings : 만든 건물의 수와 종류에 따른 점수.

Units and Buildings : Unit과 건물에 따른 점수.

Kills : 죽인 Unit의 수에 따른 점수.

Razings : 파괴시킨 건물의 수에 따른 점수.

Kills and Razings : Kills와 Razings를 합한 점수.

Custom : 사용자가 지정하는 점수로 action에서 설정.

근데 점수를 어떻게 아느냐 고요?

Action 부분에 가면 LEADER BOARD…라고 되어있는 기능들이 있는데 바로 그 기능들을 이용하면 화면에 점수가 나타나도록 할 수 있습니다.

그리고 condition에 HIGHEST SCORE만 선택해주면 곤란합니다. 왜냐하면 게임 시작 시에는 모든 player의 점수가 같은 상태이므로 모두가 최고점수를 가지고 있는 것이 됩니다. 따라서 설정해 놓은 action이 바로 실행되게 되지요. 그러므로 다른 condition들과 조합하여 사용해야만 합니다.

13) KILL :

Player kills quantity units.

또는

예를 들어 ‘Zerg의 Cerebrate 3개를 없애라’고 게임목표를 설정하고 싶으면 condition에 KILL을 이용하여 quantity에 3을 unit에 ‘Zerg Cerebrate’를 지정하고 action 부분에 VICTORY를 넣으면 됩니다.

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 : 지도를 만들다보면 이것저것 시험을 해보고 그 기능들을 익혀나가거나 확인해나가는 경우가 자주 있습니다. 이럴 때, 이미 만들어 놓은 Trigger들을 매번 지우고 새 Trigger들을 입력한다는 것은 신경 쓰이는 일입니다. 특히 지워야할 Trigger를 잠시 후 다시 사용해야 한다면 어떻게 해야할까요? 이런 겨우 condition에 NEVER를 입력하면 그 trigger는 절대 실행되지 않습니다.

물론 이미 만들어놓은 condition들이나 action들 앞에 있는 □에서 체크표시를 해제해 주어도 되지만 그 수가 많을 때는 이 또한 귀찮은 일이지요.

20) OPPONENTS :

Player has quantity opponents remaining in the game.

최대 8명의 player 가운데서 선택한 Player와 적대 관계에 있는 Player들, 그 중에서도 아직 패배하지 않고 남아있는 player의 수에 따라 어떤 action을 삽입하고자 할 때 사용하는 condition입니다. 가령 친구들과 연합해서 게임을 한다고 합시다. 그런데 모두 패배하고 혼자 남았을 때 경고하는 메시지가 뜨도록 하고 싶으면 어떻게 할까요?

OPPONENTS 메뉴에서 Player를 상대편 중에서 하나 또는 상대편 Force로 선택하고 quantity를 1로 해주면 되겠지요. 그런 후에 (경고)메시지를 보내는 action을 삽입해 주면 됩니다.

앞의 Force 메뉴에서 뒤로 설명을 미루었던 Allied Victory의 이야기를 해봅시다. 적(opponent)이 아닌 모든 player들은 ‘Allied Victory’로 연결되어 있습니다. 즉 OPPONENT condition에서 남은 적의 수가 0일 때는 현재 남아있는 player들은 모두 'Allied Victory'로 연결된 것입니다. 따라서 이 condition과 VICTORY action을 이용하면 ‘Allied Victory'를 가능하게 하는 지도를 만들 수 있는 있습니다. 즉 남은 적의 수가 0일 때 승리(Victory)하도록 만들면 되는 것이지요.

.21) SCORE :

Player score type score is quantity.

score type은 위의 points에서와 같이 ‘Score 대화상자’에서 설정합니다.

22) SWITCH

Switch is set.

스위치(Switch)란 것이 뭔가를 켜고 끌 때(On/Off) 사용하는 것 아닙니까. 여기서도 Switch는 Set과 Cleared의 2가지 값을 가집니다. 게다가 Switch의 개수가 256개나 되니까 총 512개의 경우가 존재합니다. Switch가 Set인지 Clear인지는 이전의 trigger에 있는 SET SWITCH action의 값에 따라 결정됩니다. (SET SWITCH에 대해서는 뒤에 나오는 Action 부분에서 다루게 됩니다.)

즉 이전에 있는 trigger에서 Switch가 설정되었다는 것은 앞의 trigger가 실행되었다는 것입니다. 앞의 trigger가 실행되면 Switch의 값도 설정되고 이어서 이번 trigger도 실행되는 것입니다. 마치 몇 개의 스위치들을 조합해서 불을 켰다 껐다하는 것과 같은 이치입니다.

좀 복잡하게 들릴지 모르겠는데, 어쨌거나 이 Switch란 것을 이용하여 몇 개의 trigger를 연결할 수 있습니다. 즉 앞의 trigger가 실행되면 그 다음 trigger가 실행되고 또 그 다음 trigger가 실행되는 식으로 말이죠. 이해가 잘 안 되실 지도 모르겠지만 뒤에 나오는 ‘SET SWITCH’ action을 보고 나면 이해가 되시리라 생각됩니다.

위에서 Switch Set을 누르면 Switch Condition 대화상자가 나타납니다.

앞에서 언급한 것처럼 각 Switch에는 2개의 값이 가능합니다. 왼쪽 그림의 Switch State 부분에 있는 Set과 Cleared가 바로 그것입니다. 즉 ‘어느 Switch가 Set 되었는지 Cleared’ 되었는지를 나타내는 것이지요.

아래 Rename... 버튼을 눌러서 Switch의 이름을 바꾸어 줄 수 있습니다.

◆ ACTIONS

1) CENTER VIEW

Center view for current player at 'location'.

게임 중 갑자기 화면이 다른 곳으로 옮겨가는 것을 본 적이 있을 겁니다. 일반적으로 게임을 하는 사람에게 무언가 알려주고자 할 때 그런 방식을 이용합니다. 화면이 옮겨진 후 그 지역에 대해 설명하는 말이 글자와 함께 나타납니다.

이렇게 화면을 player의 의도와는 관계없이 특정 위치로 옮기고 싶을 때 CENTER VIEW 액션을 이용합니다. 옮기고자하는 지도상의 위치를 location에서 설정해 줍니다.

2) COMMENT

Comment: (Trigger의 내용을 요약하는 설명)

comment

Triggers 대화상자를 열면 기존에 만들어 놓은 trigger들이 나타나는데 모두 CONDITIONS:와 ACTIONS:로 나뉘어져 다. 그런데 이것만 보고는 무슨 내용인지 쉽게 감이 오지 않는 경우가 있다. 그럴 때는 Actions에 COMMENT을 하나 추가한다. comment 부분을 누른 후 ‘trigger에 대한 설명이나 이름이 될 만한 내용’을 입력한다. 그러면 trigger 대화상자에는 comment에서 적어준 내용만 나온다. 이후에 지도를 편집할 때도 훨씬 알아보기가 좋다.

3) CREATE UNITS

Create quantity unit at 'location' for player.

어떤 게임을 하다보면 게임 시작 시에는 없던 unit들이 갑자기 나타나는 경우가 있습니다. 물론 어떤 상황을 설정해 놓고 그 상황과 맞아떨어졌기 때문이지요. 그런 경우에 이 action을 선택합니다.

location에서 Anywhere를 선택하면 지도의 중심 부분에 나타납니다.

for player 부분에 대해서 조금 더 설명을 할까요. 예를 들어 지금 게임에 4명의 player가 있다고 합시다. 그리고 4명 모두에게 CREATE UNITS action이 지정되어있습니다. ‘Create 1 Zealot at Location 0 for Player 1’라고 말이지요. 그러면 지정된 condition이 4명 모두에게 만족될 때까지 1명씩 총 4명의 Zealot이 Location 0에 나타나게 됩니다. 즉, 현재 trigger의 주체가 되는 player가 Player 1의 적이든 동맹이든 관계없이 실행된다는 것입니다.

또 재미있는 것은 Player 1이 Terran이나 Zerg라도 Zealot (Protoss의 unit)이 Player 1의 일부로서 나타난다는 것입니다. 이 명령을 이용하면 rescuable을 이용하지 않고도 2 이상의 종족을 가지고 게임을 할 수 있습니다.

4) CREATE UNITS WITH PROPERTIES

Create quantity unit at 'location' for player.

Apply properties.

CREATE UNITS와 같은 명령입니다. 다른 점은 ‘나타나는 unit의 속성을 설정’할 수 있다는 것이지요. unit의 properties에 대해서는 Edit 메뉴에서 설명했습니다.

5) DEFEAT :

End scenario in defeat for current player.

6) DISPLAY TEXT MESSAGE

Display for current player:

text

게임 중 뭔가 설명하는 글이 화면에 나타나는 것을 보았을 겁니다. 때로는 대화형식으로 되어 있는 경우도 있고 혼자 나와서 설명하는 경우도 있었지요. 바로 그런 글들을 여기서 입력합니다. 경고 메시지 같은 것도 여기서 입력하시면 됩니다.

text를 누르면 Action Text 대화상자가 나타납니다 이곳에 원하는 글을 적어주면 됩니다. 그런데 주의 할 것은 이 글들이 게임 중 화면에 보여지기 위해서는 대화상자 ‘오른쪽에 있는 Always Display’를 선택하거나 게임 시작 후 MENU(F10)에서 Options를 선택하고 Sound를 선택한 후 □Subtitles On을 선택해 주어야합니다.

7) DRAW

End the scenario in a draw for all players.

모든 player들이 이기거나 지는 것 없이 비긴 것으로 합니다. 참고로 여기서 ‘draw’란 게임들이 ‘비기는 것’을 의미하고 ‘end in a draw’란 ‘동점으로 끝나다’라는 뜻입니다. 영어사전 찾아 확인해보세요.

8) GIVE UNITS TO PLAYER

Give quantity units owned by player at 'location' to player.

① ②

특정위치(location)에서 ②번 player에게 준다 >

①번 player가 가진 unit들을 ②번 player에게 줄 수 있다. 즉 소속을 ①번에서 ②번 player로 바꾸는 것입니다.

player의 종족이 같지 않아도 됩니다. 가령 ②번 player가 Protoss이고 ‘Terran인 ①번 player’가 가진 Medic이 필요하다면 GIVE UNITS TO PLAYER를 이용하여 Medic을 줄 수 있습니다.

9) KILL UNIT

Kill all units for player.

물론 이 action의 실행은 computer가 합니다. 여기서 지정된 unit들은 어디에 있든 모두 죽거나 파괴됩니다. 예를 들어 게임 시작 때나 게임 중에 건물이 갑자기 폭발하는 것을 종종 볼 수 있습니다. 그런 효과를 내기 위해서 바로 이번 action을 사용하는 것이지요. 또는 게임 목표를 정해두고 목표가 실행되면 적의 모든 기지와 unit들이 폭파되도록 한 다음 게임을 끝내면 아주 그럴 사하게 보입니다.

10) KILL UNITS AT LOCATION

Kill quantity units for player at 'location'.

player에게 소속된 unit들 중에서 특정한 지역 내에 있는 몇 명(quantity)을 죽이라는 명령입니다. 물론 빌딩의 경우도 가능합니다.

quantity를 누르면 Number of Units 대화상자가 나타납니다. 기본적으로 아랫부분의 All Units가 선택되어 있는데 이것은 선택된 종류의 unit을 모두 죽이라는 것입니다. 원하는 숫자를 지정하려면 All Units 부분의 체크표시를 해제하고 1~255 사이의 숫자를 입력합니다.

11) LEADER BOARD(CONTROL AT LOCATION)

Show Leader Board for most control of units at 'location'.

Display label: 'label'.

보는 사람이 무슨 의미인지 알도록 표식(label)을 써준다. >

Leader Board란 ‘순위나 성적을 보여주는 판’이란 뜻입니다. 여기서는 특정지역에서 지정된 unit을 가장 많이 가진 순서와 그 수를 보여줍니다. Leader Board는 게임 중 화면의 왼쪽 상단에 나타나며 색깔로 player를 구분합니다.

label는 Leader Board의 성격을 나타내는 말로서 ‘가장 순위가 높은 player의 옆’에 표시됩니다. 따라서 보는 사람이 leader board의 내용이 의미하는 것을 쉽게 알 수 있도록 적절한 내용을 적어주어야 합니다.

12) LEADER BOARD (CONTROL)

Show Leader Board for most control of unit.

Display label: 'label'

위치와 상관없이 unit의 수에 따른 점수입니다.

13) LEADER BOARD (GREED)

Show Greed Leader Board for player closest to accumulation of number ore and gas.

player들이 모은 자원의 양을 보여주는데 number 부분에 지정해준 양이 기준이 됩니다. 다시 말해서 게임 시작 때 자원의 양이 number 부분의 수에 가장 근접한 player가 제일 위쪽에 위치하는 것이지요.

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'.

목표로 한 숫자(number)에 가까운 순서대로 Leader Board를 보여줌 >

unit의 많고 적음과 관계없이 number 부분에 입력한 숫자가 순위의 기준이 됩니다. 즉 목표(GOAL)를 정해두고 목표에 가까울수록 순위가 결정됩니다.

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'

number 부분에 적어준 숫자가 목표(GOAL)가 됩니다. 따라서 ‘많이 죽이고 적게 죽이고’를 떠나 number에 적어준 숫자에 가까울수록 순위가 올라갑니다.

20) LEADER BOARD GOAL (POINTS)

Show Leader Board for player closest to number points.

Display label: 'label'

points에서 어떤 점수로 할 것인지 선택하고 기준이 될 숫자를 number에 적어줍니다.

21) LEADER BOARD GOAL (RESOURCES)

Show Leader Board for player closest to accumulation of number resource.

Display label: 'label'

resource에서 어떤 자원으로 할 것인지 선택하고 기준이 될 숫자를 number에 적어줍니다.

22) LEADER BOARD COMPUTER PLAYERS

Set use of computer players in leaderboard calculations.

지금까지 본 것처럼 LEADER BOARD에 표시되는 player는 computer가 통제하거나 중립(neutral), rescuable로 설정된 player들을 모두 포함한 것이었지만 여기서 그들이 leader boarder에 나타날 지 아닐지를 선택할 수 있습니다.

Set을 누르면 Set State 대화상자가 나타납니다. 위에서 열거한 player들을 모두 포함하려면 Enable을 그렇지 않으려면 Disable을 선택합니다. 그리고 Toggle을 Enable된 것은 Disable로 또는 그 반대로 만드는 것입니다. 예를 들어 한 trigger에서 이번 action을 Enable이나 Disable로 선택한 상태로 포함하고 있다고 합시다. 그리고 그 아래에 위치하는 또 다른 trigger에서 이 action을 실행하고 Toggle을 선택했습니다. 그러면 원래 Enable로 되어있던 것은 Disable로 Disable로 된 것은 Enable로 바뀐다는 것입니다.

게임 시작 시에는 자신의 Leader Board만 보여주다가 시간이 얼마 지난 후부터는 다른 player들의 Leader Board도 함께 보여주기를 원한다면 어떻게 할까요?

우선 이번 action을 trigger에 삽입하되 Disable을 선택한 상태로 삽입합니다. 그리고 또 다른 trigger를 만든 후에 이번에는 Toggle을 선택한 상태로 이번 action을 삽입합니다. 그러면 두 번째 trigger가 실행될 때까지는 현재 player의 성적만 보여주다가 두 번째 trigger가 실행되면 모두의 성적을 함께 보여줍니다. 이해가 되시는지?

Enable, Disable, Toggle의 선택은 뒤에 나오는 다른 action에서도 사용됩니다.

☞ 지금까지 Leader Board에 대한 내용들을 알아보았습니다. 한 가지 주의 할 것은 여러 개의 Leader Board를 action에 포함시키더라도 제일 마지막에 적어준 하나만이 화면에 나타난다는 것입니다. 따라서 게임 내내 같은 내용만을 보여줍니다. 만약 내용의 변화를 원한다면 위에서 설명한 대로 Toggle을 이용하면 됩니다.

23) MINIMAP PING

Show minimap ping for current player at 'location'.

mini-map(미니 맵)이란 게임화면의 왼쪽아래에 있는 조그만 지도를 말합니다. 물론 Campaign Editor에 있는 조그만 지도도 mini-map이라고 부르지요. 그런데 가끔씩 게임 중 mini-map에 녹색 막대가 4방향에서 모여서 하나의 사각형을 만드는 것을 본적이 있을 겁니다. 마치 과녁(Target)을 나타내듯 말입니다. 이런 것을 여기서 ‘minimap ping’이라고 합니다. 이것은 게임 하는 사람들의 시선을 어떤 곳으로 끌기 위해서 사용하는 방법입니다.

24) MODIFY UNIT ENERGY

Set energy points for quantity units owned by player at 'location' to percent%.

Wraith, Ghost, Battlecruise, Queen, Dark Archon 등 Energy를 가진 unite들의 에너지량을 게임 중에 설정할 수 있는 방법입니다. 가령 특정 사건이 발생하면 이들의 에너지를 100%로 채워준다던가 할 때 사용합니다. 게임 시작 시의 에너지량을 정해주려면 Edit 메뉴의 Properties...를 이용한다는 것 기억하시죠.

25) MODIFY UNIT HANGAR COUNT

Add at most quantity to hangar for quantity units at 'location' owned by player.

게임 중 Carrier나 Reaver에게 Interceptor나 Scarab을 채워주기 위한 명령이다. quantity에 적어준 숫자 이하의 양을 채워줍니다. 이것 역시 Edit 메뉴의 Properties...를 이용해서 게임 시작 시의 보유량을 지정할 수 있던 것 기억하시죠.

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.

① ②

그 보유량을 ②만큼으로 바꾼다 >

자원은 Neutral Units로 되어 있으므로 특정 player에게 소속되지는 않습니다. 그러나 일단 Vespene Gas를 얻기 위해서 ‘Terran의 Refinery’나 ‘Protoss의 Assimilator’ 또는 ‘Zerg의 Extractor’를 설치하면 일단 Gas의 소유는 건물을 설치한 player에게로 넘어갑니다. 물론 그 건물이 파괴되기 전까지 만입니다. 여기서 player가 설정되는 것은 바로 그런 이유입니다. 따라서 위의 건물이 설치되지 않은 Gas들은 영향을 받지 않습니다. 그리고 resource라고 되어있지만 Mineral은 포함되지 않고 Vespene Gas에만 해당되는 내용입니다.

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'.

① ②

이번 action은 말 그대로 location을 원하는 곳으로 옮기는(move) 것이다. 즉 Campaign Editor에서 만들어 놓은 location들은 게임 중에라도 그 위치를 옮길 수 있다는 것이다. 만약 특정 Unit(들)에게 시선을 집중시키고 싶으면 MOVE LOCATION을 이용해서 location을 Unit(들)에게로 옮긴 후 CENTER VIEW를 이용하면 항상 원하는 Unit에게로 화면을 옮길 수 있는 것이다.

그리고 ②번 location 안에 지정한 unit들이 없을 때는 ②번 location의 중앙에 ①번 location을 위치시키게 된다.

30) MOVE UNITS

Move quantity units for player at 'location' to 'destination'.

일반 unit들은 물론 Building들도 옮길 수 있습니다. 이동 불가능한 Terran의 건물들과 Protoss․Zerg의 건물들을 옮기고 싶을 때 MOVE UNITS을 이용하면 됩니다.

31) MUTE UNIT SPEECH

Mute all non-trigger unit sounds for current player.

‘치열한 전투 중 갑자기 소리가 작아지고 어떤 unit이 말을 합니다. 다른 모든 소리가 작아졌으므로 말하는 소리가 확실히 들립니다’. 이런 경우가 게임 중 간간이 있습니다. 어떤 메시지를 말로서 전달 하고자 할 때 다른 unit들의 말소리나 전투에서 나는 소리들이 그대로 다 들리면 제대로 전달이 되지 않을 겁니다. 그럴 때 사용하는 것이 바로 이번 action입니다. 이 action을 실행하면 말소리는 모두 사라지고 그 외에 음악소리나 전투음향들은 반정도로 소리가 줄어듭니다. 일반적으로 뒤에서 설명할 TRANSMISSION과 함께 사용합니다.

32) ORDER

Issue order to all units owned by player at 'location':

order to 'destination'.

destination 지역으로 움직이거나(Move) 순찰을 하거나(Patrol) 공격을 하도록(Attack). >

드디어 unit들의 행동을 지정하는 action이 나왔습니다. 명령의 종류는 3가지인데 order 부분을 누르면 나타납니다. Move나 Attack 선택하면 지정한 위치(location)로 이동하거나 공격해갑니다. 그리고 Patrol을 누르면 현재 위치에서 지정한 위치 사이를 왔다갔다하면서 적이 나타나면 죽이고 다시 왔다갔다하기를 반복합니다.

33) PAUSE GAME

Pause the game.

게임을 잠시 중단합니다. 해제하려면 UNPAUSE GAME을 같은 trigger에 추가해 줍니다. 만약 UNPAUSE GAME이 없으면 trigger 안의 모든 action들이 끝나는 순간 자동으로 해제됩니다. PAUSE GAME은 Multiplayer 게임에서는 적용이 안됩니다. 그리고 computer가 통제하는 player에게 이 action을 적용해봤자 아무 의미가 없겠죠.

Game이 pause되어있을 때는 다음과 같은 action들은 실행이 되지 않습니다.

․CENTER VIEW

․CREATE UNITS

․KILL UNIT

․KILL UNITS AT LOCATION

․REMOVE UNIT

․REMOVE UNIT AT LOCATION

34) PAUSE TIMER

Pause the countdown timer.

35) PLAY WAV

Play 'WAV file'.

36) PRESERVE TRIGGER : 정상적인 trigger들은 trigger 안의 모든 action들이 실행되고 나면 기능을 상실합니다. 즉 trigger들은 단 한번만 실행됩니다. 만약 어떤 trigger가 게임 중 계속해서 유효하도록 하고 싶을 때, 이번 action을 추가해주면 됩니다.

어떤 trigger에서 condition이 Always로 되어있고 action 부분에 PRESERVE TRIGGER가 추가되어 있으면 매 2초마다 trigger가 실행됩니다.

37) REMOVE UNIT

Remove all units for player.

앞에서 설명한 KILL UNIT과 거의 같지만 unit들이 죽는 것이 아니라 단지 사라지는 것이 다르지요. 아무런 흔적도 남기지 않고 화면상에서 깔끔하게 사라집니다.

38) REMOVE UNITS AT LOCATION

Remove quantity units for player at 'location'.

39) RUN AI SCRIPT

40) RUN AI SCRIPT AT LOCATION

※ 39와 40 번은 action의 설명이 끝난 후 따로 하도록 하겠습니다.

41) SET ALLIANCE STATUS

Set Player to Ally status.

현재 trigger의 주체가 되는 player와 여기서 선택된 Player와의 동맹관계를 결정합니다. 가령 처음에는 중립(Neutral)으로 해 두었다가 누군가 침입을 하면 경고 메시지를 보내고 경고를 무시하면 적(Enemy)으로 바뀌도록 할 수 있는데 Starcraft의 Protoss Campaign 중 Terran에게 그런 설정을 해놓은 경우가 있었지요.

42) SET COUNTDOWN TIMER

Modify Countdown Timer: Set duration seconds.

게임들 중에는 시간을 정해놓고 그 시간 안에 어떤 일을 끝내도록 정해놓은 것들이 있습니다. 화면 위쪽에 시간이 분ː초(가령 2ː34)의 형식으로 나타납니다. 바로 여기서 그 시간을 설정하고 나타나게 합니다. duration 부분에서 시간을 정해줍니다.

Set 부분을 눌러서 3가지의 선택을 해야합니다.

Set은 시간을 지정하는 것입니다. 즉 ‘시간을 얼마로 정한다’라고 할 때 사용하는 것입니다.

Add는 시간을 더해 주는 것입니다. 처음에 시간을 조금만 준 상태에서 어떤 일을 하면 그때마다 시간을 조금씩 더 추가해 줄 때 사용하면 됩니다.

Subtract는 시간을 줄입니다. 즉 해서는 안될 일을 했을 때 주어진(Set) 시간에서 얼마간을 뺄 수 있습니다. ‘Subtract 50 seconds’이라고 지정해 주면 위에서 Set으로 지정해준 시간에서 50초를 빼버립니다.

43) SET DEATHS

Modify death counts for player: Set quantity for unit.

특정 unit의 죽은 수를 count합니다.

44) SET DOODAD STATE

Set doodad state for units for player at 'location'.

새 지도를 만들 때 총 8개의 Tileset 중에서 하나를 골라서 사용했습니다. 기억하시겠죠? 그 중에 Installation이라는 Tileset이 있는데 그 안에는 특이한 Doodad들을 많이 포함하고 있습니다. 가령 땅속에서 나타나는 포탑(Turret)이나 아래위로 열고 닫히는 문(Door)들, 벽에서 불이나 미사일을 발사하는 장치 등 다른 Tileset의 지도에서는 볼 수 없는 요상한(?) 것들이지요. 여기서는 그런 Doodad들의 상태를 설정하는데 이것도 설명하려면 양이 좀 많습니다. 따라서 자세한 내용은 뒤의 예제에서 따로 다루고자 합니다.

45) SET INVINCIBILITY

Set invincibility for units owned by player at 'location'.

Edit 메뉴의 Properties...에서 설정했던 Invincible이란 것을 기억하시죠. 바로 Unit을 슈퍼맨으로 만드는 설정이었는데요. 바로 그 Invincible을 게임 중에 설정할 수 있는 것입니다. Set을 선택하면 역시 Enable, Disable, Toggle의 3가지 선택이 있습니다. Enable은 unit을 무적으로 만드는 것이고 Disable을 선택하면 원래 무적이었던 unit을 정상적으로 만들어 줍니다. 바로 인간이 된 슈퍼맨이지요. Toggle은 unit의 현재 상태에 따라 결과가 달라집니다. 즉 현재 unit이 보통상태이면 무적으로 만들고, 무적으로 되어있으면 정상상태로 만듭니다.

46) SET MISSION OBJECTIVES

Set Mission Objectives to:

text

게임 중 Mission Objective를 바꿀 때 사용합니다. 게임을 하다보면 처음에 주어진 임무를 끝내고 나서 새로운 추가임무가 주어지는 경우가 있습니다. 그런 것을 설정할 때 이action을 사용합니다. 물론 여기에 입력한 내용이 실제 게임 내용에 영향을 미치는 것은 아니지요. 처음부터 2개 이상의 게임 목표를 정해놓고 게임 초반에는 한 개의 임무만 던져주고 그것을 해결하면 두 번째 임무를 해결하라고 알려주는 것뿐입니다. 잘 아시다시피 Mission Objective의 내용은 Mission Briefings...에서 입력합니다. 그것이 게임시작부터 게임목표로서 MENU(F10)의 Mission Objectives에 나타납니다. 그러나 일단 SET MISSION OBJECTIVES가 들어있는 trigger의 condition이 만족되기만 하면 text에 입력해준 내용이 MENU의 Mission Objectives에 나타납니다. 물론 이내용은 화면상에 나타나는 것이 아닙니다. 따라서 앞에서 했던 DISPLAY TEXT MESSAGE를 이용해서 player들에게 새로운 Mission Objective가 생겼다고 알려주어야 합니다.

47) SET NEXT SCENARIO

Load 'scenario' after completion of current game.

여러 개의 game을 연결해서 한 개의 큰 게임을 만들 때 사용하는 action입니다. 줄거리를 정한 후에 여러 개의 시나리오를 연결해서 하나의 게임을 만들 수 있지요.

48) SET RESOURCES

Modify resources for player: Set quantity resource.

player에게 줄 자원의 양을 결정합니다. Set 부분을 누르면 역시 Set, Add, Subtract의 세 가지가 나타납니다.

Set은 자원의 양을 지정해 주는 것이고 Add는 현재 가지고 있는 자원에 얼마(quantity)를 추가해 줄 때 사용하고 Subtract는 현재 자원에서 얼마를 뺄 때 사용합니다.

49) SET SCORE

Modify score for player: Set quantity points.

위의 명령과 같지만 자원이 아니라 점수(Score)를 지정해 줍니다.

50) SET SWITCH

Set switch.

앞의 Condition에서 SWITCH condition에 대해서 설명을 드렸었죠. 바로 여기 나오는 SET SWITCH action과 연결해서 사용하는 것입니다.

Set switch. 부분을 누르면 Switch Action 대화상자가 나타납니다. Set은 Switch를 Set으로 설정하는 것이고 Clear는 Cleared로 설정하는 것입니다. 그런데 Toggle과 Random은 무엇일까요?

Toggle은 앞에서도 여러 번 보았듯이 이전 값에 따라 결과가 달라지는 것입니다. 즉 Switch가 Set으로 되어있는 것은 Cleared로 Cleared로 되어있는 것은 Set으로 만듭니다. Random은 두 값 중에서 임의로 하나를 고르는 것입니다. Rename...버튼을 눌러 Switch의 새로운 이름을 지정할 수 있습니다.

51) TALKING PORTRAIT

Show unit talking to current player for duration milliseconds.

게임이 끝날 때쯤, 중심 되는 인물 몇 명이서 대화를 하는 것을 종종 봅니다. 실제 그 대화가 게임의 줄거리에 대한 내용이지요. 그 때 원하는 unit의 얼굴이 화면 아래에 나타나게 하려면 이번 action을 사용합니다. 이것은 DISPLAY TEXT MESSAGE와 함께 사용하면 됩니다. 즉 어떤 메시지를 글로 보여주면서 마치 특정 unit이 말하는 것처럼 보이게 하지요. 게다가 WAV 파일을 이용해 목소리까지 넣으면 금상첨화(錦上添花)이겠군요.

하지만... 이제 나오는 TRANSMISSION을 이용하면 이 모든 것을 한꺼번에 해결할 수 있습니다.

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

Show speaking animation for Slot Number.

Play 'WAV file'.

Modify transmission duration: Set number milliseconds.

Display the following text:

text

( Mission Briefing에서의 Transmission 내용 )

이번 action은 Scenario 메뉴의 Mission Briefings...에서 했던 TRANSMISSION과 거의 같습니다. 제일 위의 한 줄이 약간 다른데요. 여기서는 unit의 얼굴이 나타나는 곳이 한 곳 뿐이므로 Slot Number를 지정해 줄 필요가 없습니다. 그러나 SHOW PORTRAIT 명령이 없기 때문에 unit을 지정해 주어야 합니다. unit은 지도상의 특정위치(location)에 있는 unit을 지정해 줍니다. TRANSMISSION이 실행되면 작은 지도(mini-map)에 앞에서 설명한 ping이 나타납니다. 이때 키보드의 스페이스 바를 누르면 transmission을 보내는 unit이 있는 곳으로 화면이 이동합니다. 게임을 통해 보았듯이 transmission이 실행되는 동안에는 다른 기능들은 모두 멈춘 상태가 됩니다.

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.

실질적인 Mission Objective(s)를 설정하는 곳이 바로 여기입니다. 즉 VICTORY action의 앞에 설정해준 condition들이 실제로 게임목표가 되는 것이지요. 그 condition들이 만족되어야 현재 player가 승리한 것으로 되니까요.

57) WAIT

Wait for duration milliseconds.

DISPLAY TEXT MESSAGE 등을 이용하여 메시지를 보낼 때와 같이 다른 action의 실행을 잠시 중지시키고 싶을 때 WAIT action을 사용합니다.

☞ Action들 중에는 'Blocking Action'이라는 것이 있습니다. 배구에서 보듯 Blocking이란 ‘어떤 일이 일어나지 못하도록 저지하는 것’을 의미합니다. 따라서 Blocking Action이 실행 중 일 때에는 다른 Action들은 실행이 정지된 상태입니다. Blocking Action에는 다음과 같은 것들이 있습니다.

․CENTER VIEW

․TRANSMISSION

․WAIT

◆ AI script

Action Trigger의 39․40번 명령에 대한 설명을 여기서 합니다. 바로 AI script에 관한 내용인데요. ‘AI’란 Artificial Intelligence(인공 지능)의 약자입니다. 즉 컴퓨터에게 인공 지능을 부여하는 것이 바로 AI script입니다. 좀 거창하죠? 그리고 script(스크립트)란 대본이나 각본을 의미합니다.

Use Map Setting을 이용해서 게임을 할 경우 AI script를 설정해주지 않으면 computer가 통제하는 player들은 오직 자신들의 방어만 수행합니다. 새로운 건물을 짓거나 병력을 모아 공격을 해오거나 전략을 짜는 행동 따위는 절대 하지 않지요. 그러나 일단 AI script를 이용하면 다양한 행동이 나타나게 할 수 있습니다. 게임의 난이도를 지정하는 것도 바로 이 부분입니다. 설정에 따라서는 아주 교활한 행동들도 보여줍니다.

1) RUN AI SCRIPT

Execute AI script 'script'.

script 부분을 클릭하면 실행 가능한 AI script들의 목록이 나타납니다. 여기는 3가지의 script가 있습니다.

▷ Send all Units on Strategic Suicide Missions :  컴퓨터가 통제하는 모든 unit들이 때지어 공격을 해옵니다. 한 번에 한 개의 목표물(target)을 정해서 파괴되거나 죽을 때까지 공격합니다. 이러한 공격은 ‘공격당하는 player’의 모든 unit들과 건물들이 파괴될 때까지 계속됩니다. 물론 그렇게 되기 전에 막아야겠죠.

▷ Send all Units on Random Suicide Missions : 이 번에도 때지어 쳐들어옵니다. 그런데 이번 script를 실행하면 눈에 보이는 것은 닥치는 대로 공격을 합니다. 즉 위에서처럼 목표를 정한다음(Strategic) 공격하는 것이 아니라 눈에 보이는 것은 아무 것이나(Random) 공격을 하는 것입니다. 따라서 각 unit들이 모두 모여 한 target을 공격하는 것이 아니라 따로따로 공격을 합니다.

▷ Switch Computer Player to Rescue Passive : 컴퓨터가 통제하는 모든 unit들과 건물들 그리고 중립(neutral)으로 되어있는 player가 모두 rescuable로 바뀝니다. 즉 이 script가 실행되면 1인용 게임의 경우 지도상의 모든 unit을 사람이 통제하는 unit으로 바뀌게 됩니다. 즉 적이 모두 사라지는 것이지요. 따라서 게임을 끝내기 위한 것이 아니라면 혼자 하는 게임에는 별 의미가 없습니다.

Multi-player 게임을 할 때 많이 밀리는 player에게 지정해 줄만한 script입니다.

2) RUN AI SCRIPT AT LOCATION

Execute AI script 'script' at 'location'.

이번 script는 RUN AI SCRIPT에 장소(location)설정만 추가된 것처럼 보입니다. 그러나 script를 눌러 보면 그렇지 않다는 것을 아시게 됩니다. 이번에는 총 42개의 명령이 존재합니다. 바로 이 명령들이 게임의 레벨(난이도)을 지정하고 특수한 기능들을 가능하게 하는 부분입니다.

어떤 scrip들은 종족의 이름만 다를 뿐 나머지는 같은 내용입니다. 따라서 게임레벨은 같고 적용되는 종족만 다를 뿐입니다. 그리고 자세히 보면 어떤 것들은 같은 내용인데 이름 맨 앞에 ‘Expansion’이란 말이 붙어있는 것이 있고 그렇지 않은 것도 있습니다. 그것은 Brood War에서 추가된 unit이나 기능을 사용하는지 아닌지에 대한 차이입니다. 즉 Expansion이란 말이 앞에 붙은 script를 실행하면 Brood War에서 추가된 unit과 기능들을 사용하지만 그렇지 않은 script를 실행하면 Starcraft에서 사용했던 unit들과 기능만 이용합니다.

▷ Terran (Expansion) Custom Level

Zerg (Expansion) Custom Level

Protoss (Expansion) Custom Level

컴퓨터가 통제하는 unit들은 건물을 짓고 계속해서 새로운 자원을 찾아서 기지를 확장해 나갑니다. 그리고 적을 발견하면 공격을 시작합니다.

▷ (Expansion) Terran Campaign Easy : 오직 기본적인 건물과 unit들만 생산합니다. 따라서 Wraith의 ‘Clocking’이나 Goliath의 ‘Charon Boosters’, Tank의 Siege 모드 등 특수기능들은 사용하지 않습니다.

▷ (Expansion) Terran Campaign Medium : 기본적인 unit들은 모두 생산하고 특수기능들을 발전시키고 upgrade도 합니다. 그러나 Science vessel과 Bunk는 생산하지 않습니다.

▷ (Expansion) Terran Campaign Difficult : 이제 모든 unit들을 생산하고 그에 따른 모든 기능을 발전시킵니다.

▷ (Expansion) Terran Campaign Insane : 모든 unit들을 생산하고 모든 기능을 발전시키고 upgrade합니다. 그러고 난 후 공격을 해옵니다. 게임 제작사(Blizzard사)의 표현을 빌리자면 ‘school you in the art of playing Starcraft’ (게임 하는 법에 대해서 한 수 가르쳐준다)라고 합니다. 그러나 이 script만으로는 그런 기능이 부족한 듯합니다. 앞에서 설명한 action들과 다른 script들을 조합해야 원하는 효과가 나올 것입니다.

▷ (Expansion) Terran Campaign Area Town : 컴퓨터는 오로지 자원을 모으기만 합니다. 절대로 공격은 하지 않지요. 따라서 Starcraft를 처음 대하는 사람들에게 이것을 이용해서 게임을 만들어주면 좋겠지요.

▷ (Expansion) Zerg Campaign Easy : 모든 기본 unit을 생산합니다. (Zergling, Mutalisk 등)

▷ (Expansion) Zerg Campaign Medium : 모든 기본 unit들을 생산하고 기능 등을 개발합니다. 여기서는 Ultralisk까지 생산합니다.

▷ (Expansion) Zerg Campaign Difficult : 모든 unit들을 생산하고 가능한 모든 기능들을 개발합니다.

▷ (Expansion) Zerg Campaign Insane : 모든 unit을 생산하고 모든 기능들의 개발합니다. 그리고 공격도 해오지요. Terran의 경우와 같습니다.

▷ (Expansion) Zerg Campaign Area Town : 역시 자원을 모을 뿐 공격을 하지 않습니다.

▷ (Expansion) Protoss Campaign Easy : ‘Scout’이 생산될 때까지 모든 기본 unit들을 생산합니다.

▷ (Expansion) Protoss Campaign Medium : ‘Carrier’가 생산되기 전까지 모든 unit들과 기능을 개발합니다.

▷ (Expansion) Protoss Campaign Difficult : 모든 unit들과 기능을 개발합니다.

▷ (Expansion) Protoss Campaign Insane : 역시 모든 unit들과 기능을 개발하고 공격도 해옵니다.

▷ (Expansion) Protoss Campaign Area Town : 자원을 모으기만 합니다.

▷ Set Player To Enemy : 지금까지는 computer가 통제하는 player들은 어느 Force에 있던 관계없이 서로 공격을 하지 않았습니다. 즉 최소한 서로간에 적대관계는 아니란 말이지요. 하지만 이 script를 실행하면 location내에 있는 모든 unit들을 trigger의 주체가 되는 player와 적대관계로 만들 수 있습니다. 예를 들어 player 2가 컴퓨터가 통제하는 것이라고 해봅시다. 우선 새로운 trigger를 만들어 player를 2로 해줍니다. 그리고 적당한 condition을 설정해주고 난 후 action에서 Set Player To Enemy를 지정해주면 location내에 있는 모든 player 2의 unit들이 적으로 되어서 location 바깥에 위치하는 unit들과 싸우게 됩니다. 물론 다른 player의 unit들을 대상으로 해도 됩니다. 즉 player 2와 player 3를 서로 적대관계로 만드는 것이지요. 만약 player 3도 컴퓨터가 통제한 팀이라고 한다면 말입니다. 게임 타입 중에서 ‘Free For All’과 같은 효과를 얻을 수 있습니다.

▷ Set Player To Ally :  위와는 반대로 이번에는 location에 있는 모든 unit들을 ‘trigger의 주체가 되는 player’와 동맹관계가 되도록 할 수 있습니다.

▷ Value this Area Higher : 컴퓨터에게 특정지역을 ‘중요한 지역(High Value Area)'으로 여기도록 만듭니다. 게임에서 공격목표가 되는 지역들을 이 script로 설정해주면 컴퓨터는 이 지역을 방어하기 위해서 병력을 보내게 됩니다.

▷ Enter Closest Bunker : 게임을 만들 때 Bunk 안에 unit을 위치시킬 수는 없습니다. 따라서 Bunk 주위에 unit들을 놓아둘 수밖에 없습니다. 그러나 이 script를 이용하면 특정지역(location)안에 위치하는 모든 unit들은 가장 가까운 Bunk를 찾아 들어가게 됩니다. 가령 게임 시작 시에 이것이 실행되도록 해 놓으면 게임시작과 함께 주위의 unit들은 Bunk를 찾아 들어가는 것입니다.

▷ Enter Transport : 3 종족에게는 unit을 수송할 수 있는 수송선이 있습니다. Zerg의 경우, Overlord가 그 기능을 하지요. 이 script가 실행되면 location내의 모든 Unit들은 수송선에 올라타게 됩니다.

▷ Exit Transport : 수송선 안의 모든 unit들이 수송선에서 내리도록 합니다.

☞ Campaign Area Town을 제외하고는 ‘Campaign이라는 말이 들어간 모든 script (Campaign AI script)’들은 한 player에게 한 개씩만 적용할 수 있습니다. 한 player에게 Easy, Medium, Difficult, Insane을 한꺼번에 지정해 줄 수는 없을 테니까요. 또 이들을 적용할 때는 자원과 가까운 지역에 적용해야 합니다.

☞ Player들에게 Campaign AI script를 적용할 때는 초기 Mineral과 gas의 양을 6000 정도로 해주는 것이 좋습니다. 충분한 자원이 주어져야 적극적으로 개발을 하고 공격을 하게 됩니다.

☞ Use Map Setting과 달리 ‘Melee’나 ‘Free For All’로 게임을 할 때는 게임 수준을 정해주지 못합니다. 그러면 그 때의 게임 수준은 어느 정도일까요? 그것은 Custom Level입니다. Custom Level은 게임시작 시에 모두 같은 양의 자원을 가지고 시작하게 되어있고 새로운 자원을 차지하기 위해 분주히 움직이며 계속해서 공격을 해옵니다. 당연한 이야기지만 Custom Level을 Campaign AI script와는 함께 사용할 수 없습니다.

-펌..

그리고 혹시 스타크레프트의 기본 에디터를 쓰시는게 아닌지...

제가아는 트리거 X-tra나 스타포지 추천요......

그리고 세디터라고 x-tra의 한글판 있습니다.. 아마 해깔리시면 그 프로그램으로 쓰세요..

세디터는 모든 트리거가 한글로 되있어서 초보분들에게는 사용이 편리...

그리고 x-tra나 세디터(스타포지는 사용 안해봣는데 맵수정하는데에 좋다고 제 친구가 말

한-가끔 유즈맵 보면 기본 에디터로 절대 수정 불가능한 맵구조 있잔아요.ㅡㅡ...)에서 보

면 한플레이어안에 저그,프토,테란 유닛,건물들이 전부 있습니다.. 그부분은 어떻게 한것이

아니라 x-tra나 스타포지 등을 설치해서 보면 기본적으로 되 있는 그런 기능이라 해야하

나.

어째든 맵 만들라면 영어가 더 편하다하면 x-tra나 스타포지. 한글이 더 낫다하면 세디터

(스타포지와 같이 쓰시는 분들도 있다고 함... 제 친구.;; 맵으로 인해..)로 쓰세요...

그리고 intothemap.com에 가시면 트리거 활용한거(유즈맵

제작 팁에 가시면 있음)도 보시고 필요하다 싶으면 너으시고요..

좀길죠...답변확정부탁..ㅎㅎ(문서에저장해서수시로보세여..

스타크 맵 트리거좀 가르쳐주세요

안녕하세요 제가 트리거를 이용해서 맵을 만들려고 하는데요.(디플로메시... 꼭 가르쳐주세요 ^^ 내공 푸짐하게 드림 정확한 답변이면 감사내공도 드려요...

스타크 인구 늘리는 트리거

스타크래프트 인구 늘리는 트리거좀 가르쳐 주세요 스타크래프트 인구수 늘리는 트리거는 없습니다. 그래서 제작자들은 X-tra 에디터의 겹치기 기능,혹은 스타포지의...

스타크 맵만들기 트리거질문 [70]

... 개놈의 트리거꼬임은 저의 망상을 모두 부숴버리죠...아 뭐 얘기가 딴데로 샛지만 저같은경우엔 위에 띄우는... 물론 모든걸 다 그렇게 할수 없어서 나중엔 꼬일수도...

스타 인공지능 트리거좀 가르쳐주세요

... 지나면 7시랑6시쯤에 고스트가 엄청 생기면서... 인공지능 트리거 좀 가르쳐 주세요~~내공 검 정확한... 이런 행동을 하는 이유는 바로 스타크래프트 싱글 미션...

스타크래프트 맵만들기 (트리거)

... 이 3개의 트리거좀 가르쳐주세요. 스타크 공식홈피엔 있지만., 잘못찿겠더군요. 잘하시는분 순서좀 가르쳐주세요., 1. Players : All players Conditions...

스타크에서 만들때요 제목하고 글...

... 쓰는법좀 가르쳐주세요 저는 스타크래프트 만든다음 한글로 제목 저장을... 트리거에 Display Text Massage죠.... 모르세요? 제가 트리거 갈쳐드림.. Condition은...

몇가지 트리거좀가르쳐 주세요~~[내공...

제가 알피지 맵을 만들려고한는데 트리거에 대해서... 질문들어갑니다.(질문이 많을듯...... 꾹참고... 잘모르겠습니다만 스타크래프트유즈맵에서 랩업은 그냥...

스타크 맵 밀리용 트리거 와 옵저버용...

가르쳐 주세요 밀리용 트리거는 맵을 만들때 들어가면 있는 기본 3가지 트리거입니다. 옵저버용 트리거는 일단 기본 3가지의 트리거를 세력 1(밀리를 하는 플레이어의 세력)...

스타크래프트 맵 트리거

1킬할때마다 가스와 미네랄을 100 올라가게 하는 트리거좀 가르쳐 주세요 영어트리거 기준입니다. -Players : Force 1 -Conditions : Kill('Current Player' kills 'at...