# ActionSequence

ActionSequence : `Instance`

## Overview

액션시퀀스는 하나의 액션에서 애니메이션, 이펙트, 카메라 등의 연출을 타임라인에서 통합적으로 구성할 수 있는 인스턴스입니다. 게임에서 자주 사용되는 다양한 연출과 스크립트 실행 시점을 타임라인 기반 편집 환경에서 시각적으로 구성할 수 있습니다.

액션시퀀스는 **정적 데이터 기반**으로 정의된 객체로, 런타임에서 Instance.new 또는 Clone을 통해 직접 생성할 수 없습니다.

Humanoid 하위의 **ActionRunner**에서 Play 메서드를 통해 실행이 요청되면, 원본 인스턴스는 Humanoid.ActionRunner 하위로 **복제**되며, 이후 복제된 인스턴스를 기반으로 액션이 실행됩니다.

이와 같은 동작 구조로 인해, **액션시퀀스 내부 스크립트에서 이벤트를 연결**할 때는 원본 인스턴스가 아닌 런타임에 복제된 인스턴스를 기준으로 접근해야 합니다. 따라서 **절대 경로를 사용하는 대신 script.Parent를 기준으로 참조**해야 합니다.

이벤트는 서버와 클라이언트 환경 모두에서 연결할 수 있습니다. 다만 **서버측 Script는 액션시퀀스 바로 하위에 배치**하는 것을 권장하며, 더 깊은 자손 위치에서는 정상적으로 동작하지 않을 수 있습니다.

액션시퀀스 하위의 **LocalScript에서 이벤트를 연결한 경우, 해당 로직은 모든 클라이언트에서 호출**되므로, 필요에 따라 액션시퀀스를 실행한 주체(self)를 기준으로 필터링해야 합니다.

## Properties

## Methods

### TriggerStarted

액션시퀀스의 트리거 트랙에 설정된 특정 이름의 트리거가 시작될 때 발생하는 이벤트를 반환합니다.

#### Parameters

| `string` TriggerName | 트리거의 이름입니다. |
| -------------------- | ----------- |

#### Return

| `ScriptSignal` | 트리거 시작 이벤트입니다. |
| -------------- | -------------- |

#### Code Samples

```lua
local ActionSequence = script.Parent

-- self : 액션시퀀스를 실행한 캐릭터 모델이 전달됩니다.
ActionSequence:TriggerStarted("TriggerName"):Connect(function(self)
    -- ...
end)
```

### TriggerEnded

액션시퀀스의 트리거 트랙에 설정된 특정 이름의 트리거가 종료될 때 발생하는 이벤트를 반환합니다.

#### Parameters

| `string` TriggerName | 트리거의 이름입니다. |
| -------------------- | ----------- |

#### Return

| `ScriptSignal` | 트리거 종료 이벤트입니다. |
| -------------- | -------------- |

#### Code Samples

```lua
local ActionSequence = script.Parent

-- self : 액션시퀀스를 실행한 캐릭터 모델이 전달됩니다.
ActionSequence:TriggerEnded("TriggerName"):Connect(function(self)
    -- ...
end) 
```

### Hit

액션시퀀스의 충돌 트랙에 설정된 특정 이름의 마커에 도달했을 때 발생하는 이벤트를 반환합니다.

#### Parameters

| `string` InCollisionEventName | 충돌 이벤트의 이름입니다. |
| ----------------------------- | -------------- |

#### Return

| `ScriptSignal` | 충돌 이벤트입니다. |
| -------------- | ---------- |

#### Code Samples

```lua
local ActionSequence = script.Parent

-- self : 액션시퀀스를 실행한 캐릭터 모델이 전달됩니다.
-- other : 충돌 판정에 감지된 대상 객체(캐릭터 모델 또는 Part)가 전달됩니다.
ActionSequence:Hit("CollisionEventName"):Connect(function(self, other)
    -- ...
end)
```

### GetMarkerReachedSignal

액션시퀀스의 이벤트 트랙에 설정된 특정 이름의 마커에 도달했을 때 발생하는 이벤트를 반환합니다.

#### Parameters

| `string` MarkerName | 마커의 이름입니다. |
| ------------------- | ---------- |

#### Return

| `ScriptSignal` | 마커 도달 이벤트입니다. |
| -------------- | ------------- |

#### Code Samples

```lua
local ActionSequence = script.Parent

-- self : 액션시퀀스를 실행한 캐릭터 모델이 전달됩니다.
ActionSequence:GetMarkerReachedSignal("EventName"):Connect(function(self)
    -- ...
end)
```

## Events

## See also

{% content-ref url="../../../manual/studio-manual/game-development/actionsequence" %}
[actionsequence](https://docs.overdare.com/korean/manual/studio-manual/game-development/actionsequence)
{% endcontent-ref %}

{% content-ref url="../../../manual/studio-manual/game-development/actionsequence/running-actionsequences" %}
[running-actionsequences](https://docs.overdare.com/korean/manual/studio-manual/game-development/actionsequence/running-actionsequences)
{% endcontent-ref %}
