물리 머티리얼 2D(Physics Material 2D)
거리 조인트 2D(Distance Joint 2D)

2D 조인트

이름에서 알 수 있듯이, 조인트는 여러 게임 오브젝트를 연결하는 역할을 합니다. Rigidbody 2D 컴포넌트가 연결된 게임 오브젝트나 월드 공간의 고정된 포지션에만 2D 조인트를 연결할 수 있습니다.

2D 조인트의 이름은 모두 ‘2D’로 끝납니다. 이름이 ‘2D’로 끝나지 않는 조인트는 3D 조인트입니다. 2D 조인트는 2D 게임 오브젝트와 함께 사용할 수 있고, 3D 조인트는 3D 게임 오브젝트와 함께 사용할 수 있습니다.

모든 2D 조인트에 대한 유용한 배경 정보는 아래의 세부 정보 및 힌트를 참조하십시오.

다양한 타입의 2D 조인트가 있습니다. 이 조인트의 프로퍼티에 대한 자세한 내용은 각 조인트 레퍼런스 페이지를 참조하십시오.

  • 거리 조인트 2D - 리지드바디 물리로 제어되는 두 게임 오브젝트를 서로 연결하고 둘 사이에 일정 거리를 유지합니다.

  • 고정 조인트 2D - 두 오브젝트의 상대적인 포지션을 고정시켜 오브젝트가 항상 주어진 위치와 각도에서 오프셋합니다. 예를 들어 서로 단단히 연결된 것처럼 반응해야 하는 오브젝트는 서로 멀리 떨어져서도 안 되고, 서로 더 가까이 움직여서도 안 되고, 서로를 기준으로 회전해서도 안 됩니다. 이 조인트를 사용하여 고정되어 있으면서 약간 신축성이 있는 연결을 만들 수도 있습니다.

  • 마찰 조인트 2D - 리지드바디 물리로 제어되는 두 게임 오브젝트 사이의 선속도와 각속도를 모두 0으로 줄입니다. 즉, 게임 오브젝트의 속도를 줄이고 정지시킵니다. 회전하지만 움직임이 둔화되는 평면을 예로 들 수 있습니다.

  • 힌지 조인트 2D - 리지드바디 물리로 제어되는 게임 오브젝트를 회전축에 해당하는 공간의 한 점에 연결할 수 있습니다. 가위의 접합 부분에 있는 회전축을 예로 들 수 있습니다.

  • 상대 조인트 2D - 조인트를 사용하여 리지드바디 물리로 제어되는 두 게임 오브젝트가 서로의 포지션을 기준으로 포지션을 유지할 수 있습니다. 두 오브젝트가 상호 간에 오프셋을 유지하는 데 사용되는 조인트입니다. 플레이어를 따라 함께 움직이는 추가 비행 포대가 있는 슈팅 게임을 예로 들 수 있습니다.

  • 슬라이더 조인트 2D - 조인트를 사용하면 리지드바디 물리로 제어되는 게임 오브젝트가 미닫이 문처럼 공간에서 선을 따라 미끄러질 수 있습니다.

  • 스프링 조인트 2D - 조인트를 사용하면 리지드바디 물리로 제어되는 두 게임 오브젝트를 스프링으로 연결된 것처럼 연결할 수 있습니다.

  • 타겟 조인트 2D - 다른 조인트처럼 어떤 리지드바디 오브젝트에 연결되지 않고 특정 타겟에 연결됩니다. 조인트는 스프링 타입으로, 중력의 작용에 따라 동작하는 오브젝트를 선택하고 움직이는 데 등에 사용할 수 있습니다.

  • 휠 조인트 2D - 휠과 서스펜션을 시뮬레이션합니다.

세부 정보 및 힌트

제약

