Post

2026-06-12 TIL (75일차)

2026-06-12 TIL (75일차)

Time Dilation

1. 정의

  • Time Dilation의 정의: 게임 내 시간의 흐름(속도)을 조절하는 기능입니다.
  • 사용 목적: ‘슬로우 모션’, ‘빨리 감기’ 등 연출을 통해 게임플레이 경험을 극대화합니다.

2. Time Dilation의 두 가지 핵심 축

  • Global Time Dilation: 레벨(월드) 전체의 시간을 제어하는 마스터키입니다.
  • Custom Time Dilation: 특정 액터(캐릭터, 몬스터, 사물 등)의 시간만 개별적으로 제어하는 맞춤키입니다.

3. 작동 원리와 영향 범위 (Mechanics)

  • 시간에 종속된 시스템들: Delay, Timer, 생명주기(Life Span), 애니메이션, 물리(Physics), 파티클 등 엔진의 시간을 기반으로 하는 모든 것에 영향을 미칩니다.
  • 컴포넌트 단위의 종속성: 부모 액터(캐릭터)의 Custom 시간이 변하면, 그 안에 속한 스켈레탈 메시나 이펙트(자식 컴포넌트)도 동일한 시간 배율을 상속받습니다.
  • 최종 속도 결정 공식: Global Time Dilation × Custom Time Dilation = 최종 속도

4. 실전 연출 원리: 총알 Spawn과 상대성

Time Dilation: SPAWN 독립성 설명 이미지

  • 객체 생성(Spawn) 시의 시간 독립성: 캐릭터가 총알을 발사하는 순간, 생성된 총알은 캐릭터의 Custom 시간을 상속받지 않고 월드(Global)의 시간을 따릅니다.
  • 상대적 시간 연출 (매트릭스 효과): 월드의 시간(Global)을 낮추고, 주인공의 시간(Custom)을 높여 곱연산 결과를 1.0(정상 속도)으로 맞추면, 주인공은 정상적으로 움직이되 발사된 총알이나 주변 환경은 느리게 움직이는 연출이 완성됩니다.
  • 대안적 연출 기법: 전체 월드를 제어하는 대신, 배경이나 환경 파티클의 시간만 선택적으로 느리게 조절하여 최적화와 연출을 동시에 챙길 수도 있습니다.

5. 보스전 등 복합 상황에서의 주의점

주인공과 보스가 모두 느려진 세계에서 정상 속도로 움직여야 할 때(Global 낮춤, 주인공/보스 Custom 높임) 반드시 체크해야 할 사항들입니다.

  • 보스의 투사체(Projectile) 속도: 보스가 쏜 마법이나 총알도 스폰 순간 월드 시간(Global)을 따르므로 아주 느려집니다. 보스의 공격도 빠르길 원한다면, 투사체 스폰 직후 해당 투사체의 Custom Time Dilation도 주인공처럼 높여주는 별도의 로직이 필요합니다.
  • 상태 이상(DoT, Stun) 지속 시간: 월드 시간이 느려졌기 때문에, 보스에게 걸린 ‘독 데미지 틱’이나 ‘기절 지속 시간(Delay)’이 의도보다 길어질 수 있습니다. 타이머 설정 시 델타 타임을 고려한 보정이 필요합니다.

6. 활용 시 반드시 알아야 할 주의점 (Pro Tips)

  • UI 및 입력(Input) 독립성 확보: 월드 시간이 멈추더라도 시스템 메뉴 창이나 입력은 정상 작동해야 합니다. bIgnoreTimeDilation 옵션을 활성화하여 UI와 플레이어 입력을 시간의 영향에서 분리해야 합니다.
  • 물리 연산(Physics) 오류 대비: 배율을 0.01처럼 극단적으로 낮추거나 높이면, 프레임 사이의 충돌(Collision) 연산을 건너뛰어 오브젝트가 벽을 뚫는 버그가 발생할 수 있습니다.
  • 사운드 피치(Pitch) 변화: 시간이 느려지면 사운드도 함께 늘어지며 음정이 낮아집니다. 의도적인 연출(왜곡된 소리)이 아니라면 사운드 컴포넌트는 시간 영향에서 분리해야 합니다.
  • 네트워크 동기화: 멀티플레이어 환경에서는 서버와 클라이언트 간의 시간 배율이 조금만 어긋나도 위치 비동기화가 심하게 발생하므로 매우 신중하게 동기화 처리를 해야 합니다.
This post is licensed under CC BY 4.0 by the author.