본문 바로가기
유니티 Unity/유니티 기능 구현

[유니티] Rigidbody(리지드바디) 기본 속성 값 파악하기

by TODAYCODE 2021. 9. 9.
반응형

리지드바디는 유니티에서 필수적으로 사용되는 요소이기 때문에 확실하게 파악해둘 필요가 있다.

언제나 그렇듯 유니티 공식문서를 먼저 살펴보면 이해에 큰 도움이 된다.

 

리지드바디 - Unity 매뉴얼

Rigidbody 는 GameObject 가 물리 제어로 동작하게 합니다. 리지드바디는 힘과 토크를 받아 오브젝트가 사실적으로 움직이도록 해줍니다. 리지드바디가 포함된 모든 게임 오브젝트는 중력의 영향을

docs.unity3d.com

 

유니티에서 게임오브젝트를 생성한 뒤 ' Add Component ' 를 통해서 리지드바디 컴포넌트를 추가할 수 있다.

리지드 바디에는 많은 속성 값들이 존재하므로 이를 하나씩 살펴보도록 하자.

 


Rigidbody의 속성 값

 

  • mass

물체의 질량을 뜻한다. 기본값은 Kg이고, 수치를 높일수록 무거워진다.

 

 

  • Drag

공기저항 값. 오브젝트가 움직일 때 공기저항의 크기를 입력할 수 있다.

0이면 저항이 없고, 무한대를 입력하면 오브젝트가 즉시 정지하게 된다.

 

  • Angular Drag

토크로 오브젝트를 회전시킬 때, 회전 공기저항 값.

0일때는 저항이 없으나, 무한대로 설정한다고 해서 회전이 멈추지는 않는다.

 

  • Use Gravity

중력의 영향을 받을 것인지 설정할 수 있다. 체크를 통해서 on/off 할 수 있다.

 

  • Is Kinematic

물리엔진의 영향을 받을 것인지, 물리엔진을 무시하고 로직을 통해서만 움직일 것인지를 결정할 수 있다.

해당 속성을 체크할 경우 오로지 Transform으로만 조작된다.

 

  • Interpolate

물리엔진에서 움직임을 얼마나 자연스럽게 보정할지를 선택할 수 있다.

3가지 중 하나를 선택할 수 있다.

  1. None - Interpolate 기능을 사용하지 않는다. (보간이 적용되지 않음)
  2. Interpolate - 이전 프레임을 기반으로 보정하여 움직임을 부드럽게 보정함.
  3. Extrapolate - 다음 프레임의 움직임을 추정해서 움직임을 부드럽게 보정함.

 

  • Collision Detection

물체의 속도가 지나치게 빠를 경우에는 충돌을 하지 않고 지나치는 경우가 발생할 수 있다.

이동속도가 빠르면 프레임을 기준으로 일정거리를 뛰어넘을 수도 있기 때문이다.

예전에 나도 개발을 진행하면서 분명히 충돌을 해야하는데 하지 않는 상황이 발생해서 골치 아팠던 적이 있는데

해당 속성 값을 변경하는 것으로 해결할 수 있었다.

  1. Discrete : 일반적인 충돌 감지 방식으로 모든 collider와의 충돌을 검사하여 감지한다.
  2. Continuous : 배경이나 Static 등 고정되어있는 것과의 충돌을 인식할때 사용된다.
  3. Continuous Dynamic : 위의 두 방식을 번갈아 사용하면서 충돌을 인식한다.
  4. Continuous Speculative : Continuous Dynamic 보다 성능적으로 가볍다. 다만, 실제로 충돌을 하지 않았지만 두 물체가 충돌했다고 인식하는 경우가 발생할 수 있다고 한다.

 

  • Constraints

리지드바디의 움직임을 제한한다.

X,Y,Z 축의 이동이나 회전을 선택해서 제한할 수 있다.

굉장히 자주 사용되는 기능 중에 하나이다.

 


이상으로 리지드바디의 속성값을 알아보았다.

다음은 리지드바디를 활용해서 캐릭터의 움직임을 구현해보도록 하자.

 

 

반응형

댓글