관절 바디를 사용하면 계층 구조로 구성된 게임 오브젝트로 로봇 팔이나 키네틱 체인 같은 물리 관절을 만들 수 있습니다. 이는 산업용 시뮬레이션의 맥락에서 사실적인 물리 동작을 구현하는 데 도움이 됩니다.
관절 바디를 사용하면 기존 구성의 리지드바디와 일반 조인트를 통해 유사하게 정의할 수 있는 프로퍼티를 단일 컴포넌트에서 정의할 수 있습니다. 하지만 이러한 프로퍼티는 계층 구조 내 게임 오브젝트 위치에 따라 다릅니다.


Articulation Body 프로퍼티는 다음의 메인 카테고리로 분류됩니다.
관절 바디가 물리 환경에 반응하는 방식을 정의합니다.
| 프로퍼티 | 기능 |
|---|---|
| Mass | 관절 바디의 질량입니다(기본값은 킬로그램). |
| Immovable | 이 프로퍼티를 사용하면 이 관절 바디가 움직일 수 있는지 정의할 수 있습니다. 루트 관절 바디에 대해서만 이 프로퍼티를 설정할 수 있습니다. 이 프로퍼티는 로봇 손의 기본 바디를 움직이지 않게 만들 때 유용합니다. 물리 엔진은 다른 모든 제약과 별도로 이를 해결하여 위반이 발생하지 않도록 합니다. |
| Use Gravity | 이 프로퍼티를 사용하면 중력이 이 관절 바디에 영향을 미치는지 여부를 지정할 수 있습니다. |
관절 바디 및 해당 부모 관절 바디에 대한 조인트 앵커 좌표를 정의합니다.
| 프로퍼티 | 기능 |
|---|---|
| Compute Parent Anchor | 이 프로퍼티를 활성화하면 부모 관련 앵커가 현재 관절 바디의 앵커와 일치하게 됩니다. 이 프로퍼티를 비활성화하면 Parent Anchor Position 값과 Parent Anchor Rotation 값을 별도로 설정할 수 있습니다. |
| Anchor Position | 현재 관절 바디를 기준으로 한 앵커의 위치 좌표입니다. |
| Anchor Rotation | 현재 관절 바디를 기준으로 한 앵커의 회전 좌표입니다. |
| Parent Anchor Position | 현재 관절 바디를 기준으로 한 부모 앵커의 위치 좌표입니다. 이 프로퍼티는 Compute Parent Anchor를 비활성화한 경우에만 표시됩니다. |
| Parent Anchor Rotation | 현재 관절 바디를 기준으로 한 부모 앵커의 회전 좌표입니다. 이 프로퍼티는 Compute Parent Anchor를 비활성화한 경우에만 표시됩니다. |
| Snap Anchor to closest contact | 이 관절 바디의 표면에서 이 부모 관절 바디의 질량 중심과 가장 가까운 지점을 계산하고, 그에 대해 앵커를 설정합니다. Compute Parent Anchor가 활성화된 경우 Unity는 부모 앵커도 그에 맞게 업데이트합니다. |
현재 관절 바디를 해당 부모 관절 바디에 연결하는 조인트 유형을 선택하고, 공통 및 전용 프로퍼티를 정의합니다.
| 프로퍼티 | ||
|---|---|---|
| 기능 | ||
| Articulation Joint Type | ||
| 이 관절 바디를 부모 관절 바디와 연결하는 관절 유형입니다. 참고: 모든 유형의 조인트는 이 표에 설명된 프로퍼티를 공통으로 가지고 있으며, 일부 유형의 조인트에는 특별한 추가 프로퍼티가 있습니다. | ||
| Fixed | 바디 사이에 견고하며 부러지지 않고 늘어나지 않는 링크를 설정합니다. 고정 관절 조인트에는 이 표에 설명된 프로퍼티 외에 추가 프로퍼티가 없습니다. | |
| Prismatic | 특정 축을 따라 미끄러지는 것을 제외하고 모든 모션을 방지합니다. 직동 조인트 추가 프로퍼티를 참조하십시오. | |
| Revolute | 특정 축(예: 힌지)을 중심으로 회전할 수 있습니다. 회전 조인트 추가 프로퍼티를 참조하십시오. | |
| Spherical | 두 번의 스윙과 한 번의 트위스트를 허용하는 해부학적 조인트입니다. 구형 조인트 추가 프로퍼티를 참조하십시오. | |
| Linear Damping | ||
| 리니어 감속을 제어하는 계수입니다. | ||
| Angular Damping | ||
| 회전 감속을 제어하는 계수입니다. | ||
| Joint Friction | ||
| 조인트의 마찰로 인한 에너지 손실을 제어하는 계수입니다. |
| 프로퍼티 | ||
|---|---|---|
| 기능 | ||
| Axis | ||
| 직동 조인트가 부모 앵커를 기준으로 움직일 수 있는 축을 지정합니다. | ||
| Motion | ||
| 해당 축의 모션 제한 유형을 지정합니다. | ||
| Free | 관절 바디가 선택한 부모 앵커 Axis를 따라 자유롭게 움직일 수 있도록 허용합니다. | |
| Limited | Drive 프로퍼티에 지정한 Lower Limit과 Upper Limit에 따라 선택한 부모 앵커 Axis에서 관절 바디의 움직임을 제한합니다. | |
| X Drive, Y Drive, Z Drive | ||
| 선택한 부모 앵커 Axis에 따라 조인트에 연결된 선형 드라이브의 프로퍼티입니다. 참고: 여기에는 하나의 Drive 섹션만 있습니다. 해당 이름은 축 선택에 따라 자동으로 조정됩니다. |
| 프로퍼티 | ||
|---|---|---|
| 기능 | ||
| Motion | ||
| 부모 앵커의 X축을 중심으로 한 회전의 제한 유형을 지정합니다. | ||
| Free | 관절 바디가 부모 앵커의 X축을 중심으로 자유롭게 회전할 수 있습니다. | |
| Limited | X Drive 프로퍼티에 지정한 Lower Limit과 Upper Limit에 따라 부모 앵커의 X축을 중심으로 한 관절 바디의 회전을 제한합니다. | |
| X Drive | ||
| 부모 앵커의 X축을 중심으로 한, 조인트에 연결된 회전 드라이브의 프로퍼티입니다. |
| 프로퍼티 | ||
|---|---|---|
| 기능 | ||
| Swing Y | ||
| Y축을 중심으로 회전 제한 유형을 지정합니다. | ||
| Free | 관절 바디가 부모 앵커의 Y축을 중심으로 자유롭게 회전할 수 있습니다. | |
| Limited | Y Drive 프로퍼티에 지정한 Lower Limit과 Upper Limit에 따라 부모 앵커의 Y축을 중심으로 관절 바디의 회전을 제한합니다. | |
| Locked | 부모 앵커의 Y축을 중심으로 관절 바디가 절대 회전하지 못하도록 합니다. 참고: 동시에 2개 이상의 자유도를 잠글 수 없습니다. | |
| Swing Z | ||
| Z축을 중심으로 한 회전의 제한 유형을 지정합니다. 옵션은 3개 축 모두에서 동일합니다. | ||
| Twist | ||
| X축을 중심으로 한 회전의 제한 유형을 지정합니다. 옵션은 3개 축 모두에서 동일합니다. | ||
| Y Drive, Z Drive, X Drive | ||
| 각 부모 앵커의 Y, Z, X 축을 중심으로 한, 조인트에 연결된 회전 드라이브의 프로퍼티입니다. 참고: 각 드라이브에는 별도의 하위 섹션이 있습니다. 축을 잠그면 인스펙터에 해당 드라이브 프로퍼티가 표시되지 않습니다. |
특정 축에 대한 조인트 한계와 이 축에 대한 조인트 드라이브 효과 파라미터를 설정합니다.
| 프로퍼티 | 기능 |
|---|---|
| Lower Limit | 조인트 유형에 따라 조인트가 바디의 움직임 또는 회전을 방지하는 하한입니다. 관련 Motion, Swing, Twist 프로퍼티를 Limited로 설정한 경우에만 이 프로퍼티를 정의할 수 있습니다. |
| Upper Limit | 조인트 유형에 따라 조인트가 바디의 움직임 또는 회전을 방지하는 상한입니다. 관련 Motion, Swing, Twist 프로퍼티를 Limited로 설정한 경우에만 이 프로퍼티를 정의할 수 있습니다. |
| Stiffness | 조인트를 타겟 쪽으로 끌어당기는 스프링의 강성도입니다. |
| Damping | 조인트를 타겟 쪽으로 끌어당기는 스프링의 댐핑입니다. |
| Force limit | 이 드라이브가 생성할 수 있는 최대 힘 또는 토크입니다. |
| Target | 이 드라이브가 도달하려는 타겟 값입니다. |
| Target velocity | 이 드라이브가 도달하려는 타겟 속도입니다. |
모든 드라이브는 다음 공식으로 계산된 효과(힘 또는 토크)를 적용하여 현재 드라이브 파라미터를 타겟으로 가져오는 것을 목표로 하는 임시적 1D 스프링입니다.
효과 = 강성도 * (targetPosition - drivePosition) + 댐핑 * (targetVelocity - driveVelocity)
선형 자유도에 연결된 드라이브는 힘을 발생시킵니다. 회전 자유도에 연결된 드라이브는 토크를 발생시킵니다. 조인트 드라이브 프로퍼티를 통해 이 공식의 각 파라미터를 설정하여 조인트에 관련된 모든 축에 원하는 효과를 조정할 수 있습니다.
효과 공식은 균형을 맞추거나 상쇄할 수도 있는 두 개의 독립적인 항으로 구성됩니다. 예시:
강성도를 0으로 설정하면 드라이브는 특정 속도에 도달하는 것을 목표로 합니다.
댐핑을 0으로 설정하면 드라이브는 특정 속도에 도달하는 것이 아니라 특정 위치에 도달하는 것을 목표로 합니다. 이 경우 드라이브는 타겟에 도달해도 정지하려고 하지 않습니다.
각 조인트에는 다음의 두 가지 앵커가 있습니다.
현재 관절 바디를 기준으로 하는 앵커
부모 관절 바디를 기준으로 하는 부모 앵커
기본적으로 Unity는 부모 앵커를 자동으로 계산하여 앵커의 포즈와 일치시킵니다. 그러나 Compute Parent Anchor 프로퍼티를 비활성화하여 부모 앵커를 수동으로 설정할 수 있습니다.
현재 Unity 에디터는 게임 오브젝트 변환 툴과 구별하기 위해 스케일된 변환 툴을 사용하여 앵커를 표시합니다.
앵커 위치를 변경하려는 경우 인스펙터를 사용하여 조인트 앵커 프로퍼티를 편집하거나, 씬 뷰에서 해당 변환 툴을 직접 이동시키거나 회전시킬 수 있습니다.
참고: 새로운 관절 바디를 생성하면 Unity는 해당 바디의 로컬 원점에 앵커를 배치합니다. 그러나 로컬 원점은 연결된 바디에 콜라이더가 연결된 경우 앵커의 이상적인 기본 위치가 아닙니다. 그러면 조인트가 바디를 서로 밀어내려고 할 수 있기 때문입니다. Snap Anchor to closest contact 버튼을 사용하면 더 많은 관절에서 작동하는 앵커의 기본 위치를 보다 적절하게 설정할 수 있습니다.
참고: 현재 씬 뷰를 사용하면 조인트 한계를 시각화할 수 있지만, 그래픽적으로 조작할 수는 없습니다.
고정 조인트에는 자유도가 없으므로, 씬 뷰는 아무런 특정 마커도 표시하지 않습니다.
직동 조인트는 부모 앵커를 기준으로 지정된 축을 따라 움직이는 슬라이더입니다. 이 축은 기본 축(X, Y, Z)일 수 있지만 부모 앵커를 회전하여 월드 공간에서 다른 축 방향으로 바꿀 수도 있습니다.
직동 조인트를 자유롭게 또는 제한적으로 이동하도록 설정할 수 있습니다. 이렇게 하려면 인스펙터를 통해 직동 조인트 관련 프로퍼티를 편집합니다.
참고: 직동 조인트는 잠글 수 없습니다. 잠그면 유일한 자유도가 제거되어 조인트의 기능을 상실할 수 있습니다.
직동 조인트의 Motion을 Limited로 설정하면 씬 뷰에 이동 한계를 나타내는 마커가 표시됩니다.
작은 빨간색 마커는 하한을 나타냅니다.
작은 녹색 마커는 상한을 나타냅니다.
흰색 점선은 한계 간에 허용된 이동을 나타냅니다.
조인트 한계를 조작하려면 인스펙터를 통해 조인트 드라이브 프로퍼티의 값을 편집해야 합니다.
제한된 직동 조인트의 예
참고: 직동 조인트의 Motion을 Free로 설정하면 씬 뷰에 특정 마커가 표시되지 않습니다.
회전 조인트는 기본적으로 부모 앵커의 X축을 중심으로 한 번의 회전 자유도를 가진 힌지입니다. 부모 앵커를 회전하여 월드 공간에서 다른 축 방향으로 바꿀 수도 있습니다.
자유 조인트를 자유롭게 또는 제한적으로 이동하도록 설정할 수 있습니다. 이렇게 하려면 인스펙터를 통해 회전 조인트 관련 프로퍼티를 편집합니다.
참고: 회전 조인트는 잠글 수 없습니다. 잠그면 유일한 자유도가 제거되어 조인트의 기능을 상실할 수 있습니다.
회전 조인트의 Motion을 Free로 설정하면 씬 뷰에 X축을 중심으로 한 자유 회전을 나타내는 빨간색 원판이 표시됩니다.
자유 회전 조인트의 예
회전 조인트의 Motion을 Limited로 설정하면 씬 뷰에 회전 한계를 나타내는 마커가 표시됩니다.
작은 빨간색 마커는 하한을 나타냅니다.
작은 녹색 마커는 상한을 나타냅니다.
빨간색 원형 섹터는 한계 간에 허용된 회전 각도를 나타냅니다.
부모 앵커의 Z축은 두 한계 각도의 레퍼런스(0) 역할을 합니다.
조인트 한계를 조작하려면 인스펙터를 통해 조인트 드라이브 프로퍼티의 값을 편집해야 합니다.
제한된 회전 조인트의 예
구형 조인트는 휴머노이드 팔다리를 시뮬레이션하는 데 가장 적합한 해부학적 조인트입니다.
이 조인트 유형은 최대 3개의 회전 자유도를 가질 수 있습니다. 각 회전을 자유, 제한, 잠금으로 설정할 수 있습니다. 이렇게 하려면 인스펙터를 통해 회전 조인트 관련 프로퍼티를 편집합니다.
참고: 구형 조인트의 모든 회전을 동시에 잠글 수는 없습니다. 동시에 잠그면 모든 자유도가 제거되어 조인트의 기능을 상실할 수 있습니다. 또한 회전 조인트를 모방하기 위해 두 스윙 축을 모두 잠그면 안 됩니다. 시뮬레이션이 회전 조인트와 다르게 작동하여 리소스가 더 많이 소모됩니다.
회전 조인트와 마찬가지로 다음과 같습니다.
씬 뷰에 컬러가 지정된 원판으로 자유 회전이 표시되고 컬러가 지정된 부채꼴 모양으로 제한된 회전이 표시됩니다. 각 컬러(빨간색, 초록색, 파란색)는 이 컬러(각각: X, Y, Z)의 축을 중심으로 한 회전을 나타냅니다.
작은 빨간색 및 초록색 마커는 각각 하한과 상한을 나타냅니다.
자유 구형 조인트의 예
스윙이 제한된 구형 조인트의 예
ArticulationBody