빠른 흐름
text
Animation Track -> 캐릭터 움직임
Audio Track -> 대사/효과음
Activation Track -> 오브젝트 on/off
Signal -> 코드나 이벤트 트리거기본 흐름
- Timeline을 실전에 붙일 때 가장 많이 헷갈리는 부분은 "어떤 것을 track으로 둘 것인가"입니다. 좋은 Timeline은 모든 것을 한 트랙에 욱여넣는 것이 아니라, 연출 역할별로 분리된 구조를 가집니다.
- Animation Track은 캐릭터와 오브젝트 움직임, Audio Track은 대사와 효과음, Activation Track은 특정 오브젝트의 활성화, Control Track은 다른 Playable이나 하위 시퀀스 제어에 잘 맞습니다.
- Signal은 Timeline에서 코드나 게임플레이 이벤트로 넘어가는 연결 지점으로 볼 수 있습니다. 컷신 중 특정 시점에 대사 UI를 띄우거나, 퀘스트 단계를 넘기거나, VFX를 실행해야 할 때 유용합니다.
- 컷신 구조가 커질수록 "애니메이션 레이어", "카메라 레이어", "오디오 레이어", "게임플레이 트리거 레이어"를 분리하는 편이 읽기 쉽습니다. 이것이 나중에 수정 비용을 크게 줄여 줍니다.
- 결국 Timeline 운영의 핵심은 예쁜 클립 배치가 아니라 구조화입니다. sequence를 어느 단위로 쪼개고, 코드와의 연결 지점을 어디에 둘지 먼저 정해야 합니다.
체크포인트
| 상황 | 적합한 선택 |
|---|---|
| 캐릭터 움직임·표정 애니메이션 | Animation Track |
| 대사·효과음·BGM 타이밍 | Audio Track |
| 특정 시점에 오브젝트 활성/비활성 | Activation Track |
| 컷신 중 코드 실행·이벤트 트리거 | Signal (+ SignalReceiver 연결) |
| 중첩 시퀀스·하위 Director 제어 | Control Track |
주의할 점
컷신 안에서 게임 로직을 직접 처리하기 시작하면 Timeline이 비대해집니다. 시간 배치는 Timeline이, 상태 전이와 규칙은 코드가 담당하도록 경계를 잡으세요.
text
// ❌ Timeline clip에서 게임플레이 로직 처리
Activation Track: QuestManager ON → 퀘스트 초기화 코드 직접 실행
→ 타임라인이 게임플레이 규칙까지 알게 됨
// ✅ Signal로 코드에 위임
Timeline:
Signal Emitter (00:05) → "OnCutsceneEnd" 발신
C#:
public class QuestSignalReceiver : MonoBehaviour, INotificationReceiver
{
public void OnNotify(Playable origin, INotification notification, object context)
{
if (notification is OnCutsceneEnd)
questManager.StartFirstQuest(); // 로직은 코드에서
}
}참고 링크
3 sources