> For the complete documentation index, see [llms.txt](https://docs.overdare.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.overdare.com/korean/development/api-reference/classes/actionsequence.md).

# ActionSequence

ActionSequence : `Instance`

## Overview

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

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

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

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

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

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

## Properties

## Methods

### GetAllTrackInfos

액션시퀀스의 모든 트랙 정보를 반환합니다.

액션시퀀스의 트랙 정보는 해당 액션시퀀스가 실행 중인 경우에만 조회할 수 있습니다.

실행된 액션시퀀스는 Humanoid.ActionRunner 하위에 복제되며, 실행이 완료되거나 중지된 액션시퀀스는 삭제될 수 있으므로, 반환된 정보는 액션시퀀스가 유효한 경우에만 사용해야 합니다.

이 메서드를 과도하게 호출하면 성능에 영향을 줄 수 있으므로, 필요한 경우에만 호출하는 것을 권장합니다.

#### Parameters

#### Return

| `Value` | 액션시퀀스의 모든 트랙 정보를 포함하는 테이블입니다. |
| ------- | ----------------------------- |

#### Code Samples

```lua
local ActionSequence = script.Parent
local TrackInfos = ActionSequence:GetAllTrackInfos() -- 모든 트랙 정보 가져오기

for i = 1, #TrackInfos do
    local trackInfo = trackInfos[i]

    print(trackInfo.TrackName)
    print(trackInfo.TrackType)
    print(trackInfo.IsEnable)
    print(trackInfo.TrackData)
end
```

### GetMarkerReachedSignal

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

#### Parameters

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

#### Return

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

#### Code Samples

```lua
local ActionSequence = script.Parent

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

### GetTrackInfo

지정한 트랙 이름과 트랙 타입에 해당하는 트랙 정보를 반환합니다.

액션시퀀스의 트랙 정보는 해당 액션시퀀스가 실행 중인 경우에만 조회할 수 있습니다.

실행된 액션시퀀스는 Humanoid.ActionRunner 하위에 복제되며, 실행이 완료되거나 중지된 액션시퀀스는 삭제될 수 있으므로, 반환된 정보는 액션시퀀스가 유효한 경우에만 사용해야 합니다.

이 메서드를 과도하게 호출하면 성능에 영향을 줄 수 있으므로, 필요한 경우에만 호출하는 것을 권장합니다.

#### Parameters

| `string` TrackName                       | 정보를 조회할 트랙의 이름입니다. |
| ---------------------------------------- | ------------------ |
| `Enum.ActionSequenceTrackType` TrackType | 정보를 조회할 트랙의 타입입니다. |

#### Return

| `Value` | 액션시퀀스의 트랙 정보를 포함하는 테이블입니다. |
| ------- | -------------------------- |

#### Code Samples

```lua
local ActionSequence = script.Parent
local TrackName = "SomeColTrackName_1"
local TackType = Enum.ActionSequenceTrackType.CollisionTrack
local TrackInfo = ActionSequence:GetTrackInfo(TrackName, TrackType) -- 특정 트랙 정보 가져오기

if TrackInfo ~= nil then
    print(TrackInfo.TrackName)
    print(TrackInfo.TrackType)
    print(TrackInfo.IsEnable)
    print(TrackInfo.TrackData)
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)
```

### TriggerEnded

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

#### Parameters

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

#### Return

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

#### Code Samples

```lua
local ActionSequence = script.Parent

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

### TriggerStarted

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

#### Parameters

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

#### Return

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

#### Code Samples

```lua
local ActionSequence = script.Parent

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

## Events

## See also

{% content-ref url="/pages/4wFvTPpaFUW97x39URDq" %}
[액션시퀀스](/korean/manual/studio-manual/game-development/actionsequence.md)
{% endcontent-ref %}

{% content-ref url="/pages/PwkcSAovkak53rGWaRWG" %}
[액션시퀀스 실행](/korean/manual/studio-manual/game-development/actionsequence/running-actionsequences.md)
{% endcontent-ref %}
