On this page
article
Tickgroup
Tick Group란?
Unreal Engine에서 게임 로직은 매 프레임마다 Tick이라는 방식으로 실행됨
근데 모든 액터나 컴포넌트를 한꺼번에 처리하면 순서 꼬이거나 종속성 충돌 날 수 있기에 Tick Group이라는 걸로 실행 순서를 정해두는 것
왜 필요한가
예를 들어
- 물리 계산 전에 캐릭터 이동부터 반영해야 하고
- 애니메이션은 물리 결과 이후에 적용해야 하며
- 카메라는 모든 게 끝난 다음에 위치를 계산해야 함
이런 순서가 안 맞으면 결과가 이상해지기 때문에 Tick Group을 나눠서 조절하는 것
주요 Tick Group
Tick Group 이름 | 설명 |
---|---|
TG_PrePhysics | 물리 계산 전에 실행됨. 캐릭터 이동이나 AI 처리 같은 것들 |
TG_StartPhysics | 물리 시작 지점인데 거의 사용 안 함 |
TG_DuringPhysics | 물리 계산 도중 실행. 커스텀 물리 처리할 때 |
TG_EndPhysics | 물리 계산이 끝난 뒤 실행 |
TG_PostPhysics | 물리 후 트랜스폼 업데이트나 후처리 |
TG_PostUpdateWork | 렌더링 직전. 카메라 위치 같은 거 여기서 처리 |
TG_LastDemotable | 중요도 낮은 작업들. LOD 계산, AI 등 뒤로 미룸 |
사용하는 방법
액터에 설정
PrimaryActorTick.TickGroup = TG_PostPhysics;
컴포넌트에 설정
MyComponent->PrimaryComponentTick.TickGroup = TG_PrePhysics;
실행 순서 예시
1. TG_PrePhysics → 캐릭터 이동, AI 처리
2. TG_DuringPhysics → 물리 시뮬레이션
3. TG_EndPhysics → 물리 결과 정리
4. TG_PostPhysics → 트랜스폼 정리
5. TG_PostUpdateWork → 카메라 위치 계산
6. TG_LastDemotable → 덜 중요한 처리 (LOD 등)
Tick 의존성 설정
어떤 컴포넌트가 다른 액터보다 나중에 Tick돼야 할 때는AddTickPrerequisiteActor
나 AddTickPrerequisiteComponent
로 의존성을 직접 걸 수 있음
MyComponent->AddTickPrerequisiteActor(OtherActor);
정리
항목 | 내용 |
---|---|
목적 | Tick 순서 제어해서 처리 순서 보장함 |
대표 그룹 | PrePhysics, DuringPhysics, PostPhysics 등 |
설정 방법 | PrimaryActorTick.TickGroup = TG_PostPhysics 이런 식 |
종속 처리 | AddTickPrerequisiteActor() 로 명시적 설정 가능 |