보간은 런타임에 리지드바디 게임 오브젝트의 움직임에 나타나는 지터를 관리할 수 있는 방법을 제공합니다.
지터는 물리 시뮬레이션 업데이트 속도(Fixed Timestep에 의해 결정됨)가 애플리케이션의 프레임 속도보다 느릴 때 발생할 수 있습니다.이것은 리지드바디에 카메라가 런타임에서 추적하는 물리 기반 움직임이 있는 경우 가장 눈에 띕니다.
Unity의 PhysX 시스템은 보간을 구현하는 방법을 제공합니다.리지드바디의 Interpolate 설정은 런타임에 리지드바디의 모션이 흔들리는 것 같을 때 부드럽게 처리하는 두 가지 옵션을 제공합니다.이러한 옵션은 Interpolate와 Extrapolate입니다.
이 보간과 외삽 모두 물리 업데이트 사이에 리지드바디의 포즈(즉, 포지션 및 회전)를 계산합니다.어떤 옵션을 선택해야 하는지는 사용 사례에 가장 적합한 시각적 결과를 제공하는 옵션에 따라 다릅니다.
리지드바디의 움직임에 지터가 있는 경우에만 보간 또는 외삽을 사용해야 합니다.Interpolate는 기본적으로 None으로 설정되어 있습니다.
보간 또는 외삽이 활성화되면 물리 시스템이 리지드바디의 트랜스폼을 제어합니다.따라서 트랜스폼에 대한 직접적인 (비물리) 변경은 [[Physics.SyncTransforms]] 호출로 따라야 합니다.그렇지 않으면 Unity는 물리 시스템에서 발생하지 않은 트랜스폼 변경을 무시합니다.
이전 두 물리 업데이트에서 리지드바디의 포즈를 사용하여 현재 프레임에서 리지드바디의 포즈를 계산하고 적용합니다.
보간을 사용하면 리지드바디가 원래 위치에서 약간 뒤로 이동하는 것처럼 보입니다.그 이유는 보간은 리지드바디의 포즈를 한 번의 물리 업데이트만큼 지연시켜 계산에 사용할 두 포인트를 확보하고 리지드바디를 새 포즈로 이동하는 데 충분한 시간을 갖게 하기 때문입니다.
보간은 외삽보다 정확하지만 물리 업데이트 한 번의 시간 지연이 있습니다.
보간은 일반적으로 리지드바디의 속도가 변하거나 리지드바디의 움직임에 영향을 주는 다른 물리 요소가 있는 상황에 가장 적합한 옵션입니다.
보간은 API 프로퍼티 RigidbodyInterpolation.Interpolate
로 표현됩니다.
이전 물리 업데이트에서 리지드바디의 포즈를 사용하고 다음 물리 업데이트에서 리지드바디의 포즈를 예측하여 현재 프레임의 포즈를 계산하고 예측합니다.
외삽을 사용하면 리지드바디가 원래 위치보다 약간 앞쪽으로 움직이는 것처럼 보입니다.외삽은 리지드바디의 현재 속도를 사용하여 다음 물리 업데이트에서 리지드바디의 포즈를 예측하므로 계산에 사용할 두 개의 포인트가 있기 때문입니다.
외삽은 종종 정확도가 떨어지고 충돌 바운드를 눈에 띄게 초과할 수 있습니다(다음 물리 업데이트 후 다음 프레임에서 자체 수정).이는 외삽 계산이 미래의 물리적인 힘이나 계산을 고려하지 않기 때문입니다.
외삽은 일반적으로 정확도가 중요하지 않은 상황, 예를 들어 리지드바디가 일정한 속도로 움직이고 리지드바디의 움직임에 영향을 주는 다른 물리 요소가 없는 경우에만 좋은 옵션입니다.
외삽은 API 프로퍼티 RigidbodyInterpolation.Extrapolate
로 표현됩니다.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.