반응형


강체(Rigidbody) 의 연속 충돌 감지(Continuous Collision Detection)와 충돌 감지 옵션들







Rigidbody 의 충돌 감지 옵션(Collision Detection) 설정

  • 불연속(Discrete)    일정 tick 간격으로 충돌 확인, 다른 콜라이더들은 충돌할때 불연속 충돌 감지를 사용한다. 일반 충돌들에 대해 사용되어진다, 이건 default 값임

간 간격이 크거나 엄청 빨리 움직일때 충돌이 안될 수 있음, 성능이 크게 떨어지거나 할때 발생 할 수 있음, 하지만 연산은 빠름


  • 연속(Continuous)       보간으로 충돌 확인, 리지드 바디가 있는 동적 콜라이더에는 불연속 충돌을, 리지드 바디가 없는 정적 메쉬 콜라이더에는 연속 충돌을 적
                                연속 동적을 적용한 리지드 바디에 대한 충돌은 Continuous 한 충돌 감지를 한다, 즉 연속 동적을 적용한 오브젝트의
                                충돌 상대로서 사용함 물링 연산 성능에 크게 영향을 주기 때문에, 빠른 오브젝트의 충돌로문제가 나오지 않는 경우는
                                불연속을 사용하는 것이 좋다

  • 동적연속(Continuous Dynamic) Continuous 및 Continuous Dynamic 충돌을 적용한 오브젝트에 대해 Continuous 충돌 감지를 수행한다
                                                리지드 바디가 없는 정벅 메쉬 콜라이더에도 Continuous충돌을적용한다
                                                다른 콜라이더에 대해서는 불연속 충돌 감지를 합니다, 고속으로 움직이는 오브젝트에 사용한다





연속 충돌 감지(Continuous Collision Detection)

연속 충돌 감지는 빠르게 움직이는 콜라이더가 서로 통과하지 않도록 하는 기능입니다. 이것은 일반 (Discrete) 충돌 감지 사용시, 오브젝트가 한 프레임에서 콜라이더의 한 쪽에 있고 다음 프레임에서 이미 콜라이더을 통과하는 경우에 발생할 수 있습니다. 이것을 해결하려면 빠르게 움직이는 오브젝트의 리지드 바디에서 연속 충돌 감지를 사용할 수 있습니다. 충돌 감지 모드를 Continuous로 전환하여, 리지드 바디가 정적 (즉, 리지드 바디가 없는) 메쉬 콜라이더를 통과하지 않도록 합니다. 충돌 감지 모드를 Continuous Dynamic로 전환하여, 리지드 바디가 충돌 탐지 모드를 Continuous 또는 Continuous Dynamic으로 설정하여 다른 지원되는 리지드 바디를 통과하지 않도록 합니다. 연속 충돌 감지는 Box, Sphere 및 Capsule의 콜라이더에서 지원됩니다. 연속 충돌 감지는 오브젝트에서 통과가 발생한 경우에 충돌을 잡기 위한 안전망이 목적이지만, 물리적으로 정확한 충돌 결과를 얻을 수 있는 것은 아니기 때문에 빠르게 움직이는 오브젝트에 문제가 있는 경우, TimeManger 인스펙터의 고정 Time step 변수를 줄여 시뮬레이션을 더 정밀하게 할 수 있습니다.






강체

Rigidbody를 통해 GameObject가 물리적 제어하에 동작하게 됩니다. 리지드 바디는 힘과 토크를 받아 현실적으로 오브젝트를 움직일 수 있습니다. GameObject는 중력의 영향을 받는 리지드 바디를 포함하거나, 스크립팅을 통해 더해진 힘으로 작동하거나, NVIDIA PhysX 물리 엔진을 통해 그 외의 오브젝트와 상호 작용해야 합니다.




프로퍼티

프로퍼티:기능:
MassThe mass of the object (in kilograms by default).
Drag힘에 의해 움직일 때, 오브젝트에 영향을 주는 공기 저항의 양. 0이면 공기 저항이 0이고, 무한대면 오브젝트는 즉시 움직임을 멈춥니다.
Angular Drag토크에 의해 회전할 때 오브젝트에 영향을 주는 공기 저항의 양. 0이면 공기 저항 없음. 이 파라미터의 값을 무한대(infinity)로 설정하는 것만으로는 오브젝트의 회전을 즉시 중지할 수 없다는 점에 유의하십시오.
Use Gravity활성화하면 오브젝트는 중력의 영향을 받습니다.
Is Kinematic활성화하면 오브젝트는 물리 엔진에 의해 주도되지 않으며, Transform에 의해서만 조작될 수 있습니다. 이것은 플랫폼을 옮기려고 하는 경우나, HingeJoint를 추가한 리지드 바디를 애니메이션하려는 경우에 편리합니다.
InterpolateRigidbody의 움직임이 어색할 때 다음 옵션 중 하나를 시도하십시오.
None보간을 적용하지 않는다.
Interpolate이전 프레임의 Transform에 따라 Transform 스무딩.
Extrapolate다음 프레임의 Transform에 따라 Estimated Transform 스무딩.
###연속 충돌 감지(Continuous Collision Detection)고속으로 움직이는 오브젝트가 충돌을 감지하지 않고 빠져나가는 것을 방지하기 위해 사용합니다.
DiscreteUse Discreet collision detection against all other colliders in the scene. Other colliders will use Discreet collision detection when testing for collision against it. Used for normal collisions (This is the default value).
Continuous동적 콜라이더(리지드 바디 있음)에는 Discrete(불연속) 충돌, 정적 메쉬 콜라이더(리지드 바디 없음)에는 Continuous(연속) 충돌을 적용합니다. Continuous Dynamic을 적용한 리지드 바디에 대한 충돌은 Continuous한 충돌 감지를 합니다. 이것은 Continuous Dynamic을 적용한 오브젝트의 충돌 상대로서 사용합니다. (물리 연산 성능에 크게 영향을 주기 때문에, 빠른 오브젝트의 충돌로 문제가 나오지 않는 경우는 Discrete대로 하십시오.)
Continuous DynamicContinuous 및 Continuous Dynamic 충돌을 적용한 오브젝트에 대해 Continuous 충돌 감지를 수행합니다. 정적 메쉬 콜라이더(리지드 바디 없음)에도 Continuous 충돌을 적용합니다. 다른 콜라이더에 대해서는 Discrete 충돌 감지를 합니다. 고속으로 움직이는 오브젝트에 사용합니다.
Constraints리지드 바디의 움직임에 대한 제한:-
Freeze Position월드 좌표계의 X, Y, Z 축으로 이동하는 리지드 바디를 선택적으로 중지합니다.
Freeze Rotation월드 좌표계의 X, Y, Z 축으로 회전하는 리지드 바디를 선택적으로 중지합니다.




https://docs.unity3d.com/kr/current/Manual/class-Rigidbody.html

반응형

+ Recent posts