제약 조건 관리자 - MRTK2

제약 조건 관리자를 사용하면 제약 조건 구성 요소 집합을 변환에 적용할 수 있습니다. 게임 개체에 연결된 형식 TransformConstraint 의 구성 요소를 고려할 수 있습니다. 기본적으로 제약 조건 관리자는 게임 개체에 연결된 모든 제약 조건 구성 요소를 자동으로 수집하여 처리된 변환에 적용합니다. 그러나 사용자는 적용된 제약 조건 목록을 수동으로 구성하고 연결된 제약 조건의 하위 집합만 적용하도록 선택할 수 있습니다.

현재 다음 MRTK UX 요소는 제약 조건 관리자를 지원합니다.

검사기 속성 및 필드

제약 조건 관리자는 다음 두 가지 모드로 작동할 수 있습니다.

  • 자동 제약 조건 선택
  • 수동 제약 조건 선택

자동 제약 조건 선택

Auto Selection

제약 조건 관리자의 기본 모드인 자동 제약 조건 선택은 연결된 모든 제약 조건 구성 요소의 목록과 단추로 이동하고제약 조건 추가 단추를 제공합니다.

게임 개체에 제약 조건 추가

이 단추를 사용하면 제약 조건 관리자 검사기에서 제약 조건 구성 요소를 직접 추가할 수 있습니다. 프로젝트의 모든 제약 조건 형식은 여기에 표시됩니다. 자세한 내용은 변환 제약 조건을 참조하세요.

구성 요소로 이동

개체 wil에 있는 모든 제약 조건은 구성 요소로 이동 단추와 함께 여기에 나열됩니다. 이 단추를 사용하면 검사기에서 선택한 제약 조건 구성 요소로 스크롤하여 구성할 수 있습니다.

수동 제약 조건 선택

Manual Selection

제약 조건 관리자가 수동 모드로 설정된 경우 제약 조건 목록에 연결된 제약 조건만 처리되어 변환에 적용됩니다. 표시된 목록은 사용자가 선택한 제약 조건만 표시하고 항목을 제거하거나 추가하는 단추 또는 옵션으로 이동합니다 . 처음으로 수동 모드를 사용하도록 설정하는 경우 제약 조건 관리자는 연결된 제약 조건 구성 요소를 선택하기 위한 시작점으로 사용 가능한 모든 구성 요소를 목록으로 채웁니다.

항목 제거

이렇게 하면 수동으로 선택한 목록에서 항목이 제거됩니다. 이 옵션은 게임 개체에서 제약 조건 구성 요소를 제거하지 않습니다. 제약 조건 구성 요소는 이 구성 요소를 참조하는 다른 구성 요소가 실수로 손상되지 않도록 항상 수동으로 제거해야 합니다.

항목 추가

항목을 추가하면 아직 수동 목록에 없는 사용 가능한 모든 제약 조건 구성 요소를 보여 주는 드롭다운이 열립니다. 구성 요소가 수동 제약 조건 선택에 추가될 항목을 클릭합니다.

새 제약 조건 추가

이 옵션은 선택한 형식의 구성 요소를 게임 개체에 추가하고 새로 만든 제약 조건 구성 요소를 수동 제약 조건 목록에 추가합니다.

변환 제약 조건

제약 조건은 어떤 식으로든 조작을 제한하는 데 사용할 수 있습니다. 예를 들어 일부 애플리케이션에는 회전이 필요할 수 있지만 개체를 똑바로 유지해야 할 수도 있습니다. 이 경우 개체에 RotationAxisConstraint를 추가하고 이를 사용하여 회전을 y축 회전으로 제한할 수 있습니다. MRTK는 다양한 제약 조건을 제공하며, 모두 아래에 설명되어 있습니다.

또한 새 제약 조건을 정의하고 이를 사용하여 일부 애플리케이션에 필요할 수 있는 고유한 조작 동작을 만들 수도 있습니다. 이렇게 하려면 TransformConstraint에서 상속되는 스크립트를 만들고 추상 ConstraintType 속성 및 추상 ApplyConstraint 메서드를 구현합니다. 개체에 새 제약 조건을 추가하면 정의된 방식으로 조작을 제한해야 합니다. 또한 이 새로운 제약 조건은 제약 조건 관리자 자동 선택에 표시되거나 수동 모드에서 항목 드롭다운을 추가 해야 합니다.

MRTK에서 제공하는 모든 제약 조건은 다음 속성을 공유합니다.

손 종류

한 손으로, 두 손으로 또는 두 종류의 조작에 제약 조건을 사용할지 여부를 지정합니다. 이 속성은 플래그이므로 두 옵션을 모두 선택할 수 있습니다.

  • 한 손으로: 선택한 경우 한 손으로 조작하는 동안 제약 조건이 사용됩니다.
  • 양손: 선택한 경우 두 손으로 조작하는 동안 제약 조건이 사용됩니다.

근접 유형

제약 조건이 근거리, 원거리 또는 두 종류의 조작에 사용되는지 여부를 지정합니다. 이 속성은 플래그이므로 두 옵션을 모두 선택할 수 있습니다.

  • Near: 선택할 경우 근거리 조작 중에 제약 조건이 사용됩니다.
  • Far: 선택할 경우 원거리 조작 중에 제약 조건이 사용됩니다.

