# Timed Events(시간 제한 이벤트)

![](https://4251931498-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MO_j99BJEXK4zHqxgqS%2Fuploads%2FF6NeDkmdLc2il5jbQWuL%2FTimed%20Events_Header_01.gif?alt=media\&token=67c65e12-966a-4910-be15-4693e611384d)

## 무엇인가요? <a href="#what-is-it" id="what-is-it"></a>

Timed Events(시간 제한 이벤트) 비헤이비어는 메시지를 트리거하는 데 이용할 수 있는 타이머를 커스텀하는 다양한 방법을 제공합니다. 이러한 타이머는 단일 또는 반복 타이머가 될 수 있으며, 비헤이비어 내 부모(상위) 타이머에는 여러 하위 이벤트 타이머가 포함될 수 있습니다.

이 비헤이비어는 높은 유연성을 자랑하며, 환경적 주기, 주기적 로직 체크, 역동적인 퀘스트 메커니즘 생성에 큰 도움이 됩니다.

{% hint style="info" %}
Timed Events 비헤이비어는 가시적인 카운트다운을 제공하지 않습니다. 속성 패널 내 모든 값은 ‘백그라운드’에서 발생하는 변수를 정의하며, 유저 인터페이스에는 표시되지 않습니다.
{% endhint %}

## 멀티플레이어 비헤이비어 <a href="#a-multi-player-behaviour" id="a-multi-player-behaviour"></a>

이 비헤이비어의 멀티플레이어 버전을 선택한 경우, 활성화된 Timed Event(시간 제한 이벤트)의 진행 상황 및 비헤이비어가 전송하는 결과 메시지 역시 모든 플레이어에게 동기화됩니다.

예를 들어, Timed Event가 \[MP] Door 비헤이비어가 주기적으로 열리도록 메시지를 전송할 경우, 모든 플레이어가 Timed Event의 진행 상황 및 Door 비헤이비어가 트리거되는 순간을 동시에 경험하게 됩니다.

{% hint style="info" %}
멀티플레이어 비헤이비어 또는 컴포넌트가 전송하는 메시지는 다른 멀티플레이어 비헤이비어 및 컴포넌트만 수신할 수 있습니다. Client Only 비헤이비어 또는 컴포넌트는 멀티플레이어의 메시지를 수신하거나 전송할 수 없습니다.
{% endhint %}

## 비헤이비어 적용하기 <a href="#applying-the-behaviour" id="applying-the-behaviour"></a>

이 비헤이비어는 Client Only와 Synchronized가 모두 가능한 비헤이비어이므로 필요에 따라 적절한 옵션을 선택합니다.

비헤이비어 패널에서 액터에 추가할 때 싱글 플레이어의 경우 ‘Client Only’를, 멀티플레이어의 경우 ‘Synchronized’를 선택합니다.

![](https://4251931498-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MO_j99BJEXK4zHqxgqS%2Fuploads%2FcwJxWe5tgQCernKTB1dm%2FTimed%20Events_Select%20SP%20MP%20.gif?alt=media\&token=e0699377-bdda-4344-abc5-61114fc4df43)

{% hint style="info" %}
이 비헤이비어는 가시적인 함수가 없으므로 로직 애셋에 적용할 것을 권장합니다. 이렇게 하면 로직 함수로 쉽게 식별할 수 있으며 경험 내 페이스 카운트를 줄여 성능을 개선할 수 있습니다.
{% endhint %}

## Timed Event 파라미터 <a href="#timed-event-parameters" id="timed-event-parameters"></a>

### Wait for Message (토글) <a href="#wait-for-message-toggle" id="wait-for-message-toggle"></a>

Wait for Message가 ‘TRUE’로 설정되었을 경우 비헤이비어의 시작을 트리거하는 데 이용되는 메시지를 추가할 수 있습니다.

Wait for Message가 ‘FALSE’로 설정되었을 경우 경험 시작 시 비헤이비어가 시작됩니다.

### Reset (토글) <a href="#reset-toggle" id="reset-toggle"></a>

‘TRUE’로 설정되면 모든 시간 제한 이벤트 및 하위 이벤트가 종료된 이후 Timed Events 비헤이비어가 다시 시작됩니다.

Reset 토글이 ‘FALSE’로 설정되어 있을 경우, Timed Event가 다시 시작하려면 다시 한 번 트리거되어야 합니다. 그렇지 않을 경우 비활성화 상태로 유지됩니다.

{% hint style="info" %}
모든 시간 제한 이벤트 및 하위 이벤트는 RESET이 트리거되기 전 시작된 상태여야 합니다.
{% endhint %}

## Timed Events 타입 <a href="#types-of-timed-events" id="types-of-timed-events"></a>

이 비헤이비어에는 **Timed Events(시간 제한 이벤트)**&#xC640; **Sub Events(하위 이벤트)**&#xC758; 두 가지 주요 카테고리가 있습니다.&#x20;

![](https://4251931498-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MO_j99BJEXK4zHqxgqS%2Fuploads%2FONjzPjxclysRdu6xAVni%2FTimed_Events_Behaviour.png?alt=media\&token=074e2351-6938-4647-9eb2-97436dc1220f)

**Timed Events**는 비헤이비어가 활성화된 순간부터 마지막 타이머가 완료된 순간까지 시간의 선형적 진행을 초 단위로 나타내는 **기본 타이머**를 정의합니다.

**Sub Events**는 **Timed Event** ‘*내에서*’ 생성되며 상위 Timed Event가 트리거된 이후에만 시작됩니다. 즉, 하위 이벤트의 시간은 기본 타이머가 아닌 상위 Timed Event의 트리거를 기준으로 설정됩니다.

### Timed Events

**Timed Events**는 비헤이비어가 트리거된 순간부터 경과된 시간을 기록하는 **기본 타이머**를 기준으로 메시지가 전송되는 순간을 정의합니다.

![Animated Decoration 비헤이비어에 3개의 다른 메시지를 전송하여 3개의 애니메이션을 트리거하는 데 이용되는 반복 Timed Event](https://4251931498-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MO_j99BJEXK4zHqxgqS%2Fuploads%2FzvUISUTqnlbtbWzxP9zf%2FTimed%20Events_Time%203.gif?alt=media\&token=955755d8-0e75-4f95-bb8d-2208047bc92c)

하나의 비헤이비어에 여러 개의 Timed Event가 존재할 수 있으며, 각 이벤트는 기본 타임라인을 정의합니다.

{% hint style="info" %}
Timed Events의 순서는 시간순이므로 이벤트가 다른 이벤트보다 먼저 생성되더라도 이벤트에 할당된 시간에 따라 순서가 변경됩니다.
{% endhint %}

가령, Timed Event 1이 00:01으로 설정되고 Timed Event 2가 00:02로 설정된 경우 Timed Event 1이 목록 최상단에 위치하며 가장 먼저 트리거됩니다.

그러나 Timed Event 1의 시간이 00:03으로 변경된다면 Timed Event 2가 순서 상 더 상단으로 이동하고 Timed Event 1은 두 번째로 트리거됩니다.

{% hint style="warning" %}
플레이 모드에서 비헤이비어가 실행될 때까지 속성 패널에서 Timed Events의 목록 순서가 변경되지 않습니다.
{% endhint %}

### Sub Events

Sub Events(하위 이벤트)는 기본 Timed Event의 ‘자식(하위)’ 요소이며 부모(상위) 이벤트의 경과 시간을 기준으로 트리거됩니다.

![Timed Events(녹색)과 Sub Events(파란색)에 의해 트리거되는 이벤트 – 단일 Timed Event 비헤이비어에 모두 포함](https://4251931498-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MO_j99BJEXK4zHqxgqS%2Fuploads%2FNdtukF0hf1NX5HHOalpD%2FTimed%20Events_Time%202.gif?alt=media\&token=03f922f5-4174-4d3c-87aa-e19f5d49304a)

예를 들어, 하나의 **Timed Event**가 10초 후에 트리거되도록 설정했을 경우, 첫 번째 **Sub Event**는 10초가 경과될 때까지 시작하지 않습니다.

### 타이머 설정 <a href="#timer-settings" id="timer-settings"></a>

Timed Events와 Sub Events는 동일한 설정을 이용하나, 실행 순서와 관련해 몇 가지 분명한 차이점이 있습니다.

**Timed Events**는 기본 타임라인을 따라 시간순으로 트리거되며, 기본 타임라인은 비헤이비어가 트리거되는 즉시 시작됩니다.

**Sub Events**는 부모(상위) Timed Event의 시간을 기준으로 ‘상대적’으로 트리거됩니다. 만약 Timed Event가 00:01로 설정되어 있고 Sub Event가 00:01로 설정되었을 경우 Sub Event는 실제로 기본 타임라인을 따라 00:02에 발생합니다.

{% hint style="info" %}
Sub Event의 시간을 파악할 수 있는 좋은 방법은 상위 Timed Event의 시간에 해당 시간을 더하거나 TE+SE=PT 방식으로 계산하는 것입니다.
{% endhint %}

최초의 Timed Event 이후 발생하는 Timed Events는 이전 Timed Event의 Sub Event가 완료될 때까지 기다렸다가 트리거되지 않습니다.

![6개의 Timed Event는 기본 타이머를 따라 트리거를 설정합니다. 5개의 Sub Event는 첫 번째 Timed Event에 의해 트리거됩니다.](https://4251931498-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MO_j99BJEXK4zHqxgqS%2Fuploads%2F61UOUWD7pA2ZG1iP2Sfo%2FTimed_Events_Timing%20Fireworks.png?alt=media\&token=6fbe10a7-52ea-40f5-89d0-30834de1d17f)

![](https://4251931498-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MO_j99BJEXK4zHqxgqS%2Fuploads%2Fucmk08CwBAeWxfRu6iQ6%2FTimed%20Events_Time%204.gif?alt=media\&token=e56d4448-09f9-401b-a030-5dee6c7b6492)

예를 들어, ***Timed Event 1***&#xC774; *00:02*로 설정되고 ***Sub Event***&#xAC00; *00:03*으로 설정되었지만 *00:04*로 설정된 ***Timed Event 2***&#xAC00; 있다면 **Timed Event 1과 2가 Sub Event 전에 트리거됩니다**. 목록에 Sub Event가 Timed Event 2보다 더 먼저이더라도 Sub Event의 시간은 상위 Timed Event에 상대적이며, 실제로는 기본 타임라인을 따라 *00:05*에 트리거됩니다.

아래 표를 참고하세요.

![](https://4251931498-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MO_j99BJEXK4zHqxgqS%2Fuploads%2FSAMw1AkTBGs5s6oVbQwr%2FTIMERS.JPG?alt=media\&token=8530ebf1-8aeb-4b2b-bdf5-13d313e0e976)

### Event Name

기본적으로 타이머의 이름은 사용자 지정 전까지 요소 뒤에 숫자가 붙어 설정됩니다.

타이머의 이름은 게임 내에 표시되지 않지만 Timed Event와 Sub Event에 명확한 이름을 설정하면 각 트리거를 쉽게 구분할 수 있습니다. 특히 시간이 변경되면 이벤트의 위치가 이동하므로 이런 상황에 도움이 됩니다.

### Time과 Relative Time <a href="#time-and-relative-time" id="time-and-relative-time"></a>

여기에서 Timed Event의 트리거 시간과 Sub Event의 상대 시간 트리거가 설정됩니다.

이 섹션에는 두 가지 필드를 사용할 수 있습니다. 왼쪽은 분 단위, 오른쪽은 초 단위로 측정됩니다. 각 필드는 최대 59까지 값을 설정할 수 있습니다.

이 필드에 시간을 입력하면 Event Name에도 시간이 추가됩니다.

{% hint style="warning" %}
설정된 시간이 앞뒤의 Timed Event 또는 Sub Event보다 작거나 크면 목록에서 위치가 변경됩니다.
{% endhint %}

{% hint style="info" %}
타이머가 활성화되어도 플레이어에게 표시되지 않습니다.
{% endhint %}

### Message

설정한 시간에 도달했을 때 Timed Event 또는 Sub Event가 송출할 메시지입니다.

새 메시지를 생성하거나 필드를 클릭하여 기존 메시지가 포함된 드롭 다운 메뉴에 액세스할 수 있습니다.

{% hint style="info" %}
메시지는 공백과 대소문자가 구분됩니다.
{% endhint %}

### Tags

특정 시간에 도달했을 때 전송되는 메시지의 대상이 되는 특정 액터를 설정할 수 있습니다.

### TIMED EVENT & SUB EVENT 추가 <a href="#add-timed-event-and-sub-event" id="add-timed-event-and-sub-event"></a>

속성 패널 하단에 ‘ADD TIMED EVENT +’ 버튼을 눌러 Timed Event를 추가할 수 있습니다. 시간이 설정되기 전까지는 생성된 순서로 표시되며 시간 설정 이후에는 시간 순서대로 다시 정렬됩니다.

![](https://4251931498-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MO_j99BJEXK4zHqxgqS%2Fuploads%2FlYR3mfe020RdD60cxMhC%2FTimed%20Events_Add%20Event.gif?alt=media\&token=fc12e67a-4813-464c-8059-3286f6400de0)

{% hint style="info" %}
각 Timed Event 내에는 Sub Event를 추가할 수 있는 옵션이 있습니다.
{% endhint %}

Sub Event는 시간이 00:00이 아닌 다른 값으로 설정되기 전까지는 생성된 순서대로 표시되며, 시간 설정 이후에는 시간 순서대로 다시 정렬됩니다.