모든 조인트는 리지드바디 2D 동작에 적용되는 하나 이상의 제약 옵션을 제공합니다. 제약은 하나의 규칙으로, 조인트는 영구적으로 파괴되지 않기 위해서 이 제약을 지키려고 합니다. 사용할 수 있는 제약의 종류에는 여러 가지가 있지만, 일반적으로 조인트 하나에 몇 가지 옵션만 제공하며, 때로는 하나의 옵션만 제공하기도 합니다. 일부 제약은 리지드바디가 선이나 특정 포지션에서 벗어나지 않게 하는 등 오브젝트의 운동을 제한합니다. 또 다른 일부 제약은 모터와 같이 리지드바디 오브젝트가 일정 속도로 회전하거나 움직이게 하는 등 오브젝트를 ‘구동하는(driving)’ 역할을 하기도 합니다.

제약 임시 위반

물리 시스템은 제약이 일시적으로 위반될 것이라고 가정하고 만들어져 있습니다. 오브젝트는 거리 제약에 정의된 거리보다 서로 더 떨어질 수도 있고, 속도 제약에 정의된 모터 속도보다 더 빨리 움직일 수 있습니다. 제약을 위반하지 않을 때 조인트는 아무런 힘을 가하지 않고 따라서 거의 일을 하지 않습니다. 제약을 위반하면 조인트는 힘을 가해 제약을 위반하는 움직임을 바로잡습니다. 위에서 언급한 ‘구동’ 제약의 경우, 조인트는 힘을 가해 제약에 정의된 거리를 유지하거나 모터 속도를 유지하려 합니다. 이렇게 가해진 힘이 항상 제약 위반을 곧바로 바로잡는 것은 아닙니다. 일반적으로 힘은 빠르게 가해지지만, 제약 위반을 해결하는 데에는 다소 시간이 걸릴 수도 있습니다.

시간 지연으로 인해 조인트가 ‘늘어나거나’ 또는 ‘유연해진’ 것처럼 보일 수 있습니다. 지연이 발생하는 이유는 물리 시스템이 제약 위반을 바로잡기 위해 조인트에 힘을 가하는 한편, 게임 안의 다른 물리력이 제약을 위반하는 방향으로 작용해서 서로의 힘이 상충하기 때문입니다. 상충되는 힘이 게임 오브젝트에 작용해서 느리게 안정화되는 조인트도 있고, 다른 조인트에 비해 더 빠르게 반응하고 빨리 안정화되는 조인트도 있습니다.

제공하는 제약 옵션에 관계없이 조인트는 제약 위반을 바로잡기 위해서만 힘을 가합니다. 조인트가 가하는 힘에는 직선(linear) 방향의 힘과 회전(torgue) 방향의 힘이 있습니다.

힌트: 조인트에 상충되는 힘이 작용할 수 있기 때문에, 조인트가 연결된 리지드바디 오브젝트에 큰 힘을 가할 때에는 항상 주의하는 것이 좋습니다. 특히 질량이 큰 오브젝트에서는 큰 힘을 가할 때에는 더욱 주의해야 합니다.

조인트 영구 파괴

모든 조인트는 힘이 지정된 한계를 초과할 때 완전히 작동이 중지(즉 파괴)됩니다. 조인트를 파괴하는 힘 중에서 직선 방향으로 작용하는 과도한 힘을 “직선 파괴력(break force)”이라고 하고, 회전 방향으로 작용하는 과도한 힘을 “회전 파괴력(break torque)”이라고 합니다.

  • 직선 방향의 힘을 가하는 조인트에는 직선 파괴력(Break Force) 옵션이 있습니다.
  • 회전 방향의 힘을 가하는 조인트에는 회전 파괴력(Break Torque) 옵션이 있습니다.

두 옵션의 값은 모두 기본적으로 무한(Infinity) 으로 설정되어 있습니다. 즉, 한계가 없어 파괴되지 않는다는 의미입니다.

직선 파괴력 또는 회전 파괴력 한계를 초과하면 조인트가 파괴되고 해당 컴포넌트가 게임 오브젝트에서 자동으로 삭제됩니다.

물리 머티리얼 2D(Physics Material 2D)
거리 조인트 2D(Distance Joint 2D)