UDN
Search public documentation:
ActorTickingKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
액터 틱
문서 변경내역: Joe Graf 작성.
개요
TG_PreAsync 그룹
TG_DuringAsync 그룹
TG_PostAsync 그룹
- 해당 액터가 충돌을 변경하고, 충돌가능한 액터를 스폰하고, Novodex 데이터에 기록한다면, TG_PreAsyncWork에 넣어져야 합니다. 잘 알려진 이 그룹의 액터들에는Pawns, Weapons, 그리고 일부 강체 클래스들이 있습니다.
- 만일 액터가 충돌의 변경, 충돌하는 액터의 스폰(충돌하지 않는 액터는 괜찮음), 또는Novodex 데이터의 변경 을 하지 않는다면, 이 액터는 TG_DuringAsyncWork 그룹에 배치되어야 합니다. 액터의 틱에 소요된 시간이 물리의 시뮬레이션에 소요된 시간을 가리기 때문에 이곳이 가장 알맞은 장소입니다. 예를 들면 이곳에서 2ms의 틱 시간은 2ms까지의 시뮬레이션 시간을 사용할 수 있다는 것을 의미합니다. 입자 시스템, 오디오, AI의 처리 등이 이 그룹에 넣어지는 것들입니다.
- 액터가 그의 Unreal 데이터를 업데이트하기에 앞서 Novodex로부터 데이터를 찾아와야 한다면, 이 액터는 TG_PostAsyncWork 그룹에 들어가야 합니다. 차량이나 헝겊인형 등이 가장 빈번히 이 그룹에 들어가는 것들입니다.
액터의 스폰
컴포넌트의 틱
틱 코드의 흐름
게임 스레드 | 물리 스레드 |
---|---|
세계의 액터 목록을 짚어 나가면서 TG_PreAsyncWork인 것을 틱 하고 그밖의 것들은 모두 지연시킨다 | 대기 상태 |
각각의 틱 된 액터에 대해, 컴포넌트 목록을 짚어나가면서 TG_PreAsyncWork를 틱 하고 그밖의 것들은 모두 지연시킨다 | 대기 상태 |
물리 스레드에게 시작할 것을 지시한다 | 시뮬레이션 시작 |
TG_DuringAsyncWork 목록에 있는 각 액터를 틱 한다 | 물리를 시뮬레이트 한다 |
액터 내의 각 컴포넌트를 틱 한다. 필요한 것은 지연시킨다 | 물리를 시뮬레이트 한다 |
TG_DuringAsycnWork때까지 지연된 각 컴포넌트를 틱 한다 | 물리를 시뮬레이트 한다 |
물리 작업이 끝날 때까지 차단한다 | 시뮬레이션 결과를 반환한다 |
TG_PostAsyncWork 목록에 있는 각 액터를 틱 한다 | 대기 상태 |
액터 내의 각 컴포넌트를 틱 한다 | 대기 상태 |
TG_PostAsycnWork때까지 지연된 각 컴포넌트를 틱 한다 | 대기 상태 |
렌더하고, 위 과정을 반복한다 | 대기 상태 |
자세한 코드의 흐름(및 틱 이후)
코드의 흐름(각 프레임)
객체의 틱 물리 이전 콘트롤러 (입력) 폰 (스크립트) 컴포넌트 SkeletalMeshComponent: 애니메이션, 뼈대 콘트롤을 업데이트 한 다음, 매트릭스를 연산 물리, 비동기 폰 물리 물리 이후 카메라 틱 뷰포트 틱 "서버 이동" "클라이언트 이동" 스트리밍 렌더 VP 매트릭스 계산 (스크립트에서 카메라를 요청허고, 캐시된 값을 반환) Controller.PreRender UTPawn.PreRender (라이센스 사용자들이 사용하기에도 아주 좋음) 모든 것을 렌더 오디오 Callgraph 계산