동작 원리
개요
액션시퀀스의 세부 기능을 설명하기에 앞서 액션시퀀스의 동작 원리를 먼저 설명합니다. 이를 통해 액션시퀀스 실행 시 내부적으로 어떤 방식으로 동작하는지 이해하고, 기능 사용 시 고려해야 할 기술적 특성을 함께 파악할 수 있습니다.
런타임 동작 방식
액션시퀀스는 정적 데이터 기반으로 정의된 객체로, 런타임에서 Instance.new 또는 Clone을 통해 직접 생성할 수 없습니다.
Play 메서드를 통해 실행이 요청되면, 원본 인스턴스는 Humanoid.ActionRunner 하위로 복제되며, 이후 복제된 인스턴스를 기반으로 액션이 실행됩니다.

이와 같은 동작 구조로 인해, 액션시퀀스 내부 스크립트에서 이벤트를 연결할 때는 원본 인스턴스가 아닌 런타임에 복제된 인스턴스를 기준으로 접근해야 합니다. 따라서 절대 경로를 사용하는 대신 script.Parent를 기준으로 참조해야 합니다.
실행 흐름
액션 실행 요청이 발생하면, 호출 위치(Client 또는 Server)에 관계없이 서버에서 시퀀스 실행이 시작됩니다. 이후 액션시퀀스 하위에 있는 스크립트 이벤트가 연결되고, 시퀀스와 자식 객체가 모든 클라이언트로 복제됩니다.
복제가 완료되면 각 클라이언트에서 타임라인이 재생되며, 애니메이션, 이펙트, 사운드 등의 연출이 실행됩니다.
즉, 액션시퀀스는 런타임에서 스크립트로 동적으로 생성하거나 직접 복제하는 구조가 아니라, 사전에 정의된 데이터를 기반으로 실행 시 복제되어 연출을 수행하는 방식으로 동작합니다.
서버는 시퀀스 실행 시점을 기준으로 전체 진행 상태를 동기화하며, 클라이언트 간 발생할 수 있는 시간 차이는 자동으로 보정됩니다. 또한 게임 플레이의 일관성을 유지하기 위해 공격 충돌 판정과 같은 핵심 로직은 서버에서 처리됩니다.
생성 및 제거 흐름
액션시퀀스는 정의된 재생 길이까지 타임라인이 재생되며 연출이 진행됩니다.
연출이 종료되면 실행을 위해 복제된 액션시퀀스 객체는 자동으로 제거되며, 액션시퀀스에 연결된 이벤트와 하위에 구성된 Part, VFX, 스크립트 등의 객체 또한 함께 정리됩니다.
재생 길이 관련 주의 사항
액션시퀀스 실행 시 생성되는 복제 객체의 생성 및 파괴 시점을 명확히 하기 위해, 액션이 종료된 경우 재생 길이도 함께 정리하는 것이 좋습니다. 재생 길이이 불필요하게 길 경우 객체 제거 시점이 지연될 수 있습니다.
나쁜 예

좋은 예

재생 길이은 타임라인 상단의 시작/종료 시간 필드에 값을 입력하거나, 스크러버를 원하는 위치로 이동한 뒤 종료 위치 설정 버튼을 사용해 조정할 수 있습니다.

Last updated