FaceUserConstraint

Constraint Face User

이 제약 조건이 개체에 연결되면 회전이 제한되므로 개체가 항상 사용자를 마주하게 됩니다. 이는 슬레이트 또는 패널에 유용합니다. 속성 FaceUserConstraint 은 다음과 같습니다.

얼굴 버리기

true이면 개체가 사용자로부터 멀어지게 합니다.

FixedDistanceConstraint

Constraint Fixed distances

이 제약 조건은 조작 시작 시 조작된 개체와 다른 개체 변환 사이의 거리를 수정합니다. 조작된 개체에서 헤드 변환까지의 거리를 고정하는 등의 동작에 유용합니다. 속성 FixedDistanceConstraint 은 다음과 같습니다.

제약 조건 변환

조작된 개체의 거리가 고정된 다른 변환입니다. 기본값은 카메라 변환입니다.

FixedRotationToUserConstraint

Fixed Rotation

이 제약 조건은 조작되는 동안 사용자와 조작된 개체 간의 상대 회전을 수정합니다. 이는 조작된 개체가 조작 시작 시와 항상 동일한 얼굴을 사용자에게 표시하도록 하기 때문에 슬레이트 또는 패널에 유용합니다. 고유 FixedRotationToUserConstraint 속성이 없습니다.

FixedRotationToWorldConstraint

Fixed rotation to the world

이 제약 조건은 조작되는 동안 조작된 개체의 전역 회전을 수정합니다. 이 기능은 조작을 통해 회전을 전달하지 않아야 하는 경우에 유용할 수 있습니다. 고유 속성이 FixedRotationToWorldConstraint 없습니다.

MaintainApparentSizeConstraint

Maintain Apparent size

이 제약 조건이 개체에 연결되어 있는 경우 개체가 사용자와 얼마나 멀리 떨어져 있든 관계없이 사용자에게 동일한 명백한 크기를 유지합니다(즉, 사용자 보기 필드의 동일한 비율을 차지합니다). 이를 사용하여 슬레이트 또는 텍스트 패널을 조작하는 동안 읽을 수 있도록 할 수 있습니다. 고유 속성이 MaintainApparentSizeConstraint 없습니다.

MoveAxisConstraint

Constraint Move Axis

이 제약 조건은 조작된 개체를 이동할 수 있는 축을 수정하는 데 사용할 수 있습니다. 이는 평면 표면이나 선을 따라 개체를 조작하는 데 유용할 수 있습니다. 속성 MoveAxisConstraint 은 다음과 같습니다.

이동 제약 조건

이동을 방지할 축을 지정합니다. 기본적으로 이러한 축은 로컬이 아닌 전역이지만 아래에서 변경할 수 있습니다. 이 속성은 플래그이므로 원하는 수의 옵션을 선택할 수 있습니다.

  • X축: 선택한 경우 x축을 따라 이동이 제한됩니다.
  • Y축: 선택한 경우 y축을 따라 이동이 제한됩니다.
  • Z축: 선택한 경우 z축을 따라 이동이 제한됩니다.

제약 조건에 로컬 공간 사용

true이면 조작된 개체의 로컬 변환 축을 상대적으로 제한합니다. False(기본값).

RotationAxisConstraint

Constraint Rotation Axis

이 제약 조건은 조작된 개체를 회전할 수 있는 축을 수정하는 데 사용할 수 있습니다. 예를 들어 조작된 개체를 똑바로 유지하지만 y축 회전을 허용하는 데 유용할 수 있습니다. 속성 RotationAxisConstraint 은 다음과 같습니다.

회전에 대한 제약 조건

회전을 방지할 축을 지정합니다. 기본적으로 이러한 축은 로컬이 아닌 전역이지만 아래에서 변경할 수 있습니다. 이 속성은 플래그이므로 원하는 수의 옵션을 선택할 수 있습니다.

  • Y축: 선택한 경우 y축에 대한 회전이 제한됩니다.
  • Z축: 선택한 경우 z축에 대한 회전이 제한됩니다.
  • X축: 선택한 경우 x축에 대한 회전이 제한됩니다.

제약 조건에 로컬 공간 사용

true이면 조작된 개체의 로컬 변환 축을 상대적으로 제한합니다. False(기본값).

MinMaxScaleConstraint

Min Max Constatint

이 제약 조건을 사용하면 조작된 개체의 배율에 대해 최소값과 최대값을 설정할 수 있습니다. 이는 사용자가 너무 작거나 너무 큰 개체의 크기를 조정하지 못하게 하는 데 유용합니다. 속성 MinMaxScaleConstraint 은 다음과 같습니다.

최소 크기 조정

조작 중 최소 배율 값입니다.

최대 크기 조정

조작하는 동안의 최대 배율 값입니다.

초기 상태를 기준으로

true이면 위의 값은 개체 초기 배율을 기준으로 해석됩니다. 그렇지 않으면 절대 배율 값으로 해석됩니다.