물리력에 의한 개체의 움직임이 발생할때 고려해야 할 부분이다. 캐릭터의 움직임이나 개체의 움직임을 transform에 의한 위치변화가 아니라 물리력에 의한 움직임으로 설정할시에 interpolate 옵션을 반드시 고려해야 할 것이다.
interpolate 옵션에 대해서 자주 찾아보게 되어서 해당 참고 내용을 정리해놓고 기회가 될때 또 확인해보도록 하자
`Rigidbody2D`의 `Interpolate` 속성은 Unity에서 물리 시뮬레이션에서 위치 및 회전 값을 어떻게 업데이트할지를 결정하는 설정입니다. 이 설정은 보간(interpolation)과 관련이 있습니다.
### Rigidbody2D의 Interpolate 속성
- **Interpolate 설정:**
- `Interpolate` 속성은 `Rigidbody2D` 컴포넌트의 Inspector에서 `Rigidbody2D` 컴포넌트의 `Interpolate` 옵션을 찾아 설정할 수 있습니다.
- Inspector에서 `Interpolate` 속성은 "None", "Interpolate", "Extrapolate"의 세 가지 옵션 중 하나를 선택할 수 있습니다.
- **옵션 설명:**
1. **None (없음):**
- `Interpolate`를 사용하지 않습니다. 물리 시뮬레이션에서 제공하는 위치 및 회전 값을 직접 사용합니다.
- 부드러운 움직임을 위해서는 대개 `Interpolate` 옵션을 사용하는 것이 좋습니다.
2. **Interpolate (보간):**
- 물리 시뮬레이션의 결과를 부드럽게 만들기 위해 현재 위치와 물리 시뮬레이션의 위치 사이를 선형 보간(Interpolation)합니다.
- 이것은 보다 부드러운 움직임을 제공하며, 시각적인 품질을 향상시킬 수 있습니다.
3. **Extrapolate (외삽):**
- 물리 시뮬레이션 결과를 더 나아가 예측하여 위치 및 회전을 업데이트합니다.
- 일반적으로 네트워크 상황에서 사용되며, 예측 오차를 감소시키기 위한 용도로 활용될 수 있습니다.
### Interpolate 사용 시의 효과
- **Interpolate를 사용할 때:**
- `Interpolate`를 사용하면 움직임이 보다 부드럽게 보입니다.
- 특히 빠르게 움직이는 물체의 경우, 물리 시뮬레이션의 갱신 주기와 렌더링 주기 간의 불일치로 생기는 부자연스러운 움직임을 완화할 수 있습니다.
- **Interpolate를 사용하지 않을 때:**
- `None`으로 설정하면 위치 및 회전이 갱신 주기마다 급격하게 변할 수 있어, 움직임이 덜 부드러워질 수 있습니다.
- 특히 낮은 갱신 주기에서 이러한 효과가 뚜렷하게 나타날 수 있습니다.
일반적으로 대부분의 상황에서 `Interpolate`를 사용하는 것이 움직임의 자연스러움을 높일 수 있습니다.
전체적으로 확인해보았을대, 물리 베이스의 게임을 개발하게 되는 경우는 interpolate 옵션을 설정하는것이 좋을것 같고,
그러한 게임이 서로 물리 베이스이면서 네트워크적인 연결이 이루어지는 경우 extrapolate 로 설정을 해주어야 네트워크적인 지연요소 까지 고려해줄 수 있는 형태로 동작할 것으로 예상된다.
'Unity' 카테고리의 다른 글
rigidbody2d 에서 Sleeping Mode 에 관하여. (0) | 2023.12.08 |
---|---|
물리효과 기반 게임에서 순간적으로 의도한 물리효과가 발생하지 않을때 Auto Sync Transforms 효과 체크 고려할것. (0) | 2023.12.08 |
터치를 인식해서 bool 값을 변경해서 경우를 나누고자 할 때 사용할만한 방법 (0) | 2023.12.07 |
Frame Timing Stats 의 설정 위치. (0) | 2023.12.07 |
<Gradle build failed> Solution. Unity 2022.3.14~3.15 || licenses problem (0) | 2023.12.07 